--------------------------------------------------------------------------------
import DC
import Circuit
import Print
import Time
import CPUTime
import Array
circuit :: ESim -> [Device]
circuit z0 = (trf1 1 0 1 2 0 0.210 z0) ++
(vsrc6 2 1 0 pwl v0 z0) ++
(res1 3 1 0 1e15 z0) ++
(trf1 4 1 0 3 0 0.210 z0) ++
(dio1 5 6 3 z0) ++
(res1 6 6 4 1.0 z0) ++
(res1 7 6 3 1.0e7 z0) ++
(dio1 8 2 7 z0) ++
(res1 9 7 5 1.0 z0) ++
(res1 10 2 7 1.0e7 z0) ++
(dio1 11 3 8 z0) ++
(res1 12 5 8 1.0 z0) ++
(res1 13 3 8 1.0e7 z0) ++
(dio1 14 9 2 z0) ++
(res1 15 4 9 1.0 z0) ++
(res1 16 9 2 1.0e7 z0) ++
(res1 17 4 5 1.0e20 z0) ++
(ind1 18 4 10 1.0e-3 z0) ++
(cap1 19 10 5 1.0e-6 z0) ++
(res1 20 10 5 100.0 z0)
v0 = defaultVStep {vlim = 200, tlim = 50, steps = 10}
g0 = defaultGmin
f = 20000.0
per = 1 / f
vp = 400.0
pwl = [ (0.0, 0.0),
(vp, per*0.01),
(vp, per*0.39),
(0.0, per*0.40),
(0.0, per*0.50),
((-1 * vp), per * 0.51),
((-1 * vp), per * 0.89),
(0.0, per * 0.90),
(0.0, per)
]
m = dcOP1 [] [] circuit
i0 = opvalue m
z = dcTran1 (per / 16) (1 * per) i0 i0 circuit
tr_out = trPrint [0,1,2,3,4,5,6,7,9] z
op_out = opPrint m
main = do op_out
tr_out
|