Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пакеты расширения MATLAB. Control System Toolbox и Robust Control Toolbox

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Глава 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. Характеристики системы с регулятором полного порядка
при минимизации нормы Н
(регулятор положения)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]