我试图使用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
块调用它,但它给了我"没有足够的输入参数"错误。