WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

gekoppeltes DGL-System 2.Ordnung mit 3 Gleichungen

 

franky85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 12:00     Titel: gekoppeltes DGL-System 2.Ordnung mit 3 Gleichungen
  Antworten mit Zitat      
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 Smile

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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2012, 21:38     Titel:
  Antworten mit Zitat      
Hallo,

du kannst in den Vektor beliebig viele DGLen packen. Ob 2 oder n ist hier egal.
Code:
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
Private Nachricht senden Benutzer-Profile anzeigen
 
franky85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 08:18     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 16.11.2012, 08:46     Titel:
  Antworten mit Zitat      
Ich glaube mir ist ein Licht aufgegangen Very Happy .

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

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 10:36     Titel:
  Antworten mit Zitat      
franky85 hat Folgendes geschrieben:
Ich glaube mir ist ein Licht aufgegangen Very Happy .

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.
Private Nachricht senden Benutzer-Profile anzeigen
 
franky85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 12:13     Titel:
  Antworten mit Zitat      
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

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.11.2012, 00:07     Titel:
  Antworten mit Zitat      
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
Code:
y' = dglsystem(t,y)

lösen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.