Моделирование систем с изменяющимися линейными параметрами (LPV)
Представление и моделирование систем с изменяющимися линейными параметрами (LPV) в Simulink ®. Блок также поддерживает генерацию кода.
Линейная изменяющая параметры (LPV) система - это линейная модель состояния-пространства, динамика которой изменяется как функция определенных изменяющихся во времени параметров, называемых параметрами планирования. В MATLAB ® модель LPV представлена в форме state-space с использованием коэффициентов, зависящих от параметра.
Математически система LPV представлена как:
| t) + D (p) u (t) x (0) = x0 | (1) |
где
u(t) являются входами
y(t) продукция
x(t) являются состояниями модели с начальным значением x0
) - вектор производной состояния, x˙ для систем непрерывного времени, и вектор обновления состояния ΔT) для систем дискретного времени. ΔT - время выборки.
A(p), B(p), C(p) и D(p) - матрицы состояния-пространства, параметризованные вектором параметров планирования p.
Параметры p = p(t) - измеримые функции входных данных и состояния модели. Они могут быть скалярной величиной или вектором нескольких параметров. Набор параметров планирования определяет пространство планирования, в котором определяется модель LPV.
Блок реализует представление системы LPV на основе сетки. Для параметров календарного планирования выбирается матрица значений. При каждом значении p = p*в качестве состояния-пространства указывается соответствующая линейная система (ss или idss(Панель инструментов идентификации системы)) объект модели. Созданный массив моделей пространства состояний используется для настройки системного блока LPV.
Блок принимает массив моделей пространства состояний с информацией о рабочих точках. Информация о переменных планирования извлекается из SamplingGrid свойства массива LTI. Переменные планирования определяют сетку моделей LPV. Они представляют собой скалярные величины, которые могут быть функциями времени, входов и состояний или констант. Они используются для выбора локальной динамики в операционной области. Программное обеспечение интерполирует значения этих переменных. Блок использует этот массив с методами интерполяции и экстраполяции данных для моделирования.
Представление системы LPV может быть расширено, чтобы разрешить смещения в dx, x, u и y переменные. Эта форма известна как аффинная форма модели LPV. Математически ниже представлена система LPV:
| y¯ (p) −C (p) x¯ (p) −D (p) u¯ (p)) x (0) =x0 | (2) |
(p) - смещения в значенияхdx(t), x(t), u(t) и y(t) при заданном значении параметра p = p(t).
Чтобы получить такие представления массива линейной системы, линеаризуйте модель Simulink над пакетом рабочих точек (см. Пакетная линеаризация (Simulink Control Design).) Смещения соответствуют рабочим точкам, в которых линеаризована модель.
Смещения можно получить, вернув дополнительную информацию линеаризации при вызове функций, таких как linearize (Simulink Control Design) или getIOTransfer(Проект управления симуляцией). Затем можно извлечь смещения с помощью getOffsetsForLPV(Проект управления симуляцией). Пример см. в разделе Аппроксимация LPV модели Boost Converter (Simulink Control Design).
Следующие ограничения применяются к системному блоку LPV:
Внутренние задержки не могут быть экстраполированы так, чтобы они были меньше их минимального значения в массиве модели state-space.
При использовании нерегулярной сетки линейных моделей для определения системы LPV используется только ближайшая схема интерполяции соседей. Это может снизить точность результатов моделирования. Рекомендуется работать с обычными сетками. Дополнительные сведения о регулярных и нерегулярных сетках см. в разделе Обычные и нерегулярные сетки.
Одиночные и двойные данные. Необходимо преобразовать любой другой тип данных для входных сигналов или свойств модели в эти типы данных.
Диалоговое окно «Параметр блока системы LPV» содержит пять вкладок для указания системных данных, алгоритма планирования и выходных портов. В следующей таблице представлены параметры блока.
| Задача | Параметры |
|---|---|
| Задание массива моделей пространства состояний и начальных состояний | На вкладке Модель LPV (LPV Model): |
| Задание смещений рабочих точек | На вкладке Модель LPV (LPV Model): |
| Укажите смещения в производной состояния или переменной обновления | На вкладке Модель LPV (LPV Model): |
| Укажите, какие матрицы модели являются фиксированными, и их номинальные значения для переопределения записей в данных модели. В некоторых случаях может потребоваться заменить зависящую от параметра матрицу, например A(p) с фиксированным значением A* для моделирования. Например, A* может представлять среднее значение по диапазону планирования. | На закладке Фиксированные записи: |
| Определение параметров интерполяции и экстраполяции | На вкладке Планирование: |
| Укажите дополнительные выходы для блока | На вкладке «Выходные данные»: |
| Укажите параметры создания кода | На закладке Создание кода: |
Массив состояний-пространств (ss или idss(Панель инструментов идентификации системы)) модели. Все модели в массиве должны использовать одно и то же определение состояний. Используйте SamplingGrid свойство объекта state-space для задания параметров планирования для модели. См. раздел ss или idss для получения дополнительной информации о SamplingGrid собственность.
Если блок находится в модели с синхронным управлением состоянием (см. Блок управления состоянием (HDL Coder)), необходимо указать массив дискретных моделей времени.
Начальные условия для использования с локальной моделью для запуска моделирования:
0 (по умолчанию)
Двойной вектор длины, равный числу состояний модели
Смещения на входе u(t), указано как одно из следующих:
0 (По умолчанию) - используется при отсутствии входных смещений (∀ p).
Двойной вектор длины, равный числу входов - используется, когда смещение ввода одинаково в пространстве планирования.
Двойной массив размера [nu 1 sysArraySize] - Используется, когда имеются смещения, и они различаются в пространстве планирования. Здесь, nu = количество входов, sysArraySize = размер массива state-space. Использовать size для определения размера массива.
Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком «Система LPV». Дополнительные сведения см. в разделе Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV(Проект управления симуляцией).
Смещения в выходных данных y(t), указано как одно из следующих:
0 (По умолчанию) - используется при отсутствии выходных смещений ∀ p.
Двойной вектор длины, равный числу выходов. Используется, когда выходные смещения одинаковы по всему пространству планирования.
Двойной массив размера [ny 1 sysArraySize]. Используется при наличии смещений и их различиях в пространстве планирования. Здесь, ny = количество выходов, sysArraySize = размер массива state-space. Использовать size для определения размера массива.
Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком «Система LPV». Дополнительные сведения см. в разделе Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV(Проект управления симуляцией).
Смещения в состояниях x(t), указано как одно из следующих:
0 (По умолчанию) - используется при отсутствии смещений состояния ∀ p.
Двойной вектор длины, равный числу состояний. Используется, когда смещения состояния одинаковы по всему пространству планирования.
Двойной массив размера [nx 1 sysArraySize], где nx = количество состояний, sysArraySize = размер массива state-space. Используется при наличии смещений и их различиях в пространстве планирования. Здесь, nx = количество состояний, sysArraySize = размер массива state-space. Использовать size для определения размера массива.
Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком «Система LPV». Дополнительные сведения см. в разделе Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV(Проект управления симуляцией).
Смещения в производной состояния или переменной обновления dx(t), указано как одно из следующих:
Если массив линейной системы был получен линеаризацией в условиях равновесия, выберите опцию Предположить условия равновесия. Эта опция соответствует смещению = 0 для системы непрерывного времени = x (p) для системы дискретного времени. Эта опция выбрана по умолчанию.
Если линейная система содержит по крайней мере одну систему, полученную в неравновесных условиях, снимите флажок Предполагать условия равновесия. В поле Значение смещения (Offset value) укажите одно из следующих значений.
Если dx значения смещения одинаковы в пространстве планирования, укажите как двойной вектор длины, равный числу состояний.
Если dx имеются смещения, и они различаются в пространстве планирования, укажите как двойной массив размера [nx 1 sysArraySize], где nx = количество состояний, и sysArraySize = размер массива state-space.
Можно получить смещения во время линеаризации и преобразовать их в формат, поддерживаемый блоком «Система LPV». Дополнительные сведения см. в разделе Аппроксимация нелинейного поведения с использованием массива систем LTI (Simulink Control Design) и getOffsetsForLPV(Проект управления симуляцией).
Модель состояния-пространства, которая предоставляет значения фиксированных коэффициентов, указанных как одно из следующих:
Use the first model in state-space array (По умолчанию:) - первая модель в массиве state-space используется для представления модели LPV. В следующем примере массив state-space задается объектом 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 в модели LPV.
Укажите, какие коэффициенты матриц состояния-пространства и векторов задержки являются фиксированными.
Укажите одно из следующих значений:
Скалярное логическое значение (true или false), если все записи матрицы должны обрабатываться одинаково.
Значение по умолчанию: false для матриц состояния-пространства и векторов задержки, что означает, что они рассматриваются как свободные.
Логическая матрица размера, совместимого с размером соответствующей матрицы:
Матрица «состояние-пространство» | Размер фиксированной матрицы ввода |
|---|---|
| Матрица |
|
| Матрица B |
|
| Матрица C |
|
| Матрица D |
|
| Задержка на входе |
|
| Задержка на выходе |
|
| Внутренняя задержка |
|
где, nu = количество входов, ny = количество выходов, nx = количество состояний, ni = длина внутреннего вектора задержки.
Числовые индексы для указания местоположения фиксированных записей. Посмотрите sub2ind справочная страница для получения дополнительной информации о том, как создать числовые индексы, соответствующие заданному индексу (i,j) для элемента матрицы.
Метод интерполяции. Определяет, как должны вычисляться данные о пространстве состояния для значений параметров планирования, расположенных вдали от их расположения в сетке.
Укажите одну из следующих опций.
Flat - Выберите данные о состоянии пространства в точке сетки, ближайшей к текущей точке, но не превышающей ее. Текущая точка - это значение параметров планирования в текущее время.
Nearest - Выберите данные пространства состояния в ближайшей точке сетки в пространстве планирования.
Linear - Получение данных о состоянии пространства путем линейной интерполяции ближайших двумерных соседей в пространстве планирования, где d = количество параметров планирования.
Схема интерполяции по умолчанию: Linear для регулярных сеток значений параметров календарного планирования. Для нерегулярных сеток Nearest схема интерполяции всегда используется независимо от сделанного выбора. дополнительные сведения о регулярных и нерегулярных сетках см. в разделе Обычные и нерегулярные сетки.
Linear способ обеспечивает наивысшую точность, но требует больше времени для вычисления. Flat и Nearest методы хороши для моделей с динамикой переключения режимов.
Метод экстраполяции. Определяет, как вычислять данные пространства состояний для планирования значений параметров, которые выходят за пределы диапазона, в котором был предоставлен массив пространства состояний (как указано в SamplingGrid свойство).
Укажите одну из следующих опций.
Clip (По умолчанию:) - отключает экстраполяцию и возвращает данные, соответствующие последней доступной точке сетки планирования, ближайшей к текущей точке.
Linear - подгоняет линию между первой или последней парой значений для каждого параметра планирования в зависимости от того, меньше ли текущее значение первого или больше последнего значения точки сетки, соответственно. Этот метод возвращает точку на этой строке, соответствующую текущему значению. Линейная экстраполяция требует, чтобы схема интерполяции также была линейной.
Местоположение текущих значений параметров планирования в пространстве планирования определяется алгоритмом предварительного запуска. Выбрать Linear search или Binary search. Каждый метод поиска имеет преимущества скорости в различных ситуациях. Дополнительные сведения об этом параметре см. на странице ссылок блока Prelookup (Simulink).
Установите этот флажок, если требуется, чтобы блок начал поиск по индексу, найденному на предыдущем шаге времени. Дополнительные сведения об этом параметре см. на странице ссылок блока Prelookup (Simulink).
Добавить x порт в блок для вывода значений состояния. Эта опция выбрана по умолчанию.
Добавить dx порт в блок для вывода значений производной состояния или обновления значений. Эта опция выбрана по умолчанию.
Добавить ss порт в блок для вывода данных пространства состояний в виде структуры. Эта опция выбрана по умолчанию.
Поля созданной структуры:
Матрицы состояния-пространства A, B, C, D.
Задержки InputDelay, OutputDelay, и InternalDelay. InternalDelay доступно только в том случае, если в модели имеется внутренняя задержка.
Добавить offset порт в блок для вывода смещений модели LPV dx (p)).
Поля структуры:
InputOffset, OutputOffset, StateOffset, и StateDerivativeOffset в непрерывном режиме.
InputOffset, OutputOffset, StateOffset, и StateUpdateOffset в дискретное время.
Поддерживаемый тип данных. Эта опция используется только для дискретных моделей состояния и пространства. Определить double или single.
Начальное выделение памяти для количества входных точек для хранения моделей, содержащих задержки. Если количество входных точек превышает начальный размер буфера, блок выделяет дополнительную память. Размер по умолчанию - 1024.
При запуске модели в режиме ускорителя или построении модели убедитесь, что начальный размер буфера достаточно велик для обработки максимальной ожидаемой задержки в модели.
Укажите, следует ли использовать фиксированный размер буфера для сохранения отложенных входных и выходных данных предыдущих временных шагов. Эта опция используется для систем LPV непрерывного времени, которые содержат задержки ввода или вывода. Если буфер заполнен, новые данные заменяют данные, уже находящиеся в буфере. Программа использует линейную экстраполяцию для оценки выходных значений, которые отсутствуют в буфере.
Рассмотрим модель LPV с 2 входами и 3 выходами и 4 состояниями. Использовать входные данные u(2) и состояние x(1) в качестве параметров планирования. Настройте модель Simulink, как показано на следующем рисунке.

Рассмотрим линейную систему масса-пружина-демпфер, масса которой изменяется как функция команды внешней нагрузки. Управляющее уравнение:
= F (t)
где m(u) - масса, зависящая от внешней команды u, c - коэффициент демпфирования, k - жесткость пружины и F(t) - форсирующий вход. y(t) - положение массы в данный момент времени t. Для фиксированного значения u, система является линейной и выражается как:
y = Cx
где - вектор состояния и m - значение массы для заданного значения u.
В этом примере необходимо изучить поведение модели в диапазоне входных значений от 1 до 10 вольт. Для каждого значения uизмерить массу и вычислить линейное представление системы. Предположим, масса связана с вводом соотношением: 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»). Переменные планирования могут быть функциями времени, входами и состояниями или константами. Требуемая зависимость может быть достигнута путем подготовки сигнала планирования с использованием тактового входа (для времени), входного сигнала ( |
| y | Из | Выходные данные модели |
| x | Из | Значения состояний модели |
| xdot | Из | Значения производных состояний. Дериваты состояния иногда используются для определения параметров планирования. |
| ss | Из | Локальная модель пространства состояния на основных этапах моделирования |
| смещение | Из | Смещения модели LPV |