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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
Глава 5. Связь Control System и Robust Control Toolboxes с Simulink 201
Ðèñ. 5.1. Модель регулирования скорости при всех
измеряемых состояниях
ется первой фазовой координатой, а не 4-й, как в (2.38). УП имеет следующий вид:
J1 = 21.5; J2 = 7;Cd = 243; A = [0 -1/J1 0; Cd 0 -Cd; 0 1/J2 0]; B = [1/J1; 0; 0]; C = eye(3); D = zeros(3,1) ag = [0 -1 0 0; 0 0 -1/J1 0; 0 Cd 0 -Cd;0 0 1/J2 0]; bg = [0; 1/J1; 0; 0]; p = [-5+5*i, -5-5*i, -9, -10]; K = acker(ag, bg, p); save ( 'two_mass') sim ( 'two_mass') t = SD(:,1); plot(t, SD(:,2), 'k-', t, SD(:,3), 'k --') grid (Ï. 5.1)
После расчета Ê рабочая область запоминается в файле «two_mass.mat», это имя внесено в окно Callbacks модели Simulink, как это описывалось выше, что позволяет при следующих сеансах работы с моделью УП не использовать. Затем выполняется моде­лирование, при котором скорости запоминаются в рабочей облас­ти под именем SD, а после окончания моделирования строятся графики переходных процессов, приведенные на рис. 5.2. Конеч­но, для наблюдения за процессами можно непосредственно ис­пользовать осциллограф «Speed».
Теперь усложним задачу, введя в модель наблюдатель. Его уравнение имеет вид (2.40), т.е. он имеет два входа: u è y. Для мо­делирования наблюдателя также используем блок State-Space, обо­значенный Est. Блок Plant имеет теперь один выход: измеряемую скорость двигателя. Блок Est имеет 4 выхода: оценку скорости
202 Глава 5. Связь Control System и Robust Control Toolboxes с Simulink
Ðèñ. 5.2. Переходные процессы скоростей двигателя и механизма
ye=ωdeи оценку трех фазовых координат, для выделения которых
служит селектор Sel2 (рис. 5.3). УП имеет вид:
J1 = 21.5; J2 = 7; Cd = 243; A = [0 -1/J1 0;Cd 0 -Cd; 0 1/J2 0]; B = [1/J1; 0; 0]; C=[1 0 0]; D = zeros(1,1) ag = [0 -1 0 0; 0 0 -1/J1 0; 0 Cd 0 -Cd; 0 0 1/J2 0]; bg = [0; 1/J1; 0; 0]; p = [-5+5*i, -5-5*i, -9, -10]; K = acker(ag, bg, p); pe = 2*[-5+5*i, -5-5*i, -9] L = place(A', C', pe)' [Ae, Be, Ce, De] = estim(A, B, C, D, L, [1], [1]); save( 'two_mass_observ') sim( 'two_mass_observ') (Ï. 5.2)
Переходные процессы имеют практически тот же вид, что и показанные на рис. 5.2 и здесь не приводятся. Если сравнить при­веденную программу с программой (П. 2.7), решающей ту же за­дачу, то можно видеть, что использование Control System Toolbox совместно с Simulink значительно уменьшает число команд, тре­бующихся для описания соединений систем.
Глава 5. Связь Control System и Robust Control Toolboxes с Simulink 203
Ðèñ. 5.3. Модель регулирования скорости
при применении наблюдателя
В качестве дальнейшего примера рассмотрим автоматическую систему поддержания заданной высоты полета самолета (автопи­лот высоты). Движение самолета в стационарном режиме полета описывается уравнением 5-го порядка с фазовыми координатами
u — скорость самолета в направлении продольной оси фюзеляжа, w — скорость самолета в направлении оси, перпендикулярной к
фюзеляжу и направленной вниз, q — скорость изменения угла тангажа, θ — угол тангажа, h — высота полета. Управляющее воз­действие — угол отклонения руля высоты δå. Измеряемыми коор­динатами являются последние три: высота полета измеряется ба­рометрическим высотомером, скорость изменения угла тангажа гироскопом и угол тангажа — авиагоризонтом. Для моделирова­ния воспользуемся параметрами самолета Боинг 747, летящего со скоростью 0.8 скорости звука, на высоте 7000 м при полетном весе около 300 т, приведенными в [Л. 12]. В уравнениях в качестве ли­нейной меры принят фут. Для выбора параметров регулятора (матрицы усиления Ê с 6-ю входами и одним выходом) воспользу­емся методом размещения полюсов. Схема модели Simulink приве­дена на рис. 5.4 (она получила имя «pilot4»). В общем, она анало­гична приведенной на рис. 5.3, отличаются размерности системы и наблюдателя. Выход наблюдателя имеет размер 8, причем первые три — это оценки его входов, а остальные — оценки фазовых коор­динат. Усилитель У преобразовывает рад/град. УП имеет вид:
A =[-0.00643 0.0263 0 -32.2 0;
-0.0941 -0.624 820 0 0;
-0.000222 -0.00153 -0.668 0 0; 00100;0-108300];
204 Глава 5. Связь Control System и Robust Control Toolboxes с Simulink
Ðèñ. 5.4. Модель регулирования высоты полета
B = [0; -32.7; -2.08; 0; 0]; C=[00100;00010;00001]; D = zeros(3,1); A_aug = [zeros(1,5) -1; zeros(5,1) A]; B_aug = [0; B]; p = 0.9*[ -0.005, -0.15, -1+1.5*i, -1-1.5*i, -2.2+3*i, -2.2-3*i]; K = place(A_aug, B_aug, p); pe = 2*[-0.15, -1, -1.5, -2.2+3*i, -2.2-3*i]; L=place(A', C', pe)'; [Ae,Be,Ce,De] = estim(A, B, C, D, L, [1 2 3], [1]); se = eig(Ae) save('pilot4') sim('pilot4') t = SD1(:,1); plot(t, SD1(:,2), 'k-') grid figure(2) t = SD(:, 1); plot(t, SD(:,2), 'k-' ,t, SD(:,3), 'k --') grid (Ï. 5.3)
Здесь матрицы системы A è B расширены до матриц A_aug è
B_aug с тем, чтобы учесть введение дополнительной перемен-
ной — выхода интегратора (dx
/dt =−h). Поскольку расширенная
1
система имеет 6-й порядок, то принято две пары комплексно-со­пряженных полюсов и два простых вещественных полюса. На рис. 5.5 показан процесс отработки задания изменения высоты в 100 футов, а на рис. 5.6 — процессы изменения управляющего угла руля высоты и угла тангажа.
Глава 5. Связь Control System и Robust Control Toolboxes с Simulink 205
Ðèñ. 5.5. Переходный процесс изменения высоты полета
Ðèñ. 5.6. Изменения углов руля высоты и тангажа
206 Глава 5. Связь Control System и Robust Control Toolboxes с Simulink
В приведенных задачах использовались обычные блоки Simulink. В то же время в систему Simulink включен специальный блок LTI System, который может реализовать любую модель (сис­тему), совместимую с Control System Toolbox (кроме FRD). При использовании TF èëè ZPK моделей они автоматически преобра­зовываются в SS модель. Для задания функции конкретному блоку нужно открыть окно его настройки двойным щелчком левой кла­вишей по изображению блока и в строке «LTI system variable» вве­сти название системы, которая к этому времени должна уже нахо­диться в рабочей области, будучи сформированной или в команд­ном окне, либо в управляющей программе. Можно также команду создания системы ввести непосредственно в указанную строку; при этом все числовые значения также должны быть указаны в этой строке или же при использовании буквенных обозначений для матриц, векторов, скалярных величин их численные значения должны уже находиться в рабочей области. Для систем типа SS можно в строке «Initial states» указать начальные значения при расчете переходных процессов.
Рассмотрим пример. Пусть в задаче рис. 5.3, программа (П. 5.2) объект подвергается действию неконтролируемых воздей­ствий w, а выходной сигнал — скорость двигателя ω
— измеряет-
d
ся с помехой v, в связи с чем вместо детерминированного наблю­дателя применен фильтр Калмана. Эта задача аналогична рассмот­ренной в разделе 2.2.6, программа (П. 2.10). Там же приведены уравнения объекта. Схема задачи в системе Simulink, получившей название «two_mass_LT» и реализованной с помощью 5 блоков
Ðèñ. 5.7. Модель регулирования скорости
с фильтром Калмана
Глава 5. Связь Control System и Robust Control Toolboxes с Simulink 207
LTI System, приведена на рис. 5.7, а управляющая программа име­ет вид:
%Part1
J1 = 21.5; J2 = 7; Cd = 243; Q=1; R = 0.1; Tw = 0.2; A = [0 -1/J1 0; Cd 0 -Cd; 0 1/J2 0]; B = [1/J1; 0; 0]; B1 = [0; 0; -1/J2]; C=[1 0 0]; plant =ss(A, [B1 B], C, 0);
%Part2
ag = [0 -1 0 0; 0 0 -1/J1 0; 0 Cd 0 -Cd; 0 0 1/J2 0]; bg = [0; 1/J1; 0; 0]; p = [-5+5*i, -5-5*i, -9, -10]; K = acker(ag, bg, p); K= -K;
%Part3
agr = [0 -1/J1 0 0; Cd 0 -Cd 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]; PP = ss(agr, [bgr bgr2], cgr,0); [kest, L, P] = kalman(PP, Q, R); save('two_mass_LT')
%Part4
sim('two_mass_LT') t = SD2(:,1); plot(t, SD2(:,2)) grid figure(2) t = SD1(:,1); plot(t, SD1(:,2)) grid figure(3) t = SD(:,1); plot(t, SD(:,2), t, SD(:,3)) grid (Ï. 5.4)
Первая часть программы формирует объект управления, на­званный plant. Объект имеет два входа — по каналу возмущения и по каналу управляющего воздействия. Если после выполнения этой части программы ввести название plant в окно настройки блока LTI1, то при отсутствии ошибок эта надпись появится на изображении блока. Вторая часть программы вычисляет матрицу
208 Глава 5. Связь Control System и Robust Control Toolboxes с Simulink
усиления Ê, с чем мы уже встречались ранее. Символ К вводится в окно настройки блока LTI4.
Третья часть программы рассчитывает расширенный фильтр Калмана. Сначала формируется расширенный объект ÐÐ, а затем собственно фильтр Калмана, получивший название kest. Эта часть программы аналогична приведенной в (П. 2.10). Название kest вводится в окно настройки LTI5. Заканчивается эта часть про­граммы запоминанием сформированной рабочей области на дис­ке. В окне схемы Simulink в окне опции Callback, подокно «Model initialization function» нужно ввести: load two_mass_lt.
Последняя часть программы запускает модель и при необхо­димости графически изображает результаты моделирования, при­чем первый рис. показывает фактический сигнал скорости (в дей­ствительности, ненаблюдаемый), второй — измеренный сигнал, искаженный помехой, и третий — фильтрованный сигнал.
На рис. 5.7 имеются еще два блока LTI, не участвующие в программе. Блок LTI3 представляет собой интегратор. Команда tf(1,[1 0]) набирается непосредственно в окне настройки блока и автоматически отображается на значке блока. Блок LTI2 представ­ляет собой формирующий фильтр — апериодическое звено с од­ним буквенным параметром Tw , значение которого указано в программе. Указанная на значке блока команда набирается непо­средственно в окне настройки блока и автоматически отображает­ся на значке блока.
Áëîê kest имеет 5 выходных сигналов: 1-й — оценка скорости, этот сигнал выделяется селектором Sel2 и служит для осуществле­ния основной обратной связи по скорости, остальные — оценка состояния расширенного объекта, причем для обратной связи ис­пользуются сигналы 2,3и4,которые выделяются селектором Sel1.
На рис. 5.8, 5.9, 5.10 показаны процессы в системе при задаю­щем сигнале в виде прямоугольных колебаний. На рис. 5.8 пока­зан сигнал фактической скорости, на рис. 5.9 измеренный сигнал и на рис. 5.10 — задание и отфильтрованный сигналы.
Блоки LTI System могут использоваться совместно с средства­ми SISO Design Tool, которые были подробно описаны в разде­ле 2.2.1. В SISO Design Tool имеются две команды работы с Simulink. Первая из них находится в меню SISO Design Tool: Tools/Draw Simulink Diagram. Эта команда применяется для пере­дачи уже синтезированной системы регулирования в систему Simulink. При ее выполнении создается модель Simulink той же структуры и с теми же передаточными функциями, что и в SISO
Глава 5. Связь Control System и Robust Control Toolboxes с Simulink 209
Ðèñ. 5.8. Фактическая скорость двигателя
Ðèñ. 5.9. Сигнал датчика скорости двигателя
Design Tool. На входе установлен блок генератора сигналов, а на выходе осциллограф. Для того, чтобы эту модель при последую­щих сеансах работы можно было использовать независимо от
210 Глава 5. Связь Control System и Robust Control Toolboxes с Simulink
Ðèñ. 5.10. Отфильтрованный сигнал скорости двигателя
SISO Design Tool, нужно сформированные передаточные функции запомнить на диске под каким-либо именем, а в модели Simulink в окне Callbacks/Model initialization function ввести: load name.
Проиллюстрируем применение этой команды на следующем примере. В разделе 2.2.1 был синтезирован интегральный регуля­тор для схемы, изображенной на рис. 1.15, схема соединений в SISO Design Tool рис. 2.22, д. Передаточная функция объекта име­ет вид (1.28). Представим себе, что процесс синтеза к данному мо­менту закончен, и все передаточные функции находятся в SISO Design Tool и в рабочей области. Для имитации этой ситуации создадим в рабочей области системы с этими передаточными функциями, введя в командном окне:
J1 = 21.5; J2 = 7; Cd = 243; G = tf ([J2 0 Cd], [J1*J2 0 (J1+J2)*Cd 0]) Ñ = tf(350,[1 0]); F = tf(-160,1); H = tf(1,1);
Затем введем команду
sisotool
и в окне SISO Design Tool выберем нужную схему соединений, с помощью меню File/Import/Import from Workspace вызовем окно
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]