File: loop-model.cir

package info (click to toggle)
ngspice 44.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 73,372 kB
  • sloc: ansic: 560,757; cpp: 17,623; xml: 9,372; makefile: 4,076; sh: 2,664; perl: 2,442; yacc: 1,549; tcl: 1,040; lex: 320; pascal: 241; python: 179
file content (53 lines) | stat: -rw-r--r-- 1,666 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
* dc loop with model parameter
* We alter resistor R2

* The circuit
R1 n1 0 1k
R2 n2 n1 rmod
.model rmod r (r=1k)

V1 n2 0 1


* start and end values for R2
.csparam start = 1k
.csparam end = 0.1k
.csparam delta = 0.05k

* control script
.control
* create a new plot for storing the measurements
  set curplot = new               ; create a new plot
  set curplottitle = "OutputData"
  set plot_out = $curplot         ; store its name to 'plot_out'
  if (end < start)                ; find appropriate sign for delta
    let delta = -abs(delta)
  else
    let delta = abs(delta)
  end
  let op_runs = floor((end - start)/delta) + 1  ; number of runs for simulation
  let run = 0                     ; number of actual run
  let vnode2 = unitvec(op_runs)   ; vector for all n1 voltages
  let r2val = unitvec(op_runs)    ; vector for all resistor values  
  let rcur = start                ; set the start value for R2
* the loop
  dowhile run < op_runs
    echo
    echo **** run no. $&run with R2 = $&rcur Ohms ****
    altermod R2 r = $&rcur        ; model parameter r of model rmod for R2 is changed to rcur
    op                            ; simulate operating point, plot op1 is created
    setplot $plot_out             ; go to the output plot
    let vn1 = op1.v(n1)
    echo voltage at node n1 is $&vn1
    let vnode2[run] = op1.v(n1)   ; store the current n1 voltage value
    let r2val[run] = rcur         ; store the current R2 resistance value
    destroy op1
    let rcur = rcur + delta
    let run = run + 1
  end
  settype impedance r2val
  settype voltage vnode2
  plot vnode2 vs r2val
.endc

.end