Reverse stepsize and finaltime in optran command,
stepsize first as in tran command.
This commit is contained in:
parent
bca099ca29
commit
3be5926f2c
|
|
@ -43,4 +43,9 @@ simulation when all nodes have become stable, might be desirable,
|
|||
but has not yet been implemented.
|
||||
One also may use the optran for a first transient simulation, maybe
|
||||
with different step sizes, before the next (tran, ac, pz, noise)
|
||||
simulation is commencing.
|
||||
simulation is commencing. So you may reach a certain bias point
|
||||
quickly and with coarse time steps, and then continue with fine
|
||||
steps to see details. For example a power amp in electro-thermal
|
||||
simulation may run for some seconds (minutes?) until the final
|
||||
temperature is reached, and then the detailed transient or
|
||||
an ac simulation starts.
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ version
|
|||
rusage
|
||||
else
|
||||
*** script for standard ngspice
|
||||
* Start optran without first iteration,
|
||||
* Start optran without first iteration,
|
||||
* without gmin stepping and without src stepping
|
||||
* optran duration 4s, step size 10 ms
|
||||
optran 1 0 0 4 1e-2 0
|
||||
* optran step size 10 ms, duration 40s,
|
||||
optran 1 0 0 1e-2 4 0
|
||||
tran 1u 10m
|
||||
echo
|
||||
* output power
|
||||
|
|
@ -31,8 +31,8 @@ plot in out
|
|||
*plot V1#branch V2#branch ylimit -50 50
|
||||
plot V1#branch V2#branch ylimit -15 15
|
||||
* output current
|
||||
plot @rl1[i]
|
||||
*plot @rl1[i] xlimit 0 5m ylimit -0.3 0.3
|
||||
plot @rl1[i]
|
||||
*plot @rl1[i] xlimit 0 5m ylimit -0.3 0.3
|
||||
* resistance of thermistor2 TH1, TH2
|
||||
let rth1 = (v("net-_d3a1-pad1_") - v("net-_r11-pad1_")) / (@b.xth1.brtherm[i] + 1n)
|
||||
let rth2 = (v("net-_d1a1-pad2_") - v("net-_r12-pad1_")) / (@b.xth2.brtherm[i] + 1n)
|
||||
|
|
@ -47,7 +47,8 @@ tran 1u 100m
|
|||
fft out
|
||||
set xbrushwidth=4
|
||||
set color0=white
|
||||
plot mag(out) xlimit 0 10k
|
||||
* to see the harmonics
|
||||
plot mag(out) xlimit 0 10k ylimit 0 30m
|
||||
|
||||
end
|
||||
.endc
|
||||
|
|
@ -50,11 +50,15 @@ static double opramptime = 0.;
|
|||
CKTnoOpIter (default 0, set by 'option noopiter')
|
||||
CKTnumGminSteps
|
||||
CKTnumSrcSteps
|
||||
opfinaltime
|
||||
opstepsize
|
||||
opfinaltime
|
||||
opramptime
|
||||
*/
|
||||
|
||||
A typical command may be
|
||||
optran 1 0 0 50u 10m 0
|
||||
(no initial iteration, no gmin stepping, no source stepping,
|
||||
stepsize for optran 50 us, optran run until 10 ms, no supply ramping
|
||||
*/
|
||||
void com_optran(wordlist* wl) {
|
||||
wordlist* wltmp = wl;
|
||||
char* stpstr;
|
||||
|
|
@ -76,11 +80,11 @@ void com_optran(wordlist* wl) {
|
|||
if ((errno == ERANGE) || (*stpstr != '\0'))
|
||||
goto bugquit;
|
||||
wltmp = wltmp->wl_next;
|
||||
opfinaltime = strtod(wltmp->wl_word, &stpstr);
|
||||
opstepsize = strtod(wltmp->wl_word, &stpstr);
|
||||
if ((errno == ERANGE) || (*stpstr != '\0'))
|
||||
goto bugquit;
|
||||
wltmp = wltmp->wl_next;
|
||||
opstepsize = strtod(wltmp->wl_word, &stpstr);
|
||||
opfinaltime = strtod(wltmp->wl_word, &stpstr);
|
||||
if ((errno == ERANGE) || (*stpstr != '\0'))
|
||||
goto bugquit;
|
||||
wltmp = wltmp->wl_next;
|
||||
|
|
|
|||
Loading…
Reference in New Issue