03.2 – Numerische Lösung eines DGL-Systems (Stromkreis)

 

Der in der Abbildung dargestellte Stromkreis enthält zwei gleiche ohmsche Widerstände R und zwei gleiche Induktivitäten L. Er wird durch die Spannung u = u\left( t \right) gespeist. Zum Zeitpunkt t = 0 fließe kein Strom.

stromkreis differentialgleichung widerstand induktion

a) Stellen Sie mit Hilfe der Kirchhoffschen Gesetze ein Differentialgleichungssystem zur Bestimmung der Ströme {I_1} und {I_2} auf.

b) Formulieren Sie einen Schritt des impliziten Euler-Verfahrens zur Lösung dieses Differentialgleichungssystems.

c) Entwerfen Sie ein einfaches Iterationsverfahren zur Lösung des Gleichungssystems aus b und untersuchen Sie dessen Konvergenz. Für welche Widerstandswerte konvergiert das Verfahren?

d) Testen Sie das Iterationsverfahren mit unterschiedlichen anfangswerten. Welche Werte sind sinnvoll?

e) Wie würden Sie bei einem nichtlinearen Differentialgleichungssystem vorgehen?

Lösung

Kirchhoffsches Gesetz

(Knotenregel): In einem Knotenpunkt eines elektrischen Netzwerkes ist die Summe der zufließenden Ströme gleich der Summe der abfließenden Ströme.

(Maschenregel): In jeder Masche eines elektrischen Netzwerks ist die Summe der Spannungen gleich Null.


a )

L\frac{{d{I_1}}}{{dt}}+R\left( {{I_1}-{I_2}} \right)-U = 0

L\frac{{d{I_2}}}{{dt}}-R\left( {{I_1}-{I_2}} \right)+R{I_2} = 0

Wir stellen um und bringen alles auf die rechte Seite, was nicht differenziert wird:

\frac{{d{I_1}}}{{dt}} = -\frac{R}{L}{I_1}+\frac{R}{L}{I_2}+\frac{U}{L}

\frac{{d{I_2}}}{{dt}} = \frac{R}{L}{I_1}-\frac{{2R}}{L}{I_2}

Nun schreiben wir das Gleichungssystem in Matrixform auf:

I = {\left( {{I_1},{I_2}} \right)^T}

\frac{{dI}} {{dt}} = \left( {\begin{array}{*{20}{c}}    {-\frac{R} {L}} & {\frac{R} {L}}  \\    {\frac{R} {L}} & {-\frac{{2R}} {L}}  \\   \end{array} } \right)I+\left( {\begin{array}{*{20}{c}}    {\frac{U} {L}}  \\    0  \\   \end{array} } \right)

b )

Für jedes numerische Verfahren muss man diskretisieren. In diesem Fall hängt die Stromstärke von der Zeit ab, wir diskretisieren daher die Zeitachse:

0,{t_1},{t_2}, \ldots {t_k},\quad \Delta  = \tau

Anschließend approximieren wir:

I\left( {{t_k}} \right) \sim {x_k}

Implizites Eulerverfahren:

{x_{k+1}} = {x_k}+\tau f\left( {{t_{k+1}},{x_{k+1}}} \right)

\dot y = f\left( {t,y} \right)

Erinnerung: Explizites Eulerverfahren: {x_{k+1}} = {x_k}+\tau f\left( {{t_k},{x_k}} \right)

In unserem Fall (implizites Eulerverfahren) ist

{x_{k+1}} = {x_k}+\tau \left[ {\left( {\begin{array}{*{20}{c}}    {-\frac{R} {L}} & {\frac{R} {L}}  \\    {\frac{R} {L}} & {-\frac{{2R}} {L}}  \\   \end{array} } \right){x_{k+1}}+\left( {\begin{array}{*{20}{c}}    {\frac{U} {L}}  \\    0  \\   \end{array} } \right)} \right]\quad \quad \quad \left(  *  \right)

Dies könnte man direkt lösen, indem man nach {x_{k+1}} umstellt. Wir suchen aber ein iteratives Verfahren:

c )

Gesucht: Iterationsvorschrift \Phi mit {x_{k+1}} = \Phi \left( {{x_{k+1}}} \right), denn die gesuchte Lösung muss immer ein Fixpunkt der Iterationsfunktion sein.

Dazu nötig: Iterationsverfahren: x_{k+1}^{\left( {j+1} \right)} = \Phi \left( {x_{k+1}^{\left( j \right)}} \right)

Einfachste Variante: \Phi ist die rechte Seite von \left(  *  \right):

x_{k+1}^{\left( {j+1} \right)} = {x_k}+\tau \left[ {\left( {\begin{array}{*{20}{c}}    {-\frac{R} {L}} & {\frac{R} {L}}  \\    {\frac{R} {L}} & {-\frac{{2R}} {L}}  \\   \end{array} } \right)x_{k+1}^{\left( j \right)}+\left( {\begin{array}{*{20}{c}}    {\frac{U} {L}}  \\    0  \\   \end{array} } \right)} \right]

Das Verfahren konvergiert, wenn \left\| {{\Phi ^\prime }} \right\| < 1. (vergleiche Vorlesung Satz 2.3)

In diesem Fall lautet die Ableitung der Matrixfunktion:

{\Phi ^\prime } = {\left\{ {{x_k}+\tau \left[ {\left( {\begin{array}{*{20}{c}}    {-\frac{R} {L}} & {\frac{R} {L}}  \\    {\frac{R} {L}} & {-\frac{{2R}} {L}}  \\   \end{array} } \right)x_{k+1}^{\left( j \right)}+\left( {\begin{array}{*{20}{c}}    {\frac{U} {L}}  \\    0  \\   \end{array} } \right)} \right]} \right\}^\prime } = \tau \left( {\begin{array}{*{20}{c}}    {-\frac{R} {L}} & {\frac{R} {L}}  \\    {\frac{R} {L}} & {-\frac{{2R}} {L}}  \\   \end{array} } \right)

Die Matrixnorm von dieser Ableitung ist:

{\left\| {{\Phi ^\prime }} \right\|_\infty } = \tau \frac{{3R}} {L} = q

Die Schrittweite \tau muss also entsprechend klein gewählt werden:

{\left\| {{\Phi ^\prime }} \right\|_\infty } = \tau \frac{{3R}} {L} < 1\quad  \Rightarrow \quad \tau  < \frac{L} {{3R}}

Nun brauchen wir noch ein Abbruchkriterium. Wir wissen:

\left\| {x_{k+1}^{j+1}-x_{k+1}^j} \right\| < \frac{1} {{1-q}}\varepsilon \quad  \Rightarrow \quad \left\| {x_{k+1}^{j+1}-x_{k+1}^*} \right\| < \varepsilon

e )

Auch bei nichtlinearen DGL-Systemen kann als Iterationsvorschrift die rechte Seite des Gleichungssystems benutzt werden.