MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/

Оптимальные и робастные системы управления\Mu-Analysis and Synthesis Toolbox

Веремей Е.И. Пособие "Mu-Analysis and Synthesis Toolbox"

В оглавление книги \ К следующему разделу \ К предыдущему разделу

ГЛАВА 3. ПРЕДСТАВЛЕНИЕ И ПРЕОБРАЗОВАНИЕ ДАННЫХ

Как и все ППП, входящие в состав системы Matlab, пакет -Tools работает со следующими базовыми типами данных: double, sparse, char, struct и cell. Все указанные типы данных являются классами в смысле объектной технологии программирования, а все переменные, размещенные в рабочем пространстве, являются объектами или экземплярами определенного класса.

Наряду с базовыми типами данных, в -Tools используются специализированные представления основных входных и выходных переменных для всех функций пакета. Однако эти представления не являются особыми объектами - они формируются в виде блочных матриц специального вида, которые относятся к одному из трех возможных вариантов: системные, переменные и постоянные матрицы.

В этом состоит существенное отличие от ППП Control Toolbox, где системные матрицы являются объектами, принадлежащими одному из четырех подклассов класса LTI. Это отличие требует предварительного взаимного преобразования системных матриц при одновременном использовании функций обоих пакетов.

3.1. Структуры матриц для представления данных

Специальный способ представления, принятый в пакете -Tools, позволяет оперировать с моделями линейных систем, как с единым целым, что, вообще говоря, характерно для структур или объектов. Однако авторы пакета сочли более удобным особый способ упаковки данных, представляющих систему в форме уравнений пространства состояний или в форме частотных характеристик от входа к выходу.

Базовыми математическими моделями линейных динамических систем, рассматриваемых в пакете, являются их уравнения в пространстве состояний вида

, (3.1)

где - вектор состояния динамической системы, - вектор входного сигнала, - вектор выходного сигнала. В ряде случаев в руководстве [UsGuide] модель (3.1) символически изображается четверкой матриц или передаточной матрицей от входа к выходу .

3.1.1. Системные матрицы

В пакете -Tools система (3.1) представляется в виде системной матрицы, имеющей следующую структуру:

, (3.2)

где "" - системная переменная, обозначающая машинную бесконечность.

Системная матрица создается с помощью функции pck. Например, для линейной системы вида

имеющей две компоненты ( и ) вектора состояния, два входа ( и ) и один выход (), системная матрица sys может быть введена с помощью следующих команд:


» a = [-.15,.5; -.5, -.15];
» b = [.2 4; -.4 0];
» c = [5 5];
» d = [.1 -.1];
» sys = pck(a,b,c,d);

Другой путь формирования системной матрицы вида (3.2) состоит в использовании функции pss2sys для преобразования в нее обычной матрицы , например:

» sys = pss2sys([a b;c d],2);

Здесь последний параметр - размерность вектора состояния.

В любом случае результат ввода системной матрицы можно непосредственно просмотреть на экране:

» sys
sys =
   -0.1500    0.5000     0.2000    4.0000    2.0000
   -0.5000   -0.1500   -0.4000              0            0
    5.0000    5.0000     0.1000   -0.1000             0
             0             0              0              0        -Inf

Есть также и другие способы вывода на экран информации о системной матрице. Наиболее кратким является использование специальной информационной команды minfo:

» minfo(sys)
system: 2 states 1 outputs 2 inputs

С помощью команды see можно просмотреть исходные матрицы , , и линейной системы:

» see(sys)
A matrix
   -0.1500    0.5000
   -0.5000   -0.1500
strike any key to move to B matrix
B matrix
    0.2000    4.0000
   -0.4000         0
strike any key to move to C matrix
C matrix
5 5
strike any key to move to D matrix
D matrix
    0.1000   -0.1000

Замечание: команды minfo и see выдают информацию о матрицах любого типа, представляющих данные в пакете -Tools.

Если, кроме просмотра, необходимо выделить составляющие , , и из системной матрицы и индивидуально разместить их в рабочем пространстве, можно воспользоваться командой распаковки unpck:

» [a1,b1,c1,d1]=unpck(sys)
a1 =
   -0.1500    0.5000
   -0.5000   -0.1500
b1 =
    0.2000    4.0000
   -0.4000         0
c1 =
     5     5
d1 =
    0.1000   -0.1000

Для получения матриц , , и , которые упакованы в обычную матрицу , можно воспользоваться командой sys2pss:

 » sys2pss(sys)
ans =
   -0.1500    0.5000    0.2000    4.0000
   -0.5000   -0.1500   -0.4000         0
    5.0000    5.0000    0.1000   -0.1000

Для формирования произвольной системной матрицы со случайными компонентами в пакете имеется функция sysrand, параметрами которой являются размерности векторов состояния, входа и выхода, например:

» sys=sysrand(2,2,1,1)
sys =
   -0.5883   -0.1364    1.0668    2.0000
    2.1832     0.1139    0.0593         0
   -0.0956     0.2944    0.7143         0
   -0.8323   -1.3362    1.6236          0
» eig(sys(1:2,1:2))
ans =
  -0.2372 - 0.4177i
  -0.2372 + 0.4177i

Если четвертый (не обязательный) параметр функции sysrand равен 1, то линейная система, которую представляет сформированная системная матрица, будет устойчивой, что подтверждает приведенный выше пример. По умолчанию этот параметр равен 0 - в этом случае устойчивость не гарантируется.

Заметим, что для поиска собственных значений матрицы ее не нужно предварительно сепарировать из состава системной матрицы - это может сделать специальная функция spoles. Например, команда

» spoles(sys)
ans =
  -0.2372 + 0.4177i
  -0.2372 - 0.4177i

возвращает собственные значения непосредственно для системной матрицы.

3.1.2. Переменные матрицы

Второй, широко используемый способ представления данных в ППП -Tools базируется на понятии переменной матрицы. Подобное представление тесно связано с понятием матричной функции от вещественной скалярной независимой переменной, которое широко используется в теории систем управления.

В качестве примера можно привести частотную характеристику линейной динамической системы с несколькими входами и несколькими выходами: здесь независимая переменная - это частота. Отдельными "значениями" частотной характеристики для каждой фиксированной частоты являются соответствующие матрицы с постоянными комплексными компонентами.

Переменная матрица представляет в пакете данные, определяемые заданной матричной функцией . При этом формируется конечная совокупность значений аргументов и совокупность соответствующих "значений" матричной функции. Затем обе указанные совокупности объединяются в составе системной матрицы, имеющей следующую структуру:

, (3.3)

где "" - системная переменная, обозначающая машинную бесконечность.

Переменная матрица может быть создана с помощью функции vpck по следующей схеме:

  1. Последовательно задаются значения независимой переменной и с использованием функции вычисляются соответствующие матрицы .
  2. Найденные матрицы объединяются в блочный вектор-столбец , а значения аргумента ­- в вектор-столбец .
  3. Вызывается функция vpck с аргументами и командой V = vpck(Gv,xv).

Приведенную схему проиллюстрируем следующим примером:

» G1 = [.1 -.1;.25 .5];
» x1 = 5;
» G2 = 2*mat1;
» x2 = 6;
» G3 = 2*mat2;
» x3 = 7;
» G4 = 2*mat3;
» x4 = 8;
» Gv = [G1; G2; G3; G4];
» xv = [x1; x2; x3; x4];
» V = vpck(Gv,xv)
» V
V =
    0.1000   -0.1000    5.0000
    0.2500    0.5000    6.0000
    0.2000   -0.2000    7.0000
    0.5000    1.0000    8.0000
    0.4000   -0.4000         0
    1.0000    2.0000         0
    0.8000   -0.8000         0
    2.0000    4.0000         0
             0    4.0000       Inf

С помощью команды minfo(V) можно получить информацию о сформированной переменной матрице:

» minfo(V)
varying: 4 pts 2 rows 2 cols

Выданная информация свидетельствует о том, что V - это переменная матрица, содержащая четыре "значения" матричной функции размера .

В оглавление книги \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:


Система Orphus