Hallo, ich bin schon etwas am herumprobieren aber ich kann das problem einfach nicht lösen. Tastverhätlnis ist ton zu T Also messe ich die Periodendauer T mit .meas T trig V(gp) + val=2.5 td=100u rise=1 + targ V(gp) val=2.5 td=100u rise=2 also an stelle 100u messe ich die Zeit zwischen zwei steigenden flanken nun zu ton .meas ton1 + trig V(gp) val=2.5 td=100u rise=1 + targ V(gp) val=2.5 td=100u fall=1 ich messe bei 100u zwischen einer steigenden und fallenden flanke. das probier hierbei ist nur, dass es sein kann, das als nächsten eben keine stiegende flanke sondern eine fallende kommt. somit messe ich toff (auserdem ist dann das ergebnis noch negativ, weil anscheinend targ zuerst ausgelöst hat befor trig auslöst) wie kann ich verhindern, das immer targ nach trig gemessen wird?
Vielelicht zuerst rise1, rise, fall1 und fall2 messen. Dann entscheiden welche zwei Werte die richtigen sind um ton zu berechnen. Das Ganze könnte mit if() gehen.
:
Bearbeitet durch User
Hallo Helmut, Ich probiere es nun so:
1 | .meas pg trig v(p) val=2.5 td=5u rise=1 targ v(p) val=2.5 td=5u rise=2 |
2 | |
3 | .measure tran vol1 find v(outp) at=u |
4 | .if (vol1>2) |
5 | .meas ton trig v(p) val=2.5 td=5u rise=1 targ v(p) val=2.5 td=5u fall=1 |
6 | .else |
7 | .meas ton trig v(p) val=2.5 td=5u rise=1 targ v(p) val=2.5 td=5u+pg/2 fall=1 |
8 | .endif |
1 | Error on line 17 : .if (vol1>2) |
2 | Unknown control card |
3 | Error on line 19 : .else |
4 | Unknown control card |
5 | Error on line 21 : .endif |
6 | Unknown control card |
Es mag mich einfach nicht :)
Alle MEASURE Befehle beginnen mit .meas . Groß- und Kleinschreibung, auch gemaischt, ist erlaubt. So geht es: .meas tr1 find time when V(out)=1 td=40u rise=1 .meas tf1 find time when V(out)=1 td=40u fall=1 .meas tf2 find time when V(out)=1 td=40u fall=2 .meas Ton param if(tf1-tr1>=0, tf1-tr1, tf2-tr1)
:
Bearbeitet durch User
Danke sehr Helmut. Manchmal da sucht man an der falschen Stelle :)
So jetzt habe ich es :) .meas pg trig v(out) val=2.5 td=40u rise=1 targ v(out) val=2.5 td=40u rise=2 .meas tr1 find time when V(out)=1 td=40u .meas tf1 trig v(out) val=2.5 td=40u rise=1 targ V(out)=2.5 td=40u fall=1 .meas tf2 trig v(out) val=2.5 td=40u rise=1 targ V(out)=2.5 td=40u fall=2 .meas Ton param if(tf1>=0, tf1, tf2) .meas duty param Ton/pg
Danke für die Rückmeldung. Ich bin überrascht, dass VAL= auch bei FIND geht obwohl es in der Help da nicht erwähnt wird. Aus der HELP: The first version, those that point to one point on the abscissa, are used to print a data value or expression thereof at a specific point or when a condition is met. The following syntax is used: Syntax: .MEAS[SURE] [AC|DC|OP|TRAN|TF|NOISE] <name> + [<FIND|DERIV|PARAM> <expr>] + [WHEN <expr> | AT=<expr>]] + [TD=<val1>] [<RISE|FALL|CROSS>=[<count1>|LAST]] The other type of .MEAS statement refers to a range over the abscissa. The following syntax is used: Syntax: .MEAS [AC|DC|OP|TRAN|TF|NOISE] <name> + [<AVG|MAX|MIN|PP|RMS|INTEG> <expr>] + [TRIG <lhs1> [[VAL]=]<rhs1>] [TD=<val1>] + [<RISE|FALL|CROSS>=<count1>] + [TARG <lhs2> [[VAL]=]<rhs2>] [TD=<val2>] + [<RISE|FALL|CROSS>=<count2>]
:
Bearbeitet durch User
Ja ich muss gestehen, das ich zwar am Anfang versucht habe nach spice referenz zu entwickeln aber nach fehlschlägen und dem dürftigen fehlerausgaben habe ich angefangen nur noch zu probieren bzw von beispielen anderer zu leben. Mal ne andere Frage :) Mal angenommen ich verändere durch .step param irgendwelche Bauteiler derschaltung, was dazu führt das sich das tastverhältnis ändert. In meiner log erhalte ich nun mehrere tabellen: eine tabelle für die Steps z.b.
1 | .step deltac=-1e-012 v1=-5 v2=-5 |
2 | .step deltac=0 v1=-5 v2=-5 |
3 | .step deltac=1e-012 v1=-5 v2=-5 |
4 | .step deltac=-1e-012 v1=-2.5 v2=-5 |
5 | .step deltac=0 v1=-2.5 v2=-5 |
6 | .step deltac=1e-012 v1=-2.5 v2=-5 |
7 | .step deltac=-1e-012 v1=0 v2=-5 |
8 | .step deltac=0 v1=0 v2=-5 |
9 | .step deltac=1e-012 v1=0 v2=-5 |
10 | .step deltac=-1e-012 v1=2.5 v2=-5 |
11 | .step deltac=0 v1=2.5 v2=-5 |
12 | .step deltac=1e-012 v1=2.5 v2=-5 |
13 | .step deltac=-1e-012 v1=5 v2=-5 |
dann gibt es noch eine jeweils andere für pg, tr,tf1,tf2, ton und duty Kann man auch die ausgaben der step varianten mit dem endergebnis von duty in eine tabelle zusammenführen?
Zumindest für einen Parameter auf der x-Achse kannst du einen Plot bekommen. Dazu im SPICE-Error-Log File mit der rechten Maustaste klicken und dann Plot wählen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.