主要内容gydF4y2Ba

双摆运动的动画与求解gydF4y2Ba

这个例子展示了如何使用MATLAB®和Symbolic Math Toolbox™建模双摆的运动。gydF4y2Ba

求解一个双摆的运动方程,并创建一个动画来建模双摆的运动。gydF4y2Ba

步骤1:定义双摆质量的位移、速度和加速度gydF4y2Ba

下图是一个双摆模型。双摆由两个摆杆和两根刚性杆组成。gydF4y2Ba

通过定义状态变量来描述双摆运动:gydF4y2Ba

  • 第一个摆动的角位置gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

  • 第二个Bob的角位置gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

通过定义变量来描述双摆的性质:gydF4y2Ba

  • 第一根杆的长度gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba

  • 第二根杆的长度gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba

  • 第一个Bob的质量gydF4y2Ba 米gydF4y2Ba 1gydF4y2Ba

  • 第二个Bob的质量gydF4y2Ba 米gydF4y2Ba 2gydF4y2Ba

  • 引力常数gydF4y2Ba ggydF4y2Ba

为简单起见,忽略两根刚性杆的质量。使用gydF4y2Ba信谊gydF4y2Ba.gydF4y2Ba

信谊gydF4y2Batheta_1 (t)gydF4y2Batheta_2 (t)gydF4y2Bal1gydF4y2Bal2gydF4y2Ba1gydF4y2Bam_2gydF4y2BaggydF4y2Ba

用笛卡儿坐标定义双摆的位移。gydF4y2Ba

x_1 = l1 * sin (theta_1);y_1 = l1 * cos (theta_1);x_2 = x_1 + l2 *sin(ta_2);y_2 = y_1 - L_2*cos(ta_2)gydF4y2Ba

通过对位移对时间的微分求速度gydF4y2BadiffgydF4y2Ba函数。gydF4y2Ba

vx_1 = diff (x_1);vy_1 = diff (y_1);vx_2 = diff (x_2);vy_2 = diff (y_2);gydF4y2Ba

通过速度对时间求导来求加速度。gydF4y2Ba

ax_1 = diff (vx_1);ay_1 = diff (vy_1);ax_2 = diff (vx_2);ay_2 = diff (vy_2);gydF4y2Ba

步骤2:定义运动方程gydF4y2Ba

根据牛顿定律定义运动方程。gydF4y2Ba

首先,指定第一个杆的张力为gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba ,和第二杆的张力gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

信谊gydF4y2BaT_1gydF4y2BaT_2gydF4y2Ba

接下来,构造作用在两个物体上的力的自由体图。gydF4y2Ba

计算作用在上面的力gydF4y2Ba 米gydF4y2Ba 1gydF4y2Ba .通过平衡水平和垂直的力分量来定义第一摆的运动方程。将这两个方程指定为符号方程gydF4y2Baeqx_1gydF4y2Ba和gydF4y2Baeqy_1gydF4y2Ba.gydF4y2Ba

eqx_1 = 1 * ax_1 (t) = = t_1 * sin (theta_1 (t)) + T_2 *罪(theta_2 (t))gydF4y2Ba
eqx_1 =gydF4y2Ba

-gydF4y2Ba 米gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba -gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba

eqy_1 = 1 * ay_1 (t) = = T_1 * cos (theta_1 (t) - T_2 * cos (theta_2 (t) - 1 * ggydF4y2Ba
eqy_1 =gydF4y2Ba

米gydF4y2Ba 1gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba =gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba 1gydF4y2Ba -gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba

计算作用在上面的力gydF4y2Ba 米gydF4y2Ba 2gydF4y2Ba .通过平衡水平和垂直的力分量来定义第二摆的运动方程。将这两个方程指定为符号方程gydF4y2Baeqx_2gydF4y2Ba和gydF4y2Baeqy_2gydF4y2Ba.gydF4y2Ba

(2) = -T_2*sin(t)gydF4y2Ba
eqx_2 =gydF4y2Ba

-gydF4y2Ba 米gydF4y2Ba 2gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba -gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba -gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba -gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba

eqy_2 = m_2 * ay_2 (t) = = T_2 * cos (theta_2 (t) - m_2 * ggydF4y2Ba
eqy_2 =gydF4y2Ba

米gydF4y2Ba 2gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba ggydF4y2Ba 米gydF4y2Ba 2gydF4y2Ba

步骤3:评估力和简化系统方程gydF4y2Ba

四个运动方程描述了双摆的运动学。评估作用在杆上的力,并将四个方程简化为两个方程。gydF4y2Ba

运动方程有四个未知数:gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba .求这两个未知数的值gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba 和gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 从gydF4y2Baeqx_1gydF4y2Ba和gydF4y2Baeqy_1gydF4y2Ba.使用gydF4y2Ba解决gydF4y2Ba函数来找到gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba 和gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba .gydF4y2Ba

解([eqx_1 eqy_1],[T_1 T_2]);gydF4y2Ba

将解代入万博 尤文图斯gydF4y2Ba TgydF4y2Ba 1gydF4y2Ba 和gydF4y2Ba TgydF4y2Ba 2gydF4y2Ba 成gydF4y2Baeqx_2gydF4y2Ba和gydF4y2Baeqy_2gydF4y2Ba.gydF4y2Ba

eqRed_1 = subs(eqx_2,[T_1 T_2],[张力。T_1 Tension.T_2]);eqy_2 = subs(eqy_2,[T_1 T_2],[张力。T_1 Tension.T_2]);gydF4y2Ba

这两个简化方程充分描述了摆的运动。gydF4y2Ba

第四步:解方程组gydF4y2Ba

求解描述摆运动的系统方程。gydF4y2Ba

首先,为大众定义价值gydF4y2Ba 公斤gydF4y2Ba ,杆的长度gydF4y2Ba 米gydF4y2Ba ,和重力gydF4y2Ba 米gydF4y2Ba /gydF4y2Ba 年代gydF4y2Ba 2gydF4y2Ba (国际标准单位)。将这些值代入两个简化方程。gydF4y2Ba

l1 = 1;l2 = 1.5;1 = 2;m_2 = 1;g = 9.8;eqn_1 =潜艇(eqRed_1)gydF4y2Ba
eqn_1 =gydF4y2Ba

因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba -gydF4y2Ba 3.gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba -gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 3.gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba =gydF4y2Ba -gydF4y2Ba 2gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 49gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 5gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 在哪里gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba =gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

eqn_2 =潜艇(eqRed_2)gydF4y2Ba
eqn_2 =gydF4y2Ba

因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 3.gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 3.gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba 2gydF4y2Ba =gydF4y2Ba 2gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 2gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba 49gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 5gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba )gydF4y2Ba -gydF4y2Ba 49gydF4y2Ba 5gydF4y2Ba 在哪里gydF4y2Ba σgydF4y2Ba 1gydF4y2Ba =gydF4y2Ba ∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

这两个方程是非线性的二阶微分方程。为了求解这些方程,将它们转化为一阶微分方程,利用gydF4y2BaodeToVectorFieldgydF4y2Ba函数。gydF4y2Ba

[V S] = odeToVectorField (eqn_1 eqn_2);gydF4y2Ba

向量的元素gydF4y2BaVgydF4y2Ba表示一阶微分方程等于元素的时间导数gydF4y2Ba年代gydF4y2Ba.的元素gydF4y2Ba年代gydF4y2Ba是状态变量gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba ,gydF4y2Ba dgydF4y2Ba θgydF4y2Ba 2gydF4y2Ba /gydF4y2Ba dtgydF4y2Ba ,gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba dgydF4y2Ba θgydF4y2Ba 1gydF4y2Ba /gydF4y2Ba dtgydF4y2Ba .状态变量描述了双摆的角位移和速度。gydF4y2Ba

年代gydF4y2Ba
S =gydF4y2Ba

(gydF4y2Ba θgydF4y2Ba 2gydF4y2Ba DthetagydF4y2Ba 2gydF4y2Ba θgydF4y2Ba 1gydF4y2Ba DthetagydF4y2Ba 1gydF4y2Ba )gydF4y2Ba

接下来,转换一阶微分方程到MATLAB函数与处理gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

M = matlabFunction (V,gydF4y2Ba“var”gydF4y2Ba,{gydF4y2Ba“t”gydF4y2Ba,gydF4y2Ba“Y”gydF4y2Ba});gydF4y2Ba

定义状态变量的初始条件为gydF4y2Ba[pi/4 0 pi/6 0]gydF4y2Ba.使用gydF4y2Ba数值gydF4y2Ba函数来求解状态变量。解是这个万博 尤文图斯区间内的时间函数gydF4y2Ba10 [0]gydF4y2Ba.gydF4y2Ba

initCond = [pi/4 0 pi/6 0]; / /初始化sols = ode45(M,[0 10],initCond);gydF4y2Ba

画出状态变量的解。万博 尤文图斯gydF4y2Ba

情节(sols.x sols.y)传说(gydF4y2Ba“\ theta_2”gydF4y2Ba,gydF4y2Ba“d \ theta_2 / dt”gydF4y2Ba,gydF4y2Ba“\ theta_1”gydF4y2Ba,gydF4y2Ba“d \ theta_1 / dt”gydF4y2Ba)标题(gydF4y2Ba“万博 尤文图斯状态变量的解”gydF4y2Ba)包含(gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba“万博 尤文图斯解决方案(rad或rad/s)”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。标题为“状态变量的解”的axis对象包含4个类型为li万博 尤文图斯ne的对象。这些对象表示,d /dt, d /dt。gydF4y2Ba

步骤5:创建双摆的动画gydF4y2Ba

创建双摆摆动的动画。gydF4y2Ba

首先,创建四个使用的函数gydF4y2Ba德瓦尔gydF4y2Ba求两个摆的坐标万博 尤文图斯gydF4y2Ba溶胶gydF4y2Ba.gydF4y2Ba

x_1 = @(t) L_1*sin(deval(sols,t,3));y_1 = @(t) -L_1*cos(deval(sols,t,3));x_2 = @ (t) l1 * sin(德瓦尔(溶胶,t, 3)) + l2 *罪(德瓦尔(溶胶t 1));y_2 = @ (t) l1 * cos(德瓦尔(溶胶,t, 3) l2 * cos(德瓦尔(溶胶t 1));gydF4y2Ba

接下来,创建一个定格动画对象的第一个钟摆摆动使用gydF4y2BafanimatorgydF4y2Ba函数。默认情况下,gydF4y2BafanimatorgydF4y2Ba的范围内,单位时间内生成10帧的动画对象gydF4y2BatgydF4y2Ba从0到10。用gydF4y2Ba情节gydF4y2Ba函数。设置gydF4y2BaxgydF4y2Ba设在和gydF4y2BaygydF4y2Ba-轴的长度相等。gydF4y2Ba

fanimator (@ (t)情节(x_1 (t) y_1 (t)gydF4y2Ba“罗”gydF4y2Ba,gydF4y2Ba“MarkerSize”gydF4y2Ba1 * 10,gydF4y2Ba“MarkerFaceColor”gydF4y2Ba,gydF4y2Ba“r”gydF4y2Ba));轴gydF4y2Ba平等的gydF4y2Ba;gydF4y2Ba

接下来,添加第一刚性杆、第二摆摆动和第二刚性杆的动画对象。gydF4y2Ba

持有gydF4y2Ba在gydF4y2Ba;fanimator(@(t) plot([0 x_1(t)],[0 y_1(t)]gydF4y2Ba的r -gydF4y2Ba));fanimator (@ (t)情节(x_2 (t) y_2 (t)gydF4y2Ba“去”gydF4y2Ba,gydF4y2Ba“MarkerSize”gydF4y2Bam_2 * 10,gydF4y2Ba“MarkerFaceColor”gydF4y2Ba,gydF4y2Ba‘g’gydF4y2Ba));fanimator (@ (t)情节(x_1 (t) x_2 (t)], [y_1 (t) y_2 (t)),gydF4y2Ba“g -”gydF4y2Ba));gydF4y2Ba

控件添加一段文本来计算经过的时间gydF4y2Ba文本gydF4y2Ba函数。使用gydF4y2Banum2strgydF4y2Ba将time参数转换为字符串。gydF4y2Ba

fanimator (@ (t)文本(-0.3,0.3,gydF4y2Ba计时器:“gydF4y2Ba+ num2str (t, 2)));持有gydF4y2Ba从gydF4y2Ba;gydF4y2Ba

图中包含一个轴对象。axis对象包含5个类型为line, text的对象。gydF4y2Ba

使用命令gydF4y2Ba那里gydF4y2Ba来播放双摆的动画。gydF4y2Ba