Control System Toolbox (1086791), страница 2
Текст из файла (страница 2)
>> H - zpk({[0];[-0.5]},{[0.3];[0.1+i 0.1-i]},[1;2],-1)
Zero/pole/gain from input to output...
z
#1: -------------
(z-0.3)
2 (z+0.5)
#2: ----------------------
(z^2 - 0.2z + 1.01)
Sampling time: unspecified
>> [z,p,k] = zpkdata(H)
z =
[ 0]
[-0.5000]
p =
[ 0.3000]
[2x1 double]
k =
1
2
Функция ssdata возвращает матрицы (и величину интервала дискретизации в дискретном случае) ss-модели:
[a,b,c,d] = ssdata(sys) [a,b,c,d,Ts] = ssdata(sys)
Функция dssdata возвращает информацию о матрицах (и о величине интервала дискретизации) ss-модели в неявной форме Коши (см. описание функции dss):
[a,b,c,d,e] = dssdata(sys) [a,b,с,d,e,Ts] = dssdata(sys)
Функция frdata возвращает информацию о комплексном коэффициенте передачи объекта. Является обратной по отношению к функции f rd. Записывается в виде:
[response,freq] = frdata(sys)
[response,freq,Ts] = frdata(sys)
[response,freq] = frdata(sys,'v')
Смысл всех аргументов и возвращаемых величин пояснен выше.
Функция get возвращает информацию о текущих свойствах модели:
get(sys) Value = get(sys,'PropertyName')
7.3.2. Получение информации об отдельных характеристиках модели
Данную группу образуют следующие функции, которые приведем справки и представлены лишь своими именами:
• class — возвращает информацию о типе модели (tf, zpk, ss или frd);
• hasdelay — тестирует LTI модель на наличие задержки;
• isa — осуществляет проверку, является ли LTI-модель моделью заданного типа;
• isct — осуществляет проверку, является ли LTI-модель непрерывной:
• isdt — осуществляет проверку, является ли LTI-модель дискретной:
• isempty — осуществляет проверку, является ли LTI-модель пустой:
• isproper — осуществляет проверку, является ли LTI-модель правильной;
• issiso — осуществляет проверку, является ли LTI-модель одномерной;
• ndims — возвращает информацию о размере вектора переменных состояния модели х;
• size — возвращает информацию о размерах матриц модели.
Эти функции достаточно просты, так что ограничимся парой примеров на их применение:
>> isa(rand(3,4),'double')
ans =1
>> sys = rss (3,1,1,3); ndims(sys)
ans = 4
7.3.3. Преобразование моделей
К функциям преобразования моделей относятся следующие 12 функций, для краткости описания указанные только именами:
• c2d — преобразует непрерывную модель в дискретную;
• chgunits — изменяет размерность частоты в frd-модели;
• d2c — преобразует дискретную модель в непрерывную;
• d2d — изменяет интервал дискретизации в дискретной модели.
• delay2z — преобразует задержки в дискретно-временные модели или FRD-модели;
• frd — преобразует LTI-модель в frd-форму;
• pade — вычисляет Паде-аппроксимации для задержек;
• reschare — изменяет образ LTI массива;
• residue — выполняет частичное расширение дроби;
• ss — преобразует LTI модель в ss - форму;
• tf — преобразует LTI-модель в tf-форму;
• zpk — преобразует LTI-модель в zpk-форму.
В качестве примера на преобразование моделей рассмотрим применение функции delay2z для создания дискретной временной задержки:
>> z=tf ('z.',-l) ; sys=(-.4*z -.1)/(z^2+1.05*z+.08)
Transfer function:
-0.4 z - 0.1
-------------------------------
z^2 + 1.05 z + 0.08
Sampling time: unspecified
>> sys.Inputd = 1
Transfer function:
-0.4 z - 0.1
z^(-1) * -------------------------------
z^2 + 1.05 z + 0.08
Sampling time: unspecified
>> sys=delay2z(sys)
Transfer function:
-0.4 z - 0.1
------------------------------------
z^3 + 1.05 z^2 + 0.08 z
Sampling time: unspecified
А теперь применим функцию pade для создания динамического звена с передаточной функцией в виде отношения двух полиномов, аппроксимирующего звено временного запаздывания. Величина задержки 1 с, порядок аппроксимирующего звена 2.
>> [num,den] = pade(1,2)
num =
1 -6 12
den =
1 6 12
Отметим, что полученная аппроксимация соответствует известной формуле
7.3.4. «Арифметические» операции с моделями
Арифметические операторы пакета позволяют создавать и изменять структуры динамических систем. При этом операндами в данном случае являются LTI-модели. Возможны следующие операции:
-
+ и - — сложение и вычитание LTI-моделей (параллельное соединение);
-
— умножение LTI-моделей (последовательное соединение);
-
\ — левое деление (sysl\sys2 равносильно inv(sysl) *sys2);
-
/ — правое деление (sysl/sys2 равносильно sysl*inv (sys2));
-
^ — возведение LTI-модели в степень (последовательное соединение нескольких одинаковых LTI- моделей);
-
' — операция, означающая замену матрицы системы А(р) на матрицу [А(-р)]т; для дискретных моделей — замена матрицы A(z) на матрицу [A(z-1)]т (так называемая операция pertransposition);
-
• ' — транспонирование модели (замена входов на выходы и наоборот);
-
[..] — горизонтальное/вертикальное объединение LTI-моделей;
-
inv — обращение LTI-модели.
7.3.5. Модели для переменных состояния
Рассмотрим функции моделей для переменных состояния.
Функция canon возвращает так называемую каноническую форму ss=модели:
csys = canon(sys,'type1) [csys,Т] = canon(sys,'type')
Функцией поддерживаются две канонические формы: модальная и присоединенная.
В модальной канонической форме действительные собственные значения матрицы А расположены на ее главной диагонали, а паре комплексно-сопряженных собственных значений соответствует блок размера 22, также расположенный на диагонали этой матрицы. Для системы с собственными значениями (1, ± j, 2) модальная матрица А имеет вид
В присоединенной канонической форме данная матрица имеет вид
где a1 – a n — коэффициенты характеристического многочлена системы:
Аргументы этой функции следующие:
sys — имя исходной ss-модели;
'type' — строковая переменная, задающая тип канонической формы ('modal' — модальная форма, 'companion' — присоединенная).
Возвращаемые величины: csys — преобразованная модель, T — матрица преобразования, связывающая вектор состояния в канонической форме с вектором состояния исходной модели.
Функция ctrb формирует матрицу управляемости для модели в пространстве состояний:
Со = ctrb (А, В) Со = ctrb (sys)
Здесь sys — имя ss-модели, А и В — матрицы этой модели.
Система является управляемой, если матрица управляемости имеет полный ранг. Возвращаемая величина Со — матрица управляемости, имеющая n строк и nm столбцов (т — количество входов) и описываемая соотношением
Со = [В АВ А2В ... Аn-1В].
Для примера проверим, является ли управляемой система 2-го порядка с матрицами
Проверка осуществляется с использованием следующих функций:
>> А=[1 1; 4 -2]; В=[1 -1; 1 -1];
>> Co=ctrb(A,B)
Со =
-
–1 2 -2
1 -1 2 -2
>> rank(Co)
ans = 1
В данном случае ранг матрицы управляемости равен 1, а порядок системы — 2. Следовательно, система не является полностью управляемой.
Функция ctrbf формирует так называемую каноническую форму управляемости:
[Abar,Bbar,Cbar,T,k] = ctrbf(А,В,С)
[Abar,Bbar,Cbar,Т,k] = ctrbf(А,В,С,tol)
Здесь аргумент tol позволяет задать точность вычислений. Если матрица управляемости для пары {А, В} имеет ранг r < п, где п — порядок матрицы А, то существует преобразование подобия вида
где Т — унитарная матрица, при которой преобразованная система имеет блочно-треугольную форму с неуправляемыми модами, расположенными в верхнем левом углу:
Такая форма называется канонической формой управляемости.
Пара матриц {Ас, Bс} является управляемой, так что справедливо соотношение
Сс(рI – Аc)-1Вc = С(рI - А)-1В,
где I — единичная матрица, то есть передаточная функция всей системы совпадает с передаточной функцией ее управляемой части, а все моды, соответствующие собственным значениям матрицы Аuс, являются неуправляемыми.
Функция [Abar,Bbar,Cbar,Т,k] .= ctrbf(А,В,С) преобразует ss-модель, описываемую тройкой матриц [А, В, С], в каноническую форму управляемости [Abar, Bbar, Cbar]. Матрица T описывает преобразование подобия, а элементы вектора k указывают количество управляемых мод, выделенных на каждом шаге расчета матрицы преобразования. Число ненулевых элементов вектора k показывает, сколько итераций потребовалось для расчета матрицы Т, а величина sum(k) указывает число канонических переменных состояния, соответствующих управляемой части матрицы Abar.
Пример применения функции ctrbf:
>> А = [[1 1]; [4 -2]]; В =[[1 -1]; [1 -1]]; С = [[1 0]; [ 0 1]];
>> [Abar,Bbar,Cbar,Т,k]=ctrbf(А,В,С)
Abar =
-3.0000 0.0000
3.0000 2.0000
Bbar =
0 0
-1.4142 1.4142
Cbar =
-0.7071 -0.7071
0.7071 -0.7071
T =
-0.7071 0.7071
-0.7071 -0.7071
k =
-
0
Функция gram позволяет вычислить функции Грама для оценки управляемости и наблюдаемости системы, называемые соответственно грамианами управляемости и наблюдаемости. Грамианы применяются для исследования свойств управляемости и наблюдаемости моделей систем, заданных в про странстве состояний, а также для построения их минимальных реализаций.
Они более удобны для вычислений, чем матрицы управляемости и наблюдаемости (матрица А модели должна быть устойчивой).
Для непрерывной ss-мод ели грамиан управляемости определяется интегралом