Software: SimX - Einfuehrung - Elektro-Chaos - Oszillator: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
Zeile 72: Zeile 72:
* Eine Spule besitzt immer einen ohmschen Widerstand infolge des Spulendrahtes, wenn man nicht den Spezialfall der Supraleitung betrachtet. Das führt zu den bereits untersuchten gedämpften Schwingungen des passiven LC-Schwingkreises.
* Eine Spule besitzt immer einen ohmschen Widerstand infolge des Spulendrahtes, wenn man nicht den Spezialfall der Supraleitung betrachtet. Das führt zu den bereits untersuchten gedämpften Schwingungen des passiven LC-Schwingkreises.
* Auch der Kondensator arbeitet nicht verlustfrei. In unserem Beispiel können wir aber seine Verlust im Vergleich zu den Spulenverlusten vernachlässigen.
* Auch der Kondensator arbeitet nicht verlustfrei. In unserem Beispiel können wir aber seine Verlust im Vergleich zu den Spulenverlusten vernachlässigen.
* Wir ergänzen in unserem Modell in Reihe zur Induktivät um einen Widerstand '''R<sub>Spule</sub>'''.
* Wir ergänzen in unserem Modell in Reihe zur Induktivät einen Widerstand '''R<sub>Spule</sub>'''.
 
'''''Hinweis:''''' Leider kann man in der Student Edition von SimulationX nur 5 Widerstandselemente verwenden. Deshalb müssen wir auf ein Leitwert-Element ausweichen mit '''G=1/R''' ausweichen.


    
    

Version vom 25. August 2011, 13:59 Uhr

Sinus-Oszillator (Schaltungssimulation)

Um einem LC-Schwingkreis eine dauerhafte Sinusschwingung zu entlocken, muss man ihm mittels einer elektronischen Schaltung zu jedem Zeitpunkt exakt die Energie zuführen, welche durch die Verluste im Schwingkreis in Wärme umgewandelt wird (Siehe: Oszillator).

Eine mögliche Schaltung verwendet einen Differenzverstärker mit zwei Transistoren und zeichnet sich durch sehr gutmütiges Verhalten aus. Für die Schaltungssimulation benutzt man Spezialprogramme, z.B. die weit verbreitete SPICE-Software.

In Simulatoren zur System-Simulation, zu denen SimulationX gehört, kann man einfache elektronische Schaltungen ebenfalls problemlos simulieren. Man hat dann zwar den Nachteil fehlender Bauelement-Datenbanken. Jedoch kann man die Schaltungsmodelle direkt mit anderen physikalischen Domänen koppeln (z.B. mit elektro-mechanischen Aktuatoren).

Wir bauen die Schaltung eines Sinus-Oszillators als SimulationX-Modell auf:

Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-Schaltung.gif

Die Frequenz wird durch den Parallel-Schwingkreis aus L1 und C3 bestimmt:

  • Wir verwenden eine Luftspule mit einer Induktivität L1=0.01 H.
  • Es soll eine Frequenz von f0=1 kHz erzeugt werden. Dafür ist die Kapaziät C3=? F zu ermitteln (verlustarmer Klasse-1-Keramik-Kondensator):
[math]\displaystyle{ f_0 = \frac{1}{2 \pi \sqrt{L C}} }[/math]

Für die restlichen Bauelemente verwenden wir folgende Parameter:

  • Die Kapazitätswerte der anderen Kondensatoren sollen den gleichen Wert erhalten:
    C1=C2=C3.
  • Die Widerstände besitzen folgende Werte:
    R1=R2=330 kΩ
    R4=R5=100 kΩ
    R2=4.7 kΩ
  • Die Transistoren behalten ihre Vorgabewerte.

Die generierte Sinus-Spannung greifen wir am Kollektor von T2 z.B. mittels eines zusätzlichen Spannungssensors ab (Potentialpunkt in obiger Schaltung markiert). Diese Ausgangsspannung kann im Bereich von 0..24 V schwingen und soll in einem Signalfenster dargestellt werden..

Wir konfigurieren die Simulation für einen Zeitbereich von tStop=1 s und mit einer hinreichend kleinen Protokollschrittweite dtProtMin:

  • Nach dem Start der Simulation werden wir mit großer Wahrscheinlichkeit sofort mit einer Fehlermeldung überrascht:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-konvergiert nicht.gif
  • Solche Probleme haben wir für eine "harmlose" Sinusschwingung nicht erwartet!
  • Die Sinusschwingung ergibt sich jedoch erst aus der Wechselwirkung insbesondere der beiden Transistoren, welche sehr kleine Zeitkonstanten besitzen. Damit wird insbesondere der Einschwingvorgang unmittelbar nach dem Einschalten sehr kritisch.
  • Dieses Problem kann man mit Erfahrungswissen durch Verringern der minimalen Zeitschrittweite lösen, z.B. dtMin=1E-12 s:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-dtMin-Reduktion.gif

Danach sollte die Simulation ordentlich starten. Unter Umständen erscheint aber bald erneut ein seltsamer Effekt:

  • Da extrem viele Sinus-Perioden sehr dicht gepackt im Signalfenster abgebildet werden, könnte es sich um ein Darstellproblem handeln.
  • Zufällig ergibt sich durch Überlagerung der minimalen Protokoll-Schrittweite mit der Periodendauer der Schwingung abschnittsweise ein Kappen von Halbwellen.
  • Verringert man die Protokoll-Schrittweite auf z.B. 1/10 durch dtProtMin=(tStop-tStart)/10000, so erfolgt eine glaubwürdigere Simulation:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator dtProtMin verringert.gif

Merke: Unerwartete Einbrüche oder Schwebungen in der Hüllkurve von Signalverläufen deutet meist auf eine zu große Protokoll-Schrittweite hin!

Betrachtet man die aktuelle Hüllkurve, so verwundert, dass die konstante Schwingungsamplitude erst nach einem leichten Überschwingen erreicht wird. Dieser "Einbruch" in der Hüllkurve verschwindet nicht durch eine weitere Verringerung von dtProtMin:

  • Die konstante Schwingungsamplitude wird erst durch einen Regelvorgang über die Differenzverstärker-Stufe erreicht. Hier kommt es bei der Simulation auf eine möglichst geringe Berechnungsfehler an.
  • Die unterschiedlichen Solver besitzen in Hinblick auf die Rechengenauigkeit unterschiedliche Eigenschaften. Hier hilft häufig das Ausprobieren eines anderen Solvers.
  • Wie die unterschiedlichen Verfahren zur numerischen Intergration qualitativ funktionieren, kann man im folgenden PDF-Script lesen.
  • Im SimulationX kann man z.B. den standardmäßigen BDF-Solver durch den MEBDF-Solver ersetzen. Dabei handelt es sich um einen "modifizierten und erweiterten" BDF-Solver, welcher einige Spezialfälle besser behandelt:
  • Für den Experten besteht die Möglichkeit, über sehr viele Parameter ein Feintuning des gewählten Solvers vorzunehmen. Das ist in unserem Beispiel nicht erforderlich, sondern aufgrund unseres Laienstatus eher schädlich.
  • An den Simulationsergebnissen des MEBDF-Verfahrens gibt es (vorläufig) nichts zu bemängeln:


Signalverarbeitung

Spätestens jetzt sollte man überprüfen, ob die mit dem analytisch dimensionierten Schwingkreis erzeugte Frequenz den richtigen Wert besitzt:

  • Hier könnte man im Signalfenster die Dauer einer Schwingungsperiode ausmessen. Das ist etwas umständlich und fehleranfällig.
  • Mit unseren Erfahrungen zur Signalverarbeitung werden wir uns eine Auswerte-Elektronik modellieren, welche die aktuelle Frequenz automatisch ermittelt:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-Auswerteschaltung.gif
  • Die Uhr zum Messen der aktuellen Simulationszeit t wird durch ein Signalglied Function nachgebildet. Als Parameter F des Function-Blockes verwenden wir die globale Variable t, welche den aktuellen Wert der Simulationszeit enthält.
  • Das Ausgangssignal der Uhr speisen wir in 2 ereignisgesteuerte Abtastglieder. Diese sollen die Zeitpunkte der Nulldurchgänge der Sinusspannung erfassen:
    Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-Auswertung Nulldurchgang.gif
    • Die "Null-Linie" der Sinusspannung entspricht dem Wert der Betriebsspannung. Deshalb wird U1.V als Grenzwert für die Auslösung des Sample-Vorgangs definiert.
    • t1 und t2 erfassen jeweils die Zeitpunkte entgegengesetzter "Nulldurchgänge" der Sinusspannung. Somit sind die Ausgangs-Zeitwerte beider Abtastglieder immer um die Dauer der letzten Halbwelle versetzt.
  • Ein Signalblock Function2 erfasst mit seinen beiden Eingängen x1 und x2 die beiden gesampelten Zeitwerte und berechnet daraus die aktuelle Frequenz F: 0.5/abs(x1-x2)
    • Leider stürzt die Simulation damit sofort nach dem Start mit "Division durch Null" ab, weil für t1 und t2 jeweils nur der Anfangswert y0=0 vorliegt.
    • Deshalb ist bei der Frequenzberechnung dieser Fall separat zu behandeln. Es genügt dafür die Bedingung t1.y*t2.y>0.
    • Für die Zeit der ersten Periode wollen wir aus den Schwingkreis-Parametern analytisch den Wert der Resonanzfrequenz berechnen:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-Frequenberechnung.gif
  • Der eingeschwungene Zustand wird im Beispiel nach ca. 0.2 s erreicht. Für diesen Zeitbereich betrachten wir nun den Frequenzverlauf des Oszillators:
Software SimX - Einfuehrung - Elektro-Chaos - Oszillator-Frequenverlauf.gif
  • Bereits nach wenigen Perioden ist die endgültige Frequenz erreicht. Die erzeugte Frequenz liegt im Beispiel wenige Hertz oberhalb von 1 kHz. Ursache ist die Wahl eines handelsüblichen Kapazitätswertes für C3, welcher etwas unter dem berechneten "krummen" Wert lag.


Verlustbehafteter Parallel-Schwingkreis

Bisher funktioniert unsere Oszillator-Schaltung recht gut. Dabei kann man schnell vergessen, dass hier nicht die Schaltung selbst funktioniert, sondern ein Modell der Schaltung! Das Verhalten kann in der Realität ganz anders aussehen, weil wir einen wichtigen Effekt im Modell vergessen haben:

  • Eine Spule besitzt immer einen ohmschen Widerstand infolge des Spulendrahtes, wenn man nicht den Spezialfall der Supraleitung betrachtet. Das führt zu den bereits untersuchten gedämpften Schwingungen des passiven LC-Schwingkreises.
  • Auch der Kondensator arbeitet nicht verlustfrei. In unserem Beispiel können wir aber seine Verlust im Vergleich zu den Spulenverlusten vernachlässigen.
  • Wir ergänzen in unserem Modell in Reihe zur Induktivät einen Widerstand RSpule.


===>>> Hier geht es bald weiter !!!