Software: SimX - Einfuehrung - Elektro-Chaos - Schwingkreis: Unterschied zwischen den Versionen
Zeile 86: | Zeile 86: | ||
* Im Normalfall stört ein sehr kleiner Wert für '''dtMin''' nicht, da eine automatische Schrittweitenregelung für '''dt''' erfolgt. | * Im Normalfall stört ein sehr kleiner Wert für '''dtMin''' nicht, da eine automatische Schrittweitenregelung für '''dt''' erfolgt. | ||
* Das ändert sich jedoch, wenn eine Ereignisbehandlung stattfinden muss. Nachdem ein Ereigniszeitpunkt möglichst exakt angesteuert wurde, beginnt die Simulation nach dem Ereignis wieder mit der Schrittweite '''dt=dtMin'''. | * Das ändert sich jedoch, wenn eine Ereignisbehandlung stattfinden muss. Nachdem ein Ereigniszeitpunkt möglichst exakt angesteuert wurde, beginnt die Simulation nach dem Ereignis wieder mit der Schrittweite '''dt=dtMin'''. | ||
* Wie wir sehen, kann es durch numerische Ungenauigkeiten dazu kommen, dass der soeben detektierte Nulldurchgang von '''di/dt''' erneut | * Wie wir sehen, kann es durch numerische Ungenauigkeiten dazu kommen, dass der soeben detektierte Nulldurchgang von '''di/dt''' erneut detektiert wird. Infolge des Signalrauschens um den Nullwert kann der Nulldurchgang dabei auch mit umgekehrten Vorzeichen erfasst werden. | ||
* Im Beispiel genügte eine Verringerung der minimalen Schrittweite auf '''dtMin=1e-9 s''', um die sporadisch fehlerhafte Ereigniserkennung zu vermeiden: | |||
'''''===>>> Hier geht es bald weiter !!!!''''' | '''''===>>> Hier geht es bald weiter !!!!''''' |
Version vom 23. August 2011, 11:28 Uhr
Ein elektrischer Schwingkreis ist eine resonanzfähige elektrische Schaltung aus einer Spule (L) und einem Kondensator (C), die elektrische Schwingungen ausführen kann. In realen Schwingkreisen muss man immer eine ohmsche Verlustleistung berücksichtigen, welche überwiegend aus dem ohmschen Widerstand (R) des Spulendrahtes resultiert.
Je nach Anordnung der Induktivitäten und Kapazitäten unterscheidet man zwischen Reihenschwingkreis und Parallelschwingkreis. Wir untersuchen zuerst die Resonanz eines Reihenschwingkreises, um danach mit den gesammelten Erfahrungen die analogen Experimente an einem Parallelschwingkreis durchzuführen.
Die Resonanzfrequenz eines idealen verlustfreien (R=0) Schwingkreises mit konstanten Werten für L und C berechnet sich zu
- [math]\displaystyle{ f_0 = \frac{1}{2 \pi \sqrt{L C}} }[/math]
Da zumindest die Spule in realen Schwingkreisen immer einen ohmschen Widerstand R des Drahtes aufweist (Ausnahme: Supraleitfähigkeit), ist die reale Resonanzfrequenz fr etwas geringer, als die nach obiger Thomsonschen Schwingungsgleichung berechnete Frequenz f0:
- [math]\displaystyle{ f_{\mathrm r} = \frac{1}{2\pi}\sqrt{\frac{1}{LC} -\frac{{R_L}^2}{L^2}} }[/math]
Reihenschwingkreis
Wir werden im SimulationX das Modell eines Serienschwingkreis aufbauen, welcher mit einer Frequenz f0=1 kHz schwingt. Dazu steht uns eine Luftspule mit einer Induktivität L= 1mH zur Verfügung. Die Spule besitzt einen Drahtwiderstand R=1,3 Ω.Den erforderlichen Kondensator berechnen wir mit der Thomsonschen Schwingungsgleichung.
- Wir beachten, dass eine elektronische Schaltung auch als Modell ein Nullpotential benötigt:
- In obiger Schaltung kann es noch nicht zu Schwingungen kommen, weil eine Anregung fehlt und der Kreis noch nicht geschlossen ist. Um später beliebige Anregungen generieren zu können, benutzen wir eine Spannungsquelle U mit Signaleingang:
- Beachte: Der Innenwiderstand dieser idealisierten Spannungsquellen ist gleich Null. Praktisch bedeutet dies, dass sich die Quelle bei u=0 wie ein durchgehender Leiter verhält.
- Diese Schaltung kann man ohne äußere Anregung zum Schwingen bringen, wenn man einen aufgeladenen Kondensator einbaut:
- Wir setzen die Anfangsspannung C.v0=10 V.
- Da durch alle in Reihe geschalteten Bauelemente der gleiche Strom fließt, können wir das Stromsignal eines beliebigen Bauelements (außer des Null-Leiters) betrachten.
- Wir simulieren einen Zeitbereich von 10 ms und konfigurieren die Rechen- und Protokollschrittweiten so, da saubere Sinusschwingungen abgebildet werden:
- Wenn eine komplette Sinusperiode T=1 ms erfordert, so haben wir damit den zuvor berechneten Wert für die elektrische Kapazität bestätigt. Die Frequenz beträgt dann f=1/T=1 kHz.
- Anderenfalls haben wir uns verrechnet und müssen den geforderten Kondensatorwert noch richtig ermitteln.
Frage 3: Was ist der erforderliche Wert für die Kapazität C?
Wir werden im Folgenden den Schwingkreis mit einer variablen Sinusfrequenz anregen, um die Erhöhung der Schwingungsamplitude im Resonanzfall zu beobachten:
- Wir nutzen nun wieder einen am Anfang entladenen Kondensator (C.v0=0 V).
- Wir ergänzen das Modell um einen Signalgenerator (Signalglieder→Quellen), dessen Frequenz wir über seinen Signaleingang self.x vorgeben:
- Mittels eines f(x)-Signalgliedes programmieren wir im simulierten Zeitbereich eine lineae Erhöhung der Generator-Frequenz ausgehend von einer unteren Frequenz fu=500 Hz um den Frequenzbereich fB=1000 Hz:
- Es genügt eine Simulationszeit von tStop=1 s, um den gesamten Frequenzbereich hinreichend langsam zu scannen. Die y(x)-Darstellung des Stromes i über die Anregungsfrequenz sollte das folgende Verhalten ergeben:
- Die Resonanzüberhöhung dieses Schwingkreises ist zwar deutlich, aber nicht sehr groß. Ursache ist die Dämpfung infolge des Spulenwiderstands von R=1,3 Ω. Verwendet man eine Spule mit einem Zehntel dieses Wertes R=0,13 Ω, so fällt Resonanzüberhöhung wesentlich markanter aus:
- Hinweise: Die Einbrüche in der Hüllkurve nach Überschreiten der Resonanzfrequenz resultieren aus der relativ schnellen Änderung der Anregungsfrequenz. Vergrößert man die Simulationszeit auf z.B. 5 s, so verschwindet dieser Effekt. Leider vergrößert sich dadurch wesentlich der Umfang der zu verarbeitenden Signaldaten. Das führt zu einem merklich trägeren Reagieren des Simulationsprogramms. Da uns die Einbrüche in der Hüllkurve für dei weitere Bearbeitung nicht stören, lassen wir den Wert tStop=1 s.
Reihenschwingkreis - Signalverarbeitung
Frage 4: Welche Kreisgüte Q ergibt sich bei einen Drahtwiderstand von R=1,3 Ω?
Der aus der Simulation durch Ausmessen der Grenzfrequenzen (Bandbreite) gewonnene Güte-Wert ist mit dem analytisch bestimmten Wert zu vergleichen:
- [math]\displaystyle{ Q = \frac1R \sqrt{\frac LC} }[/math]
Das direkte Ausmessen der Amplituden der dargestellten sinusförmigen Signalverläufe mit dem Cursor ist kaum praktikabel. Wir ergänzen deshalb unseren Simulationsversuchsstand um eine Signalverarbeitung, welche uns die Hüllkurve der Strom-Maxima direkt liefert. Die erforderlichen Bausteine für die Signalverarbeitung stehen in der Modellbibliothek zur Verfügung:
- Ein analoger Stromsensor liefert uns die aktuellen Stromwerte.
- Das spezielle Signalglied Ereignisgesteuertes Abtastglied (Sample&Hold) soll möglichst exakt die Maximalwerte der einzelnen Sinusschwingungen erfassen (Sample) und bis zum nächsten Maximalwert den Wert als Ausgangssignal bereitstellen (Hold).
- Die Zeitpunkte der Sample-Triggerimpulse werden durch die Nulldurchgänge der zeitlichen Stromableitung bestimmt (Siehe: Kurvendiskussion). Dazu verwenden wir das lineare Signalglied Differenzierer (D-Glied mit Verstärkung G=1 und Vorhaltezeit Td=1 s:
Entscheidend für die richtige Erfassung der Hüllkurve ist die korrekte Konfiguration des ereignisgesteuerten Abtastgliedes:
- Das Erfassen des aktuellen Stromwertes soll bei di/dt=0 erfolgen. Die "Auslösung" des Triggerimpulses wird über den Grenzwert a=0 für das Steuersignal definiert.
- Wir wollen nur die obere Hüllkurve erfassen. Diese wird durch die Maxima des Stromsignals gebildet. Die 2. Ableitung des Stromes ist in den Maxima negativ, was durch direction=von oben nach unten definiert wird.
- Da alle Maxima des Stromsignals zu erfassen sind, muss firstevent=nein gwählt werden.
Im Ergebnis der Simulation mit tStop=1 s sollte ungefähr folgende Hüllkurve berechnet werden:
- Es werden einzelne Punkte erfasst, welche zur unteren Hüllkurve (den Minima) gehören. Diesem Problem werden wir uns noch widmen.
- Auch ein moderner PC reagiert nun sehr träge bei der Darstellung der umfangreichen Signalwerte. Diesem Problem werden wir uns zuerst widmen.
Die Anzahl der zu archivierenden Zeitpunkte pro Schwingungsperiode kann man nicht reduzieren, da ansonsten die Signalverläufe verfälscht werden. Deshalb soll die Anzahl der Schwingungsperioden durch Reduktion der Simulationszeit verringert werden, ohne dabei die Hüllkurve zu verfälschen:
- Dazu frieren
wir den bisherigen Signalverlauf ein, damit er uns als Vergleichswert erhalten bleibt.
- Nach dem Zurücksetzen Datei:Software SimX - button simulation zuruecksetzen.gif des jeweils letzten Simulationslaufes verringern wir iterativ die Simulationsdauer soweit, dass nur eine vernachlässigbare Verfälschung der Hüllkurve auftritt. Das ist natürlich eine Ermessensfrage, aber die folgende Verschiebung des Maximums zu höheren Frequenzen könnte man akzeptieren:
- Ist man mit dem Ergebnis zufrieden, sollte man im Hüllkurven-Signalfenster über den Menüpunkt Bearbeiten > Eingefrorene Verläufe entfernen das Modell vom überflüssigen Datenmüll bereinigen..
Da das Simulationsprogramm nun wieder etwas flotter reagiert, können wir uns jetzt dem Problem der fehlerhaft gesampelten Hüllkurvenpunkte befassen:
- Die Simulation im Zeitbereich erfolgt mit einer sich automatisch anpassenden Zeitschrittweite dt. Diese Schrittweite wird so geregelt, dass die Berechnung mit einer hinreichenden Genauigkeit erfolgt.
- Zusätzlich versucht der Solver mit der sogenannten Ereignisbehandlung, markante Zeitpunkte möglichst exakt anzusteuern. Zu diesen "markanten" Zeitpunkten gehören die Auslösezeitpunkte für die Sample-Triggerimpulse.
- Hierbei erfolgen augenscheinlich Fehlauslösungen, weil die Simulationssteuerung noch nicht richtig konfiguriert ist. Im Beispiel wurden folgende Werte für die allgemeinen Einstellungen verwendet:
- Für numerisch unkritische Simulationen genügt meist die Einstellung des gewünschten Zeitbereiches und eine Anpassung der Schrittweitenparameter, um optisch "schöne" Signalverläufe zu erhalten.
- Treten jedoch unvorhergesehene Schwierigkeiten auf, wie wir sie bei der Hüllkurvenerfassung beobachten, ist ein gewisses Erfahrungswissen erforderlich. Das ist ähnlich wie beim Autofahren, je kritischer die Straßenverhältnisse sind, desto feinfühliger muss man lenken, Gas geben und bremsen.
Für unser Beispiel wird hier eine Lösung vorgeschlagen, die hoffentlich bei allen funktioniert:
- Im Normalfall stört ein sehr kleiner Wert für dtMin nicht, da eine automatische Schrittweitenregelung für dt erfolgt.
- Das ändert sich jedoch, wenn eine Ereignisbehandlung stattfinden muss. Nachdem ein Ereigniszeitpunkt möglichst exakt angesteuert wurde, beginnt die Simulation nach dem Ereignis wieder mit der Schrittweite dt=dtMin.
- Wie wir sehen, kann es durch numerische Ungenauigkeiten dazu kommen, dass der soeben detektierte Nulldurchgang von di/dt erneut detektiert wird. Infolge des Signalrauschens um den Nullwert kann der Nulldurchgang dabei auch mit umgekehrten Vorzeichen erfasst werden.
- Im Beispiel genügte eine Verringerung der minimalen Schrittweite auf dtMin=1e-9 s, um die sporadisch fehlerhafte Ereigniserkennung zu vermeiden:
===>>> Hier geht es bald weiter !!!!