Erstellung eines SelfDef-Scripts vom Typ LaplaceCurrents am Beispiel Induktivität

Der Modell-Typ LaplaceCurrents ist das allgemeinste und mächstigste Werkzeug, Elemente zu
beschreiben. Er ermöglicht nicht nur das Modellieren von linearen Elementen, sondern auch von nichtlinearen
dynamischen Elementen (wie Diode, Transistor mit parasitären Kapazitäten, nichtlin. Trafo). Den Modell-Typ
RealCurrents habe ich aber zusätzlich eingeführt um das Modellieren von Halbleitern (auch Röhren) zu
vereinfachen. 
Für den Modell-Typ LaplaceCurrents schreibt man i.A. die Gleichungen so auf:

I1 = Iterm_11(s, Ux, t) + Iterm_12(s, Uy, t) + .... 
I2 = Iterm_21(s, Ux, t) + Iterm_22(s, Uy, t) + .... 
.....
Ik = Iterm_k1(s, Ux, t) + Iterm_k2(s, Uy, t) + .... 
<Bilanz-Strom-Gleichung 1>
<Bilanz-Strom-Gleichung 2>
.....

I1 bis Ik sind wieder die Pin-Ströme, Ux/Uy... wieder die Pin-Spannungen, s ist der Laplace-Operator.
Jeder Pin-Strom wird als Summe von Term-Strömen (Iterm) ausgedrückt. Man kann die Terme auch
als Teil-Elemente auffassen, welche im jeweiligen Pin-Strom-Zweig parallel geschaltet sind.
Jeder Iterm wird i.A. mit seinen Term-Parametern als Laplacetransformierte niedergeschrieben.
Die Zeit t kommt vor, da Term-Parameter auch zeitlich veränderlich sein können. Bei manchen
Term-Typen können die Term-Parameter auch eine Funktion von Pin-Spannungen sein (nichtlin. Term).

Mit N=Anzahl der Pins muß immer k < N gelten. Die restlichen (heraus fließenden) Ströme müssen in den
Bilanz-Strom-Gleichungen definiert werden.

Für die Syntax der Iterme gelten rigorose Regeln. Man muß eine Übereinstimmung in dieser Tabelle finden,
um die entsprechende Formel in der 1. Spalte für einen Term-Strom verwenden zu können.
In der Tabelle sind auch für jeden Term-Typ die korrespondierenden Differential-Gleichungen beschrieben,
mit Denen ToneCirc letztendlich auch rechnet.

Erstellung Induktivitäts-Modell

Mit diesem Wissen erstellen wir nun eine SelfDef-Datei für eine Induktivität.
Diese Induktivität ist schon intern in ToneCirc implementiert und dient hier nur als einfaches Beispiel.

Erstmal sollte man sich eine Skizze machen und Ströme, Spannungen, Pins einzeichnen.
Für die Induktivität sieht das so aus:

Die Pin-Nummern müssen natürlich mit Denen des MBitmaps identisch sein. Alle Pin-Ströme müssen in das
Element hinein fließend dargestellt werden.
Da bei der Induktivität nur 2 Pins vorhanden sind, muß nach obigen Gleichungen auch nur ein Pin-Strom und eine
Pin-Spannung definiert werden.

Als Pin-Spannung definieren wir: UL = U1 - U2
UL
ist also die Differenz zwischen dem Pin1-Potential und dem Pin2-Potential.

Mit dem Ansatz in Laplace-Schreibweise UL = R*I1 + L*s*I1   (R ist Serien-Verlust-Widerstand) erhalten wir:

Wir schauen in die Tabelle und finden die Entsprechung mit Typ 5. Zu setzen ist alfa = L, beta = R und U = UL.
Da sich der statische Leitwert zu 1/beta (also 1/R) berechnet, darf R auf gar keinen Fall 0 sein. Für die statische
Analyse wird nämlich unbedingt ein ohmscher Widerstand zwischen beiden Pins benötigt.

In den #Volts- und #LaplaceCurrents-Block können die Formeln nun direkt übernommen werden:

#Volts
ul = u1 - u2
#End

#LaplaceCurrents
i1 = 1/(L*s + R)*ul
<i2 = -i1>
#End

Der vollständige Script ist hier zu sehen.

Zu den Blöcken #DefineStaticInfoText und #DefineDynCharts muß ich nicht viel sagen. Das ist das Selbe wie
beim Modell-Typ RealCurrents, nur das es hier die Außen-Pin-Ströme I_ox nicht verwendbar sind (nicht notwendig).

Die Induktivität hat ein sehr einfaches Modell, wir brauchen nur einen einzigen Term-Strom. Ganz anders sieht
es z.Bsp. beim Transformator aus. Hier müssen mehrere Term-Stöme durch Partial-Bruch-Zerlegung aus den
komplizierten Gleichungen gewonnen werden. Die I(U)-Darstellung erweißt sich hier als weniger gut geeignet.
Außerdem müssen 2 Pin-Ströme und 2 Bilanz-Ströme definiert werden.

Es gibt aber eine wesentlich einfachere Möglichkeit einen Transformator zu modellieren, nämlich der 
Modell-Typ LaplaceVolts, der die U(I)-Formulierung verwendet. Aber dazu später.
zum Staunen: hier der Trafo mit LaplaceCurrents. hier der Trafo mit LaplaceVolts.

Modell eines Parallel-Schwingkreises erstellen

Die Skizze müssen wir nur um den Kondensator C erweitern. Es ergeben sich folgende Gleichungen:

U = U1 - U2

In den #Volts- und #LaplaceCurrents-Block können die Formeln nun direkt übernommen werden:

#Volts
u = u1 - u2
#End

#LaplaceCurrents
i1 = 1/(L*s + RL)*u + s*C*u
<i2 = -i1>
#End

Der 2. Strom-Term matcht mit dem Typ 2 in der LaplaceCurrents-Matching-Tabelle.
Weiterhin ist noch zu erwähnen, das im #VarsAndConstants-Block die Resonanz-Frequenz f0 berechnet
wird, um Diese mittels AutoComment im Dokument darzustellen.

#VarsAndConstants
f0 = 1/(c_2pi*sqrt(C*L))
#End

Hier der vollständige Script. Der Script ist unter Data/Filters/LCParallel.selfdef zu finden.

Simulation des Parallel-Schwingkreises

Bitte die Schaltung DocSamples\ParallelLC.circ öffnen:

Ich habe die DynCharts Filt1:Voltage und Current gewählt. Nach Dyna sehen wir diese Charts:

Eine LSA können wir, wie man sieht, auch noch durchführen:

Der Schwingkreis wird mit Pulsen auf der Resonanzfrequenz angeregt. Obwohl die Pulse 1V hoch sind, beträgt die
Amplidute am Ausgang nur etwa 350mV. Die Oberwellen der Pulse-Folge werden nämlich heraus gefiltert. Nur ein
Teil der Energie steckt in der Grund-Schwingung, was auch am pulseartigen Verlauf des Stromes zu erkennen ist.
Der Schwingkreis schließt die Oberwellen sozusagen kurz. Schön zu sehen ist auch die 1. Oberwelle im Strom-Chart.
Also mal eine Spektral-Analyse machen !

Zurück zur Hauptseite