exponenta event banner

getOffsetsForLPV

Извлечение смещений LPV из результатов линеаризации

Описание

пример

offsets = getOffsetsForLPV(info) извлекает смещения линеаризации из info и преобразует их в формат массива, поддерживаемый блоком системы LPV.

Примеры

свернуть все

Откройте модель Simulink.

model = 'watertank';
open_system(model)

Укажите операции ввода-вывода линеаризации.

io(1) = linio('watertank/Desired  Water Level',1,'input');
io(2) = linio('watertank/Water-Tank System',1,'output');

Изменение параметров установки A и bи создайте сетку параметров 3 на 4.

[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),linspace(0.9*b,1.1*b,4));
params(1).Name = 'A';
params(1).Value = A_grid;
params(2).Name = 'b';
params(2).Value = b_grid;

Создайте набор опций линеаризации, установив StoreOffsets опция для true.

opt = linearizeOptions('StoreOffsets',true);

Линеаризация модели с использованием заданной сетки параметров и возврат смещений линеаризации в info структура.

[sys,op,info] = linearize('watertank',io,params,opt);

Извлеките смещения линеаризации.

offsets = getOffsetsForLPV(info)
offsets = 

  struct with fields:

     x: [2x1x3x4 double]
     y: [1x1x3x4 double]
     u: [1x1x3x4 double]
    dx: [2x1x3x4 double]

Для конфигурирования системного блока LPV используйте поля из offsets непосредственно.

Входные аргументы

свернуть все

Информация о линеаризации, возвращаемая точными командами линеаризации, заданными как структура. Эта структура имеет Offsets поле, содержащее N1-by-...- массив по Нм структур, где N1 к Нм - размеры массива рабочих точек или сетки параметров, используемых для линеаризации. Каждая структура в info.Offsets содержит информацию о смещении, соответствующую определенной рабочей точке.

Можно сохранять и получать смещения линеаризации при линеаризации модели с помощью одной из следующих команд.

Например:

opt = linearizeOptions('StoreOffsets',true);
[sys,op,info] = linearize(mdl,io,params,opt);

Затем можно извлечь информацию о смещении с помощью getOffsetsForLPV.

offsets = getOffsetsForLPV(info);

Выходные аргументы

свернуть все

Смещения линеаризации, соответствующие рабочим точкам линеаризации модели, возвращаются в виде структуры со следующими полями:

ОбластьОписание
xСмещения состояний, используемые для линеаризации, возвращаемые как nx-by-1-by-N1-by-...- массив by-Nm, где nx - количество состояний в линеаризованной системе.
yВыходные смещения, используемые для линеаризации, возвращаемые как ny-by-1-by-N1-by-...- массив by-Nm, где ny - количество выходов в линеаризованной системе.
uВходные смещения, используемые для линеаризации, возвращаемые как nu-by-1-by-N1-by-...- массив by-Nm, где nu - количество входов в линеаризованной системе.
dxПроизводные смещения для систем непрерывного времени или обновленные значения состояния для систем дискретного времени, возвращаемые в виде nx-by-1-by-N1-by-...массив -by-Nm.

Например, предположим, что модель имеет три входа, два выхода и четыре состояния. При линеаризации модели с использованием массива рабочих точек 5 на 6, offsets содержит массивы со следующими размерами:

  • offsets.x - 4 по 1 по 5 по 6

  • offsets.y - 2 на 1 на 5 на 6

  • offsets.u - 3 на 1 на 5 на 6

  • offsets.dx - 4 по 1 по 5 по 6

Для конфигурирования системного блока LPV можно использовать поля offsets непосредственно. Пример см. в разделе Аппроксимация нелинейного поведения с использованием массива систем LTI.

Представлен в R2016b