Wie Dutycycle-Sweep in LtSpice

Gast #873450
Lesenswert?

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.
#874131
Lesenswert?

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.
Gast #874269
Lesenswert?

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.
#998376
Lesenswert?

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
Angehängte Dateien:
Gast #998576
Lesenswert?

"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?).
#998951
Lesenswert?

>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
Angehängte Dateien:
Gast #999110
Lesenswert?

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?  :-)
Gast #1230497
Lesenswert?

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.
#6321410
Lesenswert?

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
einbauen könnte?
Gast #6321580
Lesenswert?

Carlo schrieb:
> so etwas ?!
> 
https://antwortenhier.me/q/so-erstellen-sie-spice-ltspice-wiederholbare-geda-mpfte-sinuskurven-61939768388

Das 1. Signal ist bekannt und läuf permanenet.
z.B. gedämpfter Sin

Mit einem 2. Signal Rechteck,
kann über der Zeitachse mit des selbst def Parameter {t} und mit der 
Pulsdauer {tau} die gewünschte Peride ausgeschnitten werden.

Anzahl kann über das 2.Rechtecksignal Ncycles oder  parameter {Ncyl} 
gesteuert werden.

ebenso wäre mit if zu steuern ..
Beitrag "LTspice - if else Anweisung"
#6326160
Lesenswert?

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