Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Пакеты расширения MATLAB. Control System Toolbox и Robust Control Toolbox
.pdf
Глава 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)
2å
получаем:
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/k)èxe(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 =ωdè 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 показан отрезок про-
då
, третий — отфильтрованная вели-
dv
, âòî-
d
штабе разность между величинами фактической скорости и ее
измерениями Erv (сигнал v), уменьшенная в 10 раз, и разность между величинами фактической скорости и ее оценкой Erå. Послед-
Ðèñ. 2.49. Процессы в системе регулирования скорости
с наблюдателем Калмана при действии помех
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
