Software: SimX - Einfuehrung - Elektro-Chaos - Oszillator

Aus OptiYummy
Zur Navigation springenZur Suche springen

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.

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