我读过在 Simulink 模型中使用 Matlab 函数会严重影响其性能。建议使用MATLAB Function模块而不是 Interpreted MATLAB Function 模块。
在将模型编译为 C 以在 xPC 目标机器上使用时,我不清楚这是如何应用的。我是否会因为 M 脚本而受到某种惩罚,还是最好使用普通的 Simulink 模块来解决相同的问题?
我读过在 Simulink 模型中使用 Matlab 函数会严重影响其性能。建议使用MATLAB Function模块而不是 Interpreted MATLAB Function 模块。
在将模型编译为 C 以在 xPC 目标机器上使用时,我不清楚这是如何应用的。我是否会因为 M 脚本而受到某种惩罚,还是最好使用普通的 Simulink 模块来解决相同的问题?
不应该因为使用 MATLAB Function 模块而受到任何惩罚。编译模型时,MATLAB Function 模块会将其 MATLAB 代码编译成 C 语言,就像其他 Simulink 模块一样。
我会根据对问题建模的最佳方法进行选择。例如,如果您的算法需要太多控制流语句或循环,则在 MATLAB Function 模块中对其进行编码会更容易。你总是可以混合使用两者。
您提供的链接并没有真正说明或暗示“在 Simulink 模型中使用 Matlab 函数会严重影响其性能”。在某些情况下可以,但在许多情况下,它与内置块一样快。
Interpreted MATLAB Function 模块在每次需要评估时(即在每个时间步)回调到 MATLAB。这使得它变慢(相对于其他技术)并且还阻止它用于任何 c 代码生成目的(即 xPC 使用的 Simulink Coder)。
使用定义为 coder.extrinsic 的函数的 MATLAB Function 模块中的 m 代码受到与上述相同的限制并且可能很慢。
嵌入式 NATLAB 子集中的 MATLAB Function 模块中的 m 代码(即简单的数学和矩阵操作)被转换为 C 代码并编译(当使用仿真和用于 c 代码生成时)。在仿真和代码生成中,您应该会看到与使用标准模块类似的性能。
菲尔。