我应该使用MATLAB功能块还是普通Simulink块?

我应该使用MATLAB功能块还是普通Simulink块?,matlab,simulink,xpc-target,Matlab,Simulink,Xpc Target,在Simulink模型中使用Matlab函数会严重影响其性能。建议使用块而不是解释的MATLAB功能块 在将模型编译成C以便在xPC目标机器上使用时,我不清楚这是如何应用的。我是因为M脚本而受到某种惩罚,还是使用普通Simulink块来解决同样的问题更好?使用MATLAB功能块不应该受到任何惩罚。在编译模型时,MATLAB功能块会像其他Simulink块一样将其MATLAB代码编译成C 我会根据问题建模的最佳方式进行选择。例如,如果您的算法需要太多的控制流语句或循环,则更容易在MATLAB功能块

在Simulink模型中使用Matlab函数会严重影响其性能。建议使用块而不是解释的MATLAB功能块


在将模型编译成C以便在xPC目标机器上使用时,我不清楚这是如何应用的。我是因为M脚本而受到某种惩罚,还是使用普通Simulink块来解决同样的问题更好?

使用MATLAB功能块不应该受到任何惩罚。在编译模型时,MATLAB功能块会像其他Simulink块一样将其MATLAB代码编译成C


我会根据问题建模的最佳方式进行选择。例如,如果您的算法需要太多的控制流语句或循环,则更容易在MATLAB功能块中对其进行编码。你总是可以两者兼而有之。

你给出的链接并不是说或暗示“在Simulink模型中使用Matlab函数会严重影响其性能”。 在某些情况下它可以,但在许多情况下它与内置块一样快

每次需要评估时(即在每个时间步),解释后的MATLAB功能块都会回调到MATLAB中。这使得它的速度变慢(相对于其他技术),并且还防止它被用于任何c代码生成目的(例如,xPC使用的Simulink编码器)

MATLAB函数块中的m代码,使用定义为编码器的函数。Exterinstic受到与上述相同的限制,速度可能较慢

嵌入NATLAB子集内的MATLAB功能块中的m代码(即简单的数学和矩阵操作)转换为C代码并进行编译(当使用模拟和在C代码生成中使用时)。 在simulation and code gen中,您应该看到与使用标准块类似的性能

菲尔