|
|
Differentialgleichgungssystem |
|
tumpfi |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.05.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2021, 14:35
Titel: Differentialgleichgungssystem
|
|
Hallo zusammen, seit einiger Zeit versuche ich ein Differentialgleichgungssystem zu lösen, komme aber auf keinen grünen Zweig.
Ich habe euch das zu lösende System, sowie meinen Lösungsversuch als Bilddatei mit angehängt.
Wäre schön, wenn mir jemand behilflich sein könnte.
Beschreibung: |
Das Differentialgleichungssystem |
|
Download |
Dateiname: |
MatLabForum2.jpeg |
Dateigröße: |
2 MB |
Heruntergeladen: |
295 mal |
Beschreibung: |
|
Download |
Dateiname: |
MatLabForum.jpeg |
Dateigröße: |
32.56 KB |
Heruntergeladen: |
299 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.05.2021, 15:26
Titel:
|
|
Hallo,
und welche Probleme treten nun bei der Ausführung des Codes auf?
Bitte Code in Textform zur Verfügung stellen, damit man ihn auch ausführen kann.
Bei der Definition von c2 wurde Komma statt Punkt als Dezimaltrennzeichen verwendet.
Mir fällt zudem auf, dass einmal sin und einmal sind verwendet wird. Das ist vermutlich nicht sinnvoll.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
tumpfi |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.05.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.05.2021, 17:35
Titel:
|
|
Hallo,
vielen Dank schonmal für den Hinweis mit dem Komma und dem sind.
Ein direktes Problem tritt nicht auf, der Code lässt sich ausführen. Leider komme ich nicht auf das Ergebnis, was ich eigentlich erhalten sollte.
Deshalb habe ich mir gedacht, dass man dieses Gleichungssystem vielleicht irgendwie eleganter lösen könnte oder dass ich irgendwo einen Fehler eingebaut habe.
Hier der Code:
function NarrowChannelLaenge
c1=2.54;
c2=9999999;
c3=2.72;
v0=760;
w0=0;
x0=0.1;
z0=1;
[T,X]=ode23(@rechteSeite,[0 1],[v0 w0 x0 z0]);
plot(T,X(:,3))
function dfdt= rechteSeite(t, f)
v=f(1); w=f(2); x=f(3); z=f(4);
dvdt=(-c1)*(v*v)*(1+c3*(sin(2*pi*z/360)*sin(2*pi*z/360)));
dwdt=c2*(v*v)*sin(2*pi*z/360);
dxdt=v;
dzdt=w;
dfdt=[dvdt;dwdt;dxdt;dzdt];
end
end
Vielen Dank
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.05.2021, 20:28
Titel:
|
|
Hallo,
und wie genau sieht das Ergebnis aus, das du erhalten sollst?
Kennst du das Ergebnis für alle Komponenten? Verhalten sich vielleicht manche anfangs richtig und andere nicht? Je mehr du das konkretisieren kannst, desto eher ist es möglich, dir zu helfen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
tumpfi |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.05.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.05.2021, 21:01
Titel:
|
|
|
|
|
Meine einzige Variable die ich ändern kann/muss ist mein C2.
v die Geschwindigkeit verhält sich wie erwartet.
w die Winkelgeschwindigkeit meiner Meinung nach auch
z der Anstellwinkel ist in meinen Augen auch plausibel
Nur die zurückgelegte Stecke x müsste gegen einen kleineren Wert laufen wie sie es tatsächlich tut.
Ich verwende SI Einheiten. Sprich die Skala beim Plot müsste ja in Metern sein.
Ich müsste gegen ca. 83 mm laufen. Sprich auf der Skala gegen 0.08 m.
Meine x-Achse müsste danach ja in Sekunden skaliert sein, wenn ich das richtig verstehe. (Bin ein totaler MatLab Neuling)
Leider bin ich davon weit entfernt.
Bei der Berechnung handelt es sich um eine ballistische Aufgabe.
Das eindringen von einem Projektil in ballistische Gelatine.
Es trifft mit einer Geschwindigkeit v0 von 760 m/s auf.
Es hat dabei einen Anstellwinkel z0 von 1°.
Die Strecke die es in dem sog. Narrow Channel (grob gesagt der Weg ohne dass das Projektil großartig kippt) zurücklegt x0 ist zu Beginn also 0.
Ebenfalls ist die Winkelgeschwindigkeit w0 zu Beginn 0.
Der Narrow Channel den ich mit diesem System bestimmen will, ist bei dieser Auftreffgeschwindigkeit und diesem Anstellwinkel bei ca. 82 mm.
Ich hoffe ich konnte das Problem ausreichend beschreiben
Auf jeden fall schon einmal danke für Ihre Zeit
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.05.2021, 22:20
Titel:
|
|
|
|
|
Hallo,
Zitat: |
Meine einzige Variable die ich ändern kann/muss ist mein C2. |
Das beeinflusst ja aber in erster Linie w und damit z.
Zitat: |
v die Geschwindigkeit verhält sich wie erwartet. |
Kann doch an sich nicht sein, wenn sich x nicht "wie erwartet" verhält?
Zitat: |
Meine x-Achse müsste danach ja in Sekunden skaliert sein, wenn ich das richtig verstehe. (Bin ein totaler MatLab Neuling) |
MATLAB interessiert sich für die Einheiten nicht. Die Einheiten sind so, wie du sie über Anfangswerte und Konstanten vorgibst (und das muss natürlich zusammenpassen).
Zitat: |
Der Narrow Channel den ich mit diesem System bestimmen will, ist bei dieser Auftreffgeschwindigkeit und diesem Anstellwinkel bei ca. 82 mm. |
Mit anderen Worten, du willst C1 bis C3 so bestimmen, dass sich das System wie vorgegeben verhält? Das ist eine sehr wichtige Information, die du wirklich von Anfang an hättest zur Verfügung stellen sollen. Dazu würde ich ein Optimierungsproblem aufstellen, in dem (z.B. mit fmincon) abhängig von C1 bis C3 die DGL gelöst wird und dann einige Kenngrößen mit den gewünschten verglichen werden und aus den Abweichungen der Zielfunktionswert berechnet wird. So lange an C1 bis C3 herumzuprobieren bis es passt ist jedenfalls nicht sehr professionell.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
tumpfi |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 05.05.21
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.05.2021, 08:46
Titel:
|
|
Hallo, danke für die sehr schnelle Antwort.
Nein, mein C1 bis C3 sind ebenfalls durch die Projektildaten vorgegeben. Dafür habe ich noch andere Gleichungen um mein C1 bis C3 zu ermitteln. Diese drei Variablen sind also von Projektil zu Projektil unterschiedlich.
Die drei C meines aktuellen Projektilversuchs:
C1 = 2,54
C2= 775,31 (die 9999999 im Ursprungstext war nur zum rumprobieren)
C3= 2,73
Und dieses DGL-System sollte mir dann die Länge meines Narrow Channels ausspucken.
|
|
|
|
|
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.
|
|