|
|
|
Lösen einer Dgl mit Veränderlichen |
|
| mariesopherl88 |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 04.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2011, 11:51
Titel: Lösen einer Dgl mit Veränderlichen
|
 |
Hallo,
ich bin Anfänger in Matlab und habe folgendes Problem:
ich möchte eine Dgl lösen, die folgendesmaßen aussieht:
dvel=gacceleration-(0.5*roh/m*CdSo)*(vel^2)*((ts/tf)^beta)
in der Hauptfunktion rufe ich sie so auf:
timerange=[0 30];
vel0=vel
[t,y]=ode45(@velocityversustime,timerange,vel0)
plot(t,y)
ylabel('velocity(m/s)')
xlabel('time(s)')
soweit funktioniert das auch...Allerdings habe ich in meiner Nebenfunktion alle Variablen mit einem festen Wert definiert.Jetzt würde ich gerne meiner Dgl Parameter aus meiner Hauptfunktion übergeben, sie dann erst aufstellen und dann lösen.
Wie das bei einer "normalen" Nebenfunktion geht weiß ich, man schreibt die zu übergebenden Parametern in Klammern.Aber das funktioniert hier nicht.
Habt ihr eine Idee wie das hier geht?
Danke schonmal,
lieben Gruß,
Marie
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.12.2011, 11:58
Titel:
|
 |
Hallo,
der Übersichtlichkeit halber würde ich eine Parameter-Struktur anlegen. Die DGL-Funktion würde dann so aussehen
Der Aufruf würde so aussehen:
Grüße,
Harald
P.S.: Bitte bei deinen Beiträgen auch die Code-Umgebung verwenden
|
|
|
|
| mariesopherl88 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 04.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2011, 12:23
Titel:
|
 |
Vielen Dank, jetzt gehts!!
Gruß,
Marie
|
|
|
|
| mariesopherl88 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 04.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 04.12.2011, 13:18
Titel:
|
 |
Hallo Harald,
vielleicht könntest du mir damit auch noch helfen: ich habe die Dgl jetzt plotten können. Jetzt würde ich gerne wissen, bei welcher Zeit sich eine bestimmte Geschwindigkeit einstellt. Ich kenne den Matlab Befehl dafür nicht...
Kannst du mir da weiterhelfen?
Danke!
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 04.12.2011, 19:36
Titel:
|
 |
Hallo,
da du die Lösung ja an diskreten Punkten bekommst, ist das nicht so einfach, wie es sich auf den ersten Blick anhören mag.
Einfache, ungenaue Lösung: du kannst den ersten Datenpunkt finden, zu dem die Geschwindigkeit überschritten wurde.
Wenn die interessante Geschwindigkeit (bzw. mehrere) vorab bekannt ist, kannst du auch ode45 über Events zwingen, den Zeitpunkt der Überschreitung genauer aufzulösen, siehe Dokumentation von ode45.
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.
|
|