I have read在Simulink模型中使用Matlab函數會嚴重影響其性能。建議使用MATLAB Function塊代替解釋的MATLAB功能塊。我應該使用MATLAB功能塊還是普通的Simulink塊?
我不清楚這是如何適用於將模型編譯爲C在xPC目標機器上使用時的情況。我是否因爲M腳本而受到某種處罰,還是使用普通的Simulink塊來解決同樣的問題最好?
I have read在Simulink模型中使用Matlab函數會嚴重影響其性能。建議使用MATLAB Function塊代替解釋的MATLAB功能塊。我應該使用MATLAB功能塊還是普通的Simulink塊?
我不清楚這是如何適用於將模型編譯爲C在xPC目標機器上使用時的情況。我是否因爲M腳本而受到某種處罰,還是使用普通的Simulink塊來解決同樣的問題最好?
由於使用MATLAB功能塊,不應該有任何損失。編譯模型時MATLAB函數塊將MATLAB代碼像其他Simulink塊一樣編譯爲C語言。
我會根據建模問題的最佳方法來選擇。例如,如果您的算法需要太多的控制流程語句或循環,則可以在MATLAB功能塊中對其進行編碼。你總是可以做到兩者兼有。
您給出的鏈接並沒有真正說明或暗示「在Simulink模型中使用Matlab函數會嚴重影響其性能」。 它可以在某些情況下,但在許多情況下,它就像內置塊一樣快。
每當需要評估時(即在每個時間步),解釋的MATLAB函數塊都會回調到MATLAB中。這使得它變慢(相對於其他技術),並且還阻止它被用於任何C代碼生成目的(即由xPC使用的Simulink編碼器)。
MATLAB中的m代碼使用定義爲編碼器的函數的功能塊.extrinsic受到與上述相同的限制並且速度可能很慢。
MATLAB中的m代碼嵌入式NATLAB子集(即簡單的數學運算和矩陣運算)中的m代碼被轉換爲C代碼並進行編譯(使用Simulation時以及用於c代碼生成時)。 在仿真和代碼中,您應該看到與使用標準塊相似的性能。
Phil。