Verfasst am: 11.05.2008, 13:06
Titel: Konstante in DGL zeitabhängig ändern
Hallo,
ich möchte in einem DGL-System eine Konstante für eine bestimmte Zeit auf einen anderen Wert setzen. Praktisch soll das so aussehen (Simulation über sagen wir 200 Minuten): Start, Konstante auf Wert a, nach 70 Minuten Konstante auf Wert b setzen, bei Minute 80 Konstante wieder auf Wert a setzen, weiter laufen lassen bis zum Schluss. Das zugrunde liegende Problem ist eine biologische Simulation während der sich die Lebensdauer eines Proteins zu einem gewissen Zeitpunkt stark verändert. Es handelt sich also nicht um eine komische Spielerei .
Meine Lösung war die folgende: Ich habe zwei Funktionen mit dem DGL-System in unterschiedlichen .m-files in denen jeweils diese Lebenszeit unterschiedlich ist. Dann simuliere ich die erste Funktion mit einer Simulationszeit von 70 Minuten, nehme den Endwert der Lösung als Anfangswert der Simulation der zweiten Funktion und lasse diese für 10 Minuten laufen. Allerdings übernimmt er den Anfangswert schon nicht richtig. Damit kann ich den dritten Teil der Simulation erstmal vergessen...
Ich wüsste nur zu gerne wo mein Fehler liegt. Sollte jemand eine elegantere Lösung für mein Problem kennen, würde ich mich sehr darüber freuen. Bin leider Matlab-Anfänger und muss mir das mehr oder weniger selbst beibringen.
Vielen Dank schon mal für eure Hilfe!
hab es nur kurz überflogen, die Vorgehensweise an sich ist schon richtig.
Du rufst einmal singlekin_apc.m auf, die Funktion heißt aber singelkin.
Versuch doch mal das in singlekin_apc zu ändern (das ist so auch empfohlen).
Vielleicht kommt Matlab mit der gleichlautenden singlekin.m durcheinander.
_________________
ich hab das in der Regel so gehandelt, dass ich in einer if-Abfrage den aktuellen Zeitwert mit den Vorgaben verglichen hab und daraufhin die Konstante gesetzt.
Alternativ würde mir noch die switch-case-Abfrage in den Sinn kommen.
ungefähr so:
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
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.