主要内容gydF4y2Ba

使用符号数学工具箱金宝app验证Simulink模型gydF4y2Ba

该实例说明了如何对一个典型的混合动力系统弹跳球进行建模。该模型既包括连续动态,也包括离散过渡。它使用符号数学工具箱来帮助解释ODE求解背后的一些理论gydF4y2Ba金宝appSimulink®弹跳球模型gydF4y2Ba.gydF4y2Ba

假设gydF4y2Ba

  • 球反弹时没有角度gydF4y2Ba

  • 没有阻力gydF4y2Ba

  • t=0时刻的高度为10米gydF4y2Ba

  • 以15米/秒的速度抛出gydF4y2Ba

推导gydF4y2Ba

定义恢复系数为gydF4y2Ba

CgydF4y2Ba rgydF4y2Ba =gydF4y2Ba vgydF4y2Ba bgydF4y2Ba -gydF4y2Ba vgydF4y2Ba 一个gydF4y2Ba /gydF4y2Ba ugydF4y2Ba 一个gydF4y2Ba -gydF4y2Ba ugydF4y2Ba bgydF4y2Ba

其中v是物体撞击前的速度,u是撞击后的速度。gydF4y2Ba

我们分解二阶微分方程gydF4y2Ba

dgydF4y2Ba 2gydF4y2Ba hgydF4y2Ba dgydF4y2Ba tgydF4y2Ba 2gydF4y2Ba =gydF4y2Ba -gydF4y2Ba ggydF4y2Ba

成gydF4y2Ba

dgydF4y2Ba hgydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba vgydF4y2Ba 被离散的gydF4y2Ba hgydF4y2Ba (gydF4y2Ba tgydF4y2Ba +gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba )gydF4y2Ba -gydF4y2Ba hgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba =gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

和gydF4y2Ba

dgydF4y2Ba vgydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba -gydF4y2Ba ggydF4y2Ba 被离散的gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba +gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba )gydF4y2Ba -gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba =gydF4y2Ba -gydF4y2Ba ggydF4y2Ba

我们将使用基本的一阶数值积分用正欧拉法。gydF4y2Ba

hgydF4y2Ba (gydF4y2Ba tgydF4y2Ba +gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba hgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba +gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba

vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba +gydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba -gydF4y2Ba ggydF4y2Ba δ.gydF4y2Ba tgydF4y2Ba

分析解决问题gydF4y2Ba

使用符号数学工具箱,我们可以分析地处理这个问题。这可以让我们更容易地解决某些问题,比如精确地确定球第一次着地的时间(下面)。gydF4y2Ba

声明我们的符号变量。gydF4y2Ba

信谊gydF4y2BaggydF4y2BatgydF4y2BaH (t)gydF4y2Bah_0gydF4y2Bav_0gydF4y2Ba

分开二阶微分方程gydF4y2Ba dgydF4y2Ba 2gydF4y2Ba hgydF4y2Ba dgydF4y2Ba tgydF4y2Ba 2gydF4y2Ba =gydF4y2Ba -gydF4y2Ba ggydF4y2Ba 成gydF4y2Ba dgydF4y2Ba hgydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba vgydF4y2Ba 和gydF4y2Ba dgydF4y2Ba vgydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba -gydF4y2Ba ggydF4y2Ba .gydF4y2Ba

Dh = diff (H);H = 1, H = 1gydF4y2Ba
D2h (t) =gydF4y2Ba

∂gydF4y2Ba 2gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba HgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba =gydF4y2Ba ggydF4y2Ba

使用以下方法解决ODEgydF4y2BaDsolve.gydF4y2Ba:gydF4y2Ba

eqn = dsolve(D2h, H(0) = h_0, Dh(0) = v_0)gydF4y2Ba
eqn =gydF4y2Ba

ggydF4y2Ba tgydF4y2Ba 2gydF4y2Ba 2gydF4y2Ba +gydF4y2Ba vgydF4y2Ba 0gydF4y2Ba tgydF4y2Ba +gydF4y2Ba hgydF4y2Ba 0gydF4y2Ba

参数化探索抛物线轮廓的运动使用gydF4y2Ba潜艇gydF4y2Ba:gydF4y2Ba

Eqn = subs(Eqn, [h_0, v_0, g], [10,15, -9.81])gydF4y2Ba
eqn =gydF4y2Ba

-gydF4y2Ba 981gydF4y2Ba tgydF4y2Ba 2gydF4y2Ba 200.gydF4y2Ba +gydF4y2Ba 15gydF4y2Ba tgydF4y2Ba +gydF4y2Ba 10gydF4y2Ba

通过解决零,找到球击中地面的时间:gydF4y2Ba

假设(t> 0)thit =求解(eqn == 0)gydF4y2Ba
,越南=gydF4y2Ba

20.gydF4y2Ba 5gydF4y2Ba 26gydF4y2Ba 109.gydF4y2Ba +gydF4y2Ba 500gydF4y2Ba 327.gydF4y2Ba

可视化解决方案gydF4y2Ba

Fplot (eqn,[0 10]) ylim([0 25])gydF4y2Ba

图中包含一个轴对象。轴对象包含类型函数线的对象。gydF4y2Ba

使用可变精度算术格式化您的确切结果gydF4y2BavpagydF4y2Ba:gydF4y2Ba

disp ([gydF4y2Ba初始高度为10米,速度为15米/秒的球将在gydF4y2Bachar (vpa(,越南,4))gydF4y2Ba“秒”。gydF4y2Ba])gydF4y2Ba
初始高度为10m,速度为15m/s的球以3.621秒落地。gydF4y2Ba

用数值方法解决问题gydF4y2Ba

设置仿真参数gydF4y2Ba

球的性质gydF4y2Ba

c_bounce =。9;gydF4y2Ba%弹跳恢复系数;完全归还是1gydF4y2Ba

仿真特性gydF4y2Ba

重力= 9.8;gydF4y2Ba%重力的加速度(m / s)gydF4y2Baheight_0 = 10;gydF4y2Ba% t=0 (m)时初始高度gydF4y2BaVelocity_0 = 15;gydF4y2Ba% t=0时初速度(m/s)gydF4y2Ba

声明模拟时间步长gydF4y2Ba

dt = 0.05;gydF4y2Ba%动画时间gydF4y2Bat_final = 25;gydF4y2Ba%模拟时段(s)gydF4y2Bat = 0: dt: t_final;gydF4y2Ba%时间间隔gydF4y2BaN =长度(t);gydF4y2Ba%迭代次数gydF4y2Ba

初始化模拟量gydF4y2Ba

h = [];gydF4y2Ba球高随时间的函数(m)gydF4y2Bav = [];gydF4y2Ba球的速度(m/s)与时间(m/s)的函数gydF4y2Bah (1) = height_0;v (1) = velocity_0;gydF4y2Ba

模拟弹跳的球(我们将使用正向欧拉的基本一阶数值积分):gydF4y2Ba

为gydF4y2Bai = 1: n - 1 v (i + 1) =(我)重力* dt;h (i + 1) = h (i) + v (i) * dt;gydF4y2Ba当球弹起时(高度小于0),gydF4y2Ba倒转速度并重新计算位置。gydF4y2Ba%使用恢复系数gydF4y2Ba如果gydF4y2Bah(i + 1)<0 v(i)=  -  v(i)* c_b盎司;v(i + 1)= v(i)-gravity * dt;h(i + 1)= 0 + v(i)* dt;gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

可视化并验证仿真gydF4y2Ba

情节(t,h,gydF4y2Ba'o'gydF4y2Ba) 抓住gydF4y2Ba在gydF4y2Bafplot (eqn 10[0])标题(gydF4y2Ba高度随时间的gydF4y2Ba) ylim([0 25])保持gydF4y2Ba从gydF4y2Ba

图中包含一个轴对象。标题为高度随时间变化的轴对象包含两个类型为line和functionline的对象。gydF4y2Ba

情节(t, v)标题(gydF4y2Ba速度随着时间的gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。标题为Velocity over time的轴对象包含一个类型为line的对象。gydF4y2Ba

使用Analytics验证数字gydF4y2Ba

将您的分析结果与数字结果进行比较。gydF4y2Ba

提醒一下,撞击发生的时间是:gydF4y2Ba

disp ([gydF4y2Ba初始高度为10米,速度为15米/秒的球将在gydF4y2Bachar (vpa(,越南,4))gydF4y2Ba“秒”。gydF4y2Ba])gydF4y2Ba
初始高度为10m,速度为15m/s的球以3.621秒落地。gydF4y2Ba

从数值模拟中我们可以找到最接近的数值在时gydF4y2Ba hgydF4y2Ba (gydF4y2Ba tgydF4y2Ba 我gydF4y2Ba )gydF4y2Ba ≈gydF4y2Ba 0gydF4y2Ba

我= CEIL(DOUBLE(THIT / DT));T([I-1 I I + 1])gydF4y2Ba
ans =gydF4y2Ba1×3gydF4y2Ba3.5500 3.6000 3.6500.gydF4y2Ba
情节(t,h,gydF4y2Ba'o'gydF4y2Ba) 抓住gydF4y2Ba在gydF4y2Bafplot (eqn 10[0])情节(t([张我+ 1]),h([张我+ 1]),gydF4y2Ba“* R”gydF4y2Ba)标题(gydF4y2Ba高度随时间的gydF4y2Ba) xlim([0 5]) ylim([0 25])保持gydF4y2Ba从gydF4y2Ba

图中包含一个轴对象。带有标题高度随时间的轴对象包含3个类型的线,函数线。gydF4y2Ba