Математический маятник с подталкивающей силой

 

Данная модель является примером модели изолированной гибридной системы с гибридным поведением простейшего типа – мгновенные скачки значений переменных при неизменных системе уравнений и наборе переменных.

 

Предположим, что наш маятник получает мгновенное приращение угловой скорости с соответствующим знаком всякий раз при прохождении через нижнее вертикальное положение. Для описания такого маятника системы уравнений (1) недостаточно: необходимо помимо решения этой системы уравнений еще ловить дискретное событие – переход слева или справа нижнего вертикального положения – и по этому событию выполнять мгновенное дискретное действие – скачком изменять значение переменной на величину . На языке гибридных карт состояний это означает, что мы должны выполнять решение системы уравнений (1) в состоянии «Колебания», а по указанному дискретному событию выполнить переход в то же самое состояние (Рис. 1). В действиях этого перехода будет произведено мгновенное приращение угловой скорости и далее будет продолжено решение системы уравнений (1) с новыми начальными условиями.

 

 
 

 

 


Рис. 1

Теперь возникает вопрос: как задать событие «проход через нижнее вертикальное положение»? Первое, что приходит в голову, это задать его логическим предикатом , где n – целое число. Математически это совершенно правильное определение, однако не вполне пригодное для численного моделирования. События, заданные строгими равенствами вещественных выражений – это очень неприятный сюрприз для алгоритмов поиска точек переключения в гибридных моделях. Поэтому мы используем другое, более конструктивное определение события «проход через нижнее вертикальное положение». Разобьем все множество значений угла на сектора размером . Для любого текущего значения мы можем указать сектор, которому принадлежит это значение, а также нижнюю и верхнюю границы этого сектора и . Тогда выполнение условия будет означать переход в следующий сектор, а выполнение условия - возвращение в предыдущий сектор. В результате мы получим гибридную карту состояний, показанную на Рис. 2.

 


Рис. 2

При переходе из одного -сектора в другой соответственно смещаются нижняя и верхняя границы. Начальное определение текущего -сектора производится во входных действиях состояния Init путем вызова процедуры «определить2PiСектор».

 

procedure определить2PiСектор is

N_2Pi: integer;

begin

N_2Pi:=abs(trunc(Alpha/(2*pi)));

if Alpha>0 then

Amin2Pi:=2*pi*N_2Pi;

Amax2Pi:=2*pi*(N_2Pi+1);

else

Amax2Pi:=-2*pi*N_2Pi;

Amin2Pi:=-2*pi*(N_2Pi+1);

endif;

end определить2PiСектор;

 

Зависимости показаны на Рис 3а. Вследствие воздействия подталкивающей силы амплитуда колебаний увеличивается и на втором цикле маятник «переваливает» через верхнеее вертикальное положение после чего начинает крутиться против часовой стрелки с увеличивающейся угловой скоростью. Траектория движения показана на Рис 3б. Фазовая траектория в координатах показана на Рис 3в.

Рассмотрим внимательно увеличенный фрагмент графика на Рис 3г. На интервале 1 моделируемая система ведет себя как классическая непрерывная динамическая система, поведение которой определяется системой уравнений (1) и значение переменной изменяется непрерывно. На правом конце этого интервала в момент . В момент срабатывает переход и переменная скачком приобретает значение . Далее на интервале 2 система снова ведет себя как непрерывная. Место «склейки» двух соседних непрерывных интервалов в гибридном моделировании называют «временной щелью». Внутри «временной щели» непрерывное время останавливается и начинает продвигаться локальное дискретное время. Моменты дискретного времени обычно соотносят с натуральным рядом чисел (т.е. просто нумеруются 1,2, …n). Один момент дискретного времени отделяется от другого дискретным событием – срабатыванием какого-нибудь перехода. В данном случае мы имеем два значения дискретного времени – момент 1 до срабатывания перехода и момент 2 после срабатывания перехода. Все моменты локального дискретного времени «временной щели» одновременны в непрерывном времени. Пару можно рассматривать как гибридное время. Таким образом, если в непрерывном времени функция является многозначной в точке , то в гибридном времени она однозначна: и .

В более сложных моделях во «временной щели» может последовательно мгновенно срабатывать более одного перехода.

 

а)

 

б) в)

 

г)

Рис 3

Объектный подход.

Давайте рассмотрим более внимательно, как мы сделали эту модель. Мы «взяли за основу» уже имеющуюся модель простого маятника и модифицировали ее. Модификация заключалась в следующем:

- добавлены новые переменные;

- в главной карте поведения добавлен узел «Колебания» и новые переходы;

- «Система_уравнений_1» удалена из узла «Init» и помещена в узел «Колебания»;

- в узел «Init» добавлены входные действия.

Все эти действия вполне укладываются в традиционную схему наследования в объектно-ориентированном подходе: класс объекта, который берется за основу, называется базовым классом (родительским классом, классом-предком, суперклассом), класс, который получается в результате модификации этой основы, называется производным классом (классом-наследником, классом-потомком, подклассом). При этом модификация сводится к добавлению новых элементов описания и переопределению существующих элементов (в существующем узле «Init» пустая последовательность входных действий замещена на непустую и, напротив, непустое локальное поведение заменено на пустое).

Таким образом мы можем построить эту модель и так: на основе класса «Маятник» построить производный класс «МаятникСПодталкиванием». От способа «копирование и модификация» этот способ отличается тем, что в силу отношения наследования любое изменение в базовом классе (например, модификация системы уравнений) будет немедленно и автоматически отражаться в производном классе (кстати, это может и порождать конфликты). Таким образом, если в описание простейшего маятника вводится уточнение (например, учет сопротивления воздуха), то это уточнение автоматически распространится на все маятники – наследники простейшего.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: