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

Системы автоматизированного управления

В этом примере показано, как получить данные о частотной характеристике для SISO модели динамической системы пропорционально-интегрального регулятора.

ПИ-регулятор может сделать так, чтобы ошибка между желаемым значением и фактическим значением стала нулевой. Это означает, что он может добиться точности в регулировании.

Его настройка довольно проста. Нужно настроить всего два параметра: коэффициент усиления (Кр) и постоянную времени интегрирования (Ti). С помощью этих параметров можно достичь минимальной ошибки регулирования.

Справочные материалы по некоторым библиотекам:

# Установка новой библиотеки может занять около минуты
using ControlSystems

using Plots;
gr()
#plotlyjs() # для интерактивных графиков

print("Библиотеки готовы!")
Библиотеки готовы!

Соединить SISO системы, описанные в пространстве состояний

P1 = ssrand(1,1,1);
P2 = ssrand(1,1,1);
append(P1, P2)
StateSpace{Continuous, Float64}
A =
 -0.2524536214471187   0.0
  0.0                 -0.3574162051285983
B =
 0.30175105771317484  0.0
 0.0                  1.1500354139870772
C =
 0.6210941061472228  0.0
 0.0                 0.9581047028078271
D =
 0.3742222874580735  0.0
 0.0                 0.1848146926902994

Continuous-time state-space model

Изучение отклика передаточной функции

Постройте ЛАФЧХ разомкнутой и замкнутой системы

при помощи функции gangoffourplot(), чтобы сделать выводы о чувствительности системы к колебаниям на разных частотах.

P = ControlSystems.tf(1,[1,1])^4
gangoffourplot( P, tf(1), titlefont = font(9), guidefont = font(8))

interactive-scripts/images/controls_demo_controls/832054ed81c4f4f46f121d5281a26486534f16b6

Графики показывают, что система слишком чувствительна при частотах около рад/с.

Настройка PI-регулятора

Настройте PI-регулятор для системы

Используйте функцию loopshapingPI, указав, что в районе частоты рад/с у системы должен быть запас по фазе в 60 градусов.

Выведите 4 графика – ЛАФЧХ для разомкнутой и для замкнутой системы с помощью функции gangoffourplot и годограф Найквиста с помощью функции nyquistplot.

using ControlSystems, Plots

P = tf(1,[1,1])^4
ωp = 0.8
C,kp,ki = loopshapingPI(P, ωp, phasemargin=60, form=:parallel)

p1 = gangoffourplot(P, [tf(1), C]);
p2 = nyquistplot([P, P*C], ylims=(-1,1), xlims=(-1.5,1.5));

plot(p1,p2, layout=(2,1), size=(800,800))

interactive-scripts/images/controls_demo_controls/8ed8ab078b9bd23bd88ea235ca688dd7776e203e

Вывод

В разобранном примере был проведён анализ системы автоматизированного управления PI-регулятора.

Также был изучен отклик передаточной функции и выполнена настройка PI-регулятора.