Документация Engee

Этапы построения физической модели

Рассмотрим построение физической модели на примере RC-цепи. RC-цепь состоит из резистора и конденсатора. Такие цепи часто используют для фильтрации сигналов, генерации импульсов, таймеров и других задач.

Выбор и настройка блоков

Для построения модели будем использовать блоки библиотеки Физическое моделирование из раздела Фундаментальные/Электричество:

Название подраздела и имя блока Иконка блока Объект моделирования

Источники: Источник постоянного напряжения

dc voltage source

Идеальный источник напряжения.

Элементы: Резистор

resistor

Резистор.

Элементы: Конденсатор

capacitor

Конденсатор.

Элементы: Электрическое заземление

electrical reference

Заземление.

Датчики: Датчик тока

current sensor

Амперметр.

Датчики: Датчик напряжения

voltage sensor

Вольтметр.

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

Чтобы добавить блок в модель, перетащите его мышкой из библиотеки блоков block library icon на холст, расставьте в нужном порядке и соедините так, как они соединяются в реальной электрической схеме:

building physmod model 1

Сразу после добавления блоки имеют значения по умолчанию. Чтобы изменить параметры, дважды кликните по блоку или нажмите правой кнопкой и выберите Параметры:

Амперметр Датчик тока выводит ток в порт I, вольтметр Датчик напряжения — напряжение в порт V. Эти сигналы можно подключить к Заглушка из библиотеки Базовые/Приемники и включить запись.

building physmod model 2

Запись сигналов signal logging 1 позволяет сохранить все результаты симуляции в переменную simout. Она собирает только те сигналы, для которых запись включена. Эта переменная позволяет в дальнейшем сохранить результаты симуляции в файл в формате CSV (подробнее см. в статье Программная обработка результатов симуляции в Engee).

По умолчанию переменная simout не создается после завершения симуляции модели. Для ее появления поставьте галочку Сохранять результаты симуляции в рабочую область в окне настроек debug article icon 1:

simout open 1 ru

Подробнее о построении моделей в Engee см. в Построение модели.

Выбор решателя

Перед симуляцией нужно выбрать решатель, подходящий для физических моделей. Обычно используют неявные решатели: Rosenbrock23, Rodas4, RadauIIA5, QNDF, ImplicitEuler, Trapezoid, TRBDF2, KenCarp4. Они требуют меньше шагов, чем явные.

Физическая модель может включать несколько сетей. Каждая сеть (связанная блок-схема) требует один блок Solver Configuration, который задает параметры решателя.

В данном примере параметры блока Solver Configuration можно оставить по умолчанию.

building physmod model 3

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

Результаты моделирования

Посмотрим результаты в окне визуализации сигналов graphs icon 1. На графиках видно, как при зарядке конденсатора ток экспоненциально уменьшается, а напряжение на нем растет.

building physmod model 4 ru

building physmod model 5 ru

Подходы к моделированию физических объектов

В Engee есть несколько путей для создания физической модели, и выбор зависит от вашей задачи и требуемой реализации.

Самый простой и эффективный способ — использовать готовые блоки из библиотеки физического моделирования. Это классический подход: используйте нужные физические блоки (как резистор и конденсатор в примере выше) и соединяете их в физическую модель. Все необходимые уравнения уже заложены внутрь этих блоков и не требуют отладки.

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

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

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