2 lectures
.pdfПрезентация 6. Применение среды MATLAB для анализа и проектирования систем
автоматического управления
6.1 |
Способы задания передаточной функции ................................................................................................................................................................... |
2 |
6.2 |
Функции реализации последовательного, параллельного и соединения с обратной связью ................................................................................ |
8 |
6.3 |
Анализ и проектирование динамических систем в среде MATLAB ........................................................................................................................ |
9 |
6.3.1 Вычисление и отображение нулей и полюсов системы ...................................................................................................................................... |
9 |
|
6.3.2 Построение ЛАФЧХ и городгафа передаточной функции ............................................................................................................................... |
10 |
|
6.3.3 Построение временных характеристик............................................................................................................................................................... |
13 |
|
6.3.4 Построение корневого годографа........................................................................................................................................................................ |
14 |
6.1 Способы задания передаточной функции
Пакет Control system toolbox для описания непрерывных и дискретных динамических моделей систем управления с постоянными параметрами использует либо tf-форму передаточной функции, либо zpk-форму нулей, полюсов и обобщенного коэффициента передачи,
либо ss-форму пространства состояний.
Передаточная функция описывается в виде отношения многочленов, которые задаются в виде векторов-строк, составленных из их коэффициентов. В zpk-форме корни многочленов числителя и знаменателя передаточной функции и обобщенного коэффициента передачи также задаются в виде одномерных массивов. Наиболее естественным для системы MATLAB является представление модели в пространстве состояний.
Таким образом, математическую модель стационарной непрерывной системы можно задать следующими способами: 1) в tf-форме передаточной функции
W (s) b0 sm b1sm 1 ... bm 1s bm , m n a0 sn a1sn 1 ... an 1s an
2) в zpk-форме нулей, полюсов и коэффициента усиления
W (s) k |
s |
1 s 2 |
... s m |
|
, m n |
|||||
|
|
|
|
|
|
|
|
|||
s |
s |
2 |
... s |
n |
|
|||||
|
|
|||||||||
|
|
1 |
|
|
|
|
|
Истинный коэффициент усиления такой системы K k 1 2 ... m
1 2 ... n
3) в ss-форме пространства состояний в виде четверки матриц A, B, C и D системы дифференциальных уравнений
dx
Ax Bu,dt
y Cx Du
Передаточная функция W (s) num(s) задается многочленом числителя num и многочленом знаменателя den. В системе MATLAB
многочлены представляются как векторы-строки, составленные из коэффициентов многочлена в порядке убывания степеней переменной.
Например, вектор [1 3 5] соответствует многочлену s2 3s 5 . Если заданы векторы num и den, соответствующие многочленам числителя и знаменателя, то функция W (s) tf (num, den) создает модель системы в виде передаточной функции W (s) num(s) .
Пример.
s
Функция w=tf([1 0],[1 2 10]) формирует передаточную функцию s2 2s 10 : >> w=tf([1 0],[1 2 10])
Transfer function: s
--------------
s^2 + 2 s + 10
Пример .Передаточную функцию W (s) 2 можно задать следующим образом:
2s 1 s2 3s 1
>> w=tf([2],[2 1])*tf([1],[1 3 1])
Transfer function: 2
-----------------------
2 s^3 + 7 s^2 + 5 s + 1
zpk-модель тесно связана с формой представления объекта в виде передаточной функции: нули – это корни многочлена числителя,
полюсы – корни многочлена знаменателя.
Функция, предназначенная для формирования таких моделей, имеет вид w zpk(z, p, k) , где z и p – векторы из нулей и полюсов, а k –
обобщенный коэффициент усиления.
Не забывайте, что коэффициент k следует задавать аккуратно, чтобы обеспечить истинный коэффициент усиления K k 1 2 ... m .
1 2 ... n
Пример. Требуется задать передаточную функцию W (s) 2s . Для этого необходимо найти все нули и полюса этой s 2 s2 2s 2
передаточной функции, составить из них вектора и задать функцию w=zpk([0],[1-j 1+j 2],-2):
>> w=zpk([0],[1-j 1+j 2],-2)
Zero/pole/gain:
-2 s
--------------------
(s-2) (s^2 - 2s + 2)
Пример. Пусть требуется задать передаточную функцию W (s) |
s 1 |
|||||||||
|
. |
|||||||||
(s 1)(2s 1) |
||||||||||
Обратите внимание, что истинный коэффициент усиления |
|
|
равен 1. Нули и полюса этой передаточной функции следующие: |
|||||||
1, 1, |
0.5 Воспользовавшись равенством K k |
|
|
1 2 ... m |
|
|
получим: |
|||
|
|
|
|
|||||||
|
|
|||||||||
|
|
|
|
|
||||||
1 |
2 |
|
|
|
1 2 ... n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 k |
1 |
. Отсюда обобщенный коэффициент k=0.5 |
1*( 0.5) |
Тогда функция w=zpk([-1],[1 -0.5],0.5) обеспечит нам исходную передаточную функцию:
>> w=zpk([-1],[1 -0.5],0.5)
Zero/pole/gain:
0.5 (s+1)
-------------
(s-1) (s+0.5)
Если привести вид полученной передаточной функции к типовому, то можно убедиться, что истинный коэффициент усиления равен
1.
Примечание. Если нули в передаточной функции отсутствуют, то соответствующий вектор следует задавать пустым, в виде пустых скобок [].
Пример. Пусть требуется задать передаточную функцию W (s) 1
(2s 1)(4s 1)
Нули в данной системе отсутствуют, а полюса 1 0.5, 2 0.25
Тогда для задания передаточной функции следует воспользоваться записью
w=zpk([],[-0.5 -0.25],0.125), где обобщенный коэффициент 0.125=0.5*0.25 обеспечивает истинный коэффициент, равный 1:
>> w=zpk([],[-0.5 -0.25],0.5*0.25)
Zero/pole/gain:
0.125
----------------
(s+0.5) (s+0.25)
Если известно описание системы в пространстве переменных состояний в виде матриц
MATLAB можно с помощью функции ss:
sys=ss(A,B,C,D), где sys – любое выбираемое пользователем имя системы.
Пример.
0
Пусть система описана в пространстве переменных состояний с помощью матриц A 5
A, B, C и D, то задать эту систему в среде
1 |
, B 0 |
, C 0 |
1 , D [0] . |
2 |
3 |
|
|
Тогда для задания этой системы в среде MATLAB необходимо записать следующие строчки:
>>A=[0 1;-5 -2];
>>B=[0;3];
>>C=[0 1];
>>D=0;
>>sys=ss(A,B,C,D)
a =
x1 x2
x1 0 1
x2 -5 -2
b =
u1
x1 0
x2 3
c =
x1 x2
y1 0 1
d =
u1
y1 0
6.2 Функции реализации последовательного, параллельного и соединения с обратной связью
1. Параллельное соединение
Функция sys=parallel(sys1,sys2) реализует параллельное соединение двух систем. Эта функция эквивалентна операции сложения sys=sys1+sys2.
2. Последовательное соединение
Функция sys=series(sys1,sys2) реализует последовательное соединение двух систем. Эта функция эквивалентна операции умножения систем sys=sys1*sys2.
3. Соединение с обратной связью
Функция sys=feedback(sys1,sys2) возвращает систему sys, соответствующую соединению систем sys1 и sys2 в контур с отрицательной обратной связью. Причем система sys1 находится в прямой передаче, а система sys2 – в обратной связи.
Чтобы замкнуть систему положительной обратной связью, следует использовать следующее обращение: sys=feedback(sys1,sys2,+1).
Внимание! Очень частой ошибкой бывает использование следующей записи при построении соединения с обратной связью:
sys 1 sys1* sys2 . В данном случае операция замыкания контура обратной связью в среде MATLAB будет выполнена некорректно.
Поэтому для реализации соединения с обратной связью необходимо использовать функцию feedback.
6.3 Анализ и проектирование динамических систем в среде MATLAB
6.3.1 Вычисление и отображение нулей и полюсов системы
Функция p=pole(sys) возвращает вектор p, состоящий из полюсов системы sys.
Функция z=tzero(sys) возвращает вектор z, состоящий из нулей передаточной функции системы sys.
Для отображения полюсов и нулей системы на комплексной плоскости следует использовать функцию pzmap(sys).
Пример.
Пусть задана система в виде некоторой передаточной функции W
Тогда, воспользовавшись записью pzmap(W), получим следующий результат (рисунок 6.1).
Рис. 6.1
6.3.2 Построение ЛАФЧХ и городгафа передаточной функции
Функция bode(sys) предназначена для построения амплитудных и фазовых логарифмических частотных характеристик для динамических систем.
Пример.
Пусть требуется построить ЛАФЧХ для колебательного звена W 1 . s2 s 1
Обращение bode(W) позволит получить график ЛАФЧХ (рисунок 6.2).
Рис. 6.2