ltspice .meas trig und targ / messung Tastverhältnis

Gast #3572591
Lesenswert?
• ▲
▼
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?
Gast #3573411
Lesenswert?
• ▲
▼
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 :)
#3573538
Lesenswert?
• ▲
▼
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)
Gast #3573845
Lesenswert?
• ▲
▼
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
#3573892
Lesenswert?
• ▲
▼
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>]
Gast #3574285
Lesenswert?
• ▲
▼
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?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.