|
|
Anfang: Funktion plotten und DGL System lösen |
|
sutoppu |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2011, 07:16
Titel: Anfang: Funktion plotten und DGL System lösen
|
|
Guten morgen
ich bin grad ein wenig am Verzweifeln... Ich muss eine Funktion f plotten und danach ein DGL System lösen (die Funktion ist teil der DGLn). Ich komme allerdings gar nicht zurecht (mein erster Versuch alleine irgendwas mit Matlab zu machen).
mein Code sieht so aus (erstmal nur die Funkton):
ist wahrscheinlich sehr umständlich... ich wusste nicht, ob man eine Funktion aus zwei Teilen mit einem normalen Befehl plotte kann... in der if-abfrage sollte eigentlich t_b stehen, aber dann bekomm ich eine Fehlermeldung, also habe ich den Wert für t_b ausgerechnet... naja Das Bildchen sieht der Lösung aus dem Buch auch ziemlich ähnlich!
Kann mir jemand sagen, ob das so ok ist?
Beschreibung: |
|
Download |
Dateiname: |
Funktion.jpg |
Dateigröße: |
49.65 KB |
Heruntergeladen: |
732 mal |
|
|
|
|
|
sutoppu |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.04.2011, 08:51
Titel: weiter gehts
|
|
Wenn ich die Funktion f habe, dann muss ich ein System lösen. Ich wollte es erstmal mit nem expl. Euler Versuchen... Das System besteht aus zwei Dgln.
Ich hab versucht als erstes das System zu lösen, aber das klappt irgendwie schon nicht...
p_iso stimmt so. Aber pv und pa sind falsch und ich sehe nicht warum... Meine Lösung von V (im Code f2, bzw x2) und ps (im Code f1 bzw x2) sind glaube ich schon nicht richtig.
Und pa kann man so glaube ich auch nicht berechnen, aber mir ist bisher nix besseres eingefallen....
Ich hab das Bild, das rauskommen soll mal angehängt... vllt liegts aber auch schon an der Funktion f aus dem ersten Teil?
Ich hoffe jemand hat eine Idee
Beschreibung: |
|
Download |
Dateiname: |
Lösung.jpg |
Dateigröße: |
98.89 KB |
Heruntergeladen: |
731 mal |
Beschreibung: |
|
Download |
Dateiname: |
system.jpg |
Dateigröße: |
36.18 KB |
Heruntergeladen: |
722 mal |
|
|
|
Thomas84 |
Forum-Meister
|
|
Beiträge: 546
|
|
|
|
Anmeldedatum: 10.02.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2011, 05:53
Titel:
|
|
Ich würde vorschlagen du schaust dir mal die DGL-Löser von Matlab an (ode45). Es ist glaub ich noch einiges verkehrt bei deinem code. Du benötigst z.B. pv innerhalb der Schleife berechnest es aber erst nachher. Außerdem ist
sicherlich nicht richtig!?
|
|
|
sutoppu |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.04.2011, 17:16
Titel:
|
|
Ich habe im Code noch Zeichenfehler gefunden und das Problem mit pa gelöst ich musste dV/dt > 0 ausgeben. Damit haben sich natürlich die anderen Lösungen stark verändert. Und meine Lösung sieht schon ganz gut aus. Aber ich meine dass f(i) noch nicht ganz richtig ist, für alpha <2 sieht die Lösung nicht aus wie eine Parabel...
Pv habe ich einmal in der Schleife als auch danach berechnet, aber die Lösung ist dieselbe.
Dafür musste ich aber pa innerhalb der Schleife bestimmen
ich werd mir ode45 mal angucken! Aber warum sollte die Vorschrift nicht stimmen? Das sind eigentlich die einzigen zwei Zeilen bei denen ich mir sicher war
|
|
|
Thomas84 |
Forum-Meister
|
|
Beiträge: 546
|
|
|
|
Anmeldedatum: 10.02.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2011, 12:01
Titel:
|
|
Ich glaub ich hatte den Code noch nicht ganz durchschaut. Die Verwendung von ode45 und ein paar Kommentare würden denn Code sicherlich übersichtlicher machen.
|
|
|
sutoppu |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2011, 12:10
Titel: neues Problem
|
|
Hallo
ich hab das System gelöst! Danke, dass ihr euch mein Problem angesehen habt das nächste mal, werde ich den Code auch ordentlicher aufschreiben!
Jetzt habe ich aber ein neues Problem:
In einem weiteren System habe ich eine Zeitverzögerung:
mit kappa = 0.45
wenn ich das so implementiere, dann bekomme ich einen Fehler, dass man nur integer eingeben darf... wie kann man das beheben?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 01.05.2011, 12:46
Titel:
|
|
Hallo,
so etwas wird als "Delay Differential Equation" bezeichnet.
Fertige Löser sind dde23 oder ddesd, siehe
http://www.mathworks.com/access/hel.....chdoc/math/f1-663833.html
Wenn du das selber (mit fester Schrittweite) löst, dann solltest du die Simulationsschrittweite so wählen, dass die Verzögerung ein vielfaches ist, z.B. hier dt = 0.15. Dann entspricht kappa = 0.45 einer Verzögerung um 3 Zeitschritte.
Grüße,
Harald
|
|
|
sutoppu |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2011, 12:56
Titel:
|
|
Wow, danke für die schnelle antwort
Ich werds direkt mal probieren
|
|
|
sutoppu |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 26.04.11
|
|
|
|
Wohnort: KÖLN
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2011, 15:42
Titel:
|
|
Hallo!
Ich habs jetzt erstmal mit fester Schrittweite probiert, es hat soweit auch funktioniert. Problem ist jetzt nur, dass meine Anfangswerte nicht mehr passen also geht jetzt die Fehlersuche los...
Ich probiers erstmal alleine, sonst meld ich mich nochmal
DANKE!
|
|
|
|
|
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.
|
|