Hi ich habe folgendes Problem.
Aus einem System lasse ich mir mittels matlab eine Differentialgleichung erstellen. Diese möchte ich nun integrieren. Dazu habe ich mir eine Funktion geschrieben die mir aus meiner DGL ein System erster Ordnung erstellt und diese integriert. Leider ist die Integration durch die viele Substitutionen sehr langsam, so dass ich das Substituieren auslagern möchte. Das heizt eine andere Funktion berechnet mir einmal und nicht bei jedem Integrationsschritt mein System erster Ordnung und schreib dieses dann in eine globale Variable die vom Integrator aufgegriffen wird.
Soweit so gut, leider erkennt Matlab aber ohne function[x,t] nicht, dass x, was bei mir durch Substitution eingesetzt wird eine Integrationsvariable ist. Deswegen verlangt matlab immer eine Definition der Variablen x.
Kennt jemand eine Möglichkeit wie ich matlab sagen kann, setz doch erstmal x ein und dann wirst du schon später sehen dass dus noch brauchst?
eine lange Erklärung, mit der ich offen gesagt wenig anfangen kann, aber ich versuchs mal.
Zitat:
Aus einem System lasse ich mir mittels matlab eine Differentialgleichung erstellen.
Über eine Funktion? Wie erstellt man eine DGL? Oder geht es um die "rechte Seite"?
Zitat:
Leider ist die Integration durch die viele Substitutionen sehr langsam
Wo wird was durch was substituiert?
Zitat:
Das heizt eine andere Funktion berechnet mir einmal und nicht bei jedem Integrationsschritt mein System erster Ordnung und schreib dieses dann in eine globale Variable die vom Integrator aufgegriffen wird.
Das klingt zunächst wenig sinnvoll. Das System ändert sich ja von Schritt zu Schritt. Damit würde ja angenommen, dass das System konstant ist?
Zitat:
leider erkennt Matlab aber ohne function[x,t] nicht, dass x, was bei mir durch Substitution eingesetzt wird eine Integrationsvariable ist.
In was wird eingesetzt?
Für mich zumindest müsste das Problem nochmal von vorne beschrieben werden. Am geschicktesten wäre wohl, (kommentierten) Code zu verwenden.
global qv_int;
global qe_int;
sind aus einem anderen Programm (das funktioniert) hergeleitete Matrizen, die von alpha, beta, und den Längen, Massen etc abhängen.
Nun möchte ich also bevor ich integriere die Längen, Massen etc einsetzen und mein alpha auf meine zustandsvariablen x1-x4 bringen.
Dazu substituiere ich und lese diesen dann in einen String (char) ein um sie mit eval in dem Integrationsprogram auszulesen. Die Idee dahinter ist, dass ich so von symbolischen auf double werte wechseln kann.
Jedoch funktioniert hier was noch nicht. Wo ist der Fehler?
Ich hoffe es ist so besser zu verstehen?
LG und 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
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.