How can I generate code using Simulink PLC Coder for fminsearch function?
Ältere Kommentare anzeigen
Hi, I'm trying to generate code for a MATLAB Function Block where I use the method fminsearch in Simulink, but I get some errors.
I decided to create a model with just the MATLAB Function Block and a code using fminsearch (as simple as possible) like this:
function y = myfminsearch(u)
%#codegen
y = fminsearch(@myfun,u);
function f = myfun(x)
f = (x+5)^2+5;
Even if the method is supposed to work for code generation I get this error:
Call to unsupported function 'frexp' detected.
Function 'eps' (#42.910.941), line 31, column 17
Function 'fminsearch' (#41.14645.14653), line 451, column 25
Function 'fminsearch' (#41.14645.14653), line 451, column 25
Function 'fminsearch' (#41.6622.6656), line 195, column 53
Function 'fminsearch' (#41.6622.6656), line 195, column 53
Function 'MATLAB Function1' (#25.34.54), line 3, column 5
Function 'MATLAB Function1' (#25.34.54), line 3, column 5
Component: stateflow | Category: PLC Coder errorOpen
Errors occurred during codegenIR Construction failed
Component: simulink | Category: PLC Coder error
Can you see what the problem is? I don't really understand the error... Do you think I can't use fminsearch for code generation?
Thank you guys!
6 Kommentare
frexp() however is not a Matlab function. It is C++ function from the cmath library.
It is hard to help you or venture conjectures without looking at the code that actually generates the error.
Julian Peña
am 15 Okt. 2014
José-Luis
am 15 Okt. 2014
I am not a Simulink expert, but have you tried to define the function inside the block?
function y = fcn(u)
f = @(x) (x+5).^2 + 5;
y = fminsearch(f,u);
Julian Peña
am 15 Okt. 2014
Xavier
am 7 Jun. 2016
I have the same problem. the @ character is not supported I thing you have to write fminsearch('myfun',x,options)
Antworten (0)
Kategorien
Mehr zu Simulink PLC Coder finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!