Verfasst am: 22.01.2014, 14:13
Titel: Code Generation / Extrinsic Functions und ein ratloser User
Vorab schon mal sorry, falls ich es besser in den Bereich Simulink posten hätte sollen. Dann bitte ich einen Mod es einfach zu verschieben.
So, Hallo,
ich habe ein Problem bei dem ich mich einfach im Kreis drehe bzw. von einer Sackgasse in die nächste rutsche.
Es geht dabei um Code Generation, Extrinsic Functions, Anonymous Functions und Neasted Functions.
Ich fang am besten von vorne an:
Mein erster Versuch meiner Matlabfunction in Simulink sah so aus:
Die eigentliche Gleichung ist etwas komplexer, spielt ja aber keine Rolle.
Die Antwort von Matlab war:
"... code generation does not support anonymous functions ..."
Blöd dachte ich. Bissl nach gedacht -> neasted functions.
Kurz ausprobiert, aber wie schon gedacht: Code Generations unterstützt das natürlich auch nicht.
Also hab ich die Variablen halt global gesetzt. Ging auch nicht, weil Code Generation 'fsolve()' nicht unterstützt.
Nächster Versuch dann also mit
Code:
coder.extrinsic('fsolve');[/quote].
Sah dann so aus:
[quote]function[param] = getParam(a, b, c)
function param = getParam(a, b, c)
coder.extrinsic('fsolve');
tau0 = 1;
param = 0;
param = fsolve('myFunc', tau0, [], a, b, c);
% statt [] ggf. Optionen, um z.B. die Textausgabe zu unterdrücken % zudem würde ich exitflag abfragen end
vielen Dank für deine Antwort.
Allerdings kann fsolve doch soweit ich weiß nur die Initialwerte für ein Problem übernehmen. Die Parameter (bei dir 'a,b,c') können leider nicht in der Form übergeben werden. Zumindest gibt mir Simulink einen Fehler aus, wenn ich das so versuche.
entschuldige bitte, dass ich nicht mehr geantwortet habe. Nur ist das mir vor lauter Euphorie völlig entfallen . Du hattest Recht mit dem Vordefinieren. Jetzt funktioniert alles. Vielen Dank!
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.