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

Пример показывает, как использовать 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: Настройте используемый в этом примере: три метронома на движущейся основе

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

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

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

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

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

Что касается рисунка 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. Во-первых, якобиан решателя этой модели разрежен, и количество ненулевого элемента равняется 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] Аркадий Пикосвкы, Михаэль Розенблум и Юрген Куртс. Синхронизация. Издательство Кембриджского университета, 2001.

[2] Уорд Т. Уд, Проект и результаты эксперимента синхронизирующихся метрономов, вдохновленных Христианом Гюйгенсом, Основным Тезисом, Техническим университетом Эйндховена, 2006.

[3] Pantaleone, Джеймс, американский Журнал Физики, Объем 70, Выпуск 10, стр 992-1000, 2002.

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