|
|
nichtlinearer Input für State-Space Modell |
|
Bikeaholik |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 20.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2015, 15:33
Titel: nichtlinearer Input für State-Space Modell
|
 |
Hallo zusammen,
ich habe ein " kleines " Problem mit meinem Matlab Program.
Ich habe ein Mimo StateSpace System, welches den nichtlinearen Input P hat.
P ist abhägig von der Temperatur, die durch die State Space Berechnung entsteht.
Wenn ich wie in meinem Program die Temperatur für jede Sekunde ausrechne bekomme ich zwar eine änderung des Input P und eine Temperaturverteilung in einer Matrix, diese sind aber nur für die einzelne Sekunde richtig.
Um ein korrektes Ergebniss zu bekommen müssten die Matrizen, der einzelnen Zeitschritte, addiert werden.
hat jemand eine Idee wie man das anstellen könnte?
Schon mal Danke im vorraus
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 20.10.2015, 16:31
Titel: Re: nichtlinearer Input für State-Space Modell
|
 |
|
 |
|
Hallo Bikeaholik,
Puh! Die globalen Variablen machen den Code sehr unübersichtlich. Verwende lieber eine anonyme Funktion um die zusätzlichen Parameter zu übergeben.
Innderhalb der zu integrierenden Funktion Werte mit
save
abzuspeichern, ist sehr ineffizient. Zudem werden die Dateien immer überschrieben.
Wozu soll das gut sein? Wie wäre: T11 = T1(end) und Tsum einfach weglassen?
Matlab's ODE integratoren sind darauf angewiesen, dass die zu integrierende Funktion stetig ist. Andernfalls wir die Schrittweiten-Kontrolle vollkommen unkontrolliert. Sie kann entweder über den Sprung rüberhudeln (dann ist die Accuracy des Ergebnisses stark eingeschränkt), mit einer Fehlermeldung abbrechen (das ist noch die beste Reaktion) oder die Schrittweite so stark verkleinern, dass der Sprung vor lauter Rundungsfehlern nicht mehr bemerkbar ist (wobei die Rundungsfehler dann auch das Ergbnis deutlich beeinflussen). Ich habe zwar schon viele Leute gesehen, die sich nicht um die Spezifikationen der Integratoren gekümmert haben und sagten: "Wieso? Es kommt doch eine Zahl heraus?!" Aber wissenschaftlich korrekt ist das nicht.
Welche Matrizen müssen aufsummiert werden? Wie wäre es den Inhalt der Matrizen an die Variable anzufügen und wirklich mit aufzusummieren?
Gruß, Jan
|
|
|
Bikeaholik |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 20.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.10.2015, 10:28
Titel:
|
 |
Hallo Jan,
Danke für deine Antwort!
1. Wenn ich statt t1<=5.1 , t1<5.1 nehme kommt die Fehlermeldung das P nicht definiert ist.
2. meine while Schleife gibt die Output-Matrix für eine Sekunde aus z.B 7-8 . Es müssten aber alle 300 Sekunden (0-300) in eine Matix geschrieben werden.
Gruß
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.10.2015, 11:05
Titel:
|
 |
Hallo Bikeaholik,
Zitat: |
1. Wenn ich statt t1<=5.1 , t1<5.1 nehme kommt die Fehlermeldung das P nicht definiert ist. |
Sowohl "<=" als auch "<" erzeugt eine Unstetigkeit in der zu integrierenden Funktion. Die Regel heißt: Vermeide alle nicht kontinuierlichen Funktionen innerhalb der Funktion: min, max, abs, if, ... Ebenso abhängigkeiten von der aktuellen Zeit und bei tan, sqrt, ... muss man die Argumente Prüfen, so dass man eine ordentliche Fehlermeldung bekommt, falls man die Grenzen der Stetigkeit überschreitet.
Zitat: |
2. meine while Schleife gibt die Output-Matrix für eine Sekunde aus z.B 7-8 . Es müssten aber alle 300 Sekunden (0-300) in eine Matix geschrieben werden. |
Für Dich ist es wahrscheinlich ganz klar, aber als Leser im Forum weiß ich nicht, was Du genau tun möchtest. Ich kann mir unter "alle 300 Sekunden in eine Matrix schreiben" nichts vorstellen.
Gruß, Jan
|
|
|
|
|
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.
|
|