Визуальное моделирование для профессионалов
Работа с блоками
Редактирование внешнего вида блоков
Повороты и отражения
Если щелкнуть правой кнопкой мыши по блоку, то появится контекстное меню, содержащее различные команды. Рассмотрим некоторые из них:
- Повернуть влево — поворачивает блок на по часовой стрелке;
- Повернуть вправо — поворачивает блок на против часовой стрелки;
- Развернуть — выполняет зеркальное отражение блока (разворот в противоположную сторону).
С помощью этих команд можно гибко управлять внешним видом модели. Возьмем модель синусоиды с искажениями, которую вы изучали в Главе 02:
С помощью команды Повернуть вправо можно расположить блоки, например, следующим образом:
С помощью команды Развернуть можно поменять направление прохождения сигнала в модели на противоположное:
Приведенные модели полностью эквивалентны исходной модели.
Отображение имени блока
С помощью параметра Форматирование -> Имя блока в контекстном меню можно управлять отображением имен блоков:
- Авто — имя блока отображается, если включены Подписи всех блоков в окне настроек интерфейса. Если Подписи всех блоков выключены, то имя блока не отображается;
- Скрыть — скрыть имя;
- Показать — показать имя.
Изменение цвета
С помощью пункта меню Форматирование -> Цвет в контекстном меню можно задать цвет границы и текста, цвет заливки и прозрачность блока.
Ниже приведен пример модели, в которой для блоков выбраны разные цвета границ, текста и фона:
Команда Сбросить параметры позволяет задать параметры форматирования цвета по умолчанию.
Отключение и пропуск блоков в модели
В контекстном меню имеются команды, позволяющие временно исключить блок из модели, не удаляя его («закомментировать» блок):
- Пропустить — при моделировании сигнал пройдет сквозь блок, т.е. сигнал на выходе блока будет равен сигналу на входе;
- Отключить — блок будет отключен, т.е. он не будет выдавать никакого выходного сигнала.
Этими функциями удобно пользоваться при отладке моделей.
✏️Задание 1
Выполните пропуск блока в модели:
- Откройте модель
Синусоида с искажениями.engee. - Щелкните правой кнопкой мыши по блоку Gain и в контекстном меню выберите команду Пропустить блок. Блок будет отображаться серым цветом.
- Запустите модель и постройте графики выходных сигналов блоков Sine Wave и AWGN Channel.
Решение
Модель:
График результатов моделирования:
Как мы видим, блок ослабления сигнала не выполняется.
✏️Задание 2
Выполните отключение блока в модели:
- Щелкните правой кнопкой мыши по блоку Gain и в контекстном меню выберите команду Отключить блок. Блок и его выходной сигнал будут отображаться серым цветом.
- Запустите модель и постройте графики выходных сигналов блоков Sine Wave и AWGN Channel.
Решение
Модель:
График результатов моделирования:
Как мы видим, выходной сигнал блока AWGN Channel отсутствует, т.к. на его вход также не поступает никакой сигнал, поскольку блок Gain отключен.
Комментарии для блоков
В процессе создания модели часто хочется оставить комментарий к блоку (себе или коллегам), записать рабочую мысль или идею на будущее и т.д. Вы сможете это сделать с помощью команды Комментарий -> Добавить в контекстном меню блока.
✏️Задание 3
Добавьте комментарий к блоку:
- Снова откройте исходную модель
Синусоида с искажениями.engee. - Щелкните правой кнопкой мыши по блоку Sine Wave и в контекстном меню выберите Комментарий -> Добавить. Откроется окно для ввода комментария:
- В этом окне введите текст «Блок, генерирующий синусоиду» и нажмите кнопку Добавить комментарий
. В результате в нижней части блока появится маленький значок. При наведении курсора мыши на этот значок будет появляться всплывающий комментарий.
Решение
В дальнейшем с помощью команды Редактировать в контекстном меню можно изменить текст комментария, а с помощью команды Удалить — удалить комментарий.
Маски блоков
Маска — это настраиваемый пользовательский интерфейс для создания собственных блоков. Блоки могут быть созданы на основе любых блоков библиотеки Engee и подсистем.
Маска упрощает использование и переиспользование блоков. У маскированного блока (с наложенной маской) есть собственное окно настроек, в котором можно менять параметры блока. Маски позволяют передать параметры не только в блок или подсистему, но и в исходный код блоков Engee Function и C Function.
Маска позволяет:
- Создавать собственное диалоговое окно параметров для быстрой настройки блока/подсистемы;
- Изменять внешний вид блока/подсистемы;
- Скрывать содержимое блока/подсистемы.
Редактор масок — это инструмент для настройки маски. Для открытия редактора нажмите на блок правой кнопкой мыши и выберите Маска -> Добавить маску:
Редактор открывается в новом окне браузера:
После сохранения маски в настройках блока показываются параметры маски. Чтобы увидеть параметры самого блока, нажмите Посмотреть под маску. Чтобы вернуться, нажмите Посмотреть маску.
Для подсистем опция Посмотреть под маску переносит внутрь подсистемы, а не показывает параметры блока. Используйте панель навигации по моделям для выхода из подсистемы.
Для редактирования или удаления маски нажмите правой кнопкой мыши по иконке блока с уже созданной маской и выберите Редактировать маску или Удалить маску.
Редактор масок содержит два набора вкладок: Редактор интерфейса и Редактор кода.
Редактор интерфейса
Редактор интерфейса — раздел добавления в окно настроек маски элементов управления, структурных элементов и вкладок.
Он состоит из следующих элементов:
- Действия — элементы управления, с помощью которых выполняются действия по заданным условиям.
Кнопка — элемент управления, выполняющий заданные действия по нажатию. Логика кнопки задается в обратном вызове clickedCallback.
- Структурные элементы — контейнеры для размещения и скрытия элементов управления:
Секция для скрытия — контейнер, который можно скрыть или раскрыть по нажатию, позволяя управлять отображением нескольких элементов одновременно.
-
Элементы управления — основные компоненты интерфейса, из которых формируется маска блока:
3.1. Поле для ввода — добавляет параметр маски с вводимым текстовым или числовым значением. Тип данных:
Any.
3.2. Чекбокс — область для проставления флажка. Тип данных:Bool.
3.3. Выпадающий список — отображает список доступных опций, из которых выбирается одна. Чтобы добавить элементы в выпадающий список, вводите их по одному в поле Элементы списка и нажимайте Enter после каждого значения. Тип данных:String.
Каждый элемент управления имеет три параметра:
- Название параметра — должно совпадать с именем переменной в маске, которую нужно настроить;
- Название поля — будет отображаться в окне настроек;
- Значение или элемент списка — определяет значение по умолчанию.
Помимо параметров можно настроить атрибуты:
- Скрыт — скрывает элемент управления;
- Вычислять — анализирует введенное значение, интерпретирует его и сохраняет соответствующий тип данных.
- Пространство маски — область для создания маски с помощью элементов управления и структурных элементов. Все добавленные в область элементы будут в точности перенесены в маску после сохранения. Для добавления элементов перетащите их с помощью мыши.
Для удаления элемента выделите его и нажмите клавишу Delete.
Для добавления новой вкладки нажмите + в правом углу пространства маски.
-
Кнопка сохранения — сохраняет маску. Альтернативно можно использовать сочетание клавиш Ctrl+S.
-
Кнопка редактора обратных вызовов — открывает раздел Редактор кода.
-
Скрыть левую панель/показать левую панель.
-
Скрыть правую панель/показать правую панель.
Редактор кода
Редактор кода — раздел настроек элементов управления с помощью функций обратного вызова (callbacks). Для каждого элемента управления задаются собственные уникальные обратные вызовы.
- Названия параметров маски (можно изменить в редакторе интерфейса).
- Название поля — указывается метка или тип поля параметра (можно изменить в редакторе интерфейса). Оно дает более подробное описание назначения или функции параметра.
- Пространство кода обратных вызовов — область для настройки обратных вызовов у конкретного параметра маски.
- Кнопка сохранения — сохраняет маску. Альтернативно можно использовать сочетание клавиш Ctrl+S.
- Скрыть левую панель/показать левую панель.
- Скрыть правую панель/показать правую панель.
Пример
Рассмотрим, как создать маскированную подсистему, на примере модели синусоиды с искажениями, которую вы изучали в Главе 02 этого курса:
Объединим блоки Gain и AWGN Channel в подсистему и назовем ее Communication Channel:
Создадим маску для этой подсистемы, которая будет содержать два элемента управления:
- Поле для ввода Коэффициент ослабления. В него будет вводиться величина, обратная коэффициенту усиления блока Gain. Эта величина показывает, во сколько раз уменьшается амплитуда синусоидального сигнала в канале связи.
- Поле для ввода Отношение сигнал/шум. В него будет вводится значение параметра SNR блока AWGN Channel (в дБ). Эта величина показывает отношение мощности сигнала к мощности добавляемого гауссовского шума.
Щелкнем левой кнопкой мыши по подсистеме и в появившемся контекстном меню выберем Маска -> Добавить маску.
В пространство маски добавим два поля для ввода:
Для первого поля в окне настроек в правой части экрана зададим следующие параметры:
- Название параметра —
K; - Название поля —
Коэффициент ослабления; - Значение —
1.
Для второго поля зададим следующие параметры:
- Название параметра —
SNR; - Название поля —
Отношение сигнал/шум, дБ; - Значение —
10.
Затем сохраним маску, нажав кнопку Сохранить.
Закроем окно редактора масок и войдем в подсистему. Для этого дважды щелкнем левой кнопкой мыши по подсистеме. Откроется окно параметров:
Нажмем кнопку Посмотреть под маску. Откроется содержимое подсистемы. В окне настроек блока Gain зададим значение параметра Gain равным 1/K. В окне настроек блока AWGN Channel зададим значение параметра Eb/No (dB) равным SNR.
Подсистема будет иметь вид:
После этого залогируем выходной сигнал подсистемы.
В окне параметров подсистемы зададим значение параметра Коэффициент ослабления равным 2, а значение параметра Отношение сигнал/шум — равным 20 дБ:
Запустим модель и построим графики исходного сигнала и сигнала, прошедшего через канал связи:
Построенная модель сохранена в файле Синусоида с маской.engee и находится в папке данного курса.
✏️Задание 4
В рассмотренной модели добавьте маску для блока Sine Wave, с помощью которой можно задавать амплитуду и синусоиды и ее частоту в герцах:
- Откройте модель
Синусоида с маской.engee. - Щелкните левой кнопкой мыши по блоку Sine Wave и в появившемся контекстном меню выберите Маска -> Добавить маску.
- В пространство маски добавьте два поля для ввода:
- Амплитуда;
- Частота, Гц.
Задайте следующие значения параметров полей:
|
Параметр |
Название параметра |
Название поля |
Значение |
|
Амплитуда |
|
|
|
|
Частота |
|
|
|
Измените название секции с Main group на Параметры.
- Нажмите кнопку Сохранить и закройте окно редактора масок.
- Дважды щелкните левой кнопкой мыши по блоку Sine Wave. В окне параметров нажмите кнопку Посмотреть под маску. Откроется окно настроек блока Sine Wave. Задайте значение параметра Amplitude равным
A, а значение параметра Frequency (rad/sec) — равным2*pi*f(перевод из Гц в рад/c). - Запустите модель и постройте графики исходного сигнала и сигнала, прошедшего через канал связи.
Решение
Маска блока Sine Wave:
Графики результатов моделирования: