Forum: Analoge Elektronik und Schaltungstechnik Wie Dutycycle-Sweep in LtSpice


von Beeblebrox (Gast)


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.

von Andi R (Gast)


Lesenswert?

Du könntest eine Dreieckspannung mit einer Variablen Gleichspannung 
Vergleichen

dreieck bekommst du mit einer PULSE quelle

von Beeblebrox (Gast)


Lesenswert?

Sorry, das habe ich jetzt nicht wirklich verstanden..

von eProfi (Gast)


Lesenswert?

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.

von Hannes J. (Firma: _⌨_) (pnuebergang)


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.

von HildeK (Gast)


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.

von Fralla (Gast)


Lesenswert?

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

von Fralla (Gast)


Lesenswert?

Versteht die Frage niemand?

von Fritz (Gast)


Lesenswert?

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.

von Hagen R. (hagen)


Angehängte Dateien:

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

von Hagen R. (hagen)


Angehängte Dateien:

Lesenswert?

und hier der erzeugte Output. Grün die PWM-Dutycycle-Steuer-Spannung V2, 
und Blau das was an Out als PWM rauskommt.

Gruß Hagen

von Hagen R. (hagen)


Angehängte Dateien:

Lesenswert?

in diesem Bild sieht man die Dreiecksspannung, rot, die V1 erzeugt.

Ist also eine Frequenz und Phasen korrekte PWM.

Gruß Hagen

von eProfi (Gast)


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?).

von eProfi (Gast)


Lesenswert?

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. ;-)

von Hagen R. (hagen)


Angehängte Dateien:

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

von kommutator (Gast)


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?  :-)

von olaf (Gast)


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.

von Tob Y. (freewilli)


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?

: Bearbeitet durch User
von Carlo (Gast)


Lesenswert?


von Tob Y. (freewilli)


Lesenswert?

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.

von Carlo (Gast)


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"

von Michel M. (elec-deniel)



Lesenswert?


: Bearbeitet durch User
von Bernhard (Gast)


Angehängte Dateien:

Lesenswert?

oder ganz einfach mit LTC6992-1

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.