主要内容GyD.F4y2Ba

双摆动运动的动画和解决方案GyD.F4y2Ba

此示例显示如何通过使用MATLAB®和符号数学工具箱™来模拟双摆率的运动。GyD.F4y2Ba

求解双界的运动方程,并创建一个动画来模拟双摆动运动。GyD.F4y2Ba

第1步:定义双摆块的位移,速度和加速度GyD.F4y2Ba

下图显示了双摆的模型。双摆型由两个摆锤和两个刚性杆组成。GyD.F4y2Ba

通过定义状态变量来描述双重摆的运动:GyD.F4y2Ba

  • 第一鲍勃的角度位置GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba

  • 第二个鲍勃的角度位置GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba

通过定义变量来描述双重摆的属性:GyD.F4y2Ba

  • 第一杆的长度GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba

  • 第二杆的长度GyD.F4y2Ba L.GyD.F4y2Ba 2GyD.F4y2Ba

  • 第一个鲍勃的质量GyD.F4y2Ba mGyD.F4y2Ba 1GyD.F4y2Ba

  • 第二个鲍勃的质量GyD.F4y2Ba mGyD.F4y2Ba 2GyD.F4y2Ba

  • 引力常数GyD.F4y2Ba GGyD.F4y2Ba

为简单起见,忽略两个刚性杆的质量。使用使用指定所有变量GyD.F4y2BaSyms.GyD.F4y2Ba。GyD.F4y2Ba

Syms.GyD.F4y2Batheta_1(t)GyD.F4y2Batheta_2(t)GyD.F4y2BaL_1.GyD.F4y2BaL_2.GyD.F4y2BaM_1.GyD.F4y2BaM_2.GyD.F4y2BaGGyD.F4y2Ba

定义笛卡尔坐标中双摆的位移。GyD.F4y2Ba

x_1 = l_1 * sin(theta_1);Y_1 = -L_1 * cos(theta_1);X_2 = X_1 + L_2 * SIN(THETA_2);y_2 = y_1  -  l_2 * cos(theta_2);GyD.F4y2Ba

通过将位移与时间相对于使用的时间来发现速度GyD.F4y2Ba差GyD.F4y2Ba功能。GyD.F4y2Ba

vx_1 = diff(x_1);vy_1 = diff(y_1);vx_2 = diff(x_2);VY_2 = DEFF(Y_2);GyD.F4y2Ba

通过区分速度来找到加速度。GyD.F4y2Ba

ax_1 = diff(vx_1);ay_1 = diff(vy_1);Ax_2 = Diff(Vx_2);ay_2 = diff(vy_2);GyD.F4y2Ba

第2步:定义运动方程GyD.F4y2Ba

根据牛顿法律定义运动方程。GyD.F4y2Ba

首先,指定第一杆的张力GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba 以及第二杆的张力GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 。GyD.F4y2Ba

Syms.GyD.F4y2BaT_1.GyD.F4y2BaT_2.GyD.F4y2Ba

接下来,构造在两个肿块上行动的力的自由体图。GyD.F4y2Ba

评估作用的力量GyD.F4y2Ba mGyD.F4y2Ba 1GyD.F4y2Ba 。通过平衡水平和垂直力分量来定义第一鲍勃的运动方程。将这两个等式指定为符号方程GyD.F4y2Baeqx_1.GyD.F4y2Ba和GyD.F4y2Baeqy_1GyD.F4y2Ba。GyD.F4y2Ba

eqx_1 = m_1 * ax_1(t)== -t_1 * sin(theta_1(t))+ t_2 * sin(theta_2(t))GyD.F4y2Ba
eqx_1 =GyD.F4y2Ba

-GyD.F4y2Ba mGyD.F4y2Ba 1GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba -GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba =GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -m_1 *(l_1 * sin(theta_1(t))*(diff(theta_1(t),t))^ 2 - l_1 * cos(theta_1(t))* diff(theta_1(t),t,2))== t_2 * sin(theta_2(t)) - t_1 * sin(theta_1(t))GyD.F4y2Ba

eqy_1 = m_1 * ay_1(t)== t_1 * cos(theta_1(t)) -  t_2 * cos(theta_2(t)) -  m_1 * gGyD.F4y2Ba
eqy_1 =GyD.F4y2Ba

mGyD.F4y2Ba 1GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba +GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba =GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba GGyD.F4y2Ba mGyD.F4y2Ba 1GyD.F4y2Ba -GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba m_1 *(l_1 * sin(theta_1(t))* diff(theta_1(t),t,2)+ l_1 * cos(theta_1(t))*(diff(theta_1(t),t))^ 2)== t_1 * cos(theta_1(t)) - g * m_1 - t_2 * cos(theta_2(t))GyD.F4y2Ba

评估作用的力量GyD.F4y2Ba mGyD.F4y2Ba 2GyD.F4y2Ba 。通过平衡水平和垂直力分量来定义第二凸管的运动方程。将这两个等式指定为符号方程GyD.F4y2Baeqx_2.GyD.F4y2Ba和GyD.F4y2Baeqy_2.GyD.F4y2Ba。GyD.F4y2Ba

eqx_2 = m_2 * ax_2(t)== -t_2 * sin(theta_2(t))GyD.F4y2Ba
eqx_2 =GyD.F4y2Ba

-GyD.F4y2Ba mGyD.F4y2Ba 2GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba L.GyD.F4y2Ba 2GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba -GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba L.GyD.F4y2Ba 2GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba =GyD.F4y2Ba -GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -m_2 *(l_1 * sin(theta_1(t))*(diff(theta_1(t),t))^ 2 + l_2 * sin(theta_2(t))*(diff(theta_2(t),t))^2-L_1.*cos(theta_1(t))*diff(theta_1(t), t, 2) - L_2*cos(theta_2(t))*diff(theta_2(t), t, 2)) == -T_2*sin(theta_2(t))

eqy_2 = m_2 * ay_2(t)== t_2 * cos(theta_2(t)) -  m_2 * gGyD.F4y2Ba
eqy_2 =GyD.F4y2Ba

mGyD.F4y2Ba 2GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba L.GyD.F4y2Ba 2GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba L.GyD.F4y2Ba 1GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba +GyD.F4y2Ba L.GyD.F4y2Ba 2GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba =GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba GGyD.F4y2Ba mGyD.F4y2Ba 2GyD.F4y2Ba m_2 *(l_1 * cos(theta_1(t))*(diff(theta_1(t),t))^ 2 + l_2 * cos(theta_2(t))*(diff(theta_2(t),t))^ 2+ L_1 * SIN(theta_1(t))* diff(theta_1(t),t,2)+ l_2 * sin(theta_2(t))* diff(theta_2(t),t,2))== t_2 * cos(theta_2(t)) - g * m_2GyD.F4y2Ba

第3步:评估力并减少系统方程GyD.F4y2Ba

四个运动方程描述了双摆的运动学。评估作用在杆上的力并将四个方程的组减少到两个方程。GyD.F4y2Ba

运动方程有四个未知数:GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba 那GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba 那GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba , 和GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 。评估两个未知数GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba 和GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 从GyD.F4y2Baeqx_1.GyD.F4y2Ba和GyD.F4y2Baeqy_1GyD.F4y2Ba。采用GyD.F4y2Ba解决GyD.F4y2Ba找到的功能GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba 和GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 。GyD.F4y2Ba

张力=求解([eqx_1 eqy_1],[t_1 t_2]);GyD.F4y2Ba

替换解决方案金宝搏官方网站GyD.F4y2Ba T.GyD.F4y2Ba 1GyD.F4y2Ba 和GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba 进入GyD.F4y2Baeqx_2.GyD.F4y2Ba和GyD.F4y2Baeqy_2.GyD.F4y2Ba。GyD.F4y2Ba

eqred_1 = summ(eqx_2,[t_1 t_2],[tension.t_1 tension.t_2]);eqred_2 = summ(eqy_2,[t_1 t_2],[tension.t_1张力.t_2]);GyD.F4y2Ba

两个减小的方程完全描述了摆动运动。GyD.F4y2Ba

第4步:解决系统方程GyD.F4y2Ba

解决系统方程来描述摆动运动。GyD.F4y2Ba

首先,定义群众的值GyD.F4y2Ba 公斤GyD.F4y2Ba ,杆长度GyD.F4y2Ba mGyD.F4y2Ba ,和重力GyD.F4y2Ba mGyD.F4y2Ba /GyD.F4y2Ba S.GyD.F4y2Ba 2GyD.F4y2Ba (SI单位)。将这些值替换为两个减少的方程。GyD.F4y2Ba

l_1 = 1;l_2 = 1.5;m_1 = 2;m_2 = 1;g = 9.8;eqn_1 = subs(eqred_1)GyD.F4y2Ba
eqn_1 =GyD.F4y2Ba

COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba -GyD.F4y2Ba 3.GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba 2GyD.F4y2Ba -GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba 3.GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba =GyD.F4y2Ba -GyD.F4y2Ba 2GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba +GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba +GyD.F4y2Ba 49.GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 5.GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 在哪里GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba =GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba cos(theta_1(t))* diff(theta_1(t),t,2) - (3 * sin(theta_2(t))*(diff(theta_2(t),t))^ 2)/ 2 - sin(theta_1(t))*(diff(theta_1(t),t))^ 2 +(3 * cos(theta_2(t))* diff(theta_2(t),t,2))/ 2 == - (2* sin(theta_2(t))*(cos(theta_1(t))^2*diff(theta_1(t), t, 2) + sin(theta_1(t))^2*diff(theta_1(t), t, 2) + (49*sin(theta_1(t)))/5))/(cos(theta_1(t))*sin(theta_2(t)) - cos(theta_2(t))*sin(theta_1(t)))

eqn_2 = subs(eqred_2)GyD.F4y2Ba
eqn_2 =GyD.F4y2Ba

COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba 3.GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba 2GyD.F4y2Ba +GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba +GyD.F4y2Ba 3.GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba =GyD.F4y2Ba 2GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba +GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 2GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba +GyD.F4y2Ba 49.GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 5.GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba COS.GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba 罪GyD.F4y2Ba (GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba )GyD.F4y2Ba -GyD.F4y2Ba 49.GyD.F4y2Ba 5.GyD.F4y2Ba 在哪里GyD.F4y2Ba σ.GyD.F4y2Ba 1GyD.F4y2Ba =GyD.F4y2Ba ∂GyD.F4y2Ba 2GyD.F4y2Ba ∂GyD.F4y2Ba T.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba (GyD.F4y2Ba T.GyD.F4y2Ba )GyD.F4y2Ba cos(theta_1(t))*(diff(theta_1(t),t))^ 2 +(3 * cos(theta_2(t))*(diff(theta_2(t),t))^ 2)/ 2 +sin(theta_1(t))* diff(theta_1(t),t,2)+(3 * sin(theta_2(t))* diff(theta_2(t),t,2))/ 2 ==(2 *COS.(T.heta_2(t))*(cos(theta_1(t))^2*diff(theta_1(t), t, 2) + sin(theta_1(t))^2*diff(theta_1(t), t, 2) + (49*sin(theta_1(t)))/5))/(cos(theta_1(t))*sin(theta_2(t)) - cos(theta_2(t))*sin(theta_1(t))) - sym(49/5)

这两个方程是非线性二阶微分方程。要解决这些等式,请使用该等式将它们转换为一阶微分方程GyD.F4y2Baodetovectorfield.GyD.F4y2Ba功能。GyD.F4y2Ba

[v,s] = odetovectorfield(eqn_1,eqn_2);GyD.F4y2Ba

矢量的元素GyD.F4y2BaV.GyD.F4y2Ba表示等于元素的时间衍生的一阶微分方程GyD.F4y2BaS.GyD.F4y2Ba。元素GyD.F4y2BaS.GyD.F4y2Ba是状态变量GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba 那GyD.F4y2Ba D.GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba /GyD.F4y2Ba DT.GyD.F4y2Ba 那GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba , 和GyD.F4y2Ba D.GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba /GyD.F4y2Ba DT.GyD.F4y2Ba 。状态变量描述了双摆的角位移和速度。GyD.F4y2Ba

S.GyD.F4y2Ba
S =GyD.F4y2Ba

(GyD.F4y2Ba θ.GyD.F4y2Ba 2GyD.F4y2Ba Dtheta.GyD.F4y2Ba 2GyD.F4y2Ba θ.GyD.F4y2Ba 1GyD.F4y2Ba Dtheta.GyD.F4y2Ba 1GyD.F4y2Ba )GyD.F4y2Ba [Theta_2;dtheta_2;theta_1;dtheta_1]GyD.F4y2Ba

接下来,将第一阶微分方程转换为带有手柄的MATLAB函数GyD.F4y2BamGyD.F4y2Ba。GyD.F4y2Ba

m = matlabfunction(v,GyD.F4y2Ba'vars'GyD.F4y2Ba,{GyD.F4y2Ba'T'GyD.F4y2Ba那GyD.F4y2Ba'是'GyD.F4y2Ba});GyD.F4y2Ba

定义状态变量的初始条件GyD.F4y2Ba[PI / 4 0 PI / 6 0]GyD.F4y2Ba。使用GyD.F4y2BaODE45.GyD.F4y2Ba用于解决状态变量的功能。解决方案金宝搏官方网站是间隔内的时间函数GyD.F4y2Ba[0 10]GyD.F4y2Ba。GyD.F4y2Ba

initcond = [pi / 4 0 pi / 6 0];sols = ode45(m,[010],initcond);GyD.F4y2Ba

绘制状态变量的解。金宝搏官方网站GyD.F4y2Ba

plot(sols.x,sols.y)传奇(GyD.F4y2Ba'\ theta_2'GyD.F4y2Ba那GyD.F4y2Ba'd \ theta_2 / dt'GyD.F4y2Ba那GyD.F4y2Ba'\ theta_1'GyD.F4y2Ba那GyD.F4y2Ba'd \ theta_1 / dt'GyD.F4y2Ba) 标题(GyD.F4y2Ba'金宝搏官方网站状态变量的解决方案'GyD.F4y2Ba)Xlabel(GyD.F4y2Ba'时间''GyD.F4y2Ba)ylabel(GyD.F4y2Ba'金宝搏官方网站解决方案(RAD或RAD / S)'GyD.F4y2Ba)GyD.F4y2Ba

第5步:创建振荡双摆的动画GyD.F4y2Ba

创建振荡双摆的动画。GyD.F4y2Ba

首先,创建使用的四个功能GyD.F4y2Ba贬GyD.F4y2Ba从解决方案评估两个摆锤的坐标金宝搏官方网站GyD.F4y2Ba皂GyD.F4y2Ba。GyD.F4y2Ba

X_1 = @(t)l_1 * sin(deval(sols,t,3));y_1 = @(t)-l_1 * cos(deval(sols,t,3));x_2 = @(t)l_1 * sin(deval(sols,t,3))+ l_2 * sin(deval(sols,t,1));Y_2 = @(t)-l_1 * cos(deval(sols,t,3)) -  l_2 * cos(deval(sols,t,1));GyD.F4y2Ba

接下来,通过使用使用的第一摆动Bob的停止动作动画对象GyD.F4y2Ba煽动者GyD.F4y2Ba功能。默认情况下,GyD.F4y2Ba煽动者GyD.F4y2Ba创建一个动画对象,每单位时间为10个生成的帧范围内GyD.F4y2BaT.GyD.F4y2Ba从0到10。通过使用该坐标绘制坐标GyD.F4y2Ba阴谋GyD.F4y2Ba功能。设定GyD.F4y2BaXGyD.F4y2Ba-axis和GyD.F4y2BayGyD.F4y2Ba- 轴是相同的长度。GyD.F4y2Ba

Fanimator(@(t)绘图(x_1(t),y_1(t),GyD.F4y2Ba'ro'GyD.F4y2Ba那GyD.F4y2Ba'Markersize'GyD.F4y2Ba,m_1 * 10,GyD.F4y2Ba'markerfacecolor'GyD.F4y2Ba那GyD.F4y2Ba'r'GyD.F4y2Ba));轴GyD.F4y2Ba平等的GyD.F4y2Ba;GyD.F4y2Ba

接下来,添加第一刚性杆,第二摆锤鲍勃和第二刚性杆的动画对象。GyD.F4y2Ba

抓住GyD.F4y2Ba在GyD.F4y2Ba;Fanimator(@(t)绘图([0 x_1(t)],[0y_1(t)],GyD.F4y2Ba'r-'GyD.F4y2Ba));Fanimator(@(t)绘图(x_2(t),y_2(t),GyD.F4y2Ba'去'GyD.F4y2Ba那GyD.F4y2Ba'Markersize'GyD.F4y2Ba,m_2 * 10,GyD.F4y2Ba'markerfacecolor'GyD.F4y2Ba那GyD.F4y2Ba'G'GyD.F4y2Ba));Fanimator(@(t)绘图([x_1(t)x_2(t)],[y_1(t)y_2(t)],GyD.F4y2Ba'G-'GyD.F4y2Ba));GyD.F4y2Ba

添加一块文本来计算经过的时间GyD.F4y2Ba文本GyD.F4y2Ba功能。采用GyD.F4y2Banum2str.GyD.F4y2Ba将时间参数转换为字符串。GyD.F4y2Ba

Fanimator(@(t)文本(-0.3,0.3,GyD.F4y2Ba“计时器:”GyD.F4y2Ba+ num2str(t,2))));抓住GyD.F4y2Ba离开GyD.F4y2Ba;GyD.F4y2Ba

使用命令GyD.F4y2BaPlayanimation.GyD.F4y2Ba播放双摆的动画。GyD.F4y2Ba