|
|
gekoppeltes DGL-System 2.Ordnung mit 3 Gleichungen |
|
franky85 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.11.2012, 12:00
Titel: gekoppeltes DGL-System 2.Ordnung mit 3 Gleichungen
|
 |
|
 |
|
Hallo,
vorweg, ich habe schon viele PDFs und Foren-Beiträge gelesen, aber bin nicht fündig geworden, was mein Problem angeht. Zudem bin ich matlab-Neuling und arbeite mich gerade ein
Zu meinem Problem: Ich möchte einen schiefen Wurf im Raum berechnen.
Dazu möchte ich Matlab folgende Werte geben:
-Anfangsgeschwindigkeit
-Startwinkel
-Windgeschwindigkeit und Winkel
Luftwiderstand soll über die Beziehung F=k*v berücksichtigt werden.
Jetzt habe ich folgende 6 DGLs, jeweils 2 für jede Raumrichtung (auf System 1.Ordnung umgewandelt)
6 DGLs
X-Richtung:
dx1/dt = x2(t)
dx2/dt = k*x2(t) + k2*x2(t)^2
Y-Richtung:
dy1/dt = y2(t)
dy2/dt = k*y2(t) + k2*y2(t)^2
Z-Richtung:
dz1/dt = z2(t)
dz2/dt = k*z2(t) + k2*z2(t)^2 - 9.81m/s^2
Diese sind jetzt meiner Meinung nach gekoppelt, da Windgeschwindigkeit und Luftwiderstand mit einfließen.
Wie kann ich jetzt ein m-File erstellen, bzw. wie muss ich die Gleichungen definieren?
Ich habe immer nur Beispiele gefunden, die so aussehen wie die folgenden Zeilen
function dydt = dgl_system(t, y)
dy1dt = ... ;
dy2dt = ... ;
dydt = [dy1dt ; dy2dt ];
Da werden aber immer nur DGL-Systeme definiert, sprich genau zwei DGLs, die durch das Umwandeln der DGL 2.Ordnung auf 1.Ordnung entstehen.
Viele Dank im Voraus.
Mit freundlichen Grüßen
Frank
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.11.2012, 21:38
Titel:
|
 |
Hallo,
du kannst in den Vektor beliebig viele DGLen packen. Ob 2 oder n ist hier egal.
enthält übrigens ein Beispiel für 3 gekoppelte DGLen.
Gekoppelt würde ich hier nicht sagen, da x-, y-, und z-Richtung voneinander unabhängig zu sein scheinen.
Grüße,
Harald
|
|
|
franky85 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2012, 08:18
Titel:
|
 |
Hallo, danke für den Link.
Ich habe versucht mich mal an Example 1 zu halten.
function dy = rigid(t,y)
dy = zeros(3,1); % a column vector
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
Ich verstehe nicht warum ein Spaltenvektor erzeugt wird.
Außerdem verstehe ich die Schreibweise nicht so richtig. dy(1)..dy(n), ist das die Syntax oder kann man beliebige Namen vergeben, z.B. dy1dt?
Bei mir sieht es so aus:
function dy = dgl_system(t, y)
dy(1) = y(2); %x-Richtung
dy(2) = k*y(2) + k2*y(2)^2;
dy(3) = y(4); %y-Richtung
dy(4) = k*y(4) + k2*y(4)^2;
dy(5) = y(6); %z-Richtung
dy(6) = k*y(6) + k2*y(6)^2 - 9.81;
Ist das soweit korrekt?
Dankeschön.
|
|
|
franky85 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2012, 08:46
Titel:
|
 |
Ich glaube mir ist ein Licht aufgegangen .
Der Spaltenvektor wird erzeugt um die Werte abzuspeichern, oder?
Wenn ja, welche muss ich dann auslesen um an meine 3 Koordinaten zu kommen? Steht dy(1) oder dy(2) für meine numerische x-Koordniate?
|
|
|
muenzi |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 12.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2012, 10:36
Titel:
|
 |
franky85 hat Folgendes geschrieben: |
Ich glaube mir ist ein Licht aufgegangen .
Der Spaltenvektor wird erzeugt um die Werte abzuspeichern, oder? |
franky85 hat Folgendes geschrieben: |
Wenn ja, welche muss ich dann auslesen um an meine 3 Koordinaten zu kommen? Steht dy(1) oder dy(2) für meine numerische x-Koordniate? |
Du lässt dir aus der Funktion dy(1), dy(2) und dy(3) ausgeben. Die entsprechen deiner numerischen y-Koordinate. Deine x-Koordinate gibst du mit t ja vor. Soll heißen, für jedes Element in t wird die DGL gelöst und du erhälst damit ein weiteres Element von dy.
|
|
|
franky85 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.11.2012, 12:13
Titel:
|
 |
Hallo,
kannst du mir bitte sagen, warum gerade y(1), y(2) und y(3)?
So sieht jetzt meine Funktion aus:
function dy = dgl_system(t, y)
k=(6*pi*17.1e-6*0.05)/2;
k1=0;
k2=(1.22*0.45*pi*0.05^2*4)/2;
k3=0;
dy = zeros(6,1);
dy(1) = y(2); %x-Richtung
dy(2) = -k*y(2) - k1;
dy(3) = y(4); %y-Richtung
dy(4) = -k*y(4) - k2;
dy(5) = y(6); %z-Richtung
dy(6) = -k*y(6) - k3 - 9.81;
Sagt mir bitte nochmal was genau ich in dy(1) bis dy(6) finde.
Ich weiß hört sich blöd an, aber ich hab mehr abgeguckt als verstanden.
Ich versteh die Syntax irgendwie noch nicht so richtig.
dy ist ein Vektor. Woran erkennt matlab eigentlich , dass es sich um ein Differential handelt? Und was ist dann y(2), y(4) und y(6)?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.11.2012, 00:07
Titel:
|
 |
Hallo,
y(1), y(3) und y(5) sind die Positionen in jeder Richtung. y(2), y(4), y(6) sind die jeweiligen Ableitungen.
Die dy sind die Ableitungen der entsprechenden y.
MATLAB ist im Grunde vollkommen egal, was du in diese Funktion reinschreibst. Was ode45 damit dann machen wird, ist das DGL-System
lösen.
Grüße,
Harald
|
|
|
|
|
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 - 2025
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.
|
|