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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Глава 2. Методы анализа и синтеза линейных динамических систем 101
·
xAxAxBu
=++
22112222
Подставим в эти уравнения x
·
yAyBuAx−−=
111122
·
=++
xAxAyBu
222221 2
= y. Получаем
1
. (2.47)
. (2.48)
. (2.49)
В (2.48) известна левая часть, так что можно записать
y
= A12x2, (2.50)
eq
а в (2.49) известны последние два слагаемых, так что можно запи­сать
·
=+ =+
2222 21 2
() ()xAx Bu Bu AyBu
,
eq eq
(2.51)
Сопоставляя (2.50), (2.51) с уравнением наблюдателя (2.40),
можно получить следующее уравнение для оценки õ
d
x
e
2
Ax Bu Ly Ax
=++−() ( )
dt
eeqeq e
22 2 12 2
:
2
, (2.52)
èëè
d
x
e
2
Ax Ay Bu Ly Ay Bu Ax
=+++−−(
dt
e e
22 2 21 2 11 1 12 2
·
(2.53)
).
Недостаток этого уравнения оценки заключается в том, что в
него входит производная от ó. Чтобы ее исключить, вместо õ дем оценивать õ
d
x
C
dt
= õ2åLy. Получаем:
ñ
Ax Ay Bu LAy Bu Ax=++− ++
222212 111122
ee
().
áó-
2
(2.54)
Или, подставляя в (2.54)
õ
= õñ+ Ly, (2.55)
получаем:
d
x
C
ALAx
=− +
()
dt
22 12
AALLALALyBLB
++ − − +−
()(
21 22 11 12 2 1
После вычисления õ
C
(2.56)
),u
по (2.56) окончательная оценка õ2енахо-
ñ
дится по (2.55).
Оценка по (2.56) кажется достаточно сложной, однако надо иметь в виду, что участвующие в оценке матрицы вычисляются один раз при проектировании системы «off-line», тогда как сама
102 Глава 2. Методы анализа и синтеза линейных динамических систем
оценка выполняется «on-line», и уменьшение порядка уравнений даже на единицу может значительно сократить общее время вы­числений.
Рассмотрим пример. В рассмотренной в предыдущем разделе задаче (П. 2.8) скорость вращения двигателя ω
измеряется непо-
d
средственно, следовательно, порядок уравнений для оценки фазо­вых координат можно уменьшить на единицу. Составим програм­му (П. 2.9).
J1 = 21.5; C = 243; J1e = 21.5; J2e =7; Ce = 243; J2 = 7; age = [0 -1/J1 0 0; Ce 0 -Ce 0; 0 1/J2e 0 0; 1000]; bge = [1/J1; 0; 0; 0]; agre11 = 0; agre12 = [ -1/J1 0 0]; agre21 = [Ce; 0; 0]; agre22 = [0 -Ce 0; 1/J2e 0 -1/J2e; 0 0 0]; cgre = [1000]; agr = [0 -1/J1 0; C 0 -C; 0 1/J2 0]; bgr = [1/J1; 0; 0]; bgr2 = [0; 0; -1/J2]; cgr = [1 0 0]; cgr1 = [0 0 1]; p = [-5+5*i, -5-5*i, -9, -10]; K = place(age, bge, p); K1 = K(1:3); K2 = K(4); pe =2*[-5+5*i, -5-5*i, -9]; L = place(agre22', agre12', pe)' sysr =ss(agr, [bgr bgr2], [cgr; cgr1], 0); est =ss(agre22 - L*agre12, [-L/J1 agre22*L+agre21 - L*agre12*L], eye(3), 0 ); estl =ss(0, 0, [0;0;0], L); estr =parallel(est, estl, [2], [1], [1:3], [1:3]); sk1 = ss(0, [0 0 0], 0, K1); sys1r =parallel(estr, sk1, [2], [1], [ ], [ ]); sys1 = connect(sys1r,[3 1; 4 2], [1 2], [3 4]); sys2 = parallel(sysr, sys1, [1], [1], [ ],[ ]); sysrz = connect(sys2, [2 -4;3 1], [1 2], [1 2 3]); ireg = tf([0 K2], [1 0]); sys3 = append(ireg, sysrz); sys4 = connect(sys3, [1 -2; 3 1], [1 2], [2 3 4]); subsys1 = sys4(:, 1); step(subsys1, 2) subsys2=10*sys4(:, 2); figure(2) step(subsys2, 2). (Ï. 2.9)
Глава 2. Методы анализа и синтеза линейных динамических систем 103
Эта программа отличается от предыдущей при формировании наблюдателя и при подсоединении последнего к матрице Ê Матрица agre наблюдателя разбита на 4 подматрицы в соответст­вии с (2.46), (2.47). Число полюсов наблюдателя ðå теперь рав­но 3, а не 4. Их заданное распределение определяет, как и ранее, матрицу L, но ее выбор зависит теперь от матриц agre22, agre12 в соответствии с первым слагаемым в правой части (2.56). Форми­рование наблюдателя est осуществляется в соответствии с (2.56) с учетом того, что À
= 0, Â2= 0, Â1= 1/J1, первый вход — u, à âòî-
11
ðîé — ó. Система estl содержит единственную ненулевую матрицу D = L и эквивалентна этой матрице. Система estr реализует соот- ношение (2.55), вход ó подается одновременно на обе входящие системы, она имеет два входа — u è ó и три выхода: M Система sk1 эквивалентна матрице Ê один выход u дината ω
. В системе sys1r второй вход ó наблюдателя (коор-
e
) поступает на первый вход матрицы Ê1(системы sk1).
d
Эта система имеет 4 входа — u, у, M M
, ue. В системе sys1 командой ñonnect осуществляется соеди-
ce
нение одноименных входов и выходов M
. Она имеет три входа и
1
ye,ωme
и 4 выхода: Mye, ωme,
è ωme. В оставшейся
ye
, ωme, Mce.
ye
части эта программа не отличается от предыдущей. В конце стро­ятся графики переходных процессов при ступенчатом изменении заданной скорости и момента нагрузки, которые здесь не приво­дятся, так как они практически не отличаются от приведенных на рис. 2.43 и 2.44.
Следует иметь в виду, что при наличии помех измерения они (помехи) проходят на вход управления объектом (в данном приме­ре измеряемый выход ω ентом усиления, равным первому элементу матрицы Ê
поступает на вход объекта u с коэффици-
d
),тогда как
1
в системе с наблюдателем полного порядка эти помехи частично фильтруются наблюдателем, поэтому в случае интенсивных помех целесообразно использование наблюдателя (2.40).
.
1
2.2.6. Фильтр Калмана. При проектировании описанных выше
наблюдателей остается неопределенным ответ на вопрос, нельзя ли улучшить качество регулирования при выборе другого распре­деления полюсов или при другом выборе элементов матриц Q è R. Параметры фильтра Калмана определяются однозначно, если из­вестны статистические характеристики помех, воздействующих на объект и (или) искажающих результаты измерений. Правда, следу­ет отметить, что далеко не всегда эти характеристики известны с достаточной степенью точности, так что их приходится задавать в определенной степени произвольно, а это в свою очередь сказыва-
104 Глава 2. Методы анализа и синтеза линейных динамических систем
ется на характеристиках всей системы. Фильтр Калмана миними­зирует среднеквадратичную ошибку оценки состояния системы, т. е. среднеквадратичную разность между истинным состоянием и его оценкой.
Фильтр Калмана применяется к системе вида
ddtx
Ax Bu Gw=++
, (2.57)
yCxDuHwv=++ +
(2.58)
ãäå w è v — нормально распределенные белые шумы с корреляци­онными матрицами
T
M[ww
] = Q,M[vvT] = R,M[wvT] = N,
M — символ математического ожидания. Далее для простоты бу­дем полагать Í = 0, N = 0. Оптимальная оценка дается соотноше­нием, аналогичным (2.40):
d
x
e
Ax Bu Ly Cx Du=++−−(),
ee e e
T
+ GQGT− PCTR-1CP = 0. (2.60)
ãäå L = PC
dt
TR-1
,P— решение матричного уравнения Риккати
AP + PA
Очевидно, что эта оценка оптимальна при À денная величина õ
используется затем для расчета управления по
å
= À, Âå= Â. Íàé-
å
(2.59)
(2.43).
Для дискретной системы, описываемой уравнениями (для уп­рощения записи полагаем D = 0, что обычно имеет место на прак­тике)
x(k + 1) = A
x(k) + Bdu(k) + Gw(k), (2.61)
d
y(k) = Cx(k) + v(k), (2.62)
уравнения оценок являются двухступенчатыми. Сначала находит­ся предсказываемая величина x
(k + 1/k) = Adxe(k) + Bdu(k), (2.63)
x
e
(k + 1/k)
e
а затем эта величина уточняется по результатам наблюдения y(k+1):
(k + 1) = xe(k + 1/k) + M[y(k + 1) Cxe(k + 1/k)]. (2.64)
x
e
Глава 2. Методы анализа и синтеза линейных динамических систем 105
Матрица коэффициентов усиления фильтра
M = PC
T
(CPCT+ R)−1, (2.65)
ãäå Ð — решение дискретного уравнения Риккати
T
P APCT[CPCT+ R]-1CPAT+ GQGT= 0. (2.66)
APA
В Control System Toolbox применяется рекуррентная формула, связывающая значения x
x
(k + 1/k) = Adxe(k/k 1) + L[y(k) Cxe(k/k 1)] + Bdu(k). (2.67)
e
(k + 1/kxe(k/k 1):
e
Для работы с фильтром Калмана Control System Toolbox имеет команды
[kest, L, P] = kalman(sys, Q, R, Nn, sensors, known), [kest, L, P, M, Z] = kalmd(sys, Q, R, Ts), rlqg = lqgreg(kest, k, controls).
Первая из этих команд может быть использована без указания последних двух векторов. Эта команда формирует наблюдатель Калмана как для непрерывной, так и для дискретной систем с указанными ковариационными матрицами шумов. Входами для наблюдателя являются u è y, а выходами оценки y
= Cxe+ Du è xe.
e
Кроме того, выводятся матрицы L è P, причем последняя является ковариационной матрицей ошибок оценки (так называемой апри­орной ковариационной матрицей для дискретной системы):
Pee=
lim ( )
→∞
t
Pe e=−−
kk kk[( ) ( ) ].11
→∞Mk
M
T
T
(2.68a)
(2.68b)
где М — символ математического ожидания, å — ошибка оценки. В полном виде эта команда используется в том случае, когда объ­ект sys
имеет входы, на которых известные и стохастические воз-
действия смешиваются друг с другом, и не все выходы измеряют­ся. Тогда векторы sensors è known содержат индексы измеряемых выходов и индексы известных входов. Все остальные входы пред­полагаются стохастическими.
Вторая команда реализует дискретный фильтр Калмана для непрерывной системы вида (2.57), (2.58) при H = 0, N = 0. Она ис­пользуется обычно, чтобы получить дискретную реализацию фильтра с интервалом повторения вычислений T
для цифровой
s
системы управления. Дополнительно она возвращает матрицы Ì
106 Глава 2. Методы анализа и синтеза линейных динамических систем
T
è Z, ãäå
Zee=→∞M
k
kk kk[( ) ( ) ]
— апостериорная ковариационная
матрица.
Третья команда формирует ЛКР регулятор с рассчитанным командой kalman фильтром Калмана и с подключенной к его вы­ходам, оценивающим фазовые координаты объекта, матрицы об­ратных связей регулятора объекта Ê, вычисленной ранее одним из описанных в разделах 2.2.1 и 2.2.2 способов. Предполагается, что закон управления объектом имеет вид (2.41), т. е. реализуется схе­ма рис. 2.46. Фильтр Калмана в данном случае описывается урав­нением
d
x
e
ALCBKx Ly=− − +[].
dt
ev
(2.69)
Ðèñ. 2.46. Структурная схема системы с наблюдателем Калмана
Вектор control используется в том случае, если существуют другие известные входы управления объекта u
, кроме управле-
d
íèÿ u. Индексный вектор control указывает, какие входы являются входами u, а остальные рассматриваются как входы u
. В дискрет-
d
ном варианте выход регулятора определяется априорной оценкой
x
(k + 1/k). Если желательно воспользоваться апостериорной оцен-
e
êîé x
(k), нужно использовать команду lqgreg(kest,k,'current').
e
Вернемся к задаче, рассмотренной выше (раздел 2.2.3, про­грамма (П. 2.7), рис. 2.40), но вместо детерминированного наблю­дателя с заданным распределением полюсов используем фильтр Калмана. Объект описывается уравнениями (1.3), (1.4), (1.14), причем предполагается, что момент нагрузки Ì
— случайный
ñ
процесс с распределением близким к нормальному, который мож­но представить как результат прохождения белого шума через апе­риодическое звено с постоянной времени T
. Так как на входе
w
фильтра Калмана должны действовать белые шумы, то необходи-
Глава 2. Методы анализа и синтеза линейных динамических систем 107
мо расширить систему (1.3), (1.4), (1.14), введя в нее дополнитель­ное уравнение:
dM
dt
M
CC
=− +
T
w
T
ww
(2.70)
ãäå w — белый шум с интенсивностью Q. По-прежнему предпола­гаем наличие интегрального регулятора скорости. Матрица обрат­ных связей вычисляется для объекта 4-го порядка: уравнения (1.3), (1.4), (1.14) при Ì
= 0 и уравнение интегратора
ñ
dI
=−ωω,
dt
rd
(2.71)
а фильтр Калмана тоже для уравнения 4-го порядка с уравнением (2.70) вместо (2.71). Составим программу (П. 2.10).
J1 = 21.5; C = 243; J2 = 7;Q=1;R=0.1; Tw = 0.25;
%1. Расчет обратной связи
agr = [0 -1/J1 0 0; C 0 -C 0; 0 1/J2 0 0;1000]; bgr = [1/J1; 0; 0; 0]; cgr = [1 0 0 0]; p = [-5+5*i, -5-5*i, -9, -10]; K = place(agr, bgr, p); K1 = K(1:3), K2 = K(4);
%2. Расчет фильтра Калмана
agr = [0 -1/J1 0 0; C 0 -C 0; 0 1/J2 0 -1/J2; 0 0 0 -1/Tw]; bgr = [1/J1; 0; 0; 0]; bgr2 = [0; 0; 0; 1/Tw]; cgr = [1 0 0 0]; plant = ss(agr, [bgr bgr2], cgr, 0); set(plant, 'InputName',{'Md'; 'wa'}, 'OutputName', 'Wd'); [kest, L, P] = kalman(plant, Q, R);
%3. Калман + Обратная связь
sys1r = append(kest, K1); set(sys1r, 'InputName', {'u' 'y1' 'z1' 'z2' 'z3'},...
'OutputName', {'Wde' 'x1e' 'x2e' 'x3e' 'x4e' 'ue'});
sys1 = connect(sys1r, [3 2; 4 3; 5 4], [1 2], [1 6]);
%4. Расширенный объект
a = agr; b = [bgr bgr2 0*bgr]; c = [cgr; cgr]; d=[000;001]; PP = ss(a, b, c, d, 'inputname', {'u' 'w' 'v'}, 'outputname', {'y' 'yv'});
108 Глава 2. Методы анализа и синтеза линейных динамических систем
%5. PP+Калман
sys2=parallel(PP,sys1,[1],[1],[],[]); sysrz=connect(sys2,[3 -4;4 2],[1 2 3],[1 2 3]);
%6. Подсоединение интегратора
ireg = tf([0 K2], [1 0]); sys3 = append(ireg, sysrz); sys4 = connect(sys3, [4,1;1,-4], [1,2,3], [2,3,4])
subsys1=sys4(1, 1) step(subsys1, 2) (Ï. 2.10)
В 1-ой части программы выполняется расчет матрицы обрат­ных связей при заданном распределении полюсов так же, как и в (П. 2.7). Во 2-ой части для объекта, включающего уравнение (2.70) вместо (2.71), находятся уравнения фильтра Калмана при задан­ных интенсивностях белых шумов. В 3-ей части к выходу фильтра подсоединяется матрица обратных связей (рис. 2.47, а), использу­ются только оценки состояний системы ω результате система sys1 имеет два входа: u è y два выхода: оценку величины ω действие u
.
e
, равную ye, и регулирующее воз-
d
, My, ωm. Полученная в
d
= y + v =ωd+ v è
v
Ðèñ. 2.47. К синтезу системы регулирования скорости в двухмассовой
системе с интегральным регулятором и наблюдателем Калмана
В 4-ой части окончательно формируется объект управления ÐÐ. Его переходная матрица à сохраняется прежней, но он имеет три входа: u = M
, w, v и два выхода: y yv= y + v.  5-òîé ÷àñ-
d
ти фильтр и объект соединяются так как это показано на рис. 2.47, а. В результате будет создана система sysrz, имеющая три входа (w, v,
Глава 2. Методы анализа и синтеза линейных динамических систем 109
Md— именно в таком порядке) и три выхода (рис. 2.47, б). В 6-той
части к этой системе добавляется интегратор с обратной связью по оценке скорости двигателя. На рис. 2.48 показан переходный про­цесс изменения скорости при ступенчатом изменении задания. Видно, что он практически такой же, как и с наблюдателем с за­данным расположением полюсов (рис. 2.42).
Ðèñ. 2.48. Переходный процесс в системе регулирования
скорости с наблюдателем Калмана
Теперь исследуем эту систему при действии помех w è v. Уда­лим две последние команды в П. 2.10 и добавим команды форми­рования случайных входов, предполагая, что задание скорости из­меняется по прямоугольному закону:
dt = 0.01; [u,t] = gensig('square', 5, 50, dt); n = length(t); w = sqrt(Q/dt)*randn(n, 1); v =sqrt(R/dt)*randn(n, 1); U=[uwv]; [OutY, t] = lsim(sys4, U, t); Wd = OutY(:,1); Wdv = OutY(:,2); Wde = OutY(:,3); Erv = Wd - Wdv; Ere = Wd - Wde; subplot(211), plot(t, Wd, ': k', t, Wde, '- k');
110 Глава 2. Методы анализа и синтеза линейных динамических систем
grid subplot(212), plot(t, Erv/10, '-. k', t, Ere, '- k'); grid (Ï. 2.10.1)
Для формирования входного прямоугольного сигнала перио­дом 5 с, длительностью 50 с с дискретностью сигнала 0.01 с ис­пользуется команда gensig. Функция randn(n,1) формирует век­тор независимых случайных величин, распределенных по нор­мальному закону, с нулевым математическим ожиданием и среднеквадратичным отклонением равным 1, такой же длины, как и вектор u. При использовании этих величин для моделирования непрерывного белого шума интенсивностью Q элементы вектора должны быть умножены на (Q/dt)
0.5
. Матрица U имеет n строк и
3 столбца. С помощью команды lsim вычисляется реакция OutY системы sys4 на действие этой матрицы также в виде матрицы 3xn. Первый столбец этой матрицы — истинная скорость ω рой — измеренная скорость ω чина скорости ω цесса ω
, ωdе. В нижней части рис. 2.49 показаны в крупном мас-
d
. В верхней части рис. 2.49 показан отрезок про-
, третий — отфильтрованная вели-
dv
, âòî-
d
штабе разность между величинами фактической скорости и ее измерениями Erv (сигнал v), уменьшенная в 10 раз, и разность ме­жду величинами фактической скорости и ее оценкой Erå. Послед-
Ðèñ. 2.49. Процессы в системе регулирования скорости
с наблюдателем Калмана при действии помех
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]