Hallo,
kann mir jemand verraten wie ich in LTSpice einen variablen DutyCyle
simulieren kann ? Ich habe mir ne kleine Schaltung gebastelt die aus
einem PWM-Signal ein analoges Signal erzeugt. Ich hätte gerne ein
schönes Bild das von 0% bis 100% Dutycycle den Verlauf von Spannung A zu
Spannung B zeigt.
Genauso hätte ich es auch gemacht:
Zwei Spannungsquellen
1. eine Dreieck- oder Sägezahnspannung
2. die Sweepspannung, im Prinzip ein langsamer Sägezahn.
diese beiden Spannungen schickst Du in einen Komparator und da kommt das
gewünschte Signal heraus.
Wenn ich mich recht erinnere (ich habe gerade keinen Zugriff auf ein
SPICeE oder LTSpice), dann geht das in etwa wie folgt:
Eine Spannungsquelle definieren. Im Dialog für die Spannungsquelle ein
Rechteck einstellen (PULSE), dabei die Puls-Zeit als Parameter
(Parametername in {}-Klammern) angeben.
Im Dialog zum Start der Simulation (oder war das separat? Musst du
ausprobieren), ein .STEP-Kommand für den Wert definieren.
Alles ohne Garantie. Details: Siehe Handbuch.
Bei LTSpice:
PULSE(0 5 0 1n 1n {pulse} 101u 0)
.step param pulse 1u 100u 10u
gibt aber n Simulationen mit n Pulslängen, also keine fortlaufenden
Pulse mit wechselnder Dauer.
Oder alternativ mit PWL eine vorher berechnete Liste in einem File
erstellen, der als Quelle für die Pulse dient. Aufwendig, weil die Rise-
und Falltimes jedesmal mit angegeben werden müssen - sonst gibt's
Dreiecke.
Beispiel: PWL(0 0 1n 5 1u 5 1.001u 0 6u 0 6.001u 5 15u 5 15.001u 0) für
5V-Pulse mit 1µs ein, 5µs aus, 9µs ein.
Hab gerade ein ähnliches Problem.
Die Pulsdauer wie hier beschrieben gelingt mir.
Jedoch würde ich gerne einen richtigen dutycycle sweep machen. Dh, das
duty-cycle auf der x-Achse auftragen (Wie bei AC oder DC sweep).
Ist das möglich, wenn ja wie?
MFG
Wie erzeugst du dir denn das PWM Signal?
Wenn du es so machst wie von eProfi beschrieben kannst du die Sweep
Spannnug als x-Achse nutzten. Diese ist direkt proportional zum Duty
Cycle.
Ist sehr einfach wenn man weiß wie ;)
Im Attachment mal der LTSpice Schaltplan.
V1 erzeugt eine Dreieckspannung mit 1Vpp. Der Trick dabei ist es di
TRise/TFall Zeiten so zuwählen das die exakt 0.5*Frequenz der PULSE
Spannung darstellt. Über den Parameter .param freq=100k stellen wir also
die PWM Frequenz auf 100Khz ein.
V2 ist nun die Steuerspannung von 0V bis 1V die den Dutycycle bestimmt.
Mit den Schmitttrigger der als Komparator arbeitet erzeugen wir aus
beiden Spannungen dann die digitale PWM. Deren Frequenz wird mit .param
Freg=100k eingestellt und deren Ausgangsspannung mit .param VOut=1V auf
1V eingestellt.
Gruß Hagen
"Versteht die Frage niemand?"
Verstehst Du meine Antwort vom 21.05.2008 20:55 nicht?
Du brauchst zwei Spannungsquellen:
einen Sägezahn mit der PWM-Frequenz und
einen Sägezahn mit der Sweep-Frequenz.
Diese beiden schickst Du in einen Komparator.
An dessen Ausgang erhältst Du ein Signal, von dem ich vermute, dass es
das gesuchte ist.
Ansonsten musst Du nochmal genauer erläutern, was Du meinst (x-Achse?).
Oh, Entschuldigung, hatte nicht gesehen, dass inzwischen weitere
Beiträge eintrudelten.
Ich würde V2 nicht als Sinus, sondern als Dreieck oder Sägezahn wählen.
Hagen Re, wenn Du noch die SwitcherCad-Datei postest, hat unser
"Patient" keine Mühe/Arbeit mehr. ;-)
>Ich würde V2 nicht als Sinus, sondern als Dreieck oder Sägezahn wählen
V2, als Steuerspannung, kann man wählen wie man möchte. Für einen Sweep
ist natürlich eine lineare Rampe/Sägezahn besser. Kann man dann genauso
wie V1 erzeugen. Wichtig ist dabei nur das V1 und V2 die gleichen
Spannungsbereiche abfahren, in Attachment wird 1Vpp dafür benutzt.
Gruß Hagen
Der einfachste Weg:
DC-Spannungsquelle einfügen.
Value:
V=((time/{period})-(int(time/{period}))<(time/{sweep})-(int(time/{sweep}
)))*5
dann noch folgende Spice-Direktiven direkt angeben:
.param period=0.001
.param sweep=0.1
Das Sweept Dir in 0,1s ein Signal mit 1khz von 0-100% Tastgrad einmal
durch. Die "5" ganz hinten ist die Spannung der Quelle.
Gut, ne? :-)
Danke kommutator, genau so eine Möglichkeit habe ich gesucht.
Einen kleinen Fehler hat deine Anleitung jedoch, man muss statt der
Gleichspannungsquelle die "Arbitrary behavioral voltage or current
source" benutzen. Dafür öffnet man die Eigenschaften der Spannungsquelle
mit Strg+Rechtsklick und ändert das Prefix von V auf B.
Außerdem sollte man die maximale Zeitschrittgröße reduzieren, damit man
eine ordentliche Simulation bekommt.
Das schöne ist, dass sich mit dieser Quelle beliebige Funktionen
realisieren lassen, die Hilfeseite ist sehr zu empfehlen.
Hallo,
elegante Art von kommutator den Sweep zu produzieren!
Ich möchte noch zusätzlich eine Erweiterung einbauen:
Jeder step des sweeps soll n mal ausgeführt werden. Also z.B. n=10 -> 10
mal 1% duty cycle, 10 mal 2% duty cycle, ...
Weiss jemand wie mal solch eine Art Schleife mit in die Formel
Ich dachte nicht den ganzen sweep zu wiederholen sondern einzelne
Perioden. Ich habe mir den link angesehen... ich sehe dort nirgends eine
quasi "loop" welchen ich in meine Spannungsformel V=... einbauen könnte.