MATLAB C S-Function不能在simulink实时编译
Posted
技术标签:
【中文标题】MATLAB C S-Function不能在simulink实时编译【英文标题】:MATLAB C S-function cannot be compiled in simulink real time 【发布时间】: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
【问题讨论】:
【参考方案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 命令行中链接了所有这些文件。
【讨论】:
以上是关于MATLAB C S-Function不能在simulink实时编译的主要内容,如果未能解决你的问题,请参考以下文章