В этом примере показано, как создать представление с переменным линейным параметром (LPV) системы, которая демонстрирует многорежимную динамику.
Мы часто сталкиваемся с ситуациями, когда эластичное тело сталкивается или прижимается к, возможно, эластичной поверхности. Примерами таких ситуаций являются:
Упругий шарик, подпрыгивающий на твёрдой поверхности.
Дроссельная заслонка двигателя, ограниченная замыканием не более, чем
с помощью жесткой пружины.
Пассажир, сидящий на автокресле из пенополиуретана, вязкоупругого материала.
В этих ситуациях движение движущегося тела проявляет иную динамику, когда оно свободно движется, чем когда оно находится в контакте с поверхностью. В случае подпрыгивающего шара движение массы может быть описано с помощью жесткой динамики тела, когда оно свободно падает. Когда шар сталкивается и деформируется при контакте с поверхностью, динамика должна учитывать упругие свойства шара и поверхности. Простой способ моделирования ударной динамики заключается в использовании описаний пружинных амортизаторов кусковой массы столкнувшихся тел. Регулируя относительную жесткость и коэффициенты демпфирования двух тел, мы можем моделировать различные ситуации, описанные выше.
На фиг.1 показана модель системы «масса-пружина-демпфер». Масса 1 свободно падает под действием силы тяжести. Его упругие свойства характеризуются постоянной жесткости
и коэффициентом демпфирования.
Когда эта масса ударяется о фиксированную поверхность, удар вызывает совместное перемещение массы 1 и массы 2 вниз. После определенного «времени пребывания», в течение которого Масса 1 деформируется и восстанавливается, она теряет контакт с Массой 2 полностью, чтобы следовать движению снаряда. Таким образом, общая динамика разбивается на два различных вида - когда массы не находятся в контакте и когда они движутся совместно.

Рисунок 1: Упругий корпус, подпрыгивающий на неподвижной упругой поверхности.
Нерастянутая (свободная от нагрузки) длина пружины, присоединенной к массе 1, равна,
в то время как длина пружины 2 равна.
Переменные
и
обозначают положения двух масс. Когда массы не контактируют («Режим 1»), их движения регулируются следующими уравнениями:


с начальными условиями
,,,. 

-
высота, с которой первоначально сбрасывается масса 1. -
начальное местоположение массы 2, которое соответствует нерастянутому состоянию ее пружины.
Когда масса 1 касается массы 2 («режим 2»), их смещения и скорости взаимосвязаны. Управляющими уравнениями в этом режиме являются:


с,
где
- время, когда масса 1 впервые касается массы 2.
Управляющие уравнения являются линейными и инвариантными по времени. Однако существуют два различных поведенческих режима, соответствующих различным уравнениям движения. Оба режима управляются наборами уравнений второго порядка. Если мы выбираем положения и скорости масс как переменные состояния, мы можем представить каждый режим уравнением состояние-пространство 4-го порядка.
В представлении состояния-пространства становится возможным рассматривать эти два режима как единую систему, коэффициенты которой изменяются как функция определенного условия, которое определяет, какой режим активен. Условие, конечно, то, движутся ли две массы свободно или совместно. Такое представление, где коэффициенты линейной системы параметризуются внешним, но измеряемым параметром, называется моделью изменения линейных параметров (LPV). Общее представление модели LPV осуществляется посредством массива линейных моделей состояния-пространства и набора параметров планирования, которые диктуют правила выбора правильной модели при заданном условии. Массив линейных моделей должен быть определен с использованием одних и тех же переменных состояния.
Для нашего примера нужны две государственно-пространственные модели, по одной для каждого режима работы. Также необходимо определить переменную планирования для переключения между ними. Начнем с написания вышеприведенных уравнений движения в форме состояние-пространство.
Определите значения масс и их пружинных констант.
m1 = 7; % first mass (g) k1 = 100; % spring constant for first mass (g/s^2) c1 = 2; % damping coefficient associated with first mass (g/s) m2 = 20; % second mass (g) k2 = 300; % spring constant for second mass (g/s^2) c2 = 5; % damping coefficient associated with second mass (g/s) g = 9.81; % gravitational acceleration (m/s^2) a1 = 12; % uncompressed lengths of spring 1 (mm) a2 = 20; % uncompressed lengths of spring 2 (mm) h1 = 100; % initial height of mass m1 (mm) h2 = a2; % initial height of mass m2 (mm)
Первый режим: состояние-пространственное представление динамики, когда массы не контактируют.
A11 = [0 1; 0 0]; B11 = [0; -g]; C11 = [1 0]; D11 = 0; A12 = [0 1; -k2/m2, -c2/m2]; B12 = [0; -g+(k2*a2/m2)]; C12 = [1 0]; D12 = 0; A1 = blkdiag(A11, A12); B1 = [B11; B12]; C1 = blkdiag(C11, C12); D1 = [D11; D12]; sys1 = ss(A1,B1,C1,D1);
Второй режим: состояние-пространственное представление динамики при контакте масс.
A2 = [ 0 1, 0, 0; ... -k1/m1, -c1/m1, k1/m1, c1/m1;... 0, 0, 0, 1; ... k1/m2, c1/m2, -(k1+k2)/m2, -(c1+c2)/m2]; B2 = [0; -g+k1*a1/m1; 0; -g+(k2/m2*a2)-(k1/m2*a1)]; C2 = [1 0 0 0; 0 0 1 0]; D2 = [0;0]; sys2 = ss(A2,B2,C2,D2);
Теперь мы складываем две модели sys1 и sys2 для создания массива state-space.
sys = stack(1,sys1,sys2);
Используйте информацию о том, перемещаются ли массы свободно или совместно для планирования. Назовем этот параметр FreeMove, который принимает значение 1, когда массы перемещаются свободно, и 0, когда они находятся в контакте и движутся совместно. Информация о параметрах планирования включается в объект массива state-space (sys) при помощи его собственности «SamplingGrid»:
sys.SamplingGrid = struct('FreeMove',[1; 0]);
Находятся ли массы в контакте или нет, определяется относительным положением двух масс; когда,
массы не контактируют.
Массив state-space sys имеет необходимую информацию для представления модели LPV. Мы можем смоделировать эту модель в Simulink с помощью блока «Система LPV» из библиотеки блоков Toolbox™'s системы управления.
Открытие предварительно настроенной модели Simulink LPVBouncingMass.slx
open_system('LPVBouncingMass') open_system('LPVBouncingMass/Bouncing Mass Model','mask')

Блок под названием «Bouncing Mass Model» является системным блоком LPV. Его параметры задаются следующим образом:
В поле «State-space array» укажите массив модели state-space sys которая была создана выше.
Для поля «Начальное состояние» укажите исходные положения и скорости двух масс. Обратите внимание, что вектор состояния:.
Укажите его значение как [h1 0 h2 0] '.
На вкладке «Scheduling» (Планирование) установите для параметра «Interpolation method» (Метод интерполяции) значение «Nearest» (Ближайший). При таком выборе активна только одна из двух моделей в массиве. В нашем примере режимы поведения являются взаимоисключающими.
На вкладке «Outputs» снимите все флажки для дополнительных портов вывода. Мы будем наблюдать только позиции двух масс.
Блок константы выводит единичное значение. Это служит входом в модель и подается с первого входного порта блока LPV. Блок имеет только один выходной порт, который выводит положения двух масс в виде вектора 2 на 1.
Второй входной порт блока LPV предназначен для задания сигнала планирования. Как обсуждалось выше, этот сигнал представляет параметр планирования «FreeMove» и принимает дискретные значения 0 (массы в контакте) или 1 (массы не в контакте). Значение этого параметра вычисляется как функция выходного сигнала блока. Это вычисление выполняется блоками с голубым цветом фона. Берем разницу между двумя выходами (после демультиплексирования) и сравниваем результат с нерастянутой длиной пружины, присоединенной к массе 1. Результирующий логический результат преобразуется в двойной сигнал, который служит значением параметра планирования.
Теперь мы готовы выполнить моделирование.
open_system('LPVBouncingMass/Scope') sim('LPVBouncingMass')

Желтая кривая показывает положение массы 1, а пурпурная кривая показывает положение массы 2. В начале моделирования масса 1 подвергается свободному падению до тех пор, пока не достигнет массы 2. Столкновение приводит к смещению формообразующего 2, но оно быстро откатывается и отскакивает от формообразующего 1. Две массы находятся в контакте в течение времени, где.
Когда массы оседают, их равновесные значения определяются статическим осаждением под действием силы тяжести. Например, абсолютное расположение Mass 1 
В этом примере показано, как модель с переменным линейным параметром может быть создана с использованием массива моделей пространства состояний и подходящих переменных планирования. Пример описывает случай взаимоисключающих режимов, хотя подобный подход может использоваться в случаях, когда на поведение динамики при заданном значении параметров планирования влияют несколько линейных моделей.
Блок системы LPV облегчает моделирование систем изменения параметров. Блок также поддерживает генерацию кода для различных аппаратных целей.