Условные уравнения

Top  Previous  Next

Взглянем еще раз на модель шарика с пружиной (демо-пример "BallAndSpring").

В этой модели нет сложных дискретных действий, выполняемых при переходе из одного качественного состояния в другое.

Для гибридных моделей такого типа имеется еще одна форма описания поведения — условные уравнения.

 

На рис.1 показана модель шарика с пружиной, использующая условные уравнения. В данном случае используются только две альтернативы: «if» и «else».

В общем случае возможно множество альтернатив, в этом случае используется еще и конструкция «elsif».

 

УслУравн

                 Рис.1

 

По форме модель на рис.1 непрерывная, однако по сути — гибридная. Запустив эту модель, вы получите те же самые результаты, что и при использовании карты поведения.

Совокупная система уравнений в соответствующем окне будет меняться точно так же. Единственным отличием «скрытой» гибридной модели от «явной» гибридной является

изменение гибридного времени. Дискретная составляющая времени не изменяется, однако меняется номер временной щели, так как «скрытые» дискретные события —

переключения ветвей условных уравнений — происходят.

 

Ветви условных уравнений должны быть согласованы по значениям переменных — конечные значения предыдущей ветви являются начальными значениями для следующей.

Например, модель обрывающегося маятника (демо-пример "BreakingPend") достаточно сложно переписать с помощью условных уравнений, поскольку в ней в момент обрыва

инициируются новые искомые переменные, которых не было в исходной системе уравнений.

 

По существу в системе уравнений на рис.1 меняются правые части уравнений, а набор искомых переменных и структура уравнений остаются неизменными.

Может возникнуть вопрос: почему бы просто не записать дифференциальное уравнение для скорости в виде и не ввести функцию

 

double F() {

 if (h>HS)

   return -g;

 else

   return -g+K*(HS-h);

}

 

Так, вообще говоря, часто поступают не очень опытные моделисты, решая подобные задачи. Однако это решение простое, но «лукавое»: на границе «h = HS» функция F имеет излом — разрыв производной.

А численные методы очень не любят разрывов значений и производных правых частей уравнений. В данной простой модели такое решение будет работать, но в более сложных моделях вы рискуете получить сообщение об ошибке численного метода или, что еще хуже, правдоподобное, но неверное решение.

 

Когда вы формулируете поведение гибридной модели в виде условных уравнений, исполняющая система AnyDynamics ищет точку переключения ветвей условных уравнений

с заданной точностью и заставляет численные методы после точки переключения правильно инициироваться с новыми начальными условиями.

 

Особым случаем условных уравнений являются условные формулы.

Условная формула — это формула, в правой части которой стоит условное выражение. Например, логику изменения коэффициента жесткости

пружины K (рис. 3.53) можно задать и условной формулой (рис.2).

 

УсловнФормула

                         Рис.2

 

Как и в случае с условными уравнениями, исполняющая система ищет точку переключения ветвей условной формулы с заданной точностью и заставляет численные методы после

точки переключения правильно инициироваться с новыми начальными условиями.

 

Заметим, что если условное выражение используется в операторах присваивания, то это просто удобная форма записи условного оператора, никаких точек переключения не ищется.