PWM-Signal mit sauberen Flanken in LTspice

Gast #5184892
Lesenswert?

Hallo,

ich möchte ein PWM-Signal generieren, indem ich ein Sinussignal mit 
einem Dreiecksignal moduliere.

Betrachte ich die Flanken des PWM-Signals und des invertierten 
PWM-Signal in meiner Schaltung anbei, weisen diese einen Knick auf statt 
einen sauberen geradlinigen Verlauf darzustellen.

1) Kann man diese wegbekommen, oder ist dies ein allgemeines Problem von 
LTspice?
2) Kennt jemand eine Möglichkeit möglichst saubere Flanken zu bekommen?


Denn definiere ich mir hingegen ein Pulse:
Vinitial[V] -5
Von[V] 5
Trise[s] 10n
Tfall[s] 10n
Ton[s] 0.2u
Tperiod[s] 2.02u
habe ich saubere steigende und fallende Flanken, jedoch nur einen 
bestimmten Duty Cycle.
Angehängte Dateien:
Gast #5185103
Lesenswert?

Das Rechenverfahren auf "Gear" zu ändern hat funktioniert, vielen Dank!
Jetzt habe ich sauber steigende und fallende Flanken.

Was passiert da eigentlich?
Erhöht dies die Stabilität der Simulation oder so?

> schaut aus als ob das was mit der Step-Weite zu tun hat. Gibt doch mal
> eine Nanosekunde als Schrittweite an
Welche step-Weite meinen Sie? tripdv? tripdt?

Was mich desweiteren verwundert: ich dachte mit tripdt kann ich die 
trise/tfall-Time von 10 ns Sekunden einstellen.
Messe ich jedoch verschiedene Flanken, komme ich immer auf einen anderen 
Wert, wie im beigefügten Bild zu sehen zum Beispiel 6.96 ns!

Welche Bedeutung hat tripdv und tripdt und wie bekomme ich es hin an 
jeder Flanke einen trise/tfall-Time von 10 ns Sekunden zu bekommen?
Angehängte Dateien:
Persönliche Seite #5185155
Lesenswert?

Abdurrahman K. schrieb:

>Was passiert da eigentlich?
>Erhöht dies die Stabilität der Simulation oder so?
Die Genauigkeit! Es geht um die Optimierung der Simulationszeit, das 
Generalproblem bei Simulationen.

> Welche Bedeutung hat tripdv und tripdt und wie bekomme ich es hin an
> jeder Flanke einen trise/tfall-Time von 10 ns Sekunden zu bekommen?
Wahrscheinlich so richtig sicher nur, wenn die Simulationsabtastung 
deutlich unter den Flankenwechseln der Schaltung liegt, sonst gibt es 
Zwischenpunkte und Lösungen, die zwar für sich gesehen, richtig sind, 
aber grafisch interpoliert zu falschen Eindrücken führen.

Spice rechnet ja letztlich nur einzelne Punkte aus für die die gesamte 
Schaltung stimmt und eingeschwungen ist. Eingeschwungen heisst 
"Simulation hat per Iteration die Realität getroffen". Und noch genauer:

Das, was die ungenauen und vereinfachten Modelle hergeben, wurde im 
vorherigen Simulationsschritt mit der vorgegebenen Toleranz erreicht, 
also ab zum nächsten Punkt. Deshalb wird es ohne eine entsprechende 
Interpretation niemals gelingen, ein echtes Verhalten einer 
Kippschaltung nachzubilden, auch wenn die real eine endliche 
Anstiegszeit hat, die man theoretisch simulieren können müsste.
Gast #5185879
Lesenswert?

M. K. schrieb:
> Mit LTSpice kenn ich mich nicht aus aber ich meinte mal die Zeile .tran
> ändern,

Ja, aber die Syntax ist leicht anders:
Syntax: .TRAN <Tstep> <Tstop> [Tstart [dTmax]] [modifiers]
        .TRAN <Tstop> [modifiers]

In dem Fall müsste es dann heißen
.tran 0 5m 4.9m 1n
also
.tran Tstep Tstop Tstart dTmax

Die Steps werden feiner und die Simulationszeit länger. Aber die Kurven 
passen dann besser.
Gast #5185992
Lesenswert?

Nochmal die Frage:
Gibt es eine Möglichkeit in LTspice ein PWM-Signal mit unterschiedlichem 
Duty-Cycle (Tastverhältnis, Tastgrad) und mit festen Anstiegs- und 
Abfallzeiten generieren zu lassen?
Persönliche Seite #5186644
Lesenswert?

Ja, mit der "PULSE"-Definition. Die gibt es auch in LT-Spice, meine Ich. 
Damit ist ein endlicher periodischer Signalverlauf zu definieren.

Komplexere Sachen wie unendliche periodische Signale, die sich in der 
d.c. ändern, musst Du per Interferenz bauen, also mit einem Takt, der 
einen anderen steuert und maskiert.

Mit einer Taktfaltung kann man sich auch eine komplizierte PWM bauen:
Beitrag "Re: Zweiklang Ton erzeugen - direkte Ausgabe per PWM"
Gast #5186794
Lesenswert?

> Ja, mit der "PULSE"-Definition. Die gibt es auch in LT-Spice, meine Ich.

Mit PULSE kann ich ein PWM-Signal mit einem festen Tastverhältnis 
definieren.
Wie im Beispiel beigefügt habe ich eine PWM zwischen +5 V und -5 V,
mit einer Anstiegs- und Abfallzeit von 10 ns bei einer Periodendauer von 
2 us.
Hieraus resultieren bei einem Duty-Cycle von 0.5 ein
Ton = (2 us - 10 ns - 10 ns) * 0,5 = 990 ns.

Allerdings würde ich gerne meine PWM wie in der Schaltung vom 23.10.2017 
15:08 beigefügt variieren. Problem in dieser Schaltung jedoch, wie 
bereits erwähnt, die schwankenden Anstiegs- und Abfallzeiten!


>... musst Du per Interferenz bauen, also mit einem Takt, der
> einen anderen steuert und maskiert.

Wie schaut sowas aus?
Angehängte Dateien:
Gast #5186838
Lesenswert?

tripdt und tripdv heißt nur, dass LTSpice die Schrittweite zwischen zwei 
Simulationsschritten so lange reduziert, bis sich das Signal um weniger 
als "tripdv" ändert in "tripdt" Sekunden. Siehe auch 
http://ltwiki.org/index.php5?title=B_sources_(common_examples).

Für dich wäre evtl. der Diffschmtbuf interessant. Denn der nimmt Trise 
und Tfall an. Du kannst (und solltest) ihm auch ein tripdt geben das 
kleiner ist als Trise/Tfall. Tripdv brauchts keines, dafür kannst du die 
Ausgangspegel nicht mehr variieren (festgelegt mit Vhigh und Vlow). 
Siehe Bilder.
Angehängte Dateien:
Gast #5186916
Lesenswert?

Das hatte ich mir auch soeben überlegt.
Diffschmtbuf wäre eine Option, allerdings hat dieser nicht so schöne 
Flanken und weist ein Überschwingen auf.

Gibt es eine Möglichkeit  in LTspice ein PWM-Signal mit 
unterschiedlichem
Duty-Cycle (Tastverhältnis, Tastgrad) und mit festen und "sauberen" 
Anstiegs- und Abfallzeiten generieren zu lassen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren