Control System Toolbox (1086791), страница 5
Текст из файла (страница 5)
>> linspace (0,10, 6)
ans =
0 2 4 6 8 10
Функция logspace возвращает вектор-строку логарифмически возрастающих частот:
logspace(d1,d2) logspace(d1,d2,N)
Этой функцией создается вектор-строка, элементами которого являются частоты, логарифмически равномерно возрастающие на отрезке [10d1, 10d2]. Число элементов N по умолчанию равно 50. Пример:
>> logspace(0.1, 1, 6)
ans =
1.2589 1.9055 2.8840 4.3652 6.6069 l0.0000
Функция ltiview открывает окно просмотра LTI моделей:
ltiview ltiview(sysl, sys2, ..., sysn)
ltiview('plottype', sys1, sys2, ..., sysn)
ltiview('plottype', sys, extras)
ltiview('clear', viewers)
ltiview('current', sys1, sys2, ..., sysn, viewers)
Функция margin вычисляет запасы устойчивости по фазе и амплитуде:
margin(sys) [Gm, Pm, Wcg, Wcp] = margin(sys)
[Gm, Pm, Wcg, Wcp] = margin (mag, phase, w)
Функция margin (sys) строит логарифмические частотные характеристики разомкнутой системы с указанием запасов ее устойчивости.
Функция [Gm, Pm, Wcg, Wcp] = margin (sys) рассчитывает запас устойчивости по амплитуде (Gm), по фазе (Pm) и соответствующие частоты для одномерной разомкнутой системы sys. Если имеется несколько точек пересечения амплитудной характеристики на уровне 0 дБ и фазовой на уровне –180, то возвращаются наименьшие значения запасов устойчивости.
Функция [Gm, Pm, Wcg, Wcp] = margin (mag, phase, w) возвращает значения запасов устойчивости, вычисленных по значениям массива точек (mag, phase, w), где mag — амплитуда, phase — фаза, w — частота. В этом случае для определения запасов устойчивости необходимо выполнить интерполяцию для определения соответствующих точек пересечения.
Пример:
>> hd = tf([0.04798 0.0464], [1 -1.81 0.9048], 0.1)
Transfer function:
0.04798 z + 0.0464
---------------------------
z^2 - 1.81 z + 0.9048
Sampling time: 0.1
>> [Gm, Pm, Wcg, Wcp] = margin (hd);
[Gm,Pm.,Wcg,Wcp]
ans = 2.0517 13.5711 5.4374 4.3544
Теперь можно построить нужные характеристики:
>> margin (hd)
Функция nyquist возвращает диаграмму Найквиста (годограф):
nyquist(sys) nyquist (sys, w)
nyquist (sys1, sys2, . . . , sysN) nyquist (sys1, sys2, . . . , sysN,w)
nyquist (sys1, 'PlotStylel', .. . , sysN, ' PlotStyleN' )
[re,im,w] = nyquist (sys) [re,im] = nyquist (sys, w)
Аргументы этой функции уже описывались. Возвращаемые величины:
-
диаграмма Найквиста (в многомерном случае — для каждого канала «вход/выход»);
-
re и im — соответственно, векторы значений вещественной и мнимой частей комплексного коэффициента передачи для заданного набора частот.
Пример построения диаграммы Найквиста:
>> Н - tf [2 5 1], [1 2 3])
Transfer function:
2 s^2 + 5 s + 1
------------------------
s^2 + 2 s + 3
>> nyquist(H)
Для построения диаграммы Найквиста с «сеткой» достаточно иисполнить команду вывода «сетки»:
>> grid
Функция nichols возвращает годограф Николса:
nichols(sys) nichols(sys, w)
nichols(sys1, sys2, ..., sysN) nichols(sys1, sys2, ..., sysN, w
nichols(sys1,'PlotStyle1', ..., sysN, 'PlotStyleN')
[mag,phase,w] = nichols(sys) [mag,phase] = nichols(sys,w)
Аргументы — те же, что у предыдущей функции. Возвращаемые величины:
-
годографы Николса;
-
mag и phase — массивы значений модуля и фазы комплексного комплексного коэффициента передачи;
-
w — соответствующий вектор частот.
Для примера построим годограф Николса для одномерной системы с передаточной функцией
и нанесем на график «сетку»:
>> num = [-4 48 -18 250 600)] ; den = [l 30 282 525 60];
>> W=tf (num,den) ; nichols (W); ngrid
Результат вилен на графике…..
Функция ngrid (без аргументов) наносит диаграмму (сетку) Николса на одноименный годограф.
Функция sigma осуществляет построение частотной характеристики сингулярных чисел модели:
sigma (sys) sigma (sys, w)
sigma (sys, w, type) sigma (sys1, sys2, . . . , sysN)
sigma (sys1, sys2, . . . , sysN, w)
sigma (sys1, sys2, . . . , sysN, w, type)
sigma (sys1, 'PlotStyle1', . . . , sysN, 'PlotStyleN')
[sv,w] = sigma (sys) sv = sigma (sys, w)
Для непрерывных моделей рассматриваемая функция вычисляет частотную характеристику сингулярных чисел матрицы W(j). Для дискретных моделей с дискретной матричной передаточной функцией W(z) вычисляется частотная характеристика матрицы W(ejTs) для диапазона частот от 0 до /Ts. Частотные характеристики сингулярных чисел являются обобщением понятия логарифмических частотных характеристик и оказываются весьма полезными при анализе робастности.
Аргументы этой функции следующие:
-
sys, sys1, sys2,..., sysN — имена моделей;
-
w — диапазон частот, w = {wmin,wmax};
-
'PlotStyle1', ..., 'PlotStyleN' — аргументы, определяющие стили графиков (типы линий);
-
аргумент type задает модификацию частотной характеристики сингулярных чисел:
-
1 — для W-1(j);
-
2 — для I + W(j);
-
3 для I + W-1(j).
Возвращаемые величины:
-
графики частотных характеристик сингулярных чисел для моделей с указанными именами;
-
sv — массив значений сингулярных чисел;
-
w — соответствующий вектор частот,
Пример применения функции sigma:
>> Н = [0 tf([3 0], [l 1 10] ) ; tf([1 1], [1 5]) tf(2, [1 6]) ]
Transfer function from input 1 to output.
#1: 0
s + 1
#2 -------------
s + 5
Transfer function from input 2 to output...
3 s
#1: --------------
s^2 + s + 10
2
#2: ----------
s + 6
>> subplot (211); sigma(H); subplot(212); sigma(H, [],2) ;
Постройте по этому примеру графики.
7.3.10. Композиция систем
Функции композиции систем позволяют формировать системы различной структуры, используя в качестве элементов такой структуры LTI-модели. Это нечасто применяемые функции, поэтому мы ограничимся упоминанием их имен и назначения:
-
append — объединение LTI-систем путем объединения входов и выходов;
-
augstate — дополняет выходы переменными состояния модели;
-
feedback — образование замкнутой структуры из двух систем;
-
connect — построение LTI-модели на основе структурной схемы;
-
conv — умножение двух полиномов;
-
lft — образование системы с перекрестными связями (соединение систем так называемой звездой Редхеффера);
-
ord2 — формирование модели 2-го порядка;
-
parallel — обобщенное параллельное соединение (см. также процедуру «сложения» систем в разделе «Арифметические операции с моделями»);
-
series — обобщенное последовательное соединение (см. также процедуру «умножения» систем в разделе «Арифметические операции с моделями»);
-
stack — создание массива моделей (все модели имеют одинаковое число входов и выходов);
Более подробная информация о данных функциях может быть получена с помощью справочной системы MATLA.B или командой help имя_функции.
7.3.11. Редукция порядка модели
Для осуществления редукции моделей служат 4 функции.
Функция balreal возвращает сбалансированную реализацию ss-модели, которая имеет равные грамианы управляемости и наблюдаемости:
sysb = balreal(sys) [sysb,g,Т,Ti] = balreal(sys)
Здесь аргумент sys — имя исходной (несбалансированной) модели. Возвращаемые величины:
-
sysb — сбалансированная модель;
-
g — вектор, содержащий диагональные элементы сбалансированного грамиана;
-
Т и Ti — матрица преобразования подобия и обратная ей матрица.
Функция modred используется (обычно вместе с функцией balreal) для понижения порядка модели:
rsys = modred(sys,elim) rsys = modred(sys,elim,'mdc')
rsys = modred(sys,elim,'del')
Здесь:
-
sys — имя исходной модели;
-
elim — вектор, элементы которого являются номерами подлежащих удалению переменных состояния;
-
'mdc' — задает метод понижения размерности, заключающийся в приравнивании производных удаляемых переменных состояния нулю и решении системы уравнений для определения их установившихся значений;
-
'del' - задает метод понижения размерности, при котором просто удаляются переменные состояния, определяемые вектором elim. Этот способ не гарантирует сохранения значения коэффициента передачи, но более точно аппроксимирует переходные процессы в модели.
Возвращаемая величина rsys - модель, имеющая порядок на length (elim) меньше, чем исходная.
Рассмотрим пример. Пусть исходная модель имеет передаточную функцию
Понизим ее порядок, построив вначале с помощью функции balreal ее сбалансированную реализацию:
>> W = tf([1 11 36 26], [1 14.6 74.96 153.7 99.65]);
>> [Wb,g] = balreal (W) ; g'
ans =
0.1394 0.0095 0.0006 0.0000
Три последних диагональных элемента грамиана здесь имеют малые значения по сравнению с первым элементом, поэтому порядок модели можно понизить до первого, удалив соответствующие переменные состояния. С этой целью используем функцию modred в двух модификациях: в первом случае гарантируем сохранение коэффициента передачи, во втором — просто удалим переменные состояния:
>> Wmdc = modred(Wb, 2:4, 'mdc') ; Wdel = modred(Wb, 2 :4, 'del') ;
Сравним теперь частотные характеристики редуцированных моделей с частотными характеристиками исходной модели:
>> bode(W, '-', Wmdc, 'x', Wdel, '*')…..
Как будет видно из графика, частотные характеристики редуцированной моделли Wdel более точно, чем характеристики модели Wmdc, воспроизводят частную характеристику исходной системы.
Проведем аналогичное сравнение для переходных процессов:
>> step(W, '-', Wmdc, '-.', Wdel, '-')
Обратите внимание, что редуцированная модель Wdel точнее аппроксимирует переходный процесс, а модель Wmdc — установившееся значение.
Функция minreal строит минимальную реализацию для некоторой мoдели. При этом удаляются неуправляемые или ненаблюдаемые переменные состояния и выполняется сокращение совпадающих нулей и полюсов. Результирующая модель имеет минимальный порядок и те же самые частотные характеристики, что и первоначальная модель системы. Функция записывается в виде:
sysr = minreal (sys) sysr = minreal (sys, tol)
Смысл аргументов и возвращаемой величины пояснен выше.
Функция sminreal выполняет понижение порядка системы за счет удаления переменных состояния, не оказывающих влияния на отклик системы, вызываемый входным сигналом:
msys = sminreal(sys)
7.3.12. Традиционное проектирование систем
Небольшая группа функций служит целям традиционного проектирования систем. Три из этих функций allmargin, margin и rlocus уже были рассмотрены.
Функция rlocfind осуществляет подбор коэффициента передачи звена обратной связи по заданному набору полюсов:
[k,poles] = rlocfind(sys) [k,poles] = rlocfind(sys,p)
Функция [k,poles] = rlocfind(sys) выполняется в интерактивном режиме после выполнения функции rlocus, при этом йа комплексной плоскости указывается желаемое положение полюса.
Функция [k, poles] = rlocfind (sys, p) аналогична, но желаемые полюсы задаются в векторе-строке р.
Возвращаемые величины: обобщенный коэффициент усиления k и вектор полюсов poles.
Для примера создадим модель W и зададим полюс, равный -2:
>> W=tf([2 5 1],[1 2 3]); rlocus(W)
>> [k, poles] = rlocfind(W, -2)
k = 3.0000
poles =
-2.0000
-0.4286
Результат расчета: при k = 3 полюса замкнутой системы равны -2 и -0,4286.
Функция acker возвращает значение вектора усиления обратной связи, обеспечивающего желаемое расположение полюсов для одномерных систем: