MATLAB C S-Function无法在simulink实时编译

问题描述

我在 Simulink 中实时使用了 C S-function。编译模型时,出现以下错误“mxCreateDoubleScalar”未定义; “mexPutvariable”未定义; [在此处输入图片说明][1]

我知道 Simulink real time 似乎不支持“mxCreateDoubleScalar”、“mexPutvariable”,但我不知道如何替换它,你能帮我吗? [1]:https://i.stack.imgur.com/xtiyo.png

解决方法

我建议您使用可执行文件。首先,您必须安装 C/C++ 编译器。我建议你安装minGW(你可以在Matlab的AddOn上得到它)。 然后,您必须初始化您在 s-function 上使用的所有变量。 最后,当你想用你的模型和 s-function 创建一个“mex”时,检查命令行以 mex 所有文件。 2 年前我遇到了同样的问题,我能够创建一个实时应用程序并运行它。

这里介绍了如何使用 mex 函数 mex function

这里有关于 C/C++ 编译器的信息 C/C++ compiler

这里有关于如何配置 .mdl 或 .slx Simulink Real-Time

我建议你把这个问题发到 Matlab 的论坛上,也许他们可以更好地帮助你。

BR。

PD:如果您有 .h 文件与 .c 文件链接,请确保在 mex 命令行上链接所有这些文件。