mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik PWM-Signal mit sauberen Flanken in LTspice


Autor: Abdurrahman K. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Probier mal ein anders Rechenverfahren...

Autor: M. K. (sylaina)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
schaut aus als ob das was mit der Step-Weite zu tun hat. Gibt doch mal 
eine Nanosekunde als Schrittweite an ;)

Autor: Abdurrahman K. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M. K. (sylaina)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abdurrahman K. schrieb:
> Welche step-Weite meinen Sie? tripdv? tripdt?

Mit LTSpice kenn ich mich nicht aus aber ich meinte mal die Zeile .tran 
ändern, also statt
.tran 0 5m 4.9m
mal schreiben
.tran 1n 5m 4.9m

: Bearbeitet durch User
Autor: HildeK (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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.

Autor: Abdurrahman K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Abdurrahman K. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: bla (Gast)
Datum:
Angehängte Dateien:
  • preview image for b1.PNG
    b1.PNG
    11,4 KB, 200 Downloads
  • preview image for b2.PNG
    b2.PNG
    48,6 KB, 178 Downloads

Bewertung
0 lesenswert
nicht 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.

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: falls der Ausgang eine Last treiben soll, kann ein 
"Rout"-Statemeint im diffschmtbuf hilfreich sein.

Autor: Abdurrahman K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Abdurrahman K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, anscheinend ist Diffschmtbuf die beste Option, aber die Anstiegs- 
und Abfallzeiten sind sowieso vernachlässigbar gering.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.