mikrocontroller.net

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


Autor: Beeblebrox (Gast)
Datum:

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

Autor: Andi R (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest eine Dreieckspannung mit einer Variablen Gleichspannung 
Vergleichen

dreieck bekommst du mit einer PULSE quelle

Autor: Beeblebrox (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, das habe ich jetzt nicht wirklich verstanden..

Autor: eProfi (Gast)
Datum:

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

Autor: Hannes Jaeger (pnuebergang)
Datum:

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

Autor: HildeK (Gast)
Datum:

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

Autor: Fralla (Gast)
Datum:

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

Autor: Fralla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versteht die Frage niemand?

Autor: Fritz (Gast)
Datum:

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

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

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

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

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

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
in diesem Bild sieht man die Dreiecksspannung, rot, die V1 erzeugt.

Ist also eine Frequenz und Phasen korrekte PWM.

Gruß Hagen

Autor: eProfi (Gast)
Datum:

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

Autor: eProfi (Gast)
Datum:

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

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:
  • PWM.asc (783 Bytes, 1283 Downloads)

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

Autor: kommutator (Gast)
Datum:

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

Autor: olaf (Gast)
Datum:

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

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.