Ich habe folgendes gemacht:
Mir mitt els build ode meine bewegungsgleichung erstellt und an hurry up übergeben, diese dann mitteles matlabFunction in einen handle umgewandelt und alle werte ausser varalpha eingesetzt.
Jedoch bekomme ich jetzt einen Fehler und weis nicht mehr so recht weiter.
Der Fehler ist:
Code:
Error using odearguments (line22)
When the first argument to ode45is a function handle, the tspan argument must have
at least two elements.
ich habe auch schon ein wenig mit matlab rumgespielt und die Übergabe von dx das handle erstellen und einsetzen der werte sollte funktionieren. was nicht funktioniert ist der Integrator, leider bin ich hier ratlos.
das habe ich auch schon getestet, es funktioniert leider nicht
Der Fehler sind die Klammern. Anscheinend kann man nur @Integrator und nicht @Integrator () nutzen.... vlt irre ich mich auch....
Kann es vlt sein dass ich meine ganzen Funktion Handels etc in meiner Integrator Funktion machen muss?
Das einzige was mir noch einfallen würde, wäre, dass ich alle Parameter schon vorher einsetze, da ich die Parameter von meiner übergeordneten Datei (= 1. angegebener code) sowieso schon definiert habe, hier stosse ich jedoch auf 2 Probleme
a) ich uebergebe f das nur noch von varalpha abhängig ist - die Parameter kann ich ja schon in der übergeordneten Datei eintragen, dann ist f aber noch immer symbolisch und ich bekomme Probleme mit dem Integrator.
b) ich probiere gleich einen numerischen Ausdruck zu übergeben, jedoch müsste ich dazu neben den Parametern für varalpha x(1) einsetzen, was ich ja nicht machen kann, da x(1) nicht definiert ist.
---------------------
Wo ich mir nun aber noch immer nicht sicher bin, jedes mal, wenn ich start ausführe und das ganze Programm durchlaufen wird, wird doch über build_ode meine Gleichung erstellt, sprich bei jedem play wird build_ode durchlaufen oder?
Da sich jedoch build_ode nicht verändert (und später wesentlich rechenaufwendiger wird) wäre es ja gar nicht notwendig dieses jedesmal wieder zu durchlaufen, oder merkt sich etwa matlab, dass die Funktion bereits einmal durchlaufen würde und führt sie nicht wieder aus, sondern gibt nur noch das Endergebnis, hier die Bewegungsgleichung aus?
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.