在 Simulink Real-Time 的 M 文件 S-Function 中使用 C-Mex 函数
Posted
技术标签:
【中文标题】在 Simulink Real-Time 的 M 文件 S-Function 中使用 C-Mex 函数【英文标题】:Using a C-Mex Function in an M-File S-Function in Simulink Real-Time 【发布时间】:2020-10-09 16:30:33 【问题描述】:我创建了一个 Level-2 M-File S-Function,它在内部调用了一个 C MEX 函数。这在普通 simulink 中工作正常,但是否可以将其部署到 speedgoat 实时 PC?我有C-MEX函数的源代码。
如果需要,需要哪些步骤?
我有 mex 文件的原始 C 源代码(最初来自 Matlab 文件交换)。
【问题讨论】:
【参考方案1】:按照此处的步骤创建 C-Mex S-Function。它不是一个全面的指南,因此如果您有任何疑问,请参阅有关 2 级 C-Mex S-Function 的大量 Mathworks 文档。
Creating a C-Mex S-Function
要特别注意放
#define S_FUNCTION_NAME wrapsfcn
与主 c/cpp 文件的命名相同。
然后在 Matlab 命令窗口中使用“mex”命令编译 S-Function。您将需要安装一个有效的编译器(例如,VS2015 Express 就可以)。接下来,在您的模型中创建一个 S-Function 模块。在 S-Function Name 下,输入我们之前提到的名称,区分大小写。
然后,您就可以构建和部署了。
在我的 speedgoat 机器 @ R2020b 中测试。
【讨论】:
以上是关于在 Simulink Real-Time 的 M 文件 S-Function 中使用 C-Mex 函数的主要内容,如果未能解决你的问题,请参考以下文章