Modulierte PWM mit LTSpice darstellen

LTSpice kennt verschiedene Signalquellen. Eine modulierbare PWM ist leider nicht dabei. Dieser Beitrag zeigt, wie man ganz schnell selbst eine spannungsabhängige PWM erzeugt.

zwei-spannungsquellen
Zuerst brauchen wir zwei normale Spannungsquellen “voltage”. Eine Spannungsquelle gibt die Modulationsspannung aus, die andere Spannungsquelle erzeugt den Takt für die PWM.

Für dieses Beispiel wollen wir eine PWM mit 20 kHz Grundtakt mit einer Sinusschwingung von 2000 Hz modulieren.
Als Modulation ist natürlich jeder andere Spannungsverlauf ebenso verwendbar.

sinus-spannungsquelle-2kHz
Dazu wird die Spannungsquelle, die die Sinusschwingung erzeugen soll, entsprechend eingestellt.
Die PWM soll eine Spitzenspannung von 5 Volt haben und “single-ended”, also auf Masse bezogen sein. Deshalb stellen wir für den Sinus einen Offset und eine Amplitude von 2,5 Volt ein. Damit hat die PWM einen Mittelwert von 50%. Die maximale Modulation der PWM hängt dann nur von der Amplitude der Sinusspannung ab. Bei 2,5 Volt Amplitude ist die Modulation dann 100%.

dreieck-spannungsquelle-20kHz
Die zweite Spannungsquelle erzeugt die PWM-Grundfrequenz. Damit es auch wirklich eine PWM wird, muss diese Spannungsquelle eine Dreieckspannung erzeugen. Für 20 kHz ist die Periodendauer 50µs, eine Flanke dauert damit 25µs. Als Amplitude wird ebenfalls 5V eingestellt.

Bisher ergibt das noch keine PWM. Jetzt müssen die beiden Spannungen mit einander verknüpft werden.

zwei-spannungsquellen-mit-werten
Dazu muss ein einheitlicher Massebezug hergestellt werden und den Spannungen jeweils ein eindeutiger Name gegeben werden.
Die Spannungsquellen werden mit ihrem “−” Anschluss mit einem Masse-Symbol verbunden.
Der “+” Anschluss wird jeweils mit einem kurzen Stück Leitung verbunden. Die Leitungen bleiben an ihrem anderen Ende offen.
Jeder Leitung wird dann ein eigener Name gegeben. In unserem Beispiel heißen die beiden Spannungen “sine” und “ramp”.

Jetzt fehlt nur noch die Verknüpfung der beiden Spannungen zu einer PWM.
Dazu verwenden wir eine so genannte “arbitrary behavioural voltage source”, grob übersetzt “eine Spannungsquelle mit programmierbarem Verhalten”. Diese Spannungsquellen geben eine Spannung aus, die über Formeln und Funktionen beschreibbar ist.
Für unseren Zweck reicht eine einfache IF-Funktion: Wenn der Wert der Sinusspannung höher als der Wert der Dreieck-Spannung ist, soll eine Spannung ausgegeben werden. Wenn der Wert kleiner ist, soll 0 ausgegeben werden.
In unserem Beispiel wählen wir 5 Volt als den Spitzenwert der PWM.

Damit das Ganze funktioniert muss auch diese Spannungsquelle mit Masse und einer Signalleitung verbunden werden.
Damit die PWM nicht so ganz allein für sich steht, ist am Ausgang der Spannungsquelle noch ein einfaches RC-Tiefpassfilter angeschlossen.

Im letzten Bild sind als Ergebnis die unterschiedlichen Spannungen zu sehen.

  • Rot: die Sinus-Spannung,
  • Blau: die Dreieck-Spannung,
  • Grün: die PWM und
  • Gelb: die Spannung aus der PWM nach dem RC-Tiefpass

komplette-simulation

simulationskurven

《Modulierte PWM mit LTSpice darstellen》上的35个想法

  1. Hy,

    thanks for this small tutorial
    very usefull for me to simulate an DC/AC converter with a MOSFETs bridge

    Sincerely
    Thomas

  2. @lacen no, this is only a simple tutorial. the simulation of complete pwm inverters is for more complex than the focus of this little tutorial.

  3. Unusual this post is totaly unrelated to what I was searching google for, but it was listed on the 1st web page. I guess your doing something proper if Google likes you sufficient to put you on the 1st page of a non related search.

  4. Perfect for what I needed. Thanks! And it worked the first time! I’m passing a very small slow analog voltage through a very noisy environment so I will pass the very small voltage over a BIG PWM signal. This generator will allow me to simulate the receiving end. Perfect for what I needed. Thanks! Good tutorial too, loved it! – Mike Colley

  5. Hi Guys,

    I am novice in this field. I tired to do as it is given here but its not working. Please help me out with the complete solution.

    Thanks in advance.

  6. This is just too awesome to create a PWM pulses, particularly thanks for introducing “arbitarary voltage”. I was able to get different waveforms combine with this.

  7. This was an excellent tutorial.
    I see you have not updated your site for a while which is a shame. I hope you find some time to share more knowledge. There are many like me who could use some basic lessons in LTSpice like this.

  8. Hallo! Ich möchte diese Sache machen, aber bekomme ich dieses Fehler:

    Circuit: * C:\Program Files (x86)\LTC\LTspiceIV\Draft1.asc

    Error on line 4 : v§b1 pwm 0 v=(v2(sine)>v1(ramp),5,0)
    Unknown parameter “v”
    WARNING: Less than two connections to node RAMP. This node is used by V1.
    WARNING: Less than two connections to node SINE. This node is used by V2.
    WARNING: Less than two connections to node PWM. This node is used by V§B1.
    B1: Missing value, assumed 0V @ DC
    Direct Newton iteration for .op point succeeded

    Was ist los?

  9. How to put that IF function.
    The one in the last circuit diagram ?

  10. @Mike Barrow
    I really would like to post here more often, but this is only a “side-Blog” for me…
    Life has its own plans. 😉

  11. @akshay:
    You just right-click on the “Arbitrary behavioral voltage source”(BV) and enter the formula into the field “Value” of the attribute “Value”… sounds confusing, but they are named that way. 😉
    Or you right-click on the “V=F(…)” at the BV and enter there the formula.

    I hope this helps.

  12. Thank you for sharing this. As a newcomer to SPICE, it is exactly what I needed to start working on a PWM-to-analog circuit project.

Leave a Reply

Your email address will not be published. Required fields are marked *

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理