|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
Раздел "LMI Control Toolbox"
Е.И.Веремей, М.В.Коровкин. Пособие "LMI Control Toolbox".2. Представление данных и основные операции Наряду с базовыми типами данных, принятыми во всех пакетах прикладных программ системы Matlab, в пакете LMI-Tools используются специализированные представление входной и выходной информации для входящих в его состав инструментов. Как и в других пакетах, связанных с системами управления, в первую очередь, специальным способом объединяются данные, однозначно определяющие линейные стационарные динамические системы. Особое значение имеет специальная форма задания неопределенностей, которые связаны с математическими моделями систем и играют центральную роль в функциональной ориентации пакета LMI-Tools. В данной главе рассматриваются все специализированные способы представления данных, а так же те базовые операции над этими данными, которые определены в пакете. 2.1. Модели линейных стационарных систем и их представление в пакете Базовыми математическими моделями линейных динамических систем с постоянными коэффициентами (LTI-систем), рассматриваемых в пакете, являются их уравнения в пространстве состояний вида
где Дискретными аналогами систем вида (2.1) являются математические модели вида
работа с которыми также осуществляется в пакете. Специальный способ представления, принятый в пакете LMI-Tools, позволяет оперировать с моделями LTI-систем, как с единым целым, что характерно для структур или объектов в языках программирования высокого уровня. Однако авторы пакета, аналогично Данный подход существенно отличается от ППП Control Toolbox, где системные матрицы являются объектами, принадлежащими одному из четырех подклассов класса LTI. Это отличие требует предварительного взаимного преобразования системных матриц при обращении к функциям из пакета Control Toolbox. Форма представления - единая системная матрица
аналогична используемой в пакете Формирование LTI-систем. Для формирования системной матрицы используется функция ltisys: >>A=[0 1;1 0]; >>B=[1;1]; >>C=eye(2); >>D=zeros(2,1); >>E=[2 1;0 1]; >>sys1=ltisys(A,B,C,D,E) sys1 = 0 + 1.0000i 1.0000 + 1.0000i 1.0000 2.0000 1.0000 0 1.0000 0 1.0000 0 0 0 0 1.0000 0 0 0 0 0 -Inf Если матрицы Замечание: Если системная матрица сформирована для случая Для SISO-объектов (с одним входом и одним выходом) системная матрица может быть сформирована на основе передаточной функции объекта
>>p1=[1 2];
>>p2=[1 2 1];
>>sys2=ltisys('tf',p1,p2)
sys2 =
-2 -1 1 2
1 0 0 0
1 2 0 0
0 0 0 -Inf
Здесь p1 и p2 - векторы коэффициентов полиномов числителя и знаменателя Выделить матрицы линейной модели (2.1) из структуры системной матрицы можно при помощи функции ltiss:
>> [a,b,c,d,e]=ltiss(sys1)
a =
0 1
1 0
b =
1
1
c =
1 0
0 1
d =
0
0
e =
2 1
0 1
Для SISO объектов передаточную функцию
>> [P1,P2]=ltitf(sys2)
P1 =
0 1.0000 2.0000
P2 =
1 2 1
Для выделения подсистем исходной системы используется функция ssub, принимающая в качестве второго и третьего параметров индексы входов и выходов выделяемой подсистемы :
>> subsys=ssub(sys1,1,1)
subsys =
0 + 1.0000i 1.0000 + 1.0000i 1.0000 2.0000
1.0000 0 1.0000 0
1.0000 0 0 0
0 0 0 -Inf
Свойства LTI-систем. Информацию о количестве переменных состояния, входов и выходов рассматриваемой линейной системы можно получить с помощью функции sinfo: >> sinfo(sys1) Совокупность полюсов LTI-системы доступна по вызову функции spol:
>> spol(sys1)
ans =
0.5000
-1.0000
Для построения временных и частотных характеристик системы предназначена функция splot. В качестве второго аргумента при ее вызове выступает строка, содержащая сокращенный тип характеристики: 'bo' - диаграмма Боде (АФЧХ LTI-системы); 'sv' - частотная характеристика максимального сингулярного числа; 'ny' - диаграмма (годограф) Найквиста (только для SISO моделей); 'li' - линейно-логарифмическая диаграмма Найквиста (только для SISO моделей); 'ni' - диаграмма Блэка/Николса (только для SISO модели); 'st' - реакция на единичное ступенчатое возмущение; 'im' - импульсная переходная характеристика; 'sq' - реакция на повторяющиеся прямоугольные импульсы фиксированной частоты; 'si' - реакция на гармонические колебания фиксированной частоты. Необязательный третий аргумент позволяет указать диапазон изменения частот для частотных характеристик и периодичность входных сигналов для вариантов 'sq' и 'si'. >> splot(sys1,'st') Для дискретных систем построение графиков осуществляется только при указании периода дискретизации T: >> splot(sys,T,'st'); 2.2 Линейные системы с неопределенностями Бесспорным является тот факт, что в большинстве случаев простейшая линейная модель вида (2.1) или (2.2) не может исчерпывающе охарактеризовать поведение объекта управления. Данная модель дает лишь приближенное представление о свойствах объекта и по своей сути не может отражать влияние различных дополнительных факторов, сопровождающих его реальное функционирование. В качестве указанных дополнительных факторов в рассматриваемом пакете выступают различные неопределенности математических моделей LTI-систем. В настоящее время принято разделять неопределенности на два большие класса: структурированные (параметрические) и неструктурированные (не моделируемая динамика). Соответственно в пакете LMI Control для представления моделей объектов управления, учитывающих неопределенности, используются два различных способа: задание возможного множества вариаций системной матрицы линейной модели: формирование дробно-линейной модели с вынесением неопределенности в обратную связь. Использование того или иного способа определяется спецификой имеющейся в распоряжении исследователя модели объекта, а также предполагаемым аппаратом для проведения анализа и синтеза. Рассмотрим оба эти способа. Возможное множество вариаций системной матрицы в пакете трактуется как выпуклый многогранник
где
>>S0=ltisys([1 1;0 1],[1; 2],eye(2));
>>S1=ltisys([1 0;1 0],[1;1],eye(2),zeros(2,1));
>>S2=ltisys([0 1;1 0],[0;1],eye(2),zeros(2,1));
>>polysys1=psys([S0 S1 S2])
polysys1 =
Columns 1 through 8
-Inf 0 1 1 1 2 0 1
1 0 0 1 2 0 0 1
3 0 1 0 0 0 0 1
2 0 0 1 0 0 0 0
1 0 0 0 0 -Inf 0 0
2 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0
Columns 9 through 16
0 1 2 0 0 1 0 2
0 1 0 0 1 0 1 0
0 0 0 0 1 0 0 0
1 0 0 0 0 1 0 0
0 0 -Inf 0 0 0 0 -Inf
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Можно предложить и другое представление допустимого множества
Здесь Для задания допустимого множества изменения параметров
>>prange=[1 2;-10 20]; % пределы изменения компонент вектора параметров
>>dprange=[-0.01 0.01;0 0]; % пределы изменения производных компонент вектора параметров
>>p1=pvec('box',prange,dprange)
p1 =
1.0000 1.0000 2.0000 -0.0100 0.0100
2.0000 -10.0000 20.0000 0 0
Второй вариант предполагает задание вершин выпуклого множества
>>pvertex1=[-3; 4];
>>pvertex2=[1; 2];
>>pvertex3=[-0.5; -1];
>>p2=pvec('pol',[ pvertex1, pvertex2, pvertex3])
p2 =
2.0000 -3.0000 1.0000 -0.5000
2.0000 4.0000 2.0000 -1.0000
Для формирования аффинной модели объекта используется следующий синтаксис вызова функции psys:
>>BS0=ltisys([1 1;0 1],[1; 2],eye(2));
>>BS1=ltisys([1 0;1 0],[1;1],eye(2),zeros(2,1),0);
>>BS2=ltisys([0 1;1 0],[0;1],eye(2),zeros(2,1),0);
>>affsys1=psys(p1, [BS0 BS1 BS2])
affsys1 =
Columns 1 through 3
-Inf 0 1.0000
2.0000 0 0
3.0000 0 1.0000
2.0000 0 0
1.0000 0 0
2.0000 0 0
10.0000 0 0
Columns 4 through 6
1.0000 1.0000 2.0000
1.0000 2.0000 0
0 0 0
1.0000 0 0
0 0 -Inf
0 0 0
0 0 0
Columns 7 through 9
0 1.0000 - 1.0000i 0
0 1.0000 0 - 1.0000i
0 1.0000 0
0 0 1.0000
0 0 0
0 0 0
0 0 0
Columns 10 through 12
1.0000 2.0000 0
1.0000 0 0
0 0 0
0 0 0
0 -Inf 0
0 0 0
0 0 0
Columns 13 through 15
0 - 1.0000i 1.0000 0
1.0000 0 - 1.0000i 1.0000
1.0000 0 0
0 1.0000 0
0 0 0
0 0 0
0 0 0
Columns 16 through 18
2.0000 1.0000 1.0000
0 2.0000 -10.0000
0 0 0
0 0 0
-Inf 0 0
0 0 0
0 0 0
Columns 19 through 21
2.0000 -0.0100 0.0100
20.0000 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
Функция aff2pol используется для преобразования аффинной модели в политопную:
>> polysys2=aff2pol(affsys1)
polysys2 =
Columns 1 through 5
-Inf 0 2.0000 -9.0000 2.0000
1.0000 0 -9.0000 1.0000 -7.0000
4.0000 0 -8.0000 0 0
2.0000 0 0 -8.0000 0
1.0000 0 0 0 0
2.0000 0 0 0 0
10.0000 0 0 0 0
Columns 6 through 10
2.0000 0 3.0000 -9.0000 3.0000
0 0 -8.0000 1.0000 -6.0000
0 0 -7.0000 0 0
0 0 0 -7.0000 0
-Inf 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Columns 11 through 15
2.0000 0 2.0000 21.0000 2.0000
0 0 21.0000 1.0000 23.0000
0 0 22.0000 0 0
0 0 0 22.0000 0
-Inf 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Columns 16 through 20
2.0000 0 3.0000 21.0000 3.0000
0 0 22.0000 1.0000 24.0000
0 0 23.0000 0 0
0 0 0 23.0000 0
-Inf 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Columns 21 through 25
2.0000 1.0000 1.0000 2.0000 -0.0100
0 2.0000 -10.0000 20.0000 0
0 0 0 0 0
0 0 0 0 0
-Inf 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Column 26
0.0100
0
0
0
0
0
0
Информацию о системе с неопределенностями можно получить с помощью функции psinfo:
>> psinfo(polysys2)
Polytopic model with 3 vertex systems
Each system has 2 state(s), 1 input(s), and 2 output(s)
Дробно-линейная модель является более общим способом представления систем с учетом неопределенностей. Если для рассматриваемого объекта известна базовая (номинальная) математическая модель, имеющая вид линейной стационарной системы (2.1) или (2.2), то модель, учитывающая неопределенности, может быть представлена в виде блок-схемы, изображенной на рис.2.1.
Рис.2.1. В составе схемы блок Третий (необязательный) аргумент функции ublock определяет качественные параметры неопределенности блока. Выделяются три категории параметров, для каждой из которых доступны несколько вариантов выбора: 1. Тип a. 'lti' - линейный стационарный (значение по умолчанию); b. 'ltv' - линейный нестационарный; c. 'nl' - произвольный нелинейный; d. 'nlm' - нелинейный без запаздывания; 2. Структура a. 'f' - полный блок (значение по умолчанию); b. 's' - скалярный блок вида 3. Значения a. 'c' - блок с комплексными элементами (значение по умолчанию); b. 'r' - блок с вещественными элементами.
При использовании функции ublock её третий аргумент (строку) можно компоновать из опций, относящихся к различным разделам, например 'nlmsr' - нелинейный без запаздывания блок вещественных скаляров. Объединение отдельных блоков неопределенности выполняется функцией udiag:
>>delta1=ublock([3 1],0.1);
>>delta2=ublock(2,2,'s');
>>delta3=ublock([1 2],100,'nl')
delta3 =
1
2
0
1
0
0
1
1
100
>>delta=udiag(delta1,delta2,delta3)
delta =
3.0000 2.0000 1.0000
1.0000 2.0000 2.0000
1.0000 1.0000 0
0 0 1.0000
1.0000 1.0000 0
0 1.0000 0
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
0.1000 2.0000 100.0000
С помощью функции uinfo можно получить информацию о блоке неопределенности:
>> uinfo(delta)
block dims type real/cplx full/scal bounds
1 3x1 LTI c f norm <= 0.1
2 2x2 LTI c s norm <= 2
3 1x2 NL r f norm <= 100
Для преобразования аффинной системы, множество изменения параметров которой является параллелепипедом, к виду дробно-линейной системы используется функция aff2lft:
>> [NS,delta1]=aff2lft(affsys1)
NS =
Columns 1 through 5
2.5000 6.0000 -0.9604 0 -0.2123
6.5000 1.0000 -0.9604 0 -0.2123
-1.1519 -0.0000 0.0000 0 0.0000
0 1.0000 0 0 0
0.5008 0.0000 -0.0000 0 -0.0000
1.0820 0 0 0 0
0 -1.1892 0 0 0
-0.4133 0 0 0 0
7.5000 0 -0.5393 0 0.7563
0 7.5000 0 1.0000 0
0 0 0 0 0
Columns 6 through 10
0 -0.8409 0 2.5000 2.0000
1.0820 0 0.4133 8.5000 0
0 0.0000 0 -0.8994 0
0 0 0 0 0
0 -0.0000 0 -0.6414 0
0 0 0 0.6687 0
0 0 0 0 0
0 0 0 0.6687 0
0.6687 0 -0.6687 0 0
0 -0.8409 0 0 0
0 0 0 0 -Inf
delta1 =
3.0000 3.0000
3.0000 3.0000
1.0000 1.0000
1.0000 0
0 0
1.0000 1.0000
1.0000 1.0000
1.0000 1.0000
0.5000 15.0000
Результатом ее вызова будет базовая система NS, которая соответствует среднему значению вектора параметров, и блок неопределенности delta1, всегда состоящий только из скалярных вещественных линейных стационарных подблоков, с ограничением по норме, определяемым максимальным отклонением среднего значения вектора параметров от граничных значений. 2.3. Операции над системами Как и в большинстве пакетов расширения MATLAB, предназначенных для работы с LTI объектами, в LMI Control toolbox существуют средства, позволяющие объединять объекты для получения более сложных систем. Они включают в себя следующие функции: sadd(S1, S2) - моделирует параллельное соединение двух систем, представленных системными матрицами S1 и S2
smult(S1, S2) - моделирует последовательное соединение
sdiag(S1, S2) - формирует объединенную систему с передаточной функцией .
Для каждой из этих функций имеется возможность использовать до десяти аргументов - системных матриц, и при этом в качестве одного из аргументов может выступать политопная или аффинная система с неопределенностью. Более сложные варианты соединения систем поддерживаются следующими функциями: sloop(S1,S2,sgn) - замыкание системы S1 отрицательной (по умолчанию, либо положительной, что контролируется третьим аргументом) обратной связью через систему S2
slft(S1,S2,wdim,zdim) - более сложный вариант замыкания систем, с получением системы, входом которой является
Параметры wdim и zdim определяют размерность векторов z и w соответственно. По умолчанию применяется следующее правило: если число входов/выходов системы S1 больше числа входов/выходов S2, то zdim равно числу входов S2, а wdim равно числу выходов S2; если число входов/выходов системы S2 больше числа входов/выходов S1, то zdim равно числу выходов S1, а wdim равно числу входов S1. |
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|