Сообщество Engee

Средства среды Engee для решения задач управления

Автор
avatar-bob123bob123
Notebook

Средства среды Engee для решения задач управления

Цель работы: ознакомиться со средствами Engee для решения задач управления.

Задача работы: выявить особенности вычисления реакций Simulink моделей в среде Engee.

Приборы и принадлежности: персональный компьютер, Simulink, Engee, выход в
Интернет.

ВВЕДЕНИЕ

Engee - российская платформа для разработки сложных технических систем с применением
методологии модельно-ориентированного проектирования [1].
Engee содержит в себе универсальное математическое ядро и быстроразвивающиеся
библиотеки, это среда независимая от MATLAB, но способная взаимодействовать c
проектами MATLAB интегрированными в Engee.
В этой работе предлагается рассмотреть особенности программирования в среде Engee на
примере вычисления реакции контура управления Simulink модели.

ОБЩИЕ СВЕДЕНИЯ

Преимущества программирования в Engee:

  1. В 30 раз быстрее чем Python, быстрее, чем MATLAB. Схож с С и Rust
  2. Прост, как MATLAB;
  3. Для написания команд Engee используется язык Julia [2]. Engee позволяет легко
    перейти и адаптировать код к другим языкам, например:
In [ ]:
A = [1, 2, 3] # Engee, язык Julia
Out[0]:
3-element Vector{Int64}:
 1
 2
 3
In [ ]:
using MATLAB # язык MATLAB
mat"A = [1, 2, 3]"
In [ ]:
using PyCall # язык Python
py"""
import numpy as np
A = np.array([1, 2, 3])
"""
  1. Имеет множество доступных библиотек, функций и расширений. Имеет средства для
    моделирование линейных, нелинейных, дискретных и непрерывных систем,
    разработки систем автоматического управления;
  2. Engee обладает качественной русскоязычной документацией.

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

ВНИМАНИЕ: Доступ к Engee студенты запрашивают самостоятельно после согласования
с преподавателем.
Для того чтобы узнать, как работать в Engeе и познакомиться с учебными курсами,
материалами и примерами
1.Откройте скрипт: Файлы → user → Start.ngscript;
image.png

  1. В редакторе скриптов выполните разделы:
    •Получение утилиты обновления каталога демонстраций
    •Использование утилиты refresh_demo_catalog
    3.После загрузки документации перейдите в папку Файлы → user → start → courses → getting-started.
    image_2.png

ПРИМЕЧАНИЕ. Полную документацию по языку программирования в Engee можно найти по ссылке [3]. Заявку на доступ к тренингам и онлайн-курсам можно оставить на сайте [4].
Доступа к материалам используйте Файловый Браузер, например:
image_3.png
image_4.png

В этом примере рассматривается управление устойчивым объектом второго порядка c помощью ПИД-
регулятора в среде Engee. Дополнительно проводится сравнение результатов
моделирования в среде Engee с результатами моделирования в Simulink. Исследуемая система управления находится в модели pid_controls_tf_stable.engee:

ПРИМЕЧАНИЕ.
Область переменных открывается значком:
image.png

Редактор скриптов значком:
image_2.png

Командная строка значком:
image_3.png

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Задание 1. Построение контура регулирования в среде Simulink.
ПРИМЕЧАНИЕ. Контур создается для проверки работы Engee с Simulink моделями.

1.Постройте в Simulink модель:

image.png image_2.png image_3.png

Рисунок 1. Контур регулирования и его параметры.

2.Задайте параметры моделирования и выходного сигнала модели.
image.png
image_2.png
3.Запустите модель на выполнение и постройте графики переменных.
image_3.png
image_4.png
4.Разберите структуру Out - реакции модели. Определите полное наименование переменных Time и Data.
image_5.png
image_6.png
image_7.png
image_8.png

Задание 2. Вычисление реакции Simulink модели в среде Engee.

  1. Загрузите среду Engee.
  2. В среде Engee создайте папку и в ней страницу скрипта, например,
    /tmp/exmpl_1.ngscript.
    image.png
  3. Скопируйте Simulink model (slx) c вашего ПК в созданный каталог tmp среды Engee.
    image_2.png
  4. Включите в скрипт (ngscript) блоки комментария (текстовая ячейка) и команды (кодовая ячейка) используя команды “+Текст” и “+ Код” /
    image_3.png
  5. Наберите следующий скрипт:
    image_4.png

ПРИМЕЧАНИЕ.
5.1. Для работы с ячейками используйте команды
image_2.png

image.png 5.2. Ячейки можно перемещать по скрипту выше или ниже image_3.png 5.3. Код в текстовом формате:
In [ ]:
using Plots
using MATLAB
using CSV
plotlyjs();
mat"start_simulink"
mat"p = genpath('/user/start/tmp'); addpath(p);"
mat"out = sim('pid_controls_tf_stable');";
pid_values = mat"out.yout{1}.Values.Data";
pid_time = mat"out.yout{1}.Values.Time";
plot(pid_time, pid_values, legend = false) 
plot!(title = "Результаты моделирования в Simulink", ylabel = "Отклик",
xlabel="Время, c")

Запустите скрипт на выполнение. Сравните реакции Simulink модели вычисленные в
MATLAB и Engee.

ПРИМЕЧАНИЕ. Скрипт можно выполнять поблочно - кодовыми ячейками
image.png
image_2.png
или целиком:
image_3.png

image.png

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Назначение среды Engee?
  2. Каковы основные преимущества среды Engee?
  3. Чем отличается применение команд MATLAB в среде Engee?

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Среда математических вычислений и инженерных исследований.
    https://start.engee.com/ltc
  2. Dr. Bob Davidov. СРЕДСТВА ЯЗЫКА JULIA ДЛЯ РЕШЕНИЯ ЗАДАЧ
    УПРАВЛЕНИЯ. https://portalnp.snauka.ru/2023/09/11099
  3. Язык программирования в Engee. https://engee.com/helpcenter/stable/julia/engeelanguage.html
  4. Обучение Engee.
    https://start.engee.com/learn?utm_source=Email&utm_medium=engee_digest&utm_campai
    gn=december
  5. Dr. Bob Davidov. Компьютерные технологии управления в технических системах
    http://portalnp.snauka.ru/author/bobdavidov