allow spice multipliers in numbers (20u, 10k, 20p) in graph expressions
This commit is contained in:
parent
3e2bc9f95e
commit
48d1b44220
|
|
@ -692,7 +692,7 @@ int plot_raw_custom_data(int sweep_idx, int first, int last, const char *expr)
|
|||
const char *n;
|
||||
char *endptr, *ntok_copy = NULL, *ntok_save, *ntok_ptr;
|
||||
Stack1 stack1[STACKMAX];
|
||||
double v, stack2[STACKMAX], tmp, integ, deriv, avg;
|
||||
double stack2[STACKMAX], tmp, integ, deriv, avg;
|
||||
int stackptr1 = 0, stackptr2 = 0;
|
||||
SPICE_DATA *y = xctx->graph_values[xctx->graph_nvars]; /* custom plot data column */
|
||||
SPICE_DATA *x = xctx->graph_values[sweep_idx];
|
||||
|
|
@ -731,9 +731,9 @@ int plot_raw_custom_data(int sweep_idx, int first, int last, const char *expr)
|
|||
else if(!strcmp(n, "deriv0()")) stack1[stackptr1++].i = DERIV0;
|
||||
else if(!strcmp(n, "exch()")) stack1[stackptr1++].i = EXCH;
|
||||
else if(!strcmp(n, "dup()")) stack1[stackptr1++].i = DUP;
|
||||
else if( (v = strtod(n, &endptr)), !*endptr) {
|
||||
else if( (strtod(n, &endptr)), endptr > n) {
|
||||
stack1[stackptr1].i = NUMBER;
|
||||
stack1[stackptr1++].d = v;
|
||||
stack1[stackptr1++].d = atof_spice(n);
|
||||
}
|
||||
else {
|
||||
idx = get_raw_index(n);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ y1=-47
|
|||
y2=50
|
||||
divy=4
|
||||
subdivy=4
|
||||
x1=0.00819414
|
||||
x2=0.00888885
|
||||
x1=0.00824068
|
||||
x2=0.00893539
|
||||
divx=8
|
||||
subdivx=1
|
||||
dataset=0
|
||||
|
|
@ -30,8 +30,8 @@ y1=0
|
|||
y2=160
|
||||
divy=4
|
||||
subdivy=9
|
||||
x1=0.00819414
|
||||
x2=0.00888885
|
||||
x1=0.00824068
|
||||
x2=0.00893539
|
||||
divx=8
|
||||
subdivx=9
|
||||
dataset=0
|
||||
|
|
@ -41,15 +41,15 @@ unitx=m
|
|||
|
||||
color="8 7"
|
||||
node="tcleval(\\"Xm1 power;vpp $\{path\}outi - i(v.$\{path\}vu) *\\"
|
||||
\\"Average;vpp $\{path\}outi - i(v.$\{path\}vu) * 2e-4 ravg()\\")"
|
||||
\\"Average;vpp $\{path\}outi - i(v.$\{path\}vu) * 200u ravg()\\")"
|
||||
}
|
||||
B 2 1520 -1130 2440 -830 {flags=graph
|
||||
y1=-0.19
|
||||
y2=160
|
||||
divy=4
|
||||
subdivy=9
|
||||
x1=0.00819414
|
||||
x2=0.00888885
|
||||
x1=0.00824068
|
||||
x2=0.00893539
|
||||
divx=8
|
||||
subdivx=9
|
||||
dataset=0
|
||||
|
|
@ -57,7 +57,7 @@ unitx=m
|
|||
|
||||
color="8 7"
|
||||
node="tcleval(\\"Xm2 Power;$\{path\}outi vnn - i(v.$\{path\}vd) *\\"
|
||||
\\"Average;$\{path\}outi vnn - i(v.$\{path\}vd) * 2e-4 ravg()\\")"
|
||||
\\"Average;$\{path\}outi vnn - i(v.$\{path\}vd) * 200u ravg()\\")"
|
||||
}
|
||||
B 2 960 -960 1094 -897 {flags=image
|
||||
alpha=0.7
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,5 @@
|
|||
v {xschem version=3.0.0 file_version=1.2 }
|
||||
v {xschem version=3.1.0 file_version=1.2
|
||||
}
|
||||
G {}
|
||||
K {}
|
||||
V {}
|
||||
|
|
@ -15,7 +16,7 @@ N 510 -430 510 -400 {
|
|||
lab=mn}
|
||||
N 510 -320 510 -260 {
|
||||
lab=minus}
|
||||
N 510 -550 510 -490 {
|
||||
N 510 -580 510 -490 {
|
||||
lab=pn}
|
||||
N 510 -490 600 -490 {
|
||||
lab=pn}
|
||||
|
|
@ -23,14 +24,15 @@ N 510 -430 600 -430 {
|
|||
lab=mn}
|
||||
N 510 -260 510 -140 {
|
||||
lab=minus}
|
||||
C {iopin.sym} 510 -610 2 1 {name=p1 lab=plus}
|
||||
N 510 -680 510 -640 {
|
||||
lab=plus}
|
||||
C {iopin.sym} 510 -680 2 1 {name=p1 lab=plus}
|
||||
C {iopin.sym} 510 -120 2 1 {name=p2 lab=minus}
|
||||
C {title.sym} 160 -40 0 0 {name=l1 author="Stefan Schippers" net_name=true}
|
||||
C {ammeter.sym} 510 -370 2 1 {name=Vm}
|
||||
C {ammeter.sym} 510 -580 2 1 {name=Vp}
|
||||
C {bsource.sym} 510 -460 2 0 {name=B1 VAR=I FUNC="pwl(V(pn,mn),
|
||||
+ 0, 6.3,
|
||||
+ 18, 5.7,
|
||||
+ 0, 6.3,
|
||||
+ 18, 5.7,
|
||||
+ 18.3, 5.6,
|
||||
+ 18.6, 5.4,
|
||||
+ 18.9, 5.1,
|
||||
|
|
@ -45,3 +47,8 @@ value=500000
|
|||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
C {res.sym} 510 -610 0 0 {name=R2
|
||||
value=0.1
|
||||
footprint=1206
|
||||
device=resistor
|
||||
m=1}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
v {xschem version=3.0.0 file_version=1.2 }
|
||||
v {xschem version=3.1.0 file_version=1.2
|
||||
}
|
||||
G {}
|
||||
K {type=subcircuit
|
||||
format="@name @pinlist @symname R1=@R1 R2=@R2 Vmp=@Vmp Voc=@Voc m=@m"
|
||||
|
|
@ -16,8 +17,8 @@ L 4 -10 5 10 5 {}
|
|||
L 4 -20 -5 20 -5 {}
|
||||
L 4 -15 -20 -5 -20 {}
|
||||
L 4 -10 -25 -10 -15 {}
|
||||
B 5 -2.5 -32.5 2.5 -27.5 {name=plus dir=inout pinnumber=1 propag=1 goto=1}
|
||||
B 5 -2.5 27.5 2.5 32.5 {name=minus dir=inout pinnumber=2 goto=0}
|
||||
B 5 -2.5 -32.5 2.5 -27.5 {name=plus dir=inout}
|
||||
B 5 -2.5 27.5 2.5 32.5 {name=minus dir=inout}
|
||||
P 4 7 -35 -30 -25 -20 -20 -25 -15 -10 -30 -15 -25 -20 -35 -30 {}
|
||||
P 4 7 -35 -5 -25 5 -20 0 -15 15 -30 10 -25 5 -35 -5 {}
|
||||
T {@name} 15 -28.75 0 0 0.2 0.2 {}
|
||||
|
|
|
|||
|
|
@ -34,11 +34,11 @@ L 4 75 -775 85 -775 {}
|
|||
L 4 75 -815 85 -815 {}
|
||||
L 4 75 -855 85 -855 {}
|
||||
B 2 1270 -740 1690 -570 {flags=graph
|
||||
y1 = -3.3e-05
|
||||
y1 = -0.00013
|
||||
y2 = 21
|
||||
divy = 6
|
||||
subdivy=1
|
||||
x1=-9.66825e-10
|
||||
x1=1e-11
|
||||
x2=0.0006
|
||||
divx=8
|
||||
node="panel
|
||||
|
|
@ -49,7 +49,7 @@ y1 = 0.0012
|
|||
y2 = 6.3
|
||||
divy = 4
|
||||
subdivy=1
|
||||
x1=-9.66825e-10
|
||||
x1=1e-11
|
||||
x2=0.0006
|
||||
divx=8
|
||||
unitx=m
|
||||
|
|
@ -58,17 +58,19 @@ node="i(vpanel)
|
|||
i(vled)"}
|
||||
B 2 1270 -930 1690 -740 {flags=graph
|
||||
y1 = -4.1e-08
|
||||
y2 = 110
|
||||
y2 = 100
|
||||
divy = 5
|
||||
subdivy=1
|
||||
x1=-9.66825e-10
|
||||
x1=1e-11
|
||||
x2=0.0006
|
||||
divx=9
|
||||
|
||||
unitx=m subdivx=4
|
||||
color="7 4"
|
||||
color="7 4 6"
|
||||
node="\\"Panel power; i(vpanel) v(panel) *\\"
|
||||
\\"Led power; i(vled) v(led) *\\""}
|
||||
\\"Led power; i(vled) v(led) *\\"
|
||||
\\"R.Avg.Pan. Pwr; i(vpanel) v(panel) * 20u ravg()\\""
|
||||
hilight_wave=-1}
|
||||
B 18 85 -840 340 -655 {}
|
||||
A 5 340 -840 5.590169943749475 243.434948822922 360 {fill=true}
|
||||
P 7 6 415 -655 360 -811.25 355 -825 342.5 -840 330 -845 85 -855 {}
|
||||
|
|
@ -107,7 +109,7 @@ N 860 -650 900 -650 {lab=SW}
|
|||
N 860 -650 860 -530 {lab=SW}
|
||||
N 830 -650 860 -650 {lab=SW}
|
||||
N 860 -250 1050 -250 {lab=0}
|
||||
N 570 -250 860 -250 {lab=0}
|
||||
N 670 -250 860 -250 {lab=0}
|
||||
N 1040 -650 1050 -650 {lab=VO}
|
||||
N 1140 -480 1180 -480 {lab=LED}
|
||||
N 1140 -480 1140 -350 {lab=LED}
|
||||
|
|
@ -117,28 +119,37 @@ N 960 -650 980 -650 { lab=#net3}
|
|||
N 280 -530 280 -480 {
|
||||
lab=#net4}
|
||||
N 280 -420 280 -370 {lab=0}
|
||||
N 415 -470 415 -420 {lab=0}
|
||||
N 280 -530 320 -530 {
|
||||
lab=#net4}
|
||||
N 380 -530 570 -530 {
|
||||
lab=PANEL}
|
||||
N 610 -870 800 -870 {
|
||||
lab=CTRL1}
|
||||
N 800 -870 800 -690 {
|
||||
lab=CTRL1}
|
||||
N 380 -530 450 -530 {
|
||||
lab=#net5}
|
||||
N 510 -530 570 -530 {
|
||||
lab=PANEL}
|
||||
N 420 -390 420 -370 {
|
||||
lab=0}
|
||||
N 420 -470 420 -450 {
|
||||
lab=#net6}
|
||||
N 170 -450 230 -450 {
|
||||
lab=#net7}
|
||||
N 170 -390 170 -370 {
|
||||
lab=0}
|
||||
C {title.sym} 160 -40 0 0 {name=l1 author="Stefan Schippers" net_name=true}
|
||||
C {code_shown.sym} 190 -240 0 0 {name=CONTROL value=".control
|
||||
save v(panel) v(sw) v(led) i(vpanel)
|
||||
save all
|
||||
tran 1u 600u uic
|
||||
write solar_panel.raw
|
||||
.endc
|
||||
* .dc VP 0 21 0.01
|
||||
|
||||
" net_name=true}
|
||||
C {code.sym} 20 -230 0 0 {name=MODELS value=".MODEL DIODE D(IS=1.139e-08 RS=0.99 CJO=9.3e-12 VJ=1.6 M=0.411 BV=30 EG=0.7 )
|
||||
.MODEL swmod SW(VT=0.5 VH=0.01 RON=0.01 ROFF=10000000)
|
||||
" net_name=true}
|
||||
C {lab_pin.sym} 570 -530 0 1 {name=l4 sig_type=std_logic lab=PANEL net_name=true}
|
||||
C {lab_pin.sym} 570 -250 0 0 {name=l6 sig_type=std_logic lab=0 net_name=true}
|
||||
C {lab_pin.sym} 670 -250 0 0 {name=l6 sig_type=std_logic lab=0 net_name=true}
|
||||
C {ammeter.sym} 1110 -480 3 0 {name=Vled net_name=true}
|
||||
C {ind.sym} 930 -650 3 1 {name=L1
|
||||
m=1
|
||||
|
|
@ -154,7 +165,9 @@ value=10u
|
|||
footprint=1206
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {lab_pin.sym} 1050 -440 0 1 {name=l10 sig_type=std_logic lab=VO net_name=true}
|
||||
C {vsource.sym} 610 -780 0 0 {name=Vset1 value="pulse 0 1 0 1n 1n 1.7u 5u" net_name=true}
|
||||
C {vsource.sym} 610 -780 0 0 {name=Vset1
|
||||
value="dc 0 pulse 0 1 0 1n 1n 1.7u 5u"
|
||||
net_name=true}
|
||||
C {lab_pin.sym} 610 -750 0 0 {name=l13 sig_type=std_logic lab=0 net_name=true}
|
||||
C {lab_pin.sym} 570 -650 0 0 {name=l2 sig_type=std_logic lab=PANEL net_name=true}
|
||||
C {ammeter.sym} 1010 -650 3 0 {name=Vind net_name=true}
|
||||
|
|
@ -194,13 +207,17 @@ xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]
|
|||
}
|
||||
C {pv_ngspice.sym} 280 -450 0 0 {name=X1 m=1 roff=1e9}
|
||||
C {lab_pin.sym} 280 -370 0 0 {name=l12 sig_type=std_logic lab=0 net_name=true}
|
||||
C {capa.sym} 415 -500 0 0 {name=C11
|
||||
C {capa.sym} 420 -500 0 0 {name=C11
|
||||
m=1
|
||||
value=10u
|
||||
footprint=1206
|
||||
device="ceramic capacitor" net_name=true}
|
||||
C {lab_pin.sym} 415 -420 0 0 {name=l90 sig_type=std_logic lab=0 net_name=true}
|
||||
C {lab_pin.sym} 420 -370 0 0 {name=l90 sig_type=std_logic lab=0 net_name=true}
|
||||
C {ammeter.sym} 350 -530 3 1 {name=Vpanel net_name=true}
|
||||
C {diode_ngspice.sym} 860 -500 2 0 {name=X2 m=1 Roff=1e9 Ron=0.1}
|
||||
C {switch_ngspice.sym} 800 -650 1 0 {name=S1 model=swmod}
|
||||
C {lab_pin.sym} 780 -690 0 0 {name=l3 sig_type=std_logic lab=0 net_name=true}
|
||||
C {ammeter.sym} 480 -530 3 1 {name=Vpanel1 net_name=true}
|
||||
C {ammeter.sym} 420 -420 0 0 {name=Vcap net_name=true}
|
||||
C {vsource.sym} 170 -420 0 0 {name=Vfade value=1}
|
||||
C {lab_pin.sym} 170 -370 0 0 {name=l12 sig_type=std_logic lab=0 net_name=true}
|
||||
|
|
|
|||
Loading…
Reference in New Issue