Синтез наблюдателя полного порядка
Наблюдателями называются динамические устройства, которые позволяют по известному входному и выходному сигналу системы управления получить оценку вектора состояния. Причем ошибка восстановления . Система задана в виде:
Начальные условия для заданной системы . Матрицы заданы в пункте 5.1.1. Весовые матрицы и имеют следующий вид:
, .
Построим наблюдатель полного порядка и получим значения наблюдаемых координат таких, что:
В качестве начальных условий для наблюдателя выберем нулевые н.у.:
Ранг матрицы наблюдаемости:
- матрица наблюдаемости.
. .
Т. е. система является наблюдаемой. Коэффициенты регулятора: , тогда
Собственные значения матрицы :
Коэффициенты наблюдателя выберем из условия того, чтобы наблюдатель был устойчивым, и ближайший к началу координат корень матрицы лежал в 3 – 5 раз левее, чем наиболее быстрый корень матрицы . Выберем корни матрицы
Коэффициенты матрицы наблюдателя:
.
Используя скрипт Sintez_nablyud_polnogo_poryadka, получили следующие результаты:
Рис.53. Графики решения уравнения Риккати.
Рис.54. Графики фазовых координат.
Рис.55. Графики управлений.
Выводы: Так как система является полностью наблюдаема и полностью управляема, то спектр матрицы может располагаться произвольно. Перемещая собственные значения матрицы левее, относительно собственных значений матрицы мы улучшаем динамику системы, однако, наблюдатель становится более чувствителен к шумам. Литература
1. Методы классической и современной теории автоматического управления: Учебник в 5 – и т. Т.4: Теория оптимизации систем автоматического управления / Под ред. Н.Д. Егупова. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2004. – 748 с. 2. Краснощёченко В.И.: Методическое пособие: «Методы теории оптимального управления».
Приложение. PlotTimeFrHaract.m clc clear all close all b1 = 9; b0 = 5;
a4 = 0.1153; a3 = 1.78; a2 = 3.92; a1 = 14.42; a0 = 8.583;
% syms s w % W_s_chislit = b1 * s + b0; % W_s_znamen = s * (a4 * s^4 + a3 * s^3 + a2 * s^2 + a1 * s + a0); % % W_s_obj = W_s_chislit/W_s_znamen;
%A_w = collect(simplify(abs(subs(W_s_obj, s, i*w))))
%----------------------Построение АЧХ-------------------------------------% figure('Name', '[0,10]'); w = 0 : 0.01 : 10; A_w = sqrt((b0^2 + b1^2.*w.^2)./((-a1*w.^2+a3*w.^4).^2+(a0*w-a2*w.^3+a4*w.^5).^2)); plot(w,A_w,'k', 'LineWidth', 2); grid on xlabel('w') ylabel('A(w)') title('Function ACHX(w)') %-------------------------------------------------------------------------%
r_ch = roots([b1 b0]) r_zn = roots([a4 a3 a2 a1 a0 0])
%----------------------Построение ФЧХ-------------------------------------% figure('Name', '[0,100]'); w = 0 : 0.01 : 100; fi_w = (atan(w/0.5556)-atan(w/0)-atan(w/13.5832)-atan((w-2.7677)/0.5850)... -atan((w+2.7677)/0.5850) - atan(w/(0.6848)))*180/pi; plot(w,fi_w, 'k', 'LineWidth', 2); grid on xlabel('w') ylabel('fi(w)') title('Function FCHX(w)') %-------------------------------------------------------------------------%
%----------------------Построение АФЧХ------------------------------------% figure('Name', '[0,100]'); w = 0 : 0.01 : 100; A_w = sqrt((b0^2 + b1^2.*w.^2)./((-a1*w.^2+a3*w.^4).^2+(a0*w-a2*w.^3+a4*w.^5).^2)); fi_w = (atan(w/0.5556)-atan(w/0)-atan(w/13.5832)-atan((w-2.7677)/0.5850)... -atan((w+2.7677)/0.5850) - atan(w/(0.6848))); polar(fi_w,A_w, 'k'); grid on xlabel('Re(W(jw))') ylabel('Im(W(jw))') title('Function AFCHX(fi_w,A_w)') %-------------------------------------------------------------------------%
%----------------------Построение ЛАЧХ------------------------------------% figure('Name', '[0,100]'); w = -100 : 0.01 : 100; LA_w = 20*log(sqrt((b0^2 + b1^2.*w.^2)./((-a1*w.^2+a3*w.^4).^2+(a0*w-a2*w.^3+a4*w.^5).^2))); plot(w,LA_w,'k', 'LineWidth', 2); grid on xlabel('w') ylabel('L(w)') title('Function L(w)') %-------------------------------------------------------------------------%
%----------------------Построение ФАЧХ------------------------------------% %-------------------------------------------------------------------------%
%----------------------Построение h(t)------------------------------------% figure('Name', '[0,50]'); t = 0 : 0.01 : 50; h_t = 0.0024 * exp(-13.5832.*t) - 0.2175 * exp(-0.6848.*t)... + 0.1452 * exp(-0.5850.*t).* cos(2.7677.*t)... - 0.2217 * exp(-0.5850.*t).* sin(2.7677.*t)... + 0.5825 .* t + 0.0699; plot(t,h_t, 'k', 'LineWidth', 2); grid on xlabel('t') ylabel('h(t)') title('Function h(t)') %-------------------------------------------------------------------------%
%----------------------Построение k(t)------------------------------------% figure('Name', '[0,50]'); t = 0 : 0.01 : 50; k_t = - 0.0329 * exp(-13.5832.*t) + 0.1489 * exp(-0.6848.*t)... - 0.6986 * exp(-0.5850.*t).* cos(2.7677.*t)... - 0.2721 * exp(-0.5850.*t).* sin(2.7677.*t)... + 0.5826; plot(t,k_t, 'k', 'LineWidth', 2); grid on xlabel('t') ylabel('k(t)') title('Function k(t)') %-------------------------------------------------------------------------%
x1=tf([b1 b0],[a4 a3 a2 a1 a0 0]); ltiview(x1)
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |