|
|
Differentialgleichung 2. Ordnung diskret lösen |
|
mgmaverick1988 |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 06.01.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.01.2011, 18:49
Titel: Differentialgleichung 2. Ordnung diskret lösen
|
|
|
|
|
Hallo alle zusammen,
hab ein kleines Problem bei der diskreten Lösung einer Differentialgleichung 2. Ordnung. Grundsätzliches Ziel ist es, die Differentialgleichung in eine Differenzengleichung zu überführen, und diese mit einer Matlab Funktion auszuwerten.
Bei der genannten Differentialgleichung handelt es sich um ein Feder - Masse - Dämpfersystem mit erzwungener Schwingung. Die Differentialgleichung sieht wie folgt aus:
x''(t) + (d/m)*x'(t) + (k/m)*x(t) = (F/m)*cos(wt)
Weiterhin sind noch folgende Anfangsbedingungen gegeben:
x(t=0) = 0
x'(t=0) = 0
Es soll nun die Differenzengleichung in rekursiver Form aufgestellt werden, wobei die Ausgangsgröße x(kT) in abhängig von der
Eingangsgröße F(kT)
und den vergangenen Werten
x((k-1)*T)
x((k-2)*T)
ist.
Als Hinweis steht in der Aufgabenstellung, die Ableitungen x'(t) und x''(t) in Differenzenform zu approximieren.
Weiterhin hab ich in meinen Regelungstechnik Skript noch Folgenden Hinweis gefunden:
Eine Differentialgleichung 2.Ordnung a2*x''(t)+a1*x'(t) = a0y(t) lässt sich in Folgende Differenzengleichung umschreiben.
Koeffizienten:
b1 = (2*a2+a1*T)/a2
b2 = (a2+a1*T)/a2
c1 = T²*a0/a2
==> x(k-2) - b1*x(k-1) + b2*x(k) = c*y(k)
Ok nun zu meinen Vorgehen: Zunächst hab ich versucht die DGL in eine Differenzengleichung nach o.g. Form zu bringen. Unter Berücksichtigung der Ausgangsgröße x(kT) und der Eingangsgröße F(kT) sowie den Vorausgegangen Ausgangsgrößen x((k-1)*T) und x((k-2)*T) erhielt ich also Folgende Differenzengleichung:
Koeffizienten:
b1 = (2*m + d*T)/m
b2 = (m + d*T)/m
c =( T²*k/F)/m
x((k-2)*T) - b1*x((k-1)*T) + b2*x(k*T) = c*F(kT)
Um die Abhängigkeit von x(kT) auszudrücken wird der Ausdruck umgeformt zu:
x(k*T) = [ c*F(kT) + b1*x((k-1)*T) - x((k-2)*T) ] / b2
Ich denk mal so weit müsste alles Richtig sein. Mein Problem besteht jetzt darin die Werte für vorausgegangenen Ausgangsgrößen zu bestimmen.
x((k-1)*T) und x((k-2)*T)
Bekommt man die Werte vielleicht heraus in dem man die Ableitungen x'(t) und x''(t) in Differenzenform approximiert ?
Meine Idee währe die Folgende:
x'(t) = dx/dt = [ X_i - X_(i-1) ] / T
x''(t) = d²x/dt² = [ X_i - 2*X_(i-1) + X_(i-2)] / T²
i: Index der den aktuellen Wert angibt.
T: Zeitintervall zwischen den Abtastungen
Ich hab echt keine Ahnung, wie ich die Werte für die vorausgegangenen Werte x((k-1)*T) und x((k-2)*T) bestimme. Muss ich vielleicht die o.g. Anfangsbedingungen da mit hineinbringen? Hoffentlich kann mir einer bei meinen Problem weiterhelfen.
Vielen Dank im Voraus
|
|
|
|
|
DGL |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.05.2014, 17:40
Titel: Das gleiche Problem
|
|
Hallo,
ich habe gerade das gleiche Problem.
Hast du bereits eine Lösung?
|
|
|
nik250525052505 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.01.2022, 19:21
Titel: Nochmal das gleiche
|
|
Hallo, mir gehts genauso, schon ne Lösung am Start?
LG
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|