ich lasse über ode45 ein DGL-System lösen, was bisher auch gut geklappt hat. Bisher war eine sinus-förmige Anregung implementiert, also der funktionale Zusammenhang der Anregung bekannt. Jetzt wird das Programm mit einer realen Anregung aus Messwerten erweitert, dh. die Anregung liegt als Wertetabelle mit (t_b, F(t_b)) vor, wobei t_b ein Spaltenvektor mit 240120 Elementen und F(t_b) ein Spaltenvektor mit 240120 Elementen ist. t_b und F(t_b) sind dabei eigentlich zyklische Werte mit einer Periode von 0,12 Sekunden und müssen für den Lösungszeitraum von 80 Sekunden auf diese 240120 Elemente verlängert werden.
Ich möchte nun wie man das an sich kennt, F(t) zu den Auswertezeitpunkten von ode45 interpolieren:
Und jetzt erhalte in den Fehler, dass in interp1 length(X) nicht gleich size(Y,1) ist. Dies kann man ja leicht nachprüfen, und length(t_b) = 240120 und size(F_b,1) = 240120. Was ja auf Grund der Anzahl der Elemente der beiden Vektoren ja klar ist. Auch ein Plot der Anregung mit plot(t_b,F_b) ist ohne Fehler möglich. Wo liegt nun der Fehler?
dann kann höchstens sein, dass das mit den globalen Variablen irgendwie durcheinanderkommt. Hast du denn die Variable F_b im Command Window als global definiert?
Danke, jetzt rechnet das Skript wenigstens durch, aber meine sämtlichen Ergebnisse sind NaN. Irgendwas ist da noch im Busch. Mein Code sieht jetzt so aus:
Wenn ich wieder die Sinus-Anregung vorgebe, passen die Ergebnisse, aber mit der interpolierten Kraft-Anregung erhalte ich sämtliche Ergebniswerte zu NaN. Mache ich irgendwo noch einen Fehler? Es ist ja im Prinzip nichts Aufregendes enthalten. Die Zahlenwerte der neuen, gemessenen Anregung sind auch korrekt in t_b_F_b.mat gespeichert, zumindest ein Plot der Mat-Datei ist korrekt.
auch wenn ich mich frage, ob es sinnvoll ist, weit außerhalb des Intervalls zu extrapolieren.
Falls das nicht der Grund ist, versuche das mal unter Anwendung des Debuggers einzugrenzen.
Wenn es eine zyklische Anregung sein soll, könnte man evtl auch mit mod arbeiten statt den Vektor zu verlängern?
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
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.