Визуальное моделирование
Дискретные системы
Динамические системы
Инженеры часто имеют дело с динамическими системами. Динамические системы находятся в различных состояниях, изменяющихся с течением времени.
Например, состояние следующей механической системы зависит от начальных условий, физических характеристик системы и величины внешней силы.
На выходе мы получаем зависимость положения груза массы от времени .
Динамические системы могут быть дискретными
или непрерывными. Непрерывные динамические системы описываются дифференциальными уравнениями:
Искомая функция находится с помощью интегрирования:
Моделирование дискретных систем
В Engee дискретные блоки работают с фиксированными периодическими интервалами. Этот интервал называется временем выборки. Дискретные блоки дают на выходе дискретные сигналы, их время выборки определяется соответствующим параметром, который в разных блоках может называться по-разному: Шаг расчета или Период дискретизации.
Дискретная динамическая система – это модель текущего состояния системы , вычисляемого на основе на текущего и/или предыдущих состояний. Блок задержки (Запаздывание), находящийся во вкладке Базовые, на палитре Дискретные, принимает входной сигнал и задерживает его значение в течение указанного времени выборки.
На следующем временном шаге он выводит предыдущее входное значение. По умолчанию блок обозначается символом , представляющем задержку в два временных шага в области Z-преобразования. Число временных шагов задержки задается параметром Длина задержки. Величина задержки отображается на блоке. Например, если значение параметра Длина задержки задать равным 3, то блок будет обозначаться символом .
Блок Запаздывание на шаг, находящийся на той же палитре, задерживает входной сигнал на один временной шаг.
Значение сигнала на текущем временном шаге обозначается как , а значения на предыдущих шагах обозначаются как , и т.д.
✏️Задание 1
Сгенерируйте синусоиду и выполните ее задержку на два временных шага:
- Создайте новую модель. Добавьте в модель блок Генератор синусоиды. В окне настроек блока задайте значение параметра Период дискретизации равным
0.25с. Задайте частоту синусоидального сигнала равной0.5рад/с, а время моделирования –20с. - Добавьте в модель блок Запаздывание. Подключите выход блока Генератор синусоиды (сигнал ) ко входу блока Запаздывание. Задержка по умолчанию равна двум отсчетам.
- Добавьте в модель блок Заглушка. Подключите выход блока Запаздывание (сигнал ) ко входу блока Заглушка.
- Залогируйте сигналы и .
- Запустите модель.
- Сравните сигналы и , просмотрев их графики. Вы увидите, что принимает те же значения, что и с задержкой на два временных шага.
Решение
Модель:
Результаты моделирования:
Блок Запаздывание имеет параметр Период дискретизации. По умолчанию значение этого параметра равно -1, что означает, что блок наследует период дискретизации из входного сигнала, поступающего в этот блок – в данном случае из синусоидального сигнала. Однако вы также можете указать независимый период дискретизации для этого блока, например, если вам нужно уменьшить частоту дискретизации сигнала.
✏️Задание 2
Модифицируйте модель из Задания 1:
- В окне настроек блока Запаздывание задайте значение параметра Период дискретизации равным
0.5. - Запустите модель и сравните графики двух сигналов: и .
Решение
Результаты моделирования:
Вы вдвое увеличили период дискретизации (т.е. шаг расчета) в блоке Запаздывание (с 0.25 до 0.5). Как видно из графиков, частота дискретизации выходного сигнала уменьшилась в два раза.
Практический пример: Расчет положения автомобиля
Рассмотрим простое уравнение, вычисляющее положение автомобиля на основе его последнего известного положения , скорости и времени между наблюдениями :
Время между наблюдениями является временем выборки дискретной системы. Пусть с, а м/с.
Хорошая практика при моделировании дискретных динамических систем – начинать построение модели с блока Запаздывание на шаг.
Задание 3
Постройте с помощью базовых блоков решение приведенного выше уравнения:
- Создайте новую модель. Добавьте в модель блок единичной задержки Запаздывание на шаг. В окне настроек блока задайте значение параметра Период дискретизации равным
0.25с. На вход этого блока будет подаваться значение положения автомобиля в текущий момент времени , а выход будет представлять собой значение положения автомобиля в предыдущий момент . - Смоделируйте второе слагаемое из правой части уравнения движения: . Для этого добавьте в модель блок Константа. В окне настроек блока задайте значение константы равным
10 * 0.25. - Смоделируйте правую часть уравнения движения: добавьте в модель блок Сложение. Соедините выходы блоков Запаздывание на шаг и Константа с двумя входами блока Сложение.
- Правая часть уравнения движения должна равняться левой (). Для этого соедините выход блока Сложение со входом блока Запаздывание на шаг.
- Залогируйте сигнал, проходящий по этой линии.
- Пусть начальное положение автомобиля м. В окне настроек блока Запаздывание на шаг задайте значение параметра Начальное значение равным
5. - В окне настроек модели задайте время моделирования равным
100с. - Запустите модель. Постройте график залогированного сигнала.
Решение
Модель:
Результаты моделирования:
Рассмотренный пример служит основой для моделирования дифференциальных уравнений, где производные от искомой функции заменяются отношениями конечных разностей:
Если на вход блока задержки поступает сигнал , то на выходе получится сигнал .