0

以下のような非常に長い関数の値を評価するために、simulink の matlab 関数ブロックを使用しようとしています (ただし、約 1.3 Mb )。

qdd24*((3*(cos(q22 + q23)*((7*sin(q25)*(sin(q21)*sin(q24) + cos(q22 + q23)*cos(q21)*cos(q24)))/125 + (7*sin(q22 + q23)*cos(q21)*cos(q25))/125) - sin(q22 + q23)*cos(q21)*((7*cos(q22 + q23)*cos(q25))/125 - (7*sin(q22 + q23)*cos(q24)*sin(q25))/125))*(cos(q05)*((26*cos(q21)*cos(q22))/125 - (49*cos(q21)*sin(q22))/1000) + cos(q05)*((507*cos(q21)*cos(q22))/1000 + (49*cos(q21)*sin(q22))/1000) + cos(q05)*((7*sin(q25)
...

ここでqij qdij、 とqddijはブロックへの入力です。

しかし、シミュレーションの実行時にこのブロックを C コードに変換するのに時間がかかりすぎます (ほとんど応答しません)。これをより高速に評価する他の方法はありますか?

また、関数を作成してブロックを使用して呼び出してみましたinterpreted matlab functionが、「入力引数が不足しています」というエラーが発生しました。

4

0 に答える 0