getOffsetsForLPV

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

Описание

пример

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

Примеры

свернуть все

Откройте модель 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- ...-by - Nm массив структур, где N1 к Nm являются размерностями массива рабочих точек или сетки параметров, используемой для линеаризации. Каждая структура в 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 System, можно использовать поля offsets непосредственно. Для получения примера смотрите Аппроксимацию нелинейного поведения с использованием массива систем LTI.

Введенный в R2016b