主要内容GydF4y2Ba

模拟一个摆的周期摆动的运动GydF4y2Ba

此示例显示如何使用符号数学工具箱™模拟简单摆的运动。导出摆锤的运动方程,然后在数值上分析地求解方程,以便以任何角度进行数字。GydF4y2Ba

第一步:推导运动方程GydF4y2Ba

摆是一个遵循微分方程的简单机械系统。钟摆最初是在垂直位置静止的。当钟摆移动一个角度时GydF4y2Ba θGydF4y2Ba 释放后,重力将它拉回静止位置。它的动量使它超冲并形成一个角度GydF4y2Ba -GydF4y2Ba θGydF4y2Ba (如果没有摩擦力)等等。由于重力,沿摆运动的恢复力为GydF4y2Ba -GydF4y2Ba mGydF4y2Ba GGydF4y2Ba 罪GydF4y2Ba θGydF4y2Ba .因此,根据牛顿第二定律,质量乘以加速度一定等于GydF4y2Ba -GydF4y2Ba mGydF4y2Ba GGydF4y2Ba 罪GydF4y2Ba θGydF4y2Ba .GydF4y2Ba

Syms.GydF4y2BamGydF4y2Ba一种GydF4y2BaGGydF4y2Baθ(t)GydF4y2BaEqn = m * a == -m * g * sin(θ)GydF4y2Ba
EQN(T)=GydF4y2Ba
                 
                  
                   
                    
                     
                      
                       
                        一种GydF4y2Ba
                       
                       
                       
                        mGydF4y2Ba
                      
                     
                     
                      =GydF4y2Ba
                     
                      
                       
                        -GydF4y2Ba
                       
                        
                         
                          GGydF4y2Ba
                         
                         
                         
                          mGydF4y2Ba
                         
                         
                         
                          
                           
                            罪GydF4y2Ba
                          
                          
                           
                            (GydF4y2Ba
                           
                            
                             
                              
                               
                                θGydF4y2Ba
                              
                              
                               
                                (GydF4y2Ba
                               
                                
                                 
                                  T.GydF4y2Ba
                                
                               
                               
                                )GydF4y2Ba
                              
                             
                            
                           
                           
                            )GydF4y2Ba
                          
                         
                        
                       
                      
                     
                    
                   
                  
                 

对于一个有长度的摆GydF4y2Ba R.GydF4y2Ba ,摆动轴的加速度等于角度加速时间GydF4y2Ba R.GydF4y2Ba .GydF4y2Ba

一种GydF4y2Ba =GydF4y2Ba R.GydF4y2Ba D.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba 2GydF4y2Ba .GydF4y2Ba

代替GydF4y2Ba 一种GydF4y2Ba 通过使用GydF4y2BasubsGydF4y2Ba.GydF4y2Ba

Syms.GydF4y2BaR.GydF4y2Baeqn = subs(eqn,a,r * diff(theta,2))GydF4y2Ba
EQN(T)=GydF4y2Ba

mGydF4y2Ba R.GydF4y2Ba ∂GydF4y2Ba 2GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba -GydF4y2Ba GGydF4y2Ba mGydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba

隔离角度加速度GydF4y2BaeqnGydF4y2Ba通过使用GydF4y2Ba隔离GydF4y2Ba.GydF4y2Ba

EQN =孤立(EQN,Diff(Theta,2))GydF4y2Ba
eqn =GydF4y2Ba

∂GydF4y2Ba 2GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba -GydF4y2Ba GGydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba R.GydF4y2Ba

收集常数GydF4y2Ba GGydF4y2Ba 和GydF4y2Ba R.GydF4y2Ba 进入一个参数,这也被称为GydF4y2Ba固有频率GydF4y2Ba.GydF4y2Ba

ωGydF4y2Ba 0.GydF4y2Ba =GydF4y2Ba GGydF4y2Ba R.GydF4y2Ba .GydF4y2Ba

Syms.GydF4y2Baomega_0GydF4y2Baeqn =潜艇(eqn, g / r, omega_0 ^ 2)GydF4y2Ba
eqn =GydF4y2Ba

∂GydF4y2Ba 2GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba -GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba 2GydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba

第二步:线性化运动方程GydF4y2Ba

运动方程是非线性的,因此难以分析解决。假设角度小并且通过使用泰勒膨胀来线性化方程式GydF4y2Ba 罪GydF4y2Ba θGydF4y2Ba .GydF4y2Ba

Syms.GydF4y2BaXGydF4y2Ba约=泰勒(sin (x), x,GydF4y2Ba“秩序”GydF4y2Ba2);约=潜艇(大约x,θ(t))GydF4y2Ba
约=GydF4y2Ba
                 
                  
                   
                    
                     
                      θGydF4y2Ba
                    
                    
                     
                      (GydF4y2Ba
                     
                      
                       
                        T.GydF4y2Ba
                      
                     
                     
                      )GydF4y2Ba
                    
                   
                  
                 

运动方程变为线性方程。GydF4y2Ba

EQNLINEAR =潜艇(EQN,SIN(THETA(T)),约)GydF4y2Ba
eqnLinear =GydF4y2Ba

∂GydF4y2Ba 2GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba -GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba 2GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba

第三步:解析解运动方程GydF4y2Ba

解决方程GydF4y2Baeqnlinear.GydF4y2Ba通过使用GydF4y2BadsolveGydF4y2Ba.将初始条件指定为第二个参数。假设简化了解决方案GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba 是真实的使用GydF4y2Ba认为GydF4y2Ba.GydF4y2Ba

Syms.GydF4y2Batheta_0GydF4y2Batheta_t0GydF4y2Batheta_t = diff(θ);Cond = [theta(0) == theta_0, theta_t(0) == theta_t0];假设(omega_0GydF4y2Ba“真实”的GydF4y2Ba)Thetasol(t)= dsolve(eqnlinear,cond)GydF4y2Ba
thetaSol (t) =GydF4y2Ba

θGydF4y2Ba 0.GydF4y2Ba 因为GydF4y2Ba (GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba +GydF4y2Ba θGydF4y2Ba T0.GydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba

第4步:物理意义GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba

这个词GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba T.GydF4y2Ba 被称为GydF4y2Ba阶段GydF4y2Ba.cos和sin函数每次都重复GydF4y2Ba 2GydF4y2Ba πGydF4y2Ba .需要时间来改变GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba T.GydF4y2Ba 经过GydF4y2Ba 2GydF4y2Ba πGydF4y2Ba 叫做时间段。GydF4y2Ba

T.GydF4y2Ba =GydF4y2Ba 2GydF4y2Ba πGydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba =GydF4y2Ba 2GydF4y2Ba πGydF4y2Ba R.GydF4y2Ba GGydF4y2Ba .GydF4y2Ba

的时间段GydF4y2Ba T.GydF4y2Ba 与钟摆长度的平方根成正比它与质量无关。对于线性运动方程,时间周期不依赖于初始条件。GydF4y2Ba

第5步:绘图摆动运动GydF4y2Ba

用小角度近似画出钟摆的运动曲线。GydF4y2Ba

定义物理参数:GydF4y2Ba

  • 引力加速度GydF4y2Ba GGydF4y2Ba =GydF4y2Ba 9.GydF4y2Ba .GydF4y2Ba 8.GydF4y2Ba 1GydF4y2Ba 米/秒GydF4y2Ba 2GydF4y2Ba

  • 摆的长度GydF4y2Ba R.GydF4y2Ba =GydF4y2Ba 1GydF4y2Ba mGydF4y2Ba

gValue = 9.81;右值= 1;omega_0Value =√gValue /右值);T = 2 *π/ omega_0Value;GydF4y2Ba

设置初始条件。GydF4y2Ba

theta_0Value = 0.1 *π;GydF4y2Ba%解决方案仅对小角度有效。GydF4y2Batheta_t0value = 0;GydF4y2Ba最初休息的%。GydF4y2Ba

将物理参数和初始条件替换为一般解决方案。GydF4y2Ba

vars = [omega_0 theta_0 theta_t0];值= [omega_0value theta_0value theta_t0value];thetasolplot = subs(θ,var,值);GydF4y2Ba

绘制谐波摆动运动。GydF4y2Ba

fplot(Thetasolplot(t * t)/ pi,[0 5]);网格GydF4y2Ba在GydF4y2Ba;标题(GydF4y2Ba'谐波摆动运动'GydF4y2Ba);Xlabel(GydF4y2Ba't / t'GydF4y2Ba);ylabel(GydF4y2Ba'\ theta / \ pi'GydF4y2Ba);GydF4y2Ba

图中包含一个轴对象。具有标题谐波摆动运动的轴对象包含类型函数线的对象。GydF4y2Ba

求出解后GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba ,可视化摆动的运动。GydF4y2Ba

x_pos =罪(thetaSolPlot);y_pos = cos (thetaSolPlot);fanimator (@fplot x_pos y_pos,GydF4y2Ba“柯”GydF4y2Ba那GydF4y2Ba'markerfacecolor'GydF4y2Ba那GydF4y2Ba“k”GydF4y2Ba那GydF4y2Ba'AnimationRange'GydF4y2Ba[0 5 * T]);抓住GydF4y2Ba在GydF4y2Ba;Fanimator(@(t)绘图([0 x_pos(t)],[0y_pos(t)],GydF4y2Ba“k -”GydF4y2Ba),GydF4y2Ba'AnimationRange'GydF4y2Ba[0 5 * T]);fanimator (@ (t)文本(-0.3,0.3,GydF4y2Ba计时器:“GydF4y2Ba+ num2str (t, 2) +GydF4y2Ba“S”GydF4y2Ba),GydF4y2Ba'AnimationRange'GydF4y2Ba[0 5 * T]);GydF4y2Ba

图中包含一个轴对象。axis对象包含3个类型参数化的对象functionline, line, text。GydF4y2Ba

输入的命令GydF4y2Ba那里GydF4y2Ba播放摆动行动的动画。GydF4y2Ba

步骤6:确定非线性摆运动使用恒定的能量路径GydF4y2Ba

为了理解摆锤的非线性运动,通过使用总能量方程来可视化摆路径。总能量是保守的。GydF4y2Ba

E.GydF4y2Ba =GydF4y2Ba 1GydF4y2Ba 2GydF4y2Ba mGydF4y2Ba R.GydF4y2Ba 2GydF4y2Ba (GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba DT.GydF4y2Ba )GydF4y2Ba 2GydF4y2Ba +GydF4y2Ba mGydF4y2Ba GGydF4y2Ba R.GydF4y2Ba (GydF4y2Ba 1GydF4y2Ba -GydF4y2Ba 因为GydF4y2Ba θGydF4y2Ba )GydF4y2Ba

使用三角恒等式GydF4y2Ba 1GydF4y2Ba -GydF4y2Ba 因为GydF4y2Ba θGydF4y2Ba =GydF4y2Ba 2GydF4y2Ba 罪GydF4y2Ba 2GydF4y2Ba (GydF4y2Ba θGydF4y2Ba /GydF4y2Ba 2GydF4y2Ba )GydF4y2Ba 和的关系GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba =GydF4y2Ba GGydF4y2Ba /GydF4y2Ba R.GydF4y2Ba 改写成比例的能量。GydF4y2Ba

E.GydF4y2Ba mGydF4y2Ba R.GydF4y2Ba 2GydF4y2Ba =GydF4y2Ba 1GydF4y2Ba 2GydF4y2Ba [GydF4y2Ba (GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba DT.GydF4y2Ba )GydF4y2Ba 2GydF4y2Ba +GydF4y2Ba (GydF4y2Ba 2GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba 罪GydF4y2Ba θGydF4y2Ba 2GydF4y2Ba )GydF4y2Ba 2GydF4y2Ba ]GydF4y2Ba

由于能量守恒,摆的运动可以用相空间中恒定的能量路径来描述。相空间是一个具有坐标的抽象空间GydF4y2Ba θGydF4y2Ba 和GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba /GydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba .使用以下方法可视化这些路径GydF4y2BafcontourGydF4y2Ba.GydF4y2Ba

Syms.GydF4y2Baθ.GydF4y2Batheta_t.GydF4y2Baomega_0GydF4y2BaE(θ,theta_t omega_0) = (1/2) * (theta_t ^ 2 + (2 * omega_0 * sin(θ/ 2))^ 2);Eplot(theta, theta_t) = sub (E,omega_0,omega_0Value);图;= fcontour(Eplot(pi*theta, 2*omega_0Value*theta_t), 2*[-1 1 -1],GydF4y2Ba......GydF4y2Ba“线宽”GydF4y2Ba2,GydF4y2Ba“LevelList”GydF4y2Ba0:5:50,GydF4y2Ba“MeshDensity”GydF4y2Ba1 + 2 ^ 8);网格GydF4y2Ba在GydF4y2Ba;标题(GydF4y2Ba相空间中的能量等高线(\theta vs. \theta_t)GydF4y2Ba);Xlabel(GydF4y2Ba'\ theta / \ pi'GydF4y2Ba);ylabel(GydF4y2Ba“\ theta_t / 2 \ omega_0”GydF4y2Ba);GydF4y2Ba

图中包含一个轴对象。坐标轴对象与标题C o n s t n t空白E n E r g y空白C o n t o u r s空白我n空白P h s E空白s P v C E空白(空白θ空白。(t基线空白)包含类型函数轮廓的对象。GydF4y2Ba

能量等高线是对称的GydF4y2Ba θGydF4y2Ba 轴和GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba /GydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba 轴,并且是周期性的GydF4y2Ba θGydF4y2Ba 轴。图中显示了两个截然不同的行为区域。GydF4y2Ba

等高线图上较低的能量靠近它们自己。钟摆在两个最大角度和速度之间来回摆动。摆的动能不足以克服引力能,使摆作一个完整的回路。GydF4y2Ba

轮廓图的较高能量不靠近自己。摆锤总是在一个角度方向上移动。摆锤的动能足以克服重力能量并使摆锤能够制造全环。GydF4y2Ba

第七步:解非线性运动方程GydF4y2Ba

运动的非线性方程是二阶微分方程。用使用的数字地解决这些方程GydF4y2Ba数值GydF4y2Ba解算器。因为GydF4y2Ba数值GydF4y2Ba只接受一阶系统,将系统简化为一阶系统。然后,生成作为输入的函数句柄GydF4y2Ba数值GydF4y2Ba.GydF4y2Ba

把二阶ODE写成一阶ODE的方程组。GydF4y2Ba

Syms.GydF4y2Baθ(t)GydF4y2Batheta_t(t)GydF4y2Baomega_0GydF4y2Baeqs = [diff(theta)== theta_t;差异(theta_t)== -omega_0 ^ 2 * sin(θ)]GydF4y2Ba
eqs(t)=GydF4y2Ba

(GydF4y2Ba ∂GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba ∂GydF4y2Ba ∂GydF4y2Ba T.GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba =GydF4y2Ba -GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba 2GydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba )GydF4y2Ba

eqs = subs(eqs,omega_0,omega_0value);vars =θ,theta_t];GydF4y2Ba

找到质量矩阵GydF4y2BamGydF4y2Ba方程组和方程的右边GydF4y2BaFGydF4y2Ba.GydF4y2Ba

[M F] = massMatrixForm(方程式一样,var)GydF4y2Ba
M =GydF4y2Ba

(GydF4y2Ba 1GydF4y2Ba 0.GydF4y2Ba 0.GydF4y2Ba 1GydF4y2Ba )GydF4y2Ba

f =GydF4y2Ba

(GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba -GydF4y2Ba 981.GydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba One hundred.GydF4y2Ba )GydF4y2Ba

mGydF4y2Ba和GydF4y2BaFGydF4y2Ba请参阅此表格。GydF4y2Ba

mGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba 那GydF4y2Ba XGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba DX.GydF4y2Ba DT.GydF4y2Ba =GydF4y2Ba FGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba 那GydF4y2Ba XGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba .GydF4y2Ba

为了简化进一步的计算,以这种形式重写系统GydF4y2Ba D.GydF4y2Ba XGydF4y2Ba /GydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba =GydF4y2Ba FGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba 那GydF4y2Ba XGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba .GydF4y2Ba

f = m \ fGydF4y2Ba
f =GydF4y2Ba

(GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba -GydF4y2Ba 981.GydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba (GydF4y2Ba T.GydF4y2Ba )GydF4y2Ba )GydF4y2Ba One hundred.GydF4y2Ba )GydF4y2Ba

转变GydF4y2BaFGydF4y2Ba来一个MATLAB函数的处理用GydF4y2Ba助手GydF4y2Ba.生成的函数句柄是MATLAB ode求解器的输入GydF4y2Ba数值GydF4y2Ba.GydF4y2Ba

f = odeFunction(f, var)GydF4y2Ba
f =GydF4y2Bafunction_handle具有值:GydF4y2Ba@ (t, in2) [in2(2:);罪(in2(1:))。* 2./1.0 (-9.81 e + e + 2))GydF4y2Ba

步骤8:求解闭合能量轮廓的运动方程GydF4y2Ba

通过使用来解决闭合能量轮廓的odeGydF4y2Ba数值GydF4y2Ba.GydF4y2Ba

从能量轮廓图,封闭轮廓满足条件GydF4y2Ba θGydF4y2Ba 0.GydF4y2Ba =GydF4y2Ba 0.GydF4y2Ba 那GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba 0.GydF4y2Ba /GydF4y2Ba 2GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba ≤.GydF4y2Ba 1GydF4y2Ba .存储初始条件GydF4y2Ba θGydF4y2Ba 和GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba /GydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba 在变量GydF4y2BaX0.GydF4y2Ba.GydF4y2Ba

x0 = [0;1.99 * omega_0Value];GydF4y2Ba

指定一个0 ~ 10秒的时间间隔,用于查找解决方案。这个间隔允许钟摆经过两个完整的周期。GydF4y2Ba

tinit = 0;tfinal = 10;GydF4y2Ba

解决ODE。GydF4y2Ba

溶胶= ode45(f,[tinit tfinal],x0)GydF4y2Ba
Sols =.GydF4y2Ba结构体字段:GydF4y2Ba解决:'ode45' extdata: [1x1 struct] x: [0 3.2241e-05 1.9344e-04 9.9946e-04 0.0050 0.0252 0.1259…y: [2x45 double] stats: [1x1 struct] data: [1x1 struct]GydF4y2Ba

sols.y(1,:)GydF4y2Ba为角位移GydF4y2Ba θGydF4y2Ba 和GydF4y2Basols.y(2,:)GydF4y2Ba表示角速度GydF4y2Ba D.GydF4y2Ba θGydF4y2Ba /GydF4y2Ba D.GydF4y2Ba T.GydF4y2Ba .GydF4y2Ba

绘制闭路径解。GydF4y2Ba

图;yyaxis.GydF4y2Ba剩下GydF4y2Ba;绘图(Sols.x,Sols.y(1,:),GydF4y2Ba'-O'GydF4y2Ba);ylabel(GydF4y2Ba“\θ(rad)”GydF4y2Ba);yyaxis.GydF4y2Ba对GydF4y2Ba;plot(sols.x,sols.y(2,:),GydF4y2Ba'-O'GydF4y2Ba);ylabel(GydF4y2Ba'\ theta_t(rad / s)'GydF4y2Ba);网格GydF4y2Ba在GydF4y2Ba;标题(GydF4y2Ba“相空间中的闭合路径”GydF4y2Ba);Xlabel(GydF4y2Ba't(s)'GydF4y2Ba);GydF4y2Ba

图中包含一个轴对象。标题为Closed Path in Phase Space的轴对象包含两个类型为line的对象。GydF4y2Ba

可视化摆动的运动。GydF4y2Ba

x_pos = @(t)sin(deval(sols,t,1));y_pos = @(t)-cos(deval(sols,t,1));图;Fanimator(@(t)绘图(x_pos(t),y_pos(t),GydF4y2Ba“柯”GydF4y2Ba那GydF4y2Ba'markerfacecolor'GydF4y2Ba那GydF4y2Ba“k”GydF4y2Ba));抓住GydF4y2Ba在GydF4y2Ba;Fanimator(@(t)绘图([0 x_pos(t)],[0y_pos(t)],GydF4y2Ba“k -”GydF4y2Ba));Fanimator(@(t)文本(-0.3,1.5,GydF4y2Ba计时器:“GydF4y2Ba+ num2str (t, 2) +GydF4y2Ba“S”GydF4y2Ba));GydF4y2Ba

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

输入的命令GydF4y2Ba那里GydF4y2Ba播放摆动行动的动画。GydF4y2Ba

步骤9:开放能源金宝搏官方网站轮廓的解决方案GydF4y2Ba

用,求解开能轮廓的ODEGydF4y2Ba数值GydF4y2Ba.从能量轮廓图中,开放式轮廓满足条件GydF4y2Ba θGydF4y2Ba 0.GydF4y2Ba =GydF4y2Ba 0.GydF4y2Ba 那GydF4y2Ba θGydF4y2Ba T.GydF4y2Ba 0.GydF4y2Ba /GydF4y2Ba 2GydF4y2Ba ωGydF4y2Ba 0.GydF4y2Ba >GydF4y2Ba 1GydF4y2Ba .GydF4y2Ba

x0 = [0;2.01 * omega_0Value];sols = ode45(f, [tInit, tFinal], x0);GydF4y2Ba

绘制开放能量等高线的解。GydF4y2Ba

图;yyaxis.GydF4y2Ba剩下GydF4y2Ba;绘图(Sols.x,Sols.y(1,:),GydF4y2Ba'-O'GydF4y2Ba);ylabel(GydF4y2Ba“\θ(rad)”GydF4y2Ba);yyaxis.GydF4y2Ba对GydF4y2Ba;plot(sols.x,sols.y(2,:),GydF4y2Ba'-O'GydF4y2Ba);ylabel(GydF4y2Ba'\ theta_t(rad / s)'GydF4y2Ba);网格GydF4y2Ba在GydF4y2Ba;标题(GydF4y2Ba“阶段空间中的开放路径”GydF4y2Ba);Xlabel(GydF4y2Ba't(s)'GydF4y2Ba);GydF4y2Ba

图中包含一个轴对象。标题为“相空间中的开放路径”的轴对象包含两个类型为line的对象。GydF4y2Ba

可视化摆动的运动。GydF4y2Ba

x_pos = @(t)sin(deval(sols,t,1));y_pos = @(t)-cos(deval(sols,t,1));图;Fanimator(@(t)绘图(x_pos(t),y_pos(t),GydF4y2Ba“柯”GydF4y2Ba那GydF4y2Ba'markerfacecolor'GydF4y2Ba那GydF4y2Ba“k”GydF4y2Ba));抓住GydF4y2Ba在GydF4y2Ba;Fanimator(@(t)绘图([0 x_pos(t)],[0y_pos(t)],GydF4y2Ba“k -”GydF4y2Ba));Fanimator(@(t)文本(-0.3,1.5,GydF4y2Ba计时器:“GydF4y2Ba+ num2str (t, 2) +GydF4y2Ba“S”GydF4y2Ba));GydF4y2Ba

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

输入的命令GydF4y2Ba那里GydF4y2Ba播放摆动行动的动画。GydF4y2Ba