使用SymPy求解含导数项的机构矢量方程数值解
平面矢量闭环机构的角速度求解问题
已完成的位置分析
我用SymPy实现了四矢量构成的平面机构闭环位置分析,代码如下:
import sympy as smp import numpy as np R1 = np.array([L1*smp.cos(theta1), L1*smp.sin(theta1)]) R2 = np.array([L2*smp.cos(theta2), L2*smp.sin(theta2)]) R3 = np.array([L3*smp.cos(theta3), L3*smp.sin(theta3)]) R4 = np.array([L4*smp.cos(theta4), L4*smp.sin(theta4)]) i_comps = smp.Eq(R1[0] + R4[0] - R2[0] - R3[0], 0) j_comps = smp.Eq(R1[1] + R4[1] - R2[1] - R3[1], 0) pos_sol = smp.solve([i_comps, j_comps], [theta3, theta4], dict=True)
这部分位置求解逻辑已经跑通。
当前遇到的问题
我通过链式法则对位置方程做时间求导,得到了包含导数项的耦合符号方程(用来求解角速度和角加速度),示例项如下:
$$-L_1(t)\sin(\theta_1(t))\frac{d}{dt}\theta_1(t) + \cos(\theta_1(t))\frac{d}{dt}L_1(t)$$
现在需要代入已知数值求解$\frac{d\theta}{dt}$这类角速度项,比如代入$\theta_1$、$L_1$的数值,以及$\frac{dL_1}{dt}=0$这类导数条件。我考虑过用lambdify,但不知道该如何指定导数项的代入值。
内容的提问来源于stack exchange,提问作者remusconnor
相关产品推荐
相关产品推荐

