Call a MEX function from Simulink

3 次查看(过去 30 天)
Martijn
Martijn 2012-5-21
Dear all,
I have a .mex64 function that was build from C++ libraries (IPOPT solver) and is able to solve an optimzation problem (NLP constraint).
I can call this function from an .m file easily, but how should I do it in Simulink? An S-function will build a mex file, but I already have this MEX file.
The final goal is to run the optimization in real-time (Model Predictive Control) on a XPC target machine.
  1 个评论
Martijn
Martijn 2012-5-21
Using a simple mex file function I get the following error:
"Only MATLAB files are supported for code generation. Unsupported file extension 'mexw64' [...]"

请先登录,再进行评论。

回答(1 个)

Titus Edelhofer
Titus Edelhofer 2012-5-21
Hi Martijn,
for the xPC Target you will need to have the source code of IPOPT solver available. You can write your S-function and for compilation add all source files for IPOPT. Should work, but I guess your solver code (and therefore the resulting S-function) will be fairly large ...
Titus
  3 个评论
Titus Edelhofer
Titus Edelhofer 2012-5-21
You just add the sources to your call to mex:
mex mysfunction.c ipopt1.c ipopt2.c ipopt3.c
Titus
Kaustubha Govind
Kaustubha Govind 2012-5-22
Not sure if your MEX-function is written as an S-function (MEX-functions have one entry-point, named mexFunction; while S-functions have multiple entry-points like mdlInitializeSizes, mdlStart, mdlOutputs, mdlTerminate, etc.). Please be sure to follow the doc examples on S-functions.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Simulink Coder 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by