2013-03-06 96 views

回答

1

由於使用MATLAB功能塊,不應該有任何損失。編譯模型時MATLAB函數塊將MATLAB代碼像其他Simulink塊一樣編譯爲C語言。

我會根據建模問題的最佳方法來選擇。例如,如果您的算法需要太多的控制流程語句或循環,則可以在MATLAB功能塊中對其進行編碼。你總是可以做到兩者兼有。

1

您給出的鏈接並沒有真正說明或暗示「在Simulink模型中使用Matlab函數會嚴重影響其性能」。 它可以在某些情況下,但在許多情況下,它就像內置塊一樣快。

每當需要評估時(即在每個時間步),解釋的MATLAB函數塊都會回調到MATLAB中。這使得它變慢(相對於其他技術),並且還阻止它被用於任何C代碼生成目的(即由xPC使用的Simulink編碼器)。

MATLAB中的m代碼使用定義爲編碼器的函數的功能塊.extrinsic受到與上述相同的限制並且速度可能很慢。

MATLAB中的m代碼嵌入式NATLAB子集(即簡單的數學運算和矩陣運算)中的m代碼被轉換爲C代碼並進行編譯(使用Simulation時以及用於c代碼生成時)。 在仿真和代碼中,您應該看到與使用標準塊相似的性能。

Phil。

相關問題