Исследование якобиевой структуры модели решателя

Пример показывает, как использовать Simulink ®, чтобы исследовать шаблон якобианской разреженности решателя, и связь между шаблоном якобианской разреженности решателя и зависимостью между компонентами физической системы. Используется модель Simulink, которая моделирует синхронизацию трех метрономов, размещенных на свободной движущейся основе.

Якобианский шаблон решателя

В целом непрерывная часть модели Simulink может быть записана как:

$$
\left\{ {\begin{array}{*{20}c}
 {\dot x = f(x,u)} \\
 {y = g(x,u)} \\
\end{array}} \right.
$$

где$$ x $$ являются непрерывными состояниями и$$ u $$ являются входами.$$ y $$ являются выходами.

Матрица:

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

называется системным решателем Якобской матрицы. Когда неявный решатель ОДУ используется для решения системных уравнений,$$ J_x $$ его необходимо вычислить при необходимости. Для примера, якобианская матрица множества ОДУ первого порядка

$$
\left\{ {\begin{array}{*{20}c}
 {\dot x_1 = x_1 x_2 } \\
 {\dot x_2 = x_2 } \\
\end{array}} \right.
$$

является

$$
J_x = \left[ {\begin{array}{*{20}c}
 {\frac{{\partial f_1 }}{{\partial x_1 }}} & {\frac{{\partial f_1 }}{{\partial x_2 }}} \\
 {\frac{{\partial f_2 }}{{\partial x_1 }}} & {\frac{{\partial f_2 }}{{\partial x_2 }}} \\
\end{array}} \right] = \left[ {\begin{array}{*{20}c}
 {x_2 } & {x_1 } \\
 0 & 1 \\
\end{array}} \right]
$$

Можно преобразовать матрицу Якобиана решателя в логическую разреженную матрицу, представив каждый ненулевой элемент как 1, и каждый элемент, который всегда равен нулю (жесткий ноль) как 0. Для примера логическая матрица, соответствующая выше якобиану$$ J_x $$, является:

$$
J_{xp} = \left[ {\begin{array}{*{20}c}
 1 & 1 \\
 0 & 1 \\
\end{array}} \right],
$$

где$$ J_{xp} $$ называется решателем Матрица якобианского шаблона.

Матрица шаблона решателя Якобиана может быть сгенерирована непосредственно из уравнений исходной системы с помощью следующего правила:

$$
J_{xp} (i,j) = \left\{ {\begin{array}{*{20}c}
 {1~{\rm }if~{\rm }x_j~{\rm }is~{\rm }explicitly~{\rm }used~{\rm }to~{\rm }compute~{\rm }\dot x_i } \\
 {0~{\rm }otherwise} \\
\end{array}} \right.
$$

Как видим, матрица якобианского шаблона решателя фактически представляет зависимость между переменными состояния и их производными. Если при вычислении$$ \dot x_i $$ нужно значение, $$ x_j $$то существует зависимость и$$ \dot x_i \leftarrow x_j $$. $$ J_{xp} (i,j) = 1 $$Эти зависимости определяются физической природой системы, и, таким образом, путем изучения решателя Якобской матрицы, можно исследовать физическую структуру физической системы, представленной моделью. Simulink предоставляет API, чтобы пользователь мог получить матрицу якобианского шаблона решателя. Ниже показано, как получить доступ к шаблону якобиана решателя и использовать его для изучения модели.

Шаблон и зависимость: синхронизация метрономов

Синхронизация определяется как настройка ритмов колеблющихся объектов из-за их слабого взаимодействия [1]. Об одном из первых научно задокументированных наблюдений синхронизации сообщил голландский учёный Кристиаан Гюйгенс, изобретатель маятниковых часов [2]. Гюйгенс обнаружил, что два маятника, прикрепленных к одной и той же балке, поддерживаемой стульями, будут качаться в прямо противоположном направлении через некоторое время. Аналогичная установка, используемая в этом примере, показана на фигура.

Фигура 1: Настройка, используемая в этом примере: три метронома на движущейся основе

Моделирование системы

Модель этой физической системы может быть разделена на две части:

  • Механизм метрономов

  • Движущаяся основа

Механизм метрономов

Со ссылкой на фиг.1 динамические уравнения одного метронома на движущейся основе могут быть выведены как [3]:

$$
\underbrace {\ddot \theta }_{Angular~acceleration} +
\underbrace {\frac{{mrg}}{J}\sin \theta }_{Gravitational~term} +
\underbrace {\frac{b}{J}\left[ {\left( {\frac{\theta }{{\theta _r }}} \right)^2 - 1}
\right]\dot \theta }_{Escapement~and~damping~term} + \underbrace
{\left( {\frac{{rm\cos \theta }}{J}} \right)\ddot
x}_{Coupled~inertial~force~term} = 0~~~~~~~~~~(eq.1)
$$

Первые два члена описывают простой маятник без трения. Третий термин используется, чтобы аппроксимировать выход * и любое демпфирование метронома. Этот термин увеличивает скорость вращения для$$ ~\theta < \theta_{0} $$ и уменьшает ее для$$ \theta &#62; \theta _{0} $$ [3]. Последний член является связанным эффектом от движущейся основы точки зрения инерционной силы.

Движущаяся основа

Если предположить, что движение основы не имеет трения, то центр масс системы не изменится, и можно вывести следующее:

$$&#xA;x = - \frac{m}{{M + 3m}}r(\sin \theta _1 + \sin \theta _2 + \sin&#xA;\theta _3 ),&#xA;$$

где$$ M $$ - масса основы и$$ m $$ - масса маятника.

Тогда eq.1 можно изменить на:

$$&#xA;\ddot x = - \frac{m}{{M + 3m}}r\left[ {\ddot \theta _1 \cos \theta _1 -&#xA;\sin \theta _1 (\dot \theta _1 )^2 + \ddot \theta _2 \cos \theta _2 -&#xA;\sin \theta _2 (\dot \theta _2 )^2 + \ddot \theta _3 \cos \theta _3 -&#xA;\sin \theta _3 (\dot \theta _3 )^2 } \right]~~~~~~~~~~(eq.2)&#xA;$$

Ниже показана вышеописанная система, реализованная с использованием Simulink. Модель содержит три подсистемы метронома и движущуюся основу.

Фигура 2: Модель Simulink системы метрономов

Симуляция этой системы показывает интересное явление: Синхронизация. Это показывает, что все три метронома с различным начальным углом фазы в конечном счете синхронизируются друг с другом. Рисунок 3 показывает результаты симуляции. Основной причиной синхронизации является движущаяся основа, которая связывает все эти метрономы вместе. Это физическое соединение может наблюдаться из динамического уравнения каждого метронома.

Кроме того, это физическое соединение может также наблюдаться из якобианского шаблона решателя этой модели. Следующий код MATLAB ® показывает, как получить шаблон якобиана решателя.

Фигура 3: Синхронизированные метрономы

Шаги, чтобы получить якобианский шаблон решателя

% 1. Set the solver to be any implicit solver
   set_param(mdl, 'Solver', 'ode15s');
% 2. Set the solver Jacobian method to be Sparse perturbation *
   set_param(mdl, 'SolverJacobianMethodControl', 'SparsePerturbation');
% 3. Get the solver Jacobian object.
   J = Simulink.Solver.getSlvrJacobianPattern(mdl);
   disp('J = ');
   disp(J);
% 4. Show the pattern in a figure. use the method J.show
   J.show;
% 5. Explore the pattern with the given state name and other information
   stateNames = J.stateNames;
   disp('stateNames = ');
   disp(stateNames);

Результаты, которые вы увидите:

J = 
  SlvrJacobianPattern with properties:

        Jpattern: [8x8 double]
     numColGroup: 6
        colGroup: [8x1 double]
      stateNames: {8x1 cell}
    blockHandles: [8x1 double]

stateNames = 
    {'sldemo_metro/Moving base/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/Moving base/Integrator'               }

Фигура 4: Якобианский шаблон решателя

Свойства объекта якобианного шаблона решателя

Решатель якобиан шаблона J является объектом. Он содержит следующие свойства:

     Jpattern: A sparse mxArray which is the Jacobian pattern.
  numColGroup: Number of column groups.
     colgroup: A column partition of the sparse pattern matrix.
   stateNames: A cell array containing the state name of each state.
blockHandles: Block handles of the owner of each state.

Исследование якобианского шаблона решателя

Со ссылкой на фиг.4. Во-первых, решатель Jacobian этой модели разрежен, и количество ненулевого элемента равно 28. Во-вторых, число групп столбцов составляет 6; меньше, чем количество состояний 8.

Строка 1-4 указывает следующие зависимости:

$$&#xA; \begin{array}{l}&#xA; \dot x_1 \leftarrow x_8 (\dot {baseposition} \leftarrow {basepseed}) \\&#xA; \dot x_2 \leftarrow x_7 (\dot {Theta1} \leftarrow {Thetadot1} ) \\&#xA; \dot x_3 \leftarrow x_6 (\dot {Theta2} \leftarrow {Thetadot2} ) \\&#xA; \dot x_4 \leftarrow x_5 (\dot {Theta3} \leftarrow {Thetadot3}) \\&#xA; \end{array}&#xA;$$

Эти отношения ясны, поскольку скорость является производной от положения. Строка 5-8 показывает следующие зависимости:

$$&#xA; \begin{array}{l}&#xA; \dot x_5 \leftarrow x_{2 - 7} \\&#xA; \dot x_6 \leftarrow x_{2 - 7} \\&#xA; \dot x_7 \leftarrow x_{2 - 7} \\&#xA; \dot x_8 \leftarrow x_{2 - 7} \\&#xA; \end{array}&#xA;$$

Эти зависимости показывают, что для вычисления углового ускорения метрономов или ускорения движущаяся основа, необходимы угловое положение и угловая скорость метрономов, но не положение и скорость основы. Эти отношения могут быть найдены путем изучения eq. (1) и eq. (2) непосредственно.

Заключение

Якобианский шаблон Решателя является инструментом для изучения отношений зависимостей данных между производными переменных состояния и переменными состояния. Эти отношения обычно отражают определенные физические связи в физической системе. При помощи предоставленных инструментов можно обнаружить эти зависимости, связанные с моделью Simulink, даже без исходных динамических уравнений физической модели.

Ссылки

[1] Аркадий Пикосвский, Майкл Розенблюм и Юрген Куртс. Синхронизация. Cambridge University Press, 2001.

[2] Ward T. Oud, Design and experimental results of synchronizing metronomes, inspected Christiaan Huygens, Master Thesis, Eindhoven University of Technology, 2006.

[3] Pantaleone, James, American Journal of Physics, Volume 70, Issue 10, pp. 992-1000, 2002.

  • Escapement - это набор механизмов, который управляет метрономом. Для получения дополнительной информации см. раздел [2].