460 lines
11 KiB
XML
460 lines
11 KiB
XML
v {xschem version=3.4.8RC file_version=1.3
|
|
*
|
|
* This file is part of XSCHEM,
|
|
* a schematic capture and Spice/Vhdl/Verilog netlisting tool for circuit
|
|
* simulation.
|
|
* Copyright (C) 1998-2024 Stefan Frederik Schippers
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Solar panel simulation.
|
|
A Photovoltaic model has been created for this (pv_ngspice.sym)
|
|
\{Stefan\}.}
|
|
G {}
|
|
K {}
|
|
V {}
|
|
S {}
|
|
F {}
|
|
E {}
|
|
L 2 95 -1105 95 -875 {}
|
|
L 2 135 -1105 135 -875 {}
|
|
L 2 175 -1105 175 -875 {}
|
|
L 2 215 -1105 215 -875 {}
|
|
L 2 255 -1105 255 -875 {}
|
|
L 2 295 -1105 295 -875 {}
|
|
L 2 335 -1105 335 -875 {}
|
|
L 2 375 -1105 375 -875 {}
|
|
L 2 55 -1075 385 -1075 {}
|
|
L 2 55 -1035 385 -1035 {}
|
|
L 2 55 -995 385 -995 {}
|
|
L 2 55 -955 385 -955 {}
|
|
L 2 55 -915 385 -915 {}
|
|
L 4 55 -1115 55 -855 {}
|
|
L 4 45 -875 395 -875 {}
|
|
L 4 95 -875 95 -865 {}
|
|
L 4 135 -875 135 -865 {}
|
|
L 4 175 -875 175 -865 {}
|
|
L 4 215 -875 215 -865 {}
|
|
L 4 255 -875 255 -865 {}
|
|
L 4 295 -875 295 -865 {}
|
|
L 4 335 -875 335 -865 {}
|
|
L 4 375 -875 375 -865 {}
|
|
L 4 45 -915 55 -915 {}
|
|
L 4 45 -955 55 -955 {}
|
|
L 4 45 -995 55 -995 {}
|
|
L 4 45 -1035 55 -1035 {}
|
|
L 4 45 -1075 55 -1075 {}
|
|
L 4 610 -1100 630 -1140 {}
|
|
L 4 630 -1140 650 -1100 {}
|
|
L 4 650 -1100 670 -1140 {}
|
|
L 4 670 -1140 690 -1100 {}
|
|
L 4 690 -1100 710 -1140 {}
|
|
L 4 710 -1140 730 -1100 {}
|
|
L 4 1040 -1020 1050 -1020 {}
|
|
L 4 1050 -1060 1050 -1020 {}
|
|
L 4 1050 -1060 1070 -1060 {}
|
|
L 4 1070 -1060 1070 -1020 {}
|
|
L 4 1070 -1020 1090 -1020 {}
|
|
L 4 1090 -1060 1090 -1020 {}
|
|
L 4 1090 -1060 1110 -1060 {}
|
|
L 4 1110 -1060 1110 -1020 {}
|
|
L 4 1110 -1020 1130 -1020 {}
|
|
L 4 1130 -1060 1130 -1020 {}
|
|
L 4 1130 -1060 1150 -1060 {}
|
|
L 4 1150 -1060 1150 -1020 {}
|
|
L 4 1150 -1020 1160 -1020 {}
|
|
L 4 880 -760 880 -720 {}
|
|
L 4 870 -720 880 -720 {}
|
|
L 4 870 -720 880 -710 {}
|
|
L 4 880 -710 890 -720 {}
|
|
L 4 880 -720 890 -720 {}
|
|
L 4 970 -380 970 -340 {}
|
|
L 4 960 -340 970 -340 {}
|
|
L 4 960 -340 970 -330 {}
|
|
L 4 970 -330 980 -340 {}
|
|
L 4 970 -340 980 -340 {}
|
|
B 2 1370 -555 1790 -385 {flags=graph
|
|
y1 = -0.00068
|
|
y2 = 22
|
|
divy = 6
|
|
subdivy=1
|
|
x1=5e-10
|
|
x2=0.001
|
|
divx=8
|
|
node="PANEL
|
|
LED" unitx=m
|
|
color="7 4"
|
|
jpeg_quality=30
|
|
linewidth_mult=2.0
|
|
hilight_wave=-1
|
|
|
|
|
|
|
|
autoload=0
|
|
|
|
sim_type=tran
|
|
xrawfile=$netlist_dir/solar_panel.raw}
|
|
B 2 1370 -385 1790 -215 {flags=graph
|
|
y1 = -0.0012
|
|
y2 = 6.8
|
|
divy = 4
|
|
subdivy=1
|
|
x1=5e-10
|
|
x2=0.001
|
|
divx=8
|
|
unitx=m
|
|
color="7 4 6"
|
|
node="i(Vpanel)
|
|
i(Vled)
|
|
\\"R.Avg. I(VPANEL); i(VPANEL) 20u ravg()\\""
|
|
jpeg_quality=30
|
|
linewidth_mult=2.0
|
|
autoload=0
|
|
|
|
sim_type=tran
|
|
xrawfile=$netlist_dir/solar_panel.raw}
|
|
B 2 1370 -745 1790 -555 {flags=graph
|
|
y1 = -2.7e-05
|
|
y2 = 100
|
|
divy = 5
|
|
subdivy=1
|
|
x1=5e-10
|
|
x2=0.001
|
|
divx=9
|
|
|
|
unitx=m subdivx=4
|
|
color="7 4 6 8"
|
|
node="Panel power; i(Vpanel) v(PANEL) *
|
|
Led power; i(Vled) v(LED) *
|
|
Avg.Pan. Pwr; i(Vpanel) v(PANEL) * 20u ravg()
|
|
SUN \\\\%; SUN 100 *"
|
|
hilight_wave=-1
|
|
jpeg_quality=30
|
|
linewidth_mult=2.0
|
|
autoload=0
|
|
|
|
sim_type=tran
|
|
xrawfile=$netlist_dir/solar_panel.raw}
|
|
B 2 1370 -935 1790 -745 {flags=graph
|
|
y1 = 0
|
|
y2 = 1
|
|
divy = 5
|
|
subdivy=1
|
|
x1=5e-10
|
|
x2=0.001
|
|
divx=9
|
|
|
|
unitx=u subdivx=4
|
|
color="14 7"
|
|
node="TRIANG
|
|
LEVEL"
|
|
hilight_wave=-1
|
|
digital=0
|
|
ypos1=0.00261891
|
|
ypos2=0.51596
|
|
jpeg_quality=30
|
|
linewidth_mult=2.0
|
|
autoload=0
|
|
|
|
sim_type=tran
|
|
xrawfile=$netlist_dir/solar_panel.raw}
|
|
B 2 1370 -1135 1790 -945 {flags=graph
|
|
y1 = 0
|
|
y2 = 1
|
|
divy = 5
|
|
subdivy=1
|
|
x1=5e-10
|
|
x2=0.001
|
|
divx=9
|
|
|
|
unitx=u subdivx=4
|
|
|
|
|
|
hilight_wave=-1
|
|
digital=0
|
|
ypos1=0.00261891
|
|
ypos2=0.51596
|
|
color=8
|
|
node="\\"CTRL1 Duty cycle; CTRL1 20u ravg()\\""
|
|
jpeg_quality=30
|
|
linewidth_mult=2.0
|
|
autoload=0
|
|
|
|
sim_type=tran
|
|
xrawfile=$netlist_dir/solar_panel.raw}
|
|
B 2 1210 -605 1320 -505 {name=l21
|
|
flags=graph,unlocked
|
|
lock=1
|
|
color=8
|
|
node="tcleval([xschem translate l21 @#0:net_name] [xschem translate l21 @#1:net_name] -)"
|
|
x1=5e-10
|
|
x2=0.001
|
|
y1=-4.8
|
|
y2=15}
|
|
B 2 400 -735 510 -635 {name=l22
|
|
flags=graph,unlocked
|
|
lock=1
|
|
color=8
|
|
node="tcleval([xschem translate l22 @#0:net_name])"
|
|
y1=0.00033
|
|
y2=21
|
|
x1=5e-10
|
|
x2=0.001}
|
|
B 2 600 -485 710 -385 {name=l23
|
|
flags=graph,unlocked
|
|
lock=1
|
|
color=8
|
|
node="tcleval([xschem get_fqdevice [xschem translate l23 @device]])"
|
|
x1=5e-10
|
|
x2=0.001
|
|
y1=-2.9
|
|
y2=6.8}
|
|
B 2 640 -295 750 -195 {name=l26
|
|
flags=graph,unlocked
|
|
lock=1
|
|
color=8
|
|
node="tcleval([xschem get_fqdevice [xschem translate l26 @device]])"
|
|
x1=5e-10
|
|
x2=0.001
|
|
y1=-2.9
|
|
y2=6.8}
|
|
B 18 55 -1060 310 -875 {}
|
|
A 5 310 -1060 5.590169943749475 243.434948822922 360 {fill=true}
|
|
P 7 6 385 -875 330 -1031.25 325 -1045 312.5 -1060 300 -1065 55 -1075 {}
|
|
T {2x10 1W white LED} 1350 -195 0 0 0.4 0.4 {layer=8}
|
|
T {2xseries 1W white LEDs} 1330 -135 0 0 0.4 0.4 {}
|
|
T {2.5} 85 -855 0 0 0.2 0.2 {}
|
|
T {5.0} 125 -855 0 0 0.2 0.2 {}
|
|
T {7.5} 165 -855 0 0 0.2 0.2 {}
|
|
T {10.0} 205 -855 0 0 0.2 0.2 {}
|
|
T {12.5} 245 -855 0 0 0.2 0.2 {}
|
|
T {15.0} 285 -855 0 0 0.2 0.2 {}
|
|
T {17.5} 325 -855 0 0 0.2 0.2 {}
|
|
T {20.0} 365 -855 0 0 0.2 0.2 {}
|
|
T {2.5} 25 -1080 0 0 0.2 0.2 {}
|
|
T {2.0} 25 -1040 0 0 0.2 0.2 {}
|
|
T {1.5} 25 -995 0 0 0.2 0.2 {}
|
|
T {1.0} 25 -960 0 0 0.2 0.2 {}
|
|
T {0.5} 25 -920 0 0 0.2 0.2 {}
|
|
T {25C, 1000W/m2} 180 -1130 0 0 0.2 0.2 {}
|
|
T {V} 400 -865 0 0 0.4 0.4 {}
|
|
T {I} 30 -1120 0 0 0.4 0.4 {}
|
|
T {SOLAR PANEL} 135 -1155 0 0 0.4 0.4 {}
|
|
T {Maximum Power} 297.5 -1080 0 0 0.2 0.2 {layer=8}
|
|
T {set between 0 and 1
|
|
to simulate
|
|
sun radiation
|
|
level} 10 -440 0 0 0.2 0.2 {}
|
|
T {@name} 875 -698.75 0 0 0.3 0.3 {layer=7 name=L2}
|
|
T {@value} 875 -673.75 0 0 0.3 0.3 {layer=7 name=L2}
|
|
T {m=@m} 875 -648.75 0 0 0.3 0.3 {layer=7 name=L2}
|
|
T {Floater text
|
|
example} 850 -820 0 0 0.4 0.4 {}
|
|
T {@name} 985 -308.75 0 1 0.3 0.3 {layer=7 name=C1}
|
|
T {@value} 985 -286.25 0 1 0.3 0.3 {layer=7 name=C1}
|
|
T {m=@m} 985 -263.75 0 1 0.3 0.3 {layer=7 name=C1}
|
|
T {Floater text
|
|
example} 870 -440 0 0 0.4 0.4 {}
|
|
T {@spice_get_current} 875 -598.75 0 0 0.3 0.3 {layer=7 name=L2}
|
|
T {@spice_get_current} 1015 -268.75 0 0 0.3 0.3 {layer=7 name=C1}
|
|
N 1010 -180 1100 -180 {lab=0}
|
|
N 1100 -300 1100 -180 {lab=0}
|
|
N 640 -610 730 -610 {lab=#net1}
|
|
N 1010 -440 1040 -440 {lab=VO}
|
|
N 1010 -440 1010 -310 {lab=VO}
|
|
N 1010 -250 1010 -180 {lab=0}
|
|
N 360 -610 580 -610 {lab=PANEL}
|
|
N 1010 -610 1010 -440 {lab=VO}
|
|
N 820 -610 860 -610 {lab=SW}
|
|
N 820 -610 820 -490 {lab=SW}
|
|
N 790 -610 820 -610 {lab=SW}
|
|
N 820 -180 1010 -180 {lab=0}
|
|
N 800 -180 820 -180 {lab=0}
|
|
N 1000 -610 1010 -610 {lab=VO}
|
|
N 1100 -440 1280 -440 {lab=LED}
|
|
N 1100 -440 1100 -360 {lab=LED}
|
|
N 820 -430 820 -390 { lab=#net2}
|
|
N 920 -610 940 -610 { lab=#net3}
|
|
N 360 -530 360 -480 {
|
|
lab=#net4}
|
|
N 360 -420 360 -370 {lab=0}
|
|
N 360 -530 400 -530 {
|
|
lab=#net4}
|
|
N 760 -720 760 -650 {
|
|
lab=CTRL1}
|
|
N 460 -530 530 -530 {
|
|
lab=#net5}
|
|
N 590 -530 650 -530 {
|
|
lab=PANEL}
|
|
N 500 -390 500 -370 {
|
|
lab=0}
|
|
N 500 -470 500 -450 {
|
|
lab=#net6}
|
|
N 160 -450 320 -450 {
|
|
lab=SUN}
|
|
N 160 -360 160 -340 {
|
|
lab=0}
|
|
N 610 -1010 610 -990 {
|
|
lab=0}
|
|
N 610 -1080 610 -1070 {
|
|
lab=TRIANG}
|
|
N 610 -1080 770 -1080 {
|
|
lab=TRIANG}
|
|
N 720 -890 830 -890 {
|
|
lab=LEVEL}
|
|
N 550 -860 550 -820 {
|
|
lab=REF}
|
|
N 550 -860 600 -860 {
|
|
lab=REF}
|
|
N 550 -920 600 -920 {
|
|
lab=LED}
|
|
N 1010 -1000 1060 -1000 {
|
|
lab=CTRL1}
|
|
N 160 -450 160 -420 {
|
|
lab=SUN}
|
|
N 830 -970 830 -890 {
|
|
lab=LEVEL}
|
|
N 830 -970 890 -970 {
|
|
lab=LEVEL}
|
|
N 770 -1080 770 -1030 {
|
|
lab=TRIANG}
|
|
N 770 -1030 890 -1030 {
|
|
lab=TRIANG}
|
|
N 820 -330 820 -180 {
|
|
lab=0}
|
|
N 1190 -480 1190 -440 {lab=LED}
|
|
N 1190 -670 1190 -640 {lab=PANEL}
|
|
C {title.sym} 160 -40 0 0 {name=l1 author="Stefan Schippers"}
|
|
C {code_shown.sym} 180 -310 0 0 {name=CONTROL
|
|
value="tcleval(
|
|
.option savecurrents
|
|
.control
|
|
* example of tcl evaluation of code blocks:
|
|
* current path: $path
|
|
* schematic: [xschem get current_name]
|
|
save all
|
|
tran .05u 1m uic
|
|
write solar_panel.raw
|
|
quit 0
|
|
.endc
|
|
)
|
|
"
|
|
|
|
}
|
|
C {code.sym} 20 -240 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)
|
|
"}
|
|
C {lab_pin.sym} 650 -530 0 1 {name=l4 lab=PANEL }
|
|
C {lab_pin.sym} 800 -180 0 0 {name=l6 lab=0 }
|
|
C {ammeter.sym} 1070 -440 3 0 {name=Vled}
|
|
C {ind.sym} 890 -610 3 1 {name=L2
|
|
m=1
|
|
value=40u
|
|
footprint=1206
|
|
device=inductor
|
|
hide_texts=true
|
|
attach=L2}
|
|
C {lab_pin.sym} 1280 -440 0 1 {name=l7 lab=LED }
|
|
C {lab_pin.sym} 820 -550 0 1 {name=l9 lab=SW }
|
|
C {capa.sym} 1010 -280 0 0 {name=C1
|
|
m=1
|
|
value=500n
|
|
footprint=1206
|
|
device="ceramic capacitor"
|
|
hide_texts=true
|
|
attach=C1}
|
|
C {lab_pin.sym} 1010 -400 0 1 {name=l10 lab=VO }
|
|
C {lab_pin.sym} 360 -610 0 0 {name=l3 lab=PANEL }
|
|
C {ammeter.sym} 970 -610 3 0 {name=Vind}
|
|
C {isource_table.sym} 1100 -330 0 0 {name=G2[9..0] CTRL="V(LED)" TABLE="
|
|
+ (0, 0)
|
|
+ (4.8, 5m)
|
|
+ (5.2, 15m)
|
|
+ (5.6, 46m)
|
|
+ (5.8, 80m)
|
|
+ (6.0, 115m)
|
|
+ (6.2, 157m)
|
|
+ (6.4, 202m)
|
|
+ (6.6, 245m)
|
|
+ (6.8, 290m)
|
|
+ (7.0, 337m)
|
|
+ (7.2, 395m)
|
|
+ (7.4, 470m)
|
|
+ (8.0, 750m)"
|
|
}
|
|
C {ammeter.sym} 610 -610 3 0 {name=Vsw}
|
|
C {ammeter.sym} 820 -360 2 0 {name=Vdiode}
|
|
C {spice_probe.sym} 1120 -440 0 0 {name=p1 analysis=tran}
|
|
C {spice_probe.sym} 650 -530 0 0 {name=p2 analysis=tran}
|
|
C {spice_probe.sym} 820 -510 0 1 {name=p3 analysis=tran}
|
|
C {launcher.sym} 1080 -1140 0 0 {name=h3
|
|
descr="Reload Waves"
|
|
tclcommand="
|
|
xschem raw_read $netlist_dir/[file tail [file rootname [xschem get current_name]]].raw tran
|
|
"
|
|
}
|
|
C {pv_ngspice.sym} 360 -450 0 0 {name=X1 m=1 isc=6.8 n=36}
|
|
C {lab_pin.sym} 360 -370 0 0 {name=l12 lab=0 }
|
|
C {capa.sym} 500 -500 0 0 {name=C11
|
|
m=1
|
|
value=10u
|
|
footprint=1206
|
|
device="ceramic capacitor"}
|
|
C {lab_pin.sym} 500 -370 0 0 {name=l90 lab=0 }
|
|
C {ammeter.sym} 430 -530 3 1 {name=Vpanel}
|
|
C {diode_ngspice.sym} 820 -460 2 0 {name=X2 m=1 Roff=1e9 Ron=0.1}
|
|
C {switch_ngspice.sym} 760 -610 1 0 {name=S1 model=swmod}
|
|
C {lab_pin.sym} 740 -650 0 0 {name=l5 lab=0 }
|
|
C {ammeter.sym} 560 -530 3 1 {name=Vpanel1}
|
|
C {ammeter.sym} 500 -420 0 0 {name=Vcap}
|
|
C {vsource.sym} 160 -390 0 0 {name=Vfade value="pwl 0 1 1m 0"}
|
|
C {lab_pin.sym} 160 -340 0 0 {name=l8 lab=0 }
|
|
C {ngspice_get_expr.sym} 1120 -370 0 0 {name=r29
|
|
node="[format %.4g [expr \{[ngspice::get_voltage led] * [ngspice::get_current vled]\}]] W"
|
|
descr = power
|
|
}
|
|
C {vsource.sym} 610 -1040 0 0 {name=Vtriang value="pulse 0 1 0 2u 2u 1f 4u"}
|
|
C {lab_pin.sym} 610 -990 0 0 {name=l11 lab=0 }
|
|
C {lab_pin.sym} 770 -1080 0 1 {name=l14
|
|
lab=TRIANG }
|
|
C {vsource.sym} 550 -790 0 0 {name=Vref value=7}
|
|
C {lab_pin.sym} 550 -760 0 0 {name=l17 lab=0 }
|
|
C {lab_pin.sym} 760 -720 0 0 {name=l13 lab=CTRL1 }
|
|
C {comp_ngspice.sym} 660 -890 0 0 {name=x3 GAIN=100 OFFSET=0.5 AMPLITUDE=1 ROUT=7k COUT=1n
|
|
select=AMPLITUDE}
|
|
C {lab_pin.sym} 550 -860 0 0 {name=l16
|
|
lab=REF}
|
|
C {lab_pin.sym} 550 -920 0 0 {name=l15 lab=LED}
|
|
C {lab_pin.sym} 830 -890 0 1 {name=l18 lab=LEVEL}
|
|
C {comp_ngspice.sym} 950 -1000 0 0 {name=x4 GAIN=100 OFFSET=0.5 AMPLITUDE=1 ROUT=1 COUT=1p
|
|
select=OFFSET}
|
|
C {lab_pin.sym} 1060 -1000 0 1 {name=l19 lab=CTRL1 }
|
|
C {lab_pin.sym} 160 -450 0 0 {name=l20 lab=SUN }
|
|
C {spice_probe.sym} 850 -1030 0 1 {name=p4 analysis=tran}
|
|
C {spice_probe.sym} 810 -890 0 1 {name=p5 analysis=tran}
|
|
C {spice_probe.sym} 760 -670 0 0 {name=p6 analysis=tran}
|
|
C {spice_probe.sym} 160 -450 0 0 {name=p7 analysis=tran}
|
|
C {lab_show.sym} 440 -610 2 0 {name=l24}
|
|
C {lab_pin.sym} 1190 -670 0 0 {name=l25 lab=PANEL }
|
|
C {scope2.sym} 1190 -480 0 0 {name=l21
|
|
attach=l21}
|
|
C {scope.sym} 380 -610 0 0 {name=l22
|
|
attach=l22}
|
|
C {scope_ammeter.sym} 580 -360 0 0 {name=l23
|
|
attach=l23
|
|
device=Vcap}
|
|
C {scope_ammeter.sym} 620 -170 0 0 {name=l26
|
|
attach=l26
|
|
device=Vdiode}
|