LPV System

Симулируйте системы изменения линейных параметров (LPV)

Описание

Представление и моделирование систем с изменяющимися линейными параметрами (LPV) в Simulink®. Блок также поддерживает генерацию кода.

Система linear parameter-varying (LPV) является моделью линейного пространства состояний, динамика которой изменяется как функция от определенных изменяющихся во времени параметров, называемых scheduling parameters. В MATLAB®модель LPV представлена в форме пространства состояний с использованием коэффициентов, которые зависят от параметра.

Математически система LPV представлена как:

dx(t)=A(p)x(t)+B(p)u(t)y(t)=C(p)x(t)+D(p)u(t)x(0)=x0(1)

где

  • u(t) являются входами

  • y(t) выходы

  • x(t) являются ли состояния модели с начальным значением x0

  • dx(t) является производным от состояния вектором x˙ для систем в непрерывном времени и вектора обновления состояния x(t+ΔT) для систем в дискретном времени. .R. T - шаг расчета.

  • A(p), B(p), C(p) и D(p) являются ли матрицы пространства состояний, параметризованные вектором параметра планирования p.

  • Параметры p = p(t) являются измеряемыми функциями входов и состояний модели. Они могут быть скалярной величиной или вектором из нескольких параметров. Набор параметров планирования определяет пространство планирования, над которым задана модель LPV.

Блок реализует основанное на сетке представление системы LPV. Вы выбираете сетку значений для параметров планирования. При каждом значении p = p*, вы задаете соответствующую линейную систему как пространство состояний (ss или idss (System Identification Toolbox)) объект модели. Вы используете сгенерированный массив моделей пространства состояний, чтобы сконфигурировать LPV System блок.

Блок принимает массив моделей пространства состояний с информацией о рабочей точке. Информация о переменных планирования извлекается из SamplingGrid свойство массива LTI. Переменные планирования определяют сетку моделей LPV. Они являются скалярными величинами, которые могут быть функциями времени, входами и состояниями или константами. Они используются для выбора локальной динамики в рабочем пространстве. Программа интерполирует значения этих переменных. Блок использует этот массив с методами интерполяции данных и экстраполяции для симуляции.

Представление системы LPV может быть расширено, чтобы разрешить смещения в dx, x, u и y переменные. Эта форма известна как affine form модели LPV. Математически, следующее представляет систему LPV:

dx(t)=A(p)x(t)+B(p)u(t)+(dx¯(p)A(p)x¯(p)B(p)u¯(p))y(t)=C(p)x(t)+D(p)u(t)+(y¯(p)C(p)x¯(p)D(p)u¯(p))x(0)=x0(2)

dx¯(p),  x¯(p),  u¯(p),  y¯(p) являются ли смещения в значениях dx(t), x(t), u(t) и y(t) при заданном значении параметров p = p(t).

Чтобы получить такие представления массива линейной системы, линеаризируйте модель Simulink по пакету рабочих точек (см. «Пакетная линеаризация (Simulink Control Design)»). Смещения соответствуют рабочим точкам, в которых вы линеаризировали модель.

Можно получить смещения путем возврата дополнительной информации линеаризации при вызове функций, таких как linearize (Simulink Control Design) или getIOTransfer (Simulink Control Design). Затем можно извлечь смещения, используя getOffsetsForLPV (Simulink Control Design). Для получения примера смотрите Приближение LPV модели Boost Converter (Simulink Control Design).

К блоку LPV System применяются следующие ограничения:

  • Внутренние задержки не могут быть экстраполированы, чтобы быть меньше их минимального значения в массиве моделей пространства состояний.

  • При использовании неправильной сетки линейных моделей для определения системы LPV используется только ближайшая соседняя схема интерполяции. Это может снизить точность результатов симуляции. Рекомендуется работать с обычными сетками. Дополнительные сведения о регулярных и нерегулярных сетках см. в разделе «Регулярные и нерегулярные сетки».

  • LPV System block

Поддержка типа данных

Одинарные и двойные данные. Вы должны преобразовать любой другой тип данных для входных сигналов или свойств модели в эти типы данных.

Параметры

Диалоговое окно LPV System Параметры Блоков содержит пять вкладок для определения системных данных, алгоритма планирования и выходных портов. В следующей таблице представлены параметры блоков.

ЗадачаПараметры
Задайте массив моделей пространства состояний и начальных состояний

На LPV Model вкладке:

Задайте смещения рабочей точки

На LPV Model вкладке:

Задайте смещения в производной состояния или переменной обновления

На вкладке LPV Model:

Определите, какие матрицы модели являются фиксированными, и их номинальные значения, чтобы переопределить записи в данных моделях.
В некоторых ситуациях можно хотеть заменить зависящую от параметра матрицу, такую как A(p) с фиксированным значением A* для симуляции. Для примера, A* может представлять среднее значение в области значений планирования.

На вкладке Fixed Entries:

Задайте опции для интерполяции и экстраполяции

На вкладке Scheduling:

Задайте дополнительные выходы для блока

На вкладке Outputs:

Задайте настройки генерации кода

На вкладке Code Generation:

Массив пространства состояний

Массив пространства состояний (ss или idss (System Identification Toolbox)) модели. Все модели массива должны использовать одно и то же определение состояний. Используйте SamplingGrid свойство объекта пространства состояний задавать параметры планирования для модели. См. ss или idss Модель-ссылка страницу для получения дополнительной информации о SamplingGrid свойство.

Когда блок находится в модели с синхронным управлением состояниями (см. State Control (HDL Coder) блок), вы должны задать массив моделей дискретного времени.

Начальное состояние

Начальные условия для использования с локальной моделью для начала симуляции, задали одно из следующего:

  • 0 (По умолчанию)

  • Двойной вектор длины, равный количеству состояний модели

Входное смещение

Смещения во входных u(t), указанный как одно из следующего:

  • 0 (По умолчанию) - Используется, когда нет входных смещений (u¯(p)=0  p).

  • Двойной вектор длины, равной количеству входов - Используйте, когда входное смещение одинаково для пространства планирования.

  • Двойной массив размера [nu 1 sysArraySize] - Используйте, когда смещения присутствуют и они варьируются в пространстве планирования. Здесь, nu = количество входов, sysArraySize = размер массива массива пространства состояний. Использовать size для определения размера массива.

Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком LPV System. Для получения дополнительной информации смотрите Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV (Simulink Control Design).

Выходное смещение

Смещения в выходных y(t), указанный как одно из следующего:

  • 0 (По умолчанию) - Используется, когда нет выходных смещений y¯(p)=0  p.

  • Двойной вектор длины, равный количеству выходов. Используйте, когда выходные смещения одинаковы в пространстве планирования.

  • Двойной массив размера [ny 1 sysArraySize]. Используйте, когда присутствуют смещения, и они варьируются в пространстве планирования. Здесь, ny = количество выходов, sysArraySize = размер массива массива пространства состояний. Использовать size для определения размера массива.

Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком LPV System. Для получения дополнительной информации смотрите Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV (Simulink Control Design).

Смещение состояния

Смещения в состояниях x(t), указанный как одно из следующего:

  • 0 (По умолчанию) - Используется, когда нет смещений состояния x¯(p)=0  p.

  • Двойной вектор длины, равный количеству состояний. Используйте, когда смещения состояний одинаковы в пространстве планирования.

  • Двойной массив размера [nx 1 sysArraySize], где nx = количество состояний, sysArraySize = размер массива массива пространства состояний. Используйте, когда присутствуют смещения, и они варьируются в пространстве планирования. Здесь, nx = количество состояний, sysArraySize = размер массива массива пространства состояний. Использовать size для определения размера массива.

Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком LPV System. Для получения дополнительной информации смотрите Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV (Simulink Control Design).

Производная состояния/смещение обновления

Смещения в производной состояния или переменной обновления dx(t), указанный как одно из следующего:

  • Если вы получили линейную систему массива путем линеаризации при условиях равновесия, выберите Assume equilibrium conditions опцию. Эта опция соответствует смещению dx¯(p)=0 для непрерывного времени системы и dx¯(p)=x¯(p) для системы в дискретном времени. Эта опция выбрана по умолчанию.

  • Если линейная система содержит хотя бы одну систему, которую вы получили при неравновесных условиях, очистите Assume equilibrium conditions опцию. Задайте одно из следующих значений в поле Offset value:

    • Если на dx значения смещения одинаковы в пространстве планирования, задаются как двойной вектор длины, равной количеству состояний.

    • Если на dx смещения присутствуют, и они варьируются в пространстве планирования, задаются как двойной массив размера [nx 1 sysArraySize], где nx = количество состояний, и sysArraySize = размер массива массива пространства состояний.

Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком LPV System. Для получения дополнительной информации смотрите Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV (Simulink Control Design).

Номинальная модель

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

  • Use the first model in state-space array (По умолчанию:) - первая модель в массиве состояний используется для представления модели LPV. В следующем примере массив пространства состояний задается объектом sys и фиксированные коэффициенты берутся из модели sys(:,:,1).

    % Specify a 4-by-5 array of state-space models.
    sys = rss(4,2,3,4,5);
    a = 1:4; 
    b = 10:10:50;
    [av,bv] = ndgrid(a,b);
    % Use "alpha" and "beta" variables as scheduling parameters.
    sys.SamplingGrid = struct('alpha',av,'beta',bv);  

    Фиксированные коэффициенты берутся из модели sysFixed = sys(:,:,1), что соответствует [alpha=1, beta=10]. Если (2,1) запись A матрица вынуждена быть фиксированной, ее значение, используемое во время симуляции, sysFixed.A(2,1).

  • Custom value - Задайте другую модель пространства состояний для фиксированных записей. Задайте переменную для фиксированной модели в поле State space model. Фиксированная модель должна использовать тот же базис состояний, что и массив пространства состояний в модели LPV.

Индексы с фиксированным коэффициентом

Задайте, какие коэффициенты матриц пространства состояний и векторов задержки являются фиксированными.

Задайте одно из следующих значений:

  • Скалярное логическое (true или false), если все записи матрицы должны обрабатываться одинаково.

    Значение по умолчанию false для матриц пространства состояний и векторов задержки, что означает, что они рассматриваются как свободные.

  • Логическая матрица размера, совместимого с размером соответствующей матрицы:

    Матрица пространства состояний

    Размер фиксированной матрицы ввода

    A matrix

    nx-by- nx

    B matrix

    nx-by- nu

    C matrix

    ny-by- nx

    D matrix

    ny-by- nu

    Input delay

    nu-by-1

    Output delay

    ny-by-1

    Internal delay

    ni-by-1

    где, nu = количество входов, ny = количество выходов, nx = количество состояний, ni = длина вектора внутренней задержки.

  • Числовые индексы для определения местоположения фиксированных записей. Посмотрите sub2ind Страница с описанием для получения дополнительной информации о том, как сгенерировать числовые индексы, соответствующие заданному индексу (i,j) для элемента массива матрицы.

Метод интерполяции

Метод интерполяции. Определяет, как данные о пространстве состояний должны вычисляться для значений параметров планирования, которые расположены вдали от их расположения в сетке.

Задайте одну из следующих опций:

  • Flat - Выберите данные о пространстве состояний в ближайшей точке сетки, но не больше, чем текущая точка. Текущая точка является значением параметров планирования в текущем времени.

  • Nearest - Выберите данные о пространстве состояний в ближайшей точке сетки в пространстве планирования.

  • Linear - Получите данные пространства состояний путем линейной интерполяции ближайших 2d соседей в пространстве планирования, где d = количество параметров планирования.

Схема интерполяции по умолчанию Linear для регулярных сеток значений параметров планирования. Для неправильных сеток, Nearest схема интерполяции всегда используется независимо от сделанного выбора. дополнительные сведения о регулярных и нерегулярных сетках см. в разделе «Регулярные и нерегулярные сетки».

The Linear метод обеспечивает самую высокую точность, но требуется больше времени для вычисления. The Flat и Nearest методы хороши для моделей, которые имеют динамику переключения режимов.

Метод экстраполяции

Метод экстраполяции. Определяет, как вычислить данные пространства состояний для планирования значений параметров, которые находятся вне области значений, в которой был предоставлен массив пространства состояний (как задано в SamplingGrid свойство).

Задайте одну из следующих опций:

  • Clip (По умолчанию:) - отключает экстраполяцию и возвращает данные, соответствующие последней доступной точке сетки планирования, которая находится ближе всего к текущей точке.

  • Linear - Строка между первой или последней парой значений для каждого параметра планирования, в зависимости от того, меньше ли текущее значение, чем первое или больше, чем последнее значение точки сетки, соответственно. Этот метод возвращает точку на линии, соответствующую текущему значению. Линейная экстраполяция требует, чтобы схема интерполяции была также линейной.

Метод поиска по индексу

Расположение текущих значений параметров планирования в пространстве планирования определяется алгоритмом предварительной загрузки. Выберите Linear search или Binary search. Каждый метод поиска имеет преимущества скорости в различных ситуациях. Для получения дополнительной информации об этом параметре см. Страницу с описанием блока Prelookup (Simulink).

Начало поиска по индексу с использованием предыдущего результата по индексу

Установите этот флажок, когда необходимо, чтобы блок начал поиск с помощью индекса, найденного на предыдущем временном шаге. Для получения дополнительной информации об этом параметре см. Страницу с описанием блока Prelookup (Simulink).

Выходные состояния

Добавить x порт в блок для вывода значений состояния. Эта опция выбрана по умолчанию.

Производные выходного состояния (непрерывное время) или обновления (дискретное время)

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

Вывод интерполированных данных о пространстве состояний

Добавить ss порт к блоку, чтобы вывести данные пространства состояний как структуру. Эта опция выбрана по умолчанию.

Поля сгенерированной структуры:

  • Матрицы пространства состояний A, B, C, D.

  • Задержки InputDelay, OutputDelay, и InternalDelay. The InternalDelay поле доступно только, когда модель имеет внутреннюю задержку.

Вывод интерполированных смещений

Добавить offset порт к блоку для вывода смещений модели LPV (u¯(p), y¯(p), x¯(p),dx¯(p)).

Полями структуры являются:

  • InputOffset, OutputOffset, StateOffset, и StateDerivativeOffset в непрерывном времени.

  • InputOffset, OutputOffset, StateOffset, и StateUpdateOffset в дискретном времени.

Тип данных блока (только случай в дискретном времени)

Поддерживаемый тип данных. Используйте эту опцию только для моделей пространства состояний в дискретном времени. Задайте double или single.

Начальный buffer size для задержек

Начальное выделение памяти для количества точек входа для хранения в моделях, которые содержат задержки. Если количество точек входа превышает начальный buffer size, блок выделяет дополнительную память. Размер по умолчанию 1024.

Когда вы запускаете модель в режиме Accelerator или создаете модель, убедитесь, что начальный buffer size достаточно велик, чтобы обработать максимальную ожидаемую задержку в модели.

Используйте фиксированный buffer size

Укажите, использовать ли фиксированный buffer size для сохранения отложенных входных и выходных данных с предыдущих временных шагов. Используйте эту опцию для систем LPV в непрерывном времени, которые содержат входные или выходные задержки. Если буфер заполнен, новые данные заменяют данные уже в буфере. Программа использует линейную экстраполяцию, чтобы оценить выходные значения, которые не находятся в буфере.

Примеры

Сконфигурируйте Input port параметра планирования

Рассмотрим модель LPV с 2 входами, 3 выходами, 4 состояниями. Используйте входные u(2) и состояние x(1) как параметры планирования. Сконфигурируйте модель Simulink как показано на следующем рисунке.

Симулируйте линейную систему изменения параметров

Рассмотрим линейную систему масса-пружина-демпфер, масса которой изменяется как функция от команды внешней нагрузки. Управляющее уравнение является:

m(u)y¨+cy˙+k(y)y=F(t)

где m(u) - масса зависит от внешней команды u, c - коэффициент затухания, k - жесткость пружины и F(t) - принудительный вход. y(t) - положение массы в заданный момент времени t. Для фиксированного значения u, система линейна и выражена как:

A=[01kmcm],  B=[01m],  C=[10]x˙=Ax+Bu,  y=Cx

где x=[yy˙] - вектор состояний и m - значение массы для заданного значения u.

В этом примере необходимо изучить поведение модели на область значений входа значений от 1 до 10 В. Для каждого значения u, измерьте массу и вычислите линейное представление системы. Предположим, масса связана с входом отношением: m(u)=10u+0.1u2. Для значений u диапазон от 1:10 приводит к следующему массиву линейных систем.

% Specify damping coefficient.
c = 5;   
% Specify stiffness.
k = 300; 
% Specify load command.
u = 1:10;
% Specify mass.
m = 10*u + 0.1*u.^2;
% Compute linear system at a given mass value.
for i = 1:length(u)
   A = [0 1; -k/m(i), -c/m(i)];
   B = [0; 1/m(i)];
   C = [1 0];
   sys(:,:,i) = ss(A,B,C,0); 
end

Переменная u является входом планирования. Добавьте эту информацию к модели.

sys.SamplingGrid = struct('LoadCommand',u);

Сконфигурируйте системный блок LPV:

  • Тип sys в поле State-space array.

  • Соедините вход порт par одномерному исходному сигналу, который генерирует значения команды load. Если источник предоставляет значения от 1 до 10, интерполяция используется для вычисления линейной модели в заданный образец. В противном случае используется экстраполяция.

Порты

Имя порта

Тип порта

(Вход/Выход)

Описание
u В

Входной сигнал u (t) в  уравнении 2, описанном выше. В мультивходе этот порт принимает сигнал размерности входного сигнала.

паритетВ

Предоставляет сигналы для переменных, определяющих пространство планирования (переменные «sampling grid»). Переменными планирования могут быть функции времени, входы и состояния или константы. Необходимая зависимость может быть достигнута путем подготовки сигнала планирования с помощью синхроимпульса входа (для времени), входного сигнала (u), и выходные сигналы (x, dx/dt, y) блока ННД, по мере необходимости.

yИз

Моделирование выхода

x Из

Значения состояний модели

xdot Из

Значения производных по состоянию. Производные по состоянию иногда используются для определения параметров планирования.

ssИз

Модель локального пространства в основных временных шагах симуляции

смещениеИзСмещения модели LPV

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2014b