Моделирование систем автоматического управления с использованием моделей объектов
Модель системы автоматического управления (САУ) представляют в виде структурной схемы. Она содержит блоки, которые описывают динамику отдельных объектов. Например, исполнительный механизм, датчики и контроллеры. В данном материале рассмотрим функции для работы с моделью САУ. Определим способы задания моделей объектов, некоторые функции для структурных преобразований и построения временных характеристик.
Рассмотрим структурную схему САУ, которая содержит блоки фильтра , объекта управления , контроллера и датчика .

Для работы с системами управления в Engee используется библиотека ControlSystems.jl.
Pkg.add(["ControlSystems"])
#Подключение библиотеки
using ControlSystems
Каждый из компонентов системы можно представить в виде модели объекта. Например, объект управления задать в виде коэффициента усиления с двойным полюсом в s=-1, воспользовавшись функцией zpk()
. Контроллер, обозначенный , представить в виде ПИД регулятора, используя функцию pid()
. Модели и можно указать в виде передаточных функций, используя tf()
.
G = zpk([], [-1, -1], 1)
C = pid(2, 1.3, 0.3; Tf = 0.5)
S = tf(5, [1, 4])
F = tf(1, [1, 1])
Заданные передаточные функции элементов схемы можно комбинировать между собой. Например, получим передаточную функцию разомкнутой системы, используя оператор *
.
op = C*G*S
Чтобы построить передаточную функцию замкнутой системы, воспользуемся функцией feedback()
.
cl = feedback(C*G,S)
Получим передаточную функцию всей системы с учетом фильтра . Для этого применим функцию series()
.
W = series(cl, F)
Все полученные функции можно проанализировать с помощью библиотеки ControlSystems.jl. Например, обратимся к временным характеристикам. Построим переходную характеристику системы, используя функцию step()
, и импульсную характеристику, используя impulse()
.
#Подключение библиотеки для построения графиков
using Plots
ht = step(W,30)
plot(ht, title="Переходная функция", label="h(t)")
#Построение импульсной характеристики
kt = impulse(W,30)
plot(kt, title="Импульсная функция", label="k(t)")
Существуют и другие функции для анализа моделей систем автоматического управления в библиотеке ConrtrolSystems.jl. Их можно изучить в разделе Анализ временных и частотных характеристик.