Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Пакеты расширения MATLAB. Control System Toolbox и Robust Control Toolbox
.pdf
Глава 2. Методы анализа и синтеза линейных динамических систем 121
d
x
e
Ax B u L y D u C x=+ + − −
ee
dt
22 2 222 2
(),
(2.93)
uKx
=
2
e
(2.94)
ãäå Ê — матрица обратных связей, L — матрица коэффициентов
усиления фильтра, которые зависят от решений определенных
уравнений Риккати (здесь не приводятся). Решение задачи существует, если система (A, B
(åñëè D
ðèöû (D
Ðèñ. 2.56. К синтезу системы методом смешанной чувствительности
≠ 0, алгоритм выполняет расчеты как будто D11= 0), ìàò-
11
T
)è(D
21D21
12
, C2) управляема и наблюдаема, D11= 0
2
Ò
D12) должны быть обратимы.
Рекомендуется использовать эту процедуру как первый шаг
при оптимизации системы с последующим переходом к hinf. При
этом рекомендуется также ввести один настраиваемый параметр,
например, принять W
=γW10, и повторять решение при измене-
1
íèè γ, пока желаемый или наилучше достижимый результат не будет найден.
Следующая команда имеет вид
[sscp,sscl] = hinf(TSS).
Она находит стабилизирующий регулятор, удовлетворяющий
условию (2.91). При этом применяется метод двух уравнений Риккати для P è S. Доказывается, что
||T
y1u1||∞
<μ (2.95)

122 Глава 2. Методы анализа и синтеза линейных динамических систем
тогда и только тогда, когда X∞è Y∞неотрицательно определены и
2
ρ(PS) <μ
, (2.96)
ãäå ρ — спектральный радиус произведения матриц (собственное
значение с максимальным модулем). В этих условиях управление
вычисляется по формуле (2.94), а оценка состояния системы осуществляется в соответствии с уравнением (при D
d
dt
x
e
ABBPxBuLyCDx=+ + + − +
()(()),μ
T
−
2
11 22 2 2 0
ee
= D22= 0).
11
(2.97)
ãäå K, L ,D
зависят от решений уравнений Риккати P è S. Чтобы
0
получить удовлетворительное решение задачи, целесообразно всегда вводить W
и иметь квадратную матрицу D21. Если задача ус-
2
пешно решается, то в командном окне появляется сообщение:
<< H-inf Optimal Control Synthesis >>
Computing the 4-block H-inf optimal controller
using the S-L-C loop-shifting/descriptor formulae
Solving for the H-inf controller F(s) using U(s) = 0 (default)
Solving Riccati equations and performing H-infinity
existence tests:
1. Is D11 small enough? OK
2. Solving state-feedback (P) Riccati ...
a. No Hamiltonian jw-axis roots? OK
b. A-B2*F stable (P = 0)? OK
3. Solving output-injection (S) Riccati ...
a. No Hamiltonian jw-axis roots? OK
b. A-G*C2 stable (S = 0)? OK
4. max eig(P*S) 1 ? OK
------------------------------------------------------all tests passed -- computing H-inf controller ...
DONE!!!
-------------------------------------------------------
В противном случае появляется сообщение об ошибке, для
ликвидации которой можно попытаться изменить весовые функции или же применить билинейное преобразование (см. ниже).
Команда
[gamopt,sscp,sscl] = hinfopt(TSS, γà)
осуществляет так называемые γ-итерации, чтобы рассчитать оптимальный регулятор, используя соотношения, примененные в команде hinf, для нормы

Глава 2. Методы анализа и синтеза линейных динамических систем 123
()
γγT
T
yu
yu
11
11
a
, (2.98)
1
<
∞
ãäå γ
— индекс выходных каналов функции стоимости, которые
à
умножаются на γ. По умолчанию умножаются все выходные каналы. Очевидно, чем больше γ, тем меньше ||T
, так что ищется
y1u1||∞
максимальное значение γ, при котором решение задачи существует. Начальное значение γ=1. После решения задачи в командном
окне выдается сообщение об истории поиска, например:
< H-Infinity Optimal Control Synthesis >
No Gamma D11 P-Exist P=0 S-Exist S=0 lam(PS) C.L.
------------------------------------------------------------------------------
1 1.0000e+000 OK OK OK OK OK OK STAB
2 2.0000e+000 OK OK OK OK OK OK STAB
3 4.0000e+000 OK OK OK OK OK OK STAB
4 8.0000e+000 OK OK FAIL OK OK OK UNST
5 6.0000e+000 OK OK OK OK OK OK STAB
6 7.0000e+000 OK OK FAIL OK OK OK UNST
7 6.5000e+000 OK OK FAIL OK OK OK UNST
8 6.2500e+000 OK OK OK OK OK OK UNST
9 6.1250e+000 OK OK OK OK OK OK STAB
10 6.1875e+000 OK OK OK OK OK OK UNST
11 6.1563e+000 OK OK OK OK OK OK STAB
Iteration no. 11 is your best answer under the tolerance: 0.0100 .
(Итерация ¹ 11 есть наилучшее решение при допуске 0.01)
Видно, что в процессе поиска нарушалось условие на неотри-
цательную определенность решения одного из уравнений Риккати, и кроме того, при некоторых значениях γ система оказывалась
неустойчивой (UNST). Итерация 11 дает максимальное значение
γ=6.1563, совместимое с условиями задачи.
В первой главе уже говорилось об использовании билинейного
преобразования для трансформирования непрерывной системы в
дискретную и наоборот (1.24). При выполнении команд dh2lqg,
dhinf è dhinfopt применительно к дискретным системам осуществляется автоматический переход к непрерывному аналогу с использованием преобразования (1.25), для которого по изложенным
выше методам находится оптимальный регулятор, а затем выполняется обратный переход к дискретному регулятору с помощью обратного преобразования (1.25). Кроме того, если расширенная сис-

124 Глава 2. Методы анализа и синтеза линейных динамических систем
тема имеет полюсы или нули на мнимой оси, решение задачи, если
даже возможно, плохо обусловлено, о чем программа выдает предупреждающее сообщение. В этом случае следует попытаться выполнить билинейное преобразование вида
zp
+
zp
1
1
+
2
s
=
(2.99)
командой
[ssg1] = bilin(ssg, 1, 'S_ftjw', [p2 p1]).
Здесь ð1— небольшое отрицательное число, а ð2— большое
отрицательное число, например, ð
=−0.25, ð2 =−100. Синтез вы-
1
полняется не для системы ssg, à äëÿ ssg1, после чего в синтезированном регуляторе ssð выполняется обратная замена той же командой, но вместо 1 стоит −1.
Часто реализация регулятора оказывается достаточно сложной, и в то же время может быть упрощена без заметного ухудшения качества системы. Это может быть достигнуто двумя путями:
или упрощением уравнений объекта, или упрощением уже синтезированного регулятора. Для этой цели могут быть использованы
команды
sysr = minreal(sys)
èëè
[sósr, totbnd, svh] = schmr(sós, Type,aug).
В последней команде при Type = 1 принимается aug = ê, ãäå ê
равно заданному порядку остающейся модели, а при Type = 2 принимается aug = tol, tol — ошибка аппроксимации, т. е. команда
ищет порядок ê, при котором ошибка, измеряемая как Í
норма
∞
разности передаточных функций первоначальной и урезанной
систем, не превосходит tol. Естественно, если эти команды применялись, необходимо после завершения синтеза регулятора проверить его работу с полной системой.
Изложенные выше понятия и команды лучше всего усвоить
при рассмотрении примеров проектирования, к которым мы сейчас и переходим.
2.2.8. Примеры синтеза робастных систем. В этом разделе при-
водятся решение ряда задач синтеза систем регулирования с использованием описанных выше алгоритмов и команд. Часть этих
примеров разработана автором, часть заимствована из Руководства

Глава 2. Методы анализа и синтеза линейных динамических систем 125
Пользователя Robust Control Toolbox и других литературных источников и переработана автором. Цель этих примеров — дать читателю возможность ознакомиться с подходом к решению задач
синтеза робастных систем. Автор не ставил своей целью получить
наилучшие результаты путем подбора оптимальных весовых частотных характеристик, так что читатель имеет возможность в процессе изучения материала постараться найти лучшее решение.
1. Двухмассовая система с упругой связью. Вначале рассмотрим
двухмассовую систему с упругой связью (рис. 1.1), модель которой
уже неоднократно использовалась ранее, но с другими значениями
параметров, соответствующим параметрам одного из роботов.
Имеем C = 90 Íì, J
= 0.008 êãì2, J2= 0.008êãì2. В отличие от ра-
1
нее рассмотренных систем предположим, что датчики скорости
или положения расположены не на двигателе, а на механизме. Задача синтеза — спроектировать робастную систему, имеющую при
ступенчатом задании время первого согласования t
не более 0.5 с
c
при перерегулировании не более 20% для системы с регулированием скорости и соответственно 1 сек и 25% для системы регулирования положения исполнительного органа робота. Характеристики должны сохраняться при увеличении момента инерции второй массы в три раза.
Вначале рассмотрим систему регулирования положения. Она
имеет два комплексно сопряженных полюса на мнимой оси, что
не допускается, поэтому сместим мнимую ось влево на небольшую величину. Создадим номинальную систему ssg и с увеличенной инерционностью ssga:
C = 90; J1 = 0.008; J2 = 0.008;
[ag, bg, cg, dg] = tf2ss([C], conv([1 0 0], [J1*J2 0 C*(J1 + J2)]));
ag = ag - 0.1*eye(size(ag));
ssg = ss(ag, bg, cg, dg);
[aga, bga, cga, dga] = tf2ss([C], conv([1 0 0], [J1*J2*3 0 C*(J1 +
J2*3)]));
ssga = ss(aga, bga, cga, dga); (Ï. 2.12)
Теперь сформируем весовые частотные характеристики:
w2 = [0.2];
numw3 = [1 0 0];
denw3 = [0 0 100];
Kf =1; Kf1 = 0.2;
w3 = [Kf1*numw3; denw3];
atf3 = tf(numw3, denw3);
b = 100; a = 2/3; w0 = 3;
z1 = 1.2*0.7; z2 = 0.7;

126 Глава 2. Методы анализа и синтеза линейных динамических систем
numw1 = Kf*b*[a 2*z1*w0*sqrt(a) w0*w0];
denw1 = [b 2*z2*w0*sqrt(b) w0*w0];
w1 = [numw1; denw1];
atf1 = tf(numw1, denw1);
figure(1)
bodemag(atf1, {0.1 1000})
hold on
bodemag(atf3, {0.1 1000})
grid (Ï. 2.12.1)
Характеристика W2принимается равной небольшой постоянной величине; при ее отсутствии матрица D
имеет неполный
12
ранг, и задача не решается, о чем МАTLAB выдает соответствующее сообщение. Характеристика W
W
= Kf1s2/100, (2.100)
3
принимается в виде
3
ãäå K
— настраиваемый параметр, а характеристика W1â âèäå
f1
Kbas z as
W
=
1
2
()ωω
f
2
bs z bs
++
2
++
10 0
2
ωω
20 0
2
2
(2.101)
Ðèñ. 2.57. Весовые частотные функции для двухмассовой модели робота

Глава 2. Методы анализа и синтеза линейных динамических систем 127
Такое выражение для частотной характеристики можно рассматривать как достаточно общее. На рис. 2.57 приведены эти характеристики при указанных в программе параметрах.
Затем создается расширенный объект с присоединением к
объекту весовых функций командой augtf, выполняется синтез
линейного квадратичного регулятора и выделяются матрицы уравнений регулятора (система sscp) и замкнутого расширенного объекта (система sscl):
[TSS] = augtf(ssg, w1, w2, w3);
[sscp, sscl] = h2lqg(TSS); %hinf
[acp, bcp, ccp, dcp] = branch(sscp);
[acl, bcl, ccl, dcl] = branch(sscl);. (Ï. 2.12.2)
Первая система имеет 6-ой, а вторая 12-тый порядок. Попытаемся упростить регулятор. Вначале попытаемся использовать команду minreal(ssñp), но она в данном случае уменьшение порядка не дает. Тогда уменьшаем порядок регулятора на 1, используя
команду schmr:
scpr = schmr(sscp, 1, 5);
sys1 = series(sscp, ssg);
sys1r = series(sscpr, ssg);
sys1a =series(sscpr, ssga);
ss_f = feedback(sys1, 1);
ss_fr = feedback(sys1r, 1);
ss_fa = feedback(sys1a, 1); (Ï. 2.12.3)
В результате уравнения «урезанного» регулятора scpr приобретают вид, приведенный в Приложении 1. Матрица ñ — это матрица обратной связи регулятора Ê.
Далее на участке программы П. 2.12.3 создаются три замкнутые системы: с полным регулятором и номинальным объектом, с
регулятором уменьшенного порядка и номинальным объектом и с
регулятором уменьшенного порядка и возмущенным объектом.
Вначале сравниваются две первые и делается вывод, что они почти не отличаются за исключением частотной характеристики S,
приведенной на рис. 2.58. Далее используется регулятор уменьшенного порядка. На рис. 2.59 приведены результаты синтеза, для
создания которых использовалась часть программы П. 2.12.4:
t = 0:0.1:3
sty1 = step(ss_fr, t);
sty2 = step(ss_fa, t);
w = logspace(-3, 3);
% Computing the SV Bode plot of Ty1u1

128 Глава 2. Методы анализа и синтеза линейных динамических систем
Ðèñ. 2.58. Функция чувствительности для системы с регулятором
полного порядка при минимизации нормы Н2
Ðèñ. 2.59. Характеристики системы с регулятором уменьшенного
порядка при минимизации нормы Н2 (регулятор положения)
svtt = sigma(acl, bcl, ccl, dcl, 1, w);
svtt = 20*log10(svtt);
figure(2)
subplot(2, 2, 1)
semilogx(w, svtt(1, :))
grid on
title('Ty1u1 ')
xlabel('Rad/Sec')

Глава 2. Методы анализа и синтеза линейных динамических систем 129
ylabel('db')
svw1i = bode(w1(2,:), w1(1,:), w); svw1i = 20*log10(svw1i);
svw3i = bode(w3(2,:), w3(1,:), w); svw3i = 20*log10(svw3i);
% Computing the SV Bode plot of S=I-T
sse = 1 -s_fr;
svs = sigma(sse, w);
svs = 20*log10(svs);
subplot(2, 2, 2)
semilogx(w, svw1i, w, svs);
grid on
title('1/W1 & S');
xlabel('Rad/Sec');
ylabel('db');
% Computing the SV Bode plot of T
svt =sigma(ss_fr,w);
svt = 20*log10(svt);
subplot(2, 2, 3)
semilogx(w, svw3i, w, svt);
grid on
title('1/W3 & T');
xlabel('Rad/Sec')
ylabel('db')
subplot(2, 2, 4)
plot(t, sty1, t, sty2)
grid on
title('Step Response')
xlabel('sec') (Ï. 2.12.4)
Вначале вычисляются реакции замкнутых систем (номинальной sty1 и возмущенной sty2) на ступенчатое задание. Затем вычисляется диаграмма Боде от управления к первому выходу для
расширенного замкнутого объекта sscl. Эта характеристика изображается в логарифмическом масштабе на верхней левой части
рис. 2.59. Напомним, что команда subplot разбивает графическое
окно на подокна, причем первая цифра указывает число подокон
по горизонтали, вторая — по вертикали и третья — номер подокна, куда будет помещен данный рис. С учетом (2.84) функция чувствительности S = sse=1− ss_fr. Она вычисляется вместе с обрат-
ной величиной частотной характеристики 1/W
; они изображают-
1
ся в верхнем правом подокне. Сама же частотная характеристика
замкнутой системы, она же передаточная функция замкнутой системы T = ss_fr вместе с обратной частотной характеристикой 1/W
изображаются в левом нижнем окне. В правом нижнем окне показаны переходные процессы для номинальной и возмущенной систем. Видно, что требования к проектированию удовлетворены.
3

130 Глава 2. Методы анализа и синтеза линейных динамических систем
Результаты расчетов с использованием команды hinf при этих
же параметрах весовых характеристик почти не отличаются от полученных выше, за исключением того, что характеристика
|T
| < 1. Применим команду
y1u1
[gamopt,sscp,sscl] = hinfopt(TSS). (Ï. 2.12.5)
Результаты поиска наилучшего решения таковы:
< H-Infinity Optimal Control Synthesis >
No Gamma D11 P-Exist P=0 S-Exist S=0 lam(PS) C.L.
------------------------------------------------------------------------------
1 1.0000e+000 OK OK OK OK OK OK STAB
2 2.0000e+000 FAIL OK OK OK OK OK STAB
3 1.5000e+000 OK FAIL FAIL OK OK OK UNST
4 1.2500e+000 OK OK FAIL OK OK OK UNST
5 1.1250e+000 OK OK OK OK OK OK STAB
6 1.1875e+000 OK OK FAIL OK OK OK UNST
7 1.1563e+000 OK OK OK OK OK OK STAB
8 1.1719e+000 OK OK OK OK OK OK STAB
9 1.1797e+000 OK OK FAIL OK OK OK UNST
Iteration no. 8 is your best answer under the tolerance: 0.0100 .
Ðèñ. 2.60. Характеристики системы с регулятором полного порядка
при минимизации нормы Н
(регулятор положения)
∞
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
