解决运动方程为指挥棒扔进空气gydF4y2Ba
这个例子解决了一个系统的常微分方程模型的动力学接力棒扔到空气中[1]。接力棒是建模为两个粒子质量gydF4y2Ba 和gydF4y2Ba 连接杆的长度gydF4y2Ba 。巴扔到空中,随后在垂直移动gydF4y2BaxygydF4y2Ba飞机的重力。杆形成一个角度gydF4y2Ba 水平和质量第一的坐标gydF4y2Ba 。有了这个配方,第二大规模的坐标gydF4y2Ba 。gydF4y2Ba
系统的运动方程得到了通过应用拉格朗日方程的三个坐标,gydF4y2Ba ,gydF4y2Ba ,gydF4y2Ba :gydF4y2Ba
为了解决这个系统在MATLAB®的常微分方程,方程代码到一个函数在调用解算器之前gydF4y2Ba数值gydF4y2Ba
。你可以包括所需的函数作为本地功能的文件(如在这里完成),或者拯救他们作为独立,在MATLAB上的一个目录路径命名文件。gydF4y2Ba
代码方程gydF4y2Ba
的gydF4y2Ba数值gydF4y2Ba
解算器需要写的方程形式gydF4y2Ba
,在那里gydF4y2Ba
每个坐标的一阶导数。在这个问题上,解决方案向量有六个部分:gydF4y2Ba
,gydF4y2Ba
的角gydF4y2Ba
及其一阶导数:gydF4y2Ba
使用这个符号,您可以重写运动方程完全的元素gydF4y2Ba :gydF4y2Ba
不幸的是,运动方程不符合形式gydF4y2Ba 所要求的解算器,因为有几个条款与一阶导数在左边。当这种情况发生时,您必须使用一个质量矩阵来表示方程的左边。gydF4y2Ba
使用矩阵符号,您可以重写运动方程作为一个六方程组使用质量矩阵形式gydF4y2Ba 。质量矩阵的线性组合表示一阶导数方程左边的乘积。在这种形态下,方程组变成了:gydF4y2Ba
从这个表达式,您可以编写一个函数,计算质量矩阵的非零元素。这个函数接受三个输入:gydF4y2Ba
和解决方案向量gydF4y2Ba
需要(你必须指定这些输入,即使他们不习惯在体内的功能),然后呢gydF4y2Ba
是一个可选的额外输入用来传递参数值。传递函数的参数问题,创造gydF4y2BaPgydF4y2Ba
作为一个结构,参数值,然后使用中描述的技术gydF4y2Ba参数化功能gydF4y2Ba通过结构功能作为一个额外的输入。gydF4y2Ba
函数gydF4y2BaM =质量(t, q, P)gydF4y2Ba%提取参数gydF4y2Bam1 = P.m1;m2 = P.m2;L = P.L;g =供货商;gydF4y2Ba%质量矩阵函数gydF4y2BaM = 0 (6,6);M (1,1) = 1;米(2,2)= m1 + m2;米(2,6)= m2 * L * sin (q (5));米(3、3)= 1;米(4,4)= m1 + m2;(4、6)= m2 * L * cos (q (5));米(5,5)= 1;2米(6日)= - l * sin (q (5));4米(6日)= L * cos (q (5)); M(6,6) = L^2;结束gydF4y2Ba
接下来,您可以编写一个函数的右边每个方程的系统gydF4y2Ba 。像质量矩阵函数,该函数有两个必需的输入gydF4y2Ba 和gydF4y2Ba 和一个可选的输入参数值gydF4y2Ba 。gydF4y2Ba
函数gydF4y2Badydt = f (t, q, P)gydF4y2Ba%提取参数gydF4y2Bam1 = P.m1;m2 = P.m2;L = P.L;g =供货商;gydF4y2Ba%方程来解决gydF4y2Badydt = [q(2)平方米* L * q (6) ^ 2 * cos (q(5))(4)平方米* L * q(6) ^ 2 *罪(q (5))——(m1 + m2) * g q (6) - g * L * cos (q (5))];gydF4y2Ba结束gydF4y2Ba
解方程组gydF4y2Ba
首先,创建一个结构gydF4y2BaPgydF4y2Ba
的参数值gydF4y2Ba
,gydF4y2Ba
,gydF4y2Ba
,gydF4y2Ba
通过设置适当命名的字段的结构。结构gydF4y2BaPgydF4y2Ba
传递给质量矩阵和颂歌函数作为一个额外的输入。gydF4y2Ba
P。米1=0。1; P.m2 = 0.1; P.L = 1; P.g = 9.81
P =gydF4y2Ba结构体字段:gydF4y2Bam1: 0.1000平方米:0.1000 L: 1 g: 9.8100gydF4y2Ba
创建一个向量和25分0和4之间的时间跨度集成。当你指定一个向量,gydF4y2Ba数值gydF4y2Ba
在请求的时间返回插入解决方案。金宝搏官方网站gydF4y2Ba
tspan = linspace (0、4、25);gydF4y2Ba
设置问题的初始条件。自巴在一个角度向上抛出,使用非零值的初始速度,gydF4y2Ba ,gydF4y2Ba ,gydF4y2Ba 。初始位置,接力棒开始于一个直立的位置gydF4y2Ba ,gydF4y2Ba ,gydF4y2Ba 。gydF4y2Ba
y0 = [0;4;P.L;20;-π/ 2;2);gydF4y2Ba
使用gydF4y2BaodesetgydF4y2Ba
创建一个选项结构质量矩阵函数的引用。自解算器预计质量矩阵函数只有两个输入,使用一个匿名函数传递的参数gydF4y2BaPgydF4y2Ba
从工作空间。gydF4y2Ba
选择= odeset (gydF4y2Ba“质量”gydF4y2Ba@ (t, q)质量(t, q, P));gydF4y2Ba
最后,解决方程组使用gydF4y2Ba数值gydF4y2Ba
这些输入:gydF4y2Ba
一个匿名函数的方程gydF4y2Ba
@ (t, q) f (t, q, P)gydF4y2Ba
向量gydF4y2Ba
tspangydF4y2Ba
次请求的解决方案gydF4y2Ba向量gydF4y2Ba
y0gydF4y2Ba
的初始条件gydF4y2Ba选择结构gydF4y2Ba
选择gydF4y2Ba
引用质量矩阵gydF4y2Ba
(t, q) =数值(@ (t, q) f (t, q, P), tspan, y0,选择);gydF4y2Ba
阴谋的结果gydF4y2Ba
的输出gydF4y2Ba数值gydF4y2Ba
包含运动方程的解决方案在金宝搏官方网站每个请求的时间步。检查结果,情节接力棒的运动。gydF4y2Ba
遍历每一行的解决方案,在每个时间步,情节接力棒的位置。不同的颜色两端的接力棒,这样您就可以看到它的旋转。gydF4y2Ba
图的标题(gydF4y2Ba运动的接力棒,解决了数值的gydF4y2Ba);轴([0 0 25]22日)gydF4y2Ba在gydF4y2Ba为gydF4y2Baj = 1:长度(t)θ=问(j, 5);X = q (j, 1);Y = q (j, 3);xvals = [X + P.L * cos(θ)];yvals = [Y Y + P.L * sin(θ)];情节(xvals、yvals xvals (1) yvals (1),gydF4y2Ba“罗”gydF4y2Baxvals (2) yvals (2),gydF4y2Ba“去”gydF4y2Ba)gydF4y2Ba结束gydF4y2Ba持有gydF4y2Ba从gydF4y2Ba
引用gydF4y2Ba
[1]井,敢。gydF4y2BaSchaum轮廓的理论和拉格朗日动力学问题:治疗的欧拉运动方程,汉密尔顿的方程和哈密顿原理gydF4y2Ba。Schaum大纲系列。纽约:Schaum酒吧。有限公司,1967年版。gydF4y2Ba
本地函数gydF4y2Ba
这里列出当地的辅助函数,ODE求解器调用计算解决方案。或者,您可以保存这些函数作为自己的文件在MATLAB上的一个目录路径。gydF4y2Ba
函数gydF4y2Badydt = f (t, q, P)gydF4y2Ba%方程来解决gydF4y2Ba%提取参数gydF4y2Bam1 = P.m1;m2 = P.m2;L = P.L;g =供货商;gydF4y2Ba% RHS方程组gydF4y2Badydt = [q(2)平方米* L * q (6) ^ 2 * cos (q(5))(4)平方米* L * q(6) ^ 2 *罪(q (5))——(m1 + m2) * g q (6) - g * L * cos (q (5))];gydF4y2Ba结束gydF4y2Ba% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -gydF4y2Ba函数gydF4y2BaM =质量(t, q, P)gydF4y2Ba%质量矩阵函数gydF4y2Ba%提取参数gydF4y2Bam1 = P.m1;m2 = P.m2;L = P.L;g =供货商;gydF4y2Ba%设置质量矩阵的非零元素gydF4y2BaM = 0 (6,6);M (1,1) = 1;米(2,2)= m1 + m2;米(2,6)= m2 * L * sin (q (5));米(3、3)= 1;米(4,4)= m1 + m2;(4、6)= m2 * L * cos (q (5));米(5,5)= 1;2米(6日)= - l * sin (q (5));4米(6日)= L * cos (q (5)); M(6,6) = L^2;结束gydF4y2Ba