Создание моделей непрерывных систем
Создание моделей непрерывных систем
В данном примере рассмотрим, как создать модель непрерывной во времени системы с помощью функций tf
zpk
ss
.
Библиотека ControlSystems.jl позволяет задавать линейные модели непрерывных систем тремя разными способами:
- Передаточные функции (
tf
) - Задание полюсов и нулей (
zpk
) - Пространство состояний (
ss
)
Pkg.add(["ControlSystems"])
#Подключение библиотеки для работы с САУ
using ControlSystems
Передаточные функции
Для SISO систем передаточная функция представляет собой отношение многочленов и , которые являются изображениями по Лапласу выходной и входной величин.
В Engee многочлен задается в виде вектора коэффициентов. Например, для многочлена: , вектор коэффициентов: .
Получим передаточную функцию вида:
num = [1, 0]; #Задаем числитель
den = [1, 2, 10]; #Задаем знаменатель
W1 = tf(num, den)
В качестве другого варианта, можно перейти в область Лапласа и вместо вектора с коэффициентами передать многочлен с переменной s.
s = tf('s'); #Создаем переменную Лапласа
W2 = s/(s^2 + 2*s + 10)
Задание полюсов и нулей
Заданное с помощью функции zpk()
описание модели выглядит как передаточная функция.
Корни числителя называются нулями, а знаменателя полюсами. Скалярный коэффициент - коэффициент усиления.
Чтобы задать модель через функцию zpk()
, нужно передать вектор полюсов, нулей и коэффициент усиления.
z = [0]; # Нули
p = [2,1+1im,1-1im]; # Полюса
k = -2; # коэффициент усиления
H = zpk(z,p,k)
Также как для моделей заданных передаточными функциями, можно перейти в область Лапласа и передавать многочлен с переменной s вместо вектора с коэффициентами.
s = zpk("s");
H = -2*s/(s - 2)/(s^2 - 2*s + 2)
Модель в пространстве состояний
Модель пространства состояний это представление дифференциальных уравнений в матричной форме. Полная модель объекта в пространстве состояний содержит два уравнения:
где - вектор состояния системы, - вектор входа(сигнал управления), - вектор выхода; - матрицы.
Для задания модели в пространстве состояний существует функция ss()
. Для этого на вход функции нужно задать описанные матрицы.
A = [0 1 ; -5 -2];
B = [0 ; 3];
C = [1 0];
D = 0;
H = ss(A,B,C,D)
Описание модели системы позволяет начать анализировать ее поведение. Например, строить графики временных и частотных характеристик. С функциями для анализа моделей САУ можно ознакомиться в разделе Анализ.