我希望在嵌入式系统(dSPACE自动箱)上运行MPC(模型预测控制)控制器。 MPC算法是使用框架Casadi(https://web.casadi.org/)制定的。该框架不允许为非线性编程求解器本身生成C代码,而只能为其依赖项生成C代码。因此,我想将Casadi库和非线性规划求解器(IPOPT)链接起来。
我想生成一个s_function,以便可以在Matlab / Simulink和dSPACE的实时接口(RTI)中使用它。
我的问题是:如何使用Microsoft Visual Studio 10和Windows 7.1 SDK在Matlab R2013B上的S函数中创建可以在Matlab中结合使用的共享库?
%(1) %创建共享库 mcc -v -W lib:mylib -T链接:lib nlp.c
%创建S函数 梅克斯s_function.c nlp.c mylib.lib -g -v
%(2) mex('LDEXT = .dll','LINKEXPORT =','LINKEXPORTVER =','CMDLINE300 =“ del exlib.exp exlib.dll.manifest”','exlib.c'); % 要么 mex('LDEXT = .dll','LINKEXPORT =','LINKEXPORTVER =','exlib.c');