文档

探索模型的求解器雅可比结构

该示例展示了如何使用Simulink®来探索求解器雅可比稀金宝app疏模式,以及求解器雅可比稀疏模式与物理系统组件之间的依赖关系之间的联系。使用金宝appSimulink模型对放置在自由移动基座上的三个节拍器的同步进行建模。

求解雅可比矩阵

一般来说,Simulink模型的连续部分可以写成:金宝app

$ $ & # xA;左\ \{{\开始{数组}{* c {20}} & # xA;{\dot x = f(x,u)} \\
{y = g(x,u)} \\
\end{array}} \right.
$$

,在那里$$ x $$连续状态是和吗$$ u $$是输入。$$ y $$是输出。

矩阵:

$$ J_x = \frac{{\偏f}}{{\偏x}} $$

称为系统解算器雅可比矩阵。当使用隐式ODE求解器求解系统方程时,$$ J_x $$需要时进行计算。例如,一阶ode集合的雅可比矩阵

$ $ & # xA;左\ \{{\开始{数组}{* c {20}} & # xA;{\dot x_1 = x_1 x_2} \\
{\点x_2 = x_2} \ \ & # xA; \{数组}}结束\对强生的# xA; $ $

$ $ & # xA; J_x左= \[{\开始{数组}{* c {20}} & # xA;{\frac{{\partial f_1}}{{\partial x_1}}} &{\压裂{{\ f部分}}{{\部分x_2  }}}  \\&# xA;{\frac{{\partial f_2}}{{\partial x_1}}} &{\压裂{{\部分₂}}{{\部分x_2  }}}  \\&# xA;结束\{数组}}\]= \左右[{\开始{数组}{* c {20}} & # xA;{x_2} &{x_1} \\
0,1 \\
\end{array}} \right]
$$

您可以将求解器雅可比矩阵转换为布尔稀疏矩阵,方法是将每个非零元素表示为1,并将每个始终为零(硬零)的元素表示为0。例如,布尔矩阵对应于上面的雅可比矩阵$$ J_x $$是:

$ $ & # xA; J_ {xp} =左\[{\开始数组{}{* c {20}} & # xA;1,1 \ \ & # xA;0,1 \\
\end{array}} \right],
$$

在哪里$$ J_{xp} $$称为求解雅可比模式矩阵。

求解器雅可比模式矩阵可直接由原系统方程通过以下规则生成:

$ $ & # xA; J_ {xp}左(i, j) = \ \{{\开始数组{}{* c {20}} & # xA;{1 ~ {\ rm}如果~ {\ rm} x_j ~ {\ rm} ~ {\ rm}明确~ {\ rm} ~ {\ rm}用来计算~ ~ {\ rm} {rm \} \点x_i} \ \ & # xA;{0 ~ {\ rm                 } 否则}\ \ & # xA; \{数组}}\结束对强生的# xA; $ $

正如你所看到的,求解雅可比模式矩阵实际上代表了状态变量和它们的导数之间的依赖关系。如果计算$$ \dot x_i $$需要的值$$ x_j $$,则存在依赖关系$$ \dot x_i \leftarrow x_j $$$$ J_{xp} (i,j) = 1 $$.这些依赖关系是由系统的物理性质决定的,因此通过研究求解器雅可比矩阵,您可以探索由模型表示的物理系统的物理结构。金宝appSimulink为用户提供了求解雅可比模式矩阵的api。下面展示了如何访问求解器雅可比模式并使用它来研究模型。

模式和依赖:节拍器的同步

同步被定义为振荡对象由于弱相互作用而产生的节奏调整。荷兰科学家克里斯蒂安·惠更斯(Christiaan Huygens)是摆钟[2]的发明者,他报告了第一批有科学记录的同步观测结果。惠更斯发现,由椅子支撑的同一根横梁上的两个钟摆在一段时间后会朝着完全相反的方向摆动。金宝app图1显示了本例中使用的类似设置。

图1:在这个例子中使用的设置:三个节拍器在一个移动的基础上

系统建模

该物理系统的模型可分为两部分:

  • 节拍器机制

  • 移动基地

节拍器机制

参考图1,单个节拍器在运动基座上的动态方程可推导为[3]:

$ $ & # xA; \ underbrace {\ ddot \θ}_{角加速度~}+ & # xA; \ underbrace{\压裂{{著}}{J} \罪\θ}_{引力~项}+ & # xA; \ underbrace{左\压裂{b} {J} \[{\离开({\压裂{\θ}{{\θ_r}}} \右)^ 2 - 1}& # xA;正确\]\点\θ}_{阻尼式擒纵机构~和~ ~项}+ \ underbrace& # xA;{\离开({\压裂{{rm \ cosθ\}}{J}} \) \ ddot& # xA; x} _{耦合~惯性~力~项}= 0 ~~~~~~~~~~( eq.1) & # xA; $ $

前两项描述的是一个没有摩擦的单摆。第三项用于近似擒纵*和节拍器的任何阻尼。这一项增加了角速度$$ ~\theta < \theta_{0} $$然后减少$$ \theta >\theta _{0} $$[3]。最后一项是运动基座的耦合效应,用惯性力表示。

移动基地

假设基座的运动是无摩擦的,则系统的质心不会改变,可以推导出:

$ $ & # xA; x = - \压裂{m} {{m + 3 m}} r(罪罪\ \θ_1 + \ \θ_2 + \罪# xA; \θ_3),& # xA; $ $

在哪里$$ m $$底的质量是和吗$$ m $$是钟摆的质量。

然后将等式1改为:

$ $ & # xA; \ ddot x = - \压裂{m} {{m + 3 m}}左r \ [{\ ddot \θ_1 \因为\θ_1 - # xA;罪\ \θ_1(点\ \θ_1)^ 2 + \ ddot \θ_2 \ cosθ_2 \ & # xA;罪\ \θ_2(点\ \θ_2)^ 2 + \ ddot \θ_3 \ cosθ_3 \ & # xA;罪\ \θ_3(θ_3 \点\)^ 2}\ ]~~~~~~~~~~( eq.2) & # xA; $ $

下面展示了使用Simulink实现的上述系统。金宝app该模型包含三个节拍器子系统和移动基座。

图2:节拍器系金宝app统的Simulink模型

该系统的仿真显示了一个有趣的现象:同步。结果表明,三个初始相位角不同的节拍器最终会相互同步。图3显示了模拟结果。同步的主要原因是将所有节拍器连接在一起的移动基座。这种物理联系可以从每个节拍器的动态方程中观察到。

此外,这种物理联系也可以从该模型的求解器雅可比模式中观察到。下面的MATLAB®代码展示了如何获得求解器雅可比模式。

图3:同步节拍器

得到求解器雅可比模式的步骤

% 1。将求解器设置为任意隐式求解器
set_param(mdl, 'Solver', 'ode15 ');
% 2。设置求解器雅可比方法为稀疏摄动*
set_param(mdl, 'SolverJacobianMethodControl', ' sparse摄动');
% 3。得到求解器雅可比矩阵对象。
J = 金宝appSimulink.Solver.getSlvrJacobianPattern(mdl);disp('J = ');disp (J);
% 4。用图形显示该模式。使用方法
J.show;
% 5。使用给定的状态名称和其他信息探索模式
statename = j.s statename;disp(' statnames = ');disp (stateNames);

您将看到的结果如下:

J = SlvrJacobianPattern with properties: Jpattern: [8×8 double] numColGroup: 6 colGroup: [8×1 double] statename: {8×1 cell} blockHandles:[8×1 double] statename = 'sldemo_metro/移动基地/Integrator1' '(sldemo_metro/Metronome1/Integrator2).(Theta1)' '(sldemo_metro/Metronome2/Integrator2).(Theta2)' '(sldemo_metro/Metronome3/Integrator2).(Theta3)' '(sldemo_metro/Metronome3/Integrator1).(Thetadot_3)' '(sldemo_metro/Metronome2/Integrator1).(Thetadot_2)' '(sldemo_metro/Metronome1/Integrator1).(Thetadot_1)' '(sldemo_metro/Metronome1/Integrator1).(Thetadot_1)' ' 'sldemo_metro/移动基地/Integrator1'

图4:求解雅可比矩阵

求解器雅可比模式对象的属性

求解雅可比矩阵J是一个对象。它包含以下属性:

Jpattern:一个稀疏的mxArray,它是雅可比模式。
numColGroup:列组个数。
colgroup:稀疏模式矩阵的列划分。
stateNames:包含每个状态的状态名的单元格数组。
blockHandles:块句柄老板每一个状态。

求解雅可比模式的研究

参考图4。首先,该模型的求解器雅可比矩阵是稀疏的,非零元素个数为28。其次,列组数为6;小于状态数8。

第1-4行表示以下依赖项:

$ $ & # xA;开始\{数组}{1}& # xA;\dot x_1 \leftarrow x_8 (\dot {baseposition} \leftarrow {basepseed}) \\
\dot x_2 \leftarrow x_7 (\dot {Theta1} \leftarrow {thetaot1}) \\
\dot x_3 \leftarrow x6 (\dot {Theta2} \leftarrow {Theta2}) \\
\dot x_4 \leftarrow x_5 (\dot {Theta3} \leftarrow {thetaot3}) \\
结束\{数组}& # xA; $ $

这些关系很明显,因为速度是位置的导数。第5-8行显示了以下关系:

$ $ & # xA;开始\{数组}{1}& # xA;\dot x5 \leftarrow x_{2 - 7} \\
\dot x6 \leftarrow x_{2 - 7} \\
\dot x7 \leftarrow x_{2 - 7} \\
\dot x8 \leftarrow x_{2 - 7} \\
结束\{数组}& # xA; $ $

这些关系表明,要计算节拍器的角加速度或运动基座的加速度,需要节拍器的角位置和角速度,而不需要基座的位置和速度。这些关系可以通过直接研究式(1)和式(2)得到。

结论

求解雅可比模式是研究状态变量导数与状态变量之间数据依赖关系的工具。这些关系通常反映了物理系统中的某些物理耦合。通过使用提供的工具,您可以发现与Simulink模型相关的这些关系,即使没有物理模型的原始动态方程。金宝app

参考文献

Arkady Pikosvky, Michael Rosenblum和Jurgen Kurths。同步。剑桥大学出版社,2001年。

[10] Ward T. Oud,同步节拍器的设计与实验结果,受Christiaan Huygens启发,硕士论文,埃因霍温理工大学,2006。

[10] James Pantaleone,《美国物理杂志》,第70卷,第10期,第992-1000页,2002。

  • 擒纵装置是一套驱动节拍器的装置。有关更多详细信息,请参阅[2]。

这个话题有帮助吗?