在Matlab的命令窗口中,我获得了几个看起来像的公式:
Tc1 = (- 2*J2*cos(t3)*sin(t1)*sin(t3)*n^2 + 2*J2*w3*sin(t3)*n)/cos(t2) - d2 + cos(t2)*(J2*cos(t3)*sin(t1)*sin(t3)*n^2 + J2*v3*sin(t1)) + J1*w1*w3 + J2*w1*w3 - J3*w1*w3 + J2*v2*cos(t1) + J2*n^2*cos(t1)*tan(t2) - J2*w2^2*cos(t1)*tan(t2) + 2*J2*w3^2*cos(t1)*tan(t2) + J2*w2^2*cos(t1)^3*tan(t2) - J2*w3^2*cos(t1)^3*tan(t2) - 2*J2*n*w2*cos(t3)*tan(t2) + 2*J2*w2*w3*sin(t1)*tan(t2) - J2*n^2*cos(t1)*cos(t3)^2*tan(t2) + 2*J2*n*w2*cos(t1)^2*cos(t3)*tan(t2) - 2*J2*w2*w3*cos(t1)^2*sin(t1)*tan(t2) - 2*J2*n*w3*cos(t1)*cos(t3)*sin(t1)*tan(t2)
在Simulink中,我使用From和Goto块来表示所有参数(Tc1,J1,J2,J3,t1,t2,t3等)。
现在我想知道在Simulink中实现这些长公式的最简单方法是进行模拟。通常我会在Simulink中使用所有类型的块来重建方程式,但这次我最终得到的方程式要长得多。有任何想法吗?
答案 0 :(得分:2)
Fcn
块,只需在一行中编写函数,并使用u(1)
,u(2)
等输入。 Fcn
块将指定的数学表达式应用于其输入。表达式可以包括以下一个或多个组件:
u
- 块的输入。如果u
是向量,u(i)
代表
向量的第i个元素;仅u(1)
或u
代表
第一要素。 +
-
*
/
^
)。 ==
!=
>
<
>=
<=
) -
如果关系为真,则表达式返回1
;否则,它返回
0
。 &&
||
!
) - 表达式返回1
如果关系是真的;否则,它返回0
。 abs
,acos
,asin
,atan
,atan2
,
ceil
,cos
,cosh
,exp
,fabs
,floor
,hypot
,ln
,{{ 1}},
log
,log10
,pow
,power
,rem
,sgn
,sin
,sinh
,{{ 1}},
和sqrt
。检查此link
tan
并编写嵌入式tanh
中的所有函数。然后将所有输入和输出连接到它。检查此link