Визуальное моделирование для профессионалов
Отладка моделей
Отладка играет ключевую роль в разработке моделей, позволяя проверять, соответствуют ли работа отдельных частей модели и ее поведение нашим ожиданиям. Этот процесс помогает выявлять и устранять ошибки, а также проверять, что данные передаются корректно. Если на выходе модели возникает некорректный результат, то отладка позволяет понять, где и в чем поведение системы отклонилось от ожидаемого.
Вкладка «Свойства» окна настроек
Выбор режима симуляции
Параметр Режим позволяет настроить выполнение симуляции в зависимости от задач отладки и производительности. Для отладки особенно полезен режим, который минимизирует время запуска и упрощает работу с моделью. Всего доступно два режима:
- Быстрая инициализация — модель запускается максимально быстро за счет упрощенной типизации и отключения оптимизаций. Этот режим удобен для отладки, так как позволяет оперативно проверять изменения в модели без долгого ожидания запуска. Особенно полезен при частых изменениях структуры или параметров модели.
- Быстрый счет — приоритет отдается высокой производительности и сокращению времени вычислений. Хотя этот режим менее гибок для отладки, он может быть полезен на завершающих этапах проверки, когда необходимо убедиться в правильности и стабильности расчетов.
Следовательно, на начальных этапах рекомендуется использовать режим Быстрая инициализация, чтобы оперативно находить и устранять ошибки, а на финальных — Быстрый счет для проверки производительности модели.
Управление скоростью симуляции
Параметр Управлять скоростью симуляции позволяет задать соотношение времени симуляции к реальному времени, указывая, сколько секунд моделирования должно пройти за одну реальную секунду.
Настройка полезна для отладки, так как замедление симуляции помогает лучше проанализировать поведение модели в реальном времени. Это позволяет:
- наглядно отслеживать изменения сигналов на графиках;
- удобно работать с анимацией, чтобы поэтапно проверять выполнение модели.
Следовательно, замедление симуляции создает контролируемую рабочую среду, в которой можно взаимодействовать с моделью, анализировать поведение сигналов и устранять проблемы на ранних этапах отладки.
Вкладка «Отладка» окна настроек
Отображение информации
При отладке моделей важно иметь возможность наглядно отслеживать ключевые характеристики, чтобы понять, как данные передаются и обрабатываются в блоках. В Engee можно выводить различные типы информации:
-
Типы данных — отображает типы данных сигнальных линий между блоками модели. Если в модели присутствует некорректный тип данных, то при выборе функции Типы данных автоматически появится окно диагностики с указанием ошибки.
-
Размерности сигналов — отображает размерности сигнальных линий между блоками модели. Сигналы моделей могут быть скалярными, векторными и матричными.
- Скалярный сигнал — единичное значение данных, которое не имеет направления и является простейшим типом сигнала.
- Векторный сигнал — упорядоченный набор данных одного типа, организованный в виде вектора, который имеет направление и может содержать несколько элементов.
- Матричный сигнал — двумерный массив данных, состоящий из строк и столбцов, и может содержать данные различных типов. Матрица может быть использована для представления множества сигналов одновременно.
-
Частота дискретизации сигнала — отображает частоту дискретизации блоков модели. Мелкий шаг дискретизации может привести к увеличению объема данных, что может замедлить выполнение моделирования. Слишком крупный шаг может привести к потере точности расчета модели. Для управления частотой дискретизации сигнала удобно использовать блок Rate Transition (Переход между частотами дискретизации).
-
Выделение цветом — подпункт опции Частота дискретизации сигнала позволяет выделить цветом один из следующих вариантов: сигналы с текущей частотой дискретизации, источник сигнала, либо не выделять ничего (выбрано по умолчанию). Дискретные сигналы могут отображаться разными цветами в зависимости от частоты дискретизации сигнала.
-
Порядок выполнения блоков — позволяет узнать порядок выполнения блоков в модели. Последовательность выполнения моделей будет отображаться цифрами, где 1 — первый исполняемый блок в модели. Эта опция помогает контролировать последовательность выполнения блоков во избежание нежелательных зависимостей и улучшает читаемость модели.
✏️Задание 1
- Создайте новую модель. Добавьте в модель блоки Sine Wave (Генератор синусоиды) и Terminator (Заглушка). Соедините эти блоки.
- В окне настроек блока Sine Wave задайте значение параметра Amplitude (амплитуда) равным вектору из двух чисел
[1 2], значение параметра Sine type (тип синусоиды) — равнымSample based(на основе шагов расчета), а значение параметра Sample time (период дискретизации) — равным0.01. - Залогируйте выходной сигнал блока Sine Wave.
- Задайте время моделирования равным
1с. - Запустите модель и постройте график выходного сигнала.
Решение
Модель:
График результатов моделирования:
✏️Задание 2
Откройте вкладку Отладка в окне настроек модели и включите отображение информации о модели:
- Включите отображение типов данных.
- Включите отображение размерности сигналов.
- Включите отображение частоты дискретизации сигналов и выделение цветом.
- Включите отображение порядка выполнения блоков.
Решение
На линии сигнала отображается тип данных Float64 (64-битный вещественный тип), размерность сигнала [1х2] (матрица ), частота дискретизации одинаковая во всей модели (условно обозначается D1).
✏️Задание 3
Модифицируйте модель:
- Добавьте в модель блок Rate Transition (Переход между частотами дискретизации) и подсоедините его между блоками Sine Wave и Terminator.
- Увеличьте в 2 раза период дискретизации синусоиды. Для этого в окне настроек блока Rate Transition задайте значение параметра Output port sample time (Период дискретизации выходного порта) равным
0.02. - Залогируйте выходной сигнал блока Rate Transition.
- Чтобы информация обновилась, выключите и заново включите отображение частоты дискретизации сигналов и выделение цветом.
- Запустите модель и постройте график результатов моделирования.
Решение
Модель:
Блоки и сигналы с разными частотами дискретизации отображаются разными цветами.
График результатов моделирования:
Запись сигналов
Запись сигналов позволяет фиксировать результаты моделирования и анализировать их для последующей диагностики и отладки. В Engee доступны два способа записи сигналов:
-
Записывать физические переменные — позволяет записать данные с выбранных блоков. Для записи подходят только блоки из библиотеки Физическое моделирование. Нажмите правой кнопкой мыши по блоку, сигнал с которого хотите записать, и выберите опцию Записывать физические сигналы в контекстном меню.
-
Сохранять результаты симуляции в рабочую область — позволяет сохранить результаты симуляции модели в рабочую область (окно переменных) в виде переменной
simout. Это позволяет получить доступ к данным после завершения симуляции и использовать их для анализа, визуализации или последующей обработки.
Записанные переменные отображаются в модуле Графики и в приложении Инспектор данных.
- Результаты инициализации физических переменных — отображает значения физических переменных в окне физических переменных
.
✏️Задание 4
Запишите выходной сигнал блока Sine Wave в рабочую область и затем сохраните его в CSV-файл:
- В окне настроек блока Sine Wave задайте значение параметра Amplitude равным
1. - В окне настроек модели включите Сохранять результаты симуляции в рабочую область.
- Сохраните модель в папке данного курса под именем
Синусоида.engee. - Запустите модель. После окончания симуляции переменная
simoutбудет автоматически создана в рабочей области Engee. - К переменной
simoutможно обратиться через командуcollect. Команда собирает данные с переменнойsimoutи сохраняет их в новую переменную. Для выполнения команды создайте переменнуюresultи сохраните результаты симуляции, введя следующий код:
result = collect(simout["Синусоида/Sine Wave.1"])
Здесь:
Синусоида— имя текущей модели;Sine Wave— имя блока, который выдает данные;1— номер порта, с выхода которого считываются значения для переменнойsimoutи к которому добавлена запись сигнала.
- Запишите данные о проведенной симуляции в файл формата CSV. Сохраните переменную
resultв файлresult.csvс помощью следующих команд:
using CSV
CSV.write("result.csv", result)
- Визуально убедитесь в корректности сохранения данных, отобразив график результатов симуляции:
using Plots
plot(result.time, result.value)
Решение
График результатов моделирования:
Отладка в реальном времени
Среда Engee позволяет контролировать выполнение модели в реальном времени. Такой подход объединяет несколько инструментов, которые помогают шаг за шагом отслеживать состояние сигналов, блоков и их динамических процессов:
- Пошаговое исполнение — позволяет выполнять модель по одному временному шагу за раз. Включение настройки добавляет дополнительные кнопки в верхнее меню моделирования Engee:
В этом режиме можно настроить параметры:
-
Количество сохраненных шагов — параметр определяет, сколько шагов симуляции будет сохраняться в памяти. Полезно для понимания того, как модель достигла текущего состояния, и для отладки, так как позволяет сравнивать изменения на каждом шаге.
-
Интервал между сохраненными шагами — параметр устанавливает, через сколько временных шагов будет сохраняться состояние модели.
-
Шагать вперед/назад на — параметр определяет количество шагов, на которое модель будет продвигаться:
-
Шаг вперед
— симуляция продолжается на указанное количество шагов. Например, если значение параметра Шагать вперед/назад на равно 2, то симуляция продвинется на два шага. -
Шаг назад
— симуляция возвращается на указанное количество шагов. Engee восстанавливает рабочую точку состояния модели, от которой и возвращается выбранное количество шагов.
-
-
Отображение мгновенного значения сигналов — позволяет отмечать сигналы для отображения мгновенного значения во время симуляции или пошагового исполнения. Такой метод нагляден и удобен для зрительного анализа передачи данных между блоками.
-
Скорость анимации — управляет скоростью работы конечного автомата (поддерживается внутри блока Chart). Имеет четыре режима: выключена (по умолчанию), медленная, средняя и быстрая.
✏️Задание 5
Запустите пошаговое исполнение модели:
- Отключите запись выходного сигнала блока Sine Wave.
- В окне настроек модели включите пошаговое исполнение и режим мгновенного отображения сигналов в редакторе моделей.
- Для того чтобы отображалось мгновенное значение выходного сигнала блока Rate Transition, щелкните левой кнопкой мыши по линии сигнала, соединяющего блоки Rate Transition и Terminator.
- Последовательно нажимая кнопку Шаг вперед
в верхнем меню, выполните 20 шагов моделирования. - Постройте график результатов зависимости выходного сигнала блока Rate Transition от времени.
Решение
Модель после выполнения 20 шагов:
График результатов моделирования:
Точки останова в моделировании
Одним из важных инструментов для отладки моделей являются Точки останова. Они позволяют приостановить выполнение модели в нужный момент симуляции, чтобы изучить состояние системы, найти ошибки или проверить работу отдельных блоков и настроек.
Для открытия редактора точек останова перейдите в окно настроек и во вкладке Отладка выберите Открыть список точек останова.
Это откроет редактор для работы с точками останова:
Чтобы добавить точку останова, нужно в редакторе моделей выделить сигнальную линию (нажав на нее левой кнопкой мыши), а затем в редакторе точек останова нажать кнопку
. В открывшемся окне нужно задать условие, при выполнении которого будет приостановлено выполнение модели.
✏️Задание 6
Добавьте точку останова в модель:
- В окне настроек модели нажмите Открыть список точек останова. В результате откроется редактор точек останова.
- В редакторе моделей нажмите левой кнопкой мыши на сигнальную линию, соединяющую блоки Rate Transition и Terminalor.
- В редакторе точек останова нажмите
. В открывшемся окне выберите условие приостановки симуляции: выполнение модели будет приостановлено, если значение выбранного сигнала окажется меньше нуля:
Затем нажмите кнопку Добавить. Созданная точка останова будет добавлена в список. Сигнальная линия при этом будет иметь характерную красную метку.
- Запустите модель и постройте график выходного сигнала. Симуляция встанет на паузу в тот момент, когда значение сигнала окажется меньше нуля.
Решение
Модель:
График результатов моделирования:
После приостановки модели симуляцию можно продолжить, нажав кнопку Продолжить
в верхнем меню. Симуляция будет продолжаться до тех пор, пока снова не выполнится условие останова. После этого симуляцию можно снова продолжить и т.д.
Тест для получения сертификата
Если вы впервые проходите тестирование на платформе Этюд по ссылке из Engee, то, нажав на ссылку ниже, вы увидите следующее диалоговое окно:
Нажмите кнопку Предоставить, чтобы авторизоваться на платформе Этюд с данными вашего профиля Engee ID.
Если вы раньше уже проходили тестирование по ссылке из Engee, то ваша авторизация выполнится автоматически и тестирование начнется сразу же после нажатия на ссылку.