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

Иерархия модели

Несколько блоков можно объединить в подсистему. Это нужно в тех случаях, когда количество блоков в модели настолько большое, что работать с ними становится неудобно.

Создание подсистемы

Существует несколько способов объединения блоков в подсистему:

  • Добавить блок Subsystem из библиотеки блоков, дважды кликнуть по нему левой клавишей мыши (так вы войдете в подсистему) и добавить нужные блоки стандартным способом.

    model hierarchy 1

  • Выделить блоки, которые вы хотите добавить в подсистему, с нажатой клавишей shift, кликнуть на появившиеся точки в углу прямоугольника и нажать на иконку subsystem icon 1 1 Подсистема.

    model hierarchy 2

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

model hierarchy 3 1

Применение блока Model

Для работы с иерархиями модели, помимо подсистем, вы можете использовать блок Model.

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

Следовательно, вы можете включить одну модель в другую с помощью блока Model. Каждый блок Model — это ссылка на ту или иную модель (подмодель). Рассмотрим пример:

Для создания подмодели используем блоки Inport, Gain, Integrator и Outport. Параметры блоков остаются по умолчанию.

example model hierarchy 1

В дальнейшем мы планируем подать на оба входных порта один сигнал, поэтому используем функцию Дублировать для блоков Inport:

example model hierarchy shadowinport

Вид модели после преобразования входных портов

Итоговая подмодель выглядит следующим образом:

example model hierarchy 2

Сохраним подмодель и зададим имя, в нашем случае — newmodel_12. В дальнейшем будем ссылаться на это имя в родительской модели Model.

Далее создадим модель, из которой сошлемся на подмодель. Используем блоки Sine Wave, Model и Terminator.

example model hierarchy 3

Для блока Sine Wave зададим значение Sample time значение 0.1. Блок видоизменится. После нажмите по блоку Model правой кнопкой мыши и выберите Параметры. Это откроет окно настроек, внутри которого мы сошлемся на созданную ранее подмодель newmodel_12:

example model x

Блок Model видоизменится, появятся входные и выходные порты, к которым присоединим сигнальные линии. Для сигналов с выходных портов поставим логирование:

example model hierarchy 4

Запустим симуляцию модели и посмотрим график. Решатель оставляем по умолчанию (Euler). График симуляции синусоидального сигнала отобразится в Инструменты окна графиков:

example model hierarchy 5

  • Размер шага решателя во всех подмоделях должен совпадать с размером шага решателя родительской модели (с блоком Model). В ином случае вы получите ошибку решателя.

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

  • Подмодели не поддерживают блоки библиотеки Физическое моделирование и многомерные сигналы.

  • Подмодели поддерживают многоуровневое вложение подсистем и других блоков Model.

Подробнее о блоке Model читайте по ссылке.