【问题标题】:MATLAB C S-function cannot be compiled in simulink real timeMATLAB C S-Function不能在simulink实时编译
【发布时间】:2021-02-27 00:56:16
【问题描述】:
我在 Simulink 中实时使用了 C S-Function。编译模型时出现以下错误,
“mxCreateDoubleScalar”未定义;
“mexPutVariable”未定义;
[在此处输入图片说明][1]
我知道Simulink real time好像不支持“mxCreateDoubleScalar”、“mexPutVariable”,但是不知道怎么替换,可以帮帮我吗?
[1]:https://i.stack.imgur.com/xtiyo.png
【问题讨论】:
标签:
simulink
matlab-compiler
【解决方案1】:
我建议您使用可执行文件。首先你必须安装一个 C/C++ 编译器。我推荐你安装 minGW(你可以在 Matlab 的 AddOn 上得到它)。
然后,您必须初始化您在 s-function 上使用的所有变量。
最后,当你想用你的模型和 s-function 做一个“mex”时,检查命令行来混合所有文件。 2 年前我遇到了同样的问题,我能够创建一个实时应用程序并运行它。
这里你有如何使用mex函数mex function
这里有关于 C/C++ 编译器的信息C/C++ compiler
这里有关于如何配置 .mdl 或 .slx Simulink Real-Time的信息
我建议你在 Matlab 的论坛上发布这个问题,也许他们可以更好地帮助你。
BR。
PD:如果您的 .c 文件链接了 .h 文件,请确保在 mex 命令行中链接了所有这些文件。