Применение линейных матричных неравенств к задачам стабилизации скользящих режимов
Аннотация
СОДЕРЖАНИЕ
РЕФЕРАТ 2
ВВЕДЕНИЕ 4
ГЛАВА 1 Установка MATLAB SIMULINK и необходимых библиотек 5
1.1 Запрос лицензии и установка MATLAB SIMULINK 5
1.2 Установка YALMIP и SEDUMI 5
ГЛАВА 2 ИМПУЛЬСНО-СКОЛЬЗЯЩИЕ РЕЖИМЫ 7
2.1. Геометрические свойства импульсно-скользящих режимов 7
2.2. Ограниченность импульсно-скользящего режима и существование предельных режимов. 9
2.3. Уравнения, описывающие идеальное скольжение 11
ГЛАВА 3 ЗАДАЧА СТАБИЛИЗАЦИИ ДВИЖЕНИЯ 17
3.1 Стабилизация систем с помощью импульсно-скользящих режимов 17
3.2 Описание импульсно-скользящего режима при возмущения только в канале управления 18
3.3 Описание импульсно-скользящего режима при наличии возмущения только в канале управления 19
ГЛАВА 4 Решение задач в MATLAB 21
4.1 Линейно-квадратичный регулятор 21
4.2 Оптимальная стабилизация линейной системы импульсным управлением 25
ЗАКЛЮЧЕНИЕ 29
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 30
ПРИЛОЖЕНИЕ 34
ВВЕДЕНИЕ
Тема дипломной работы ориентирована на разработку методик импульсно-скользящего управления для стабилизации движений в системах с импульсным воздействием. Импульсно-скользящие режимы впервые были применены при решении вырожденных линейно-квадратичных оптимизационных задач, где оптимальное управление осуществлялось через начальный импульс, направляющий систему на специфическое многообразие, по которому она двигалась до применения заключительного импульса, минимизирующего конечный функционал.
В данной работе рассматривается стабилизация движения посредством создания скользящего многообразия, которое позволяет управлять движением в условиях импульсно-скользящего режима и эффективно противостоять внешним возмущениям. Методы исследования включают анализ дифференциальных уравнений с разрывными траекториями, применение интегральных неравенств для оценки решений, а также использование теории устойчивости для определения условий стабилизации.
Исследование направлено на разработку методики стабилизации движений через специально разработанное скользящее многообразие, обеспечивающее необходимые характеристики системы. В рамках работы были разработаны модели движения, исследованы условия стабилизации при внешних возмущениях и выполнен анализ иллюстративных примеров.
ГЛАВА 1 Установка MATLAB SIMULINK и необходимых библиотек
Запрос лицензии и установка MATLAB SIMULINK
Для получения лицензионной версии MATLAB SIMULINK необходимо подать заявку
1.1) В случае если у вас есть доменная почта университета, то можете оставить заявку на получении лицензии по данной ссылке: https://matlabsupport.ru/
1.2) В ином случае воспользуйтесь данной ссылкой: https://matlabsupport.bitrix24.site/
Там вам будет необходимо указать ваши данные и почту, на которую, в дальнейшем, придёт уведомление о выдачи вам лицензионной версии и ссылка на скачивание с подробной инструкцией по установке и активации.
Предупреждение! Размещайте и устанавливайте программу и её элементы так, чтобы путь состоял лишь из латинских символов.
Установка YALMIP и SEDUMI
YALMIP (Yet Another LMI Parser) — это бесплатный набор инструментов для MATLAB, разработанный для решения различных оптимизационных задач, включая линейное и квадратичное программирование, а также задачи с полуопределёнными матрицами.
Инструкции по установке этого инструментария доступны на официальном сайте разработчиков (https://yalmip.github.io/tutorial/installation/). Вы можете следовать этим рекомендациям, если владеете английским, или использовать переводчик. Однако я также поделюсь своим методом установки. Для установки YALMIP необходимо будет
Скачать и распаковать набор инструментов по данной ссылке с GitHub: https://github.com/yalmip/yalmip/archive/master.zip
В MATLAB зайдите во вкладку HOME и нажмите на опцию Set Path
Укажите следующие папки (на месте троеточий находится путь к расположению распакованного вами YALMIP)
…/YALMIP-master
…/YALMIP-master/extras
…/YALMIP-master/solvers
…/YALMIP-master/modules
…/YALMIP-master/modules/parametric
…/YALMIP-master/modules/moment
…/YALMIP-master/modules/global
…/YALMIP-master/modules/sos
.../YALMIP-master/operators
SeDuMi (Self-Dual-Minimization) - это оптимизационный солвер для решения задач семиопределенного программирования (SDP) и квадратичного программирования (QP). SeDuMi является одним из самых популярных и широко используемых солверов для решения задач SDP и QP, и он доступен в качестве бесплатного программного обеспечения с открытым исходным кодом.
Инструкция по установке SeDuMi:
Решатель можно скачать по этой ссылке на GitHub: https://github.com/sqlp/sedumi
В MATLAB зайдите в HOME и нажмите на Set Path
Укажите следующие папку:
…/sedumi-master
ГЛАВА 2 ИМПУЛЬСНО-СКОЛЬЗЯЩИЕ РЕЖИМЫ
2.1. Геометрические свойства импульсно-скользящих режимов
Формализация движения систем с импульсным воздействием была проведена в [27]. При изложении материала разделов 1.2, 1.3 и 1.4 будем опираться на работы [28,29]. Импульсно-скользящие режимы в условиях импульсных возмущений исследовались в [30,31].
Пусть модель управляемого объекта имеет вид (t∈I=[t_0,ϑ])
ẋ=f(t.x)+v(t)+u,x(t_0 )=x_0 (1.1)
где x-n-мерный вектор – состояние объекта, v(.)-возмущение, описываемое кусочно- непрерывной вектор- функцией, u-управляющее воздействие.
Импульсное позиционное управление будем задавать оператором, который текущему моменту времени и состоянию объекта (t, x(t)) ставит в соответствие импульс 〖p(t.x(t))δ〗_t. Здесь δ_t-функция Дирака, сосредоточенная в момент t, p(.)- n-мерная вектор-функция, определяющая интенсивность импульса. Тот факт, что в системе (1.1) действует импульсное позиционное управление, обозначим символическим выражением
u→p(t,x) δ_t. (1.2)
Для описания поведения объекта (1.1) и управляемого согласно (1.2). необходимо в первую очередь провести разбиение интервала времени I
h:t_00 существует число ∆(ε) такое, что для любого разбиения (1.3)
(d(h)<∆(ε)) имеет место неравенство
|x^h (t)-x_p (t)|<ε
при всех t ∈ I
В дальнейшем будет установлено, что сеть ломаных Эйлера может и не сходиться. Ради этого напомним для (1.2) следующее определение.
Последовательность ломаных Эйлера {x^(h_i ) (∙)│i=1,2,…} назовем конфинальной, если lim┬(i→∞)〖d(h_i )=0〗
Элемент r(∙)∈B(I) считаем предельным режимом системы (1.1) с управлением (1.2), если существует конфинальная последовательность ломаных Эйлера, равномерно на отрезке I сходящаяся к этому элементу.
Легко проверить, что если сеть X_p- сходится, то все предельные режимы совпадают с пределом сети. Обратно, если из каждой конфинальной последовательности можно выделить подпоследовательность, равномерно сходящуюся к одному и тому же пределу, то к нему сходится и вся сеть X_p, (заметим, что факта совпадения предельных режимов недостаточно для сходимости сети).
Теперь рассмотрим один специальный класс управлений (1.2). Пусть в расширенном фазовом пространстве объекта (1.1) задано некоторое многообразие, описываемое системой из m (1≤ m 0)
x ̇=1+u;x(0)=0
u←-(1+α)/2 σ(x) δ_t; σ(x)=x+|x|.
Ясно, что многообразие (1.5) представляет собой нижнюю полуплоскость в расширенном фазовом пространстве и условие сброса (1.6) соблюдается. Импульсно –скользящий режим равномерно сходится к идеальному r(t)=0,t≥0. Уравнения типа (2.9) имеет вид
r ̇=(1-α)/2-(1+α)/2 sgn r,r(0)=0
и не подразумевают тривиального решения, если придерживаться классического определения решения. Важным фактором является то, что многообразие (1.5), в отличие от ранее использованных, обладает непустой внутренностью.
Также установлено следующее: если функция f(∙,∙) измерима по первому аргументу, непрерывна по второму и соответствует оценке (1.11), возмущение v(∙) локально интегрируемо, матрица B(∙,∙) ограничена, вектор-функция σ(∙,∙) дифференцируема по направлениям и к тому же
|(D_1,(_f+ϑ^ )σ )(t,y)|≤α(t),t∈I,y∈U_∆ (r(t)),
где α(∙)- интегрируемая функция, r(∙)-идеальный импульсно-скользящий режим, описываемый при t>t_0 абсолютно непрерывным пределом конфинальной последовательности ломаных Эйлера. Тогда вектор- функция r(∙) почти везде на отрезке I удовлетворяет дифференциальному включению
r ̇(t)∈f(t,r(t))+v(t)+∩ (co) ̅{ω(τ,t,y)|y∈U_∆ (r(t)) ,
0<τ-t<∆}
r(t_0 )=x_0+p(t_0,x_0 ).
Здесь ω(τ,t,φ(τ,t,y))(D_1,(_f+ϑ^ )σ )(t,y),φ(τ,t,y)- решение задачи Коши: x ̇=f(t,x)+v(t),x(t)=y. (co) ̅M - выпуклая замкнутая оболочка множество М.
ГЛАВА 3 ЗАДАЧА СТАБИЛИЗАЦИИ ДВИЖЕНИЯ
3.1 Стабилизация систем с помощью импульсно-скользящих режимов
Рассмотрим управляемую систему
x ̇=Ax+Bu+v (2.1)
где A является постоянной матрицей размера n×n, B - постоянной матрицей размера n×m, u - m-мерной управляющей функцией, x - n –мерным фазовым вектором.
Определим поверхность скольжения с помощью уравнения
Kx=0 (2.2)
В данном случае K – матрица, которая постоянна и имеет размеры m×n. Импульсное управление, обеспечивающее скольжение по многообразию (2.2), задается, как и в (1.2), с помощью оператора
u=p(t,x) δ_t. (2.3)
KB обладает размерностью m×m,detKB≠0. С помощью (2.2) и (2.3) найдем интенсивность импульса, переводящего фазовую точки из положения x на многообразие (2.2). Значение p(t,x) мы можем получить из равенства
K(x+Bp(t,x))=0.
При условии, что detKB≠0, это уравнение может быть разрешено относительно p(t,x)
p(t,x)=-(KB)^(-1) Kx. (2.4)
Импульсный оператор (2.3) обеспечивает не только перевод фазовой точки на многообразие (2.2), но и поддержание её на этом многообразии в условиях возмущений, которые могут нарушать скольжение. Обычное управление, которое осуществляет движение по многообразию (2.2), можно вывести продифференцировав в рамках системы (2.1) выражение (2.2). В результате получаем следующее равенство:
K(Ax+Bu+v)=0;u=-(KB)^(-1) K(Ax+v)
Подставив это в уравнение (2.1), мы получаем:
x ̇=(E-B(KB)^(-1) K)Ax-B(KB)^(-1) K (2.5)
Теорема 3. Предположим, что существует матрица K, такая, что фундаментальная матрица X(t,τ) системы
x ̇=(E-B(KB)^(-1) K)Ax
удовлетворяет следующему неравенству
|X(t,τ)|≤Re^(-ρ(t-τ) )
(ρ>0,R>0) и
v(t,x)≤α|x|
при t > 0. Тогда любое решение системы (2.5) удовлетворяет оценке
|x(t)|≤e^(-(ρ-αR)t) Rx_0.
Следствие. Если α<ρ/R, то асимптотически устойчивым будет нулевое решение системы.
Справедливость теоремы не трудно из теоремы об устойчивости по первому приближению (см., например [33]).
3.2 Описание импульсно-скользящего режима при возмущения только в канале управления
Рассмотрим систему управления вида
x ̇=Ax+B(u+v) (2.6)
Система (3.1) отличается от системы (2.1) тем, что возмущение v проявляется исключительно в канале управления. Этот подход был изучен, например, в работе [10], где применялась формализация импульсной системы по методике Самойленко-Перестюка [17]. Скользящая поверхность и интенсивность импульсного воздействия определяются соответственно выражениями (2.2) и (2.4).
Для описания импульсно-скользящего режима в условиях данного возмущения определим эквивалентное управление. Продифференцируем уравнение (2.2) с использованием параметров системы и решим полученное уравнение относительно управления u. В итоге получим:
K(Ax+B(u+v))=0;u=-(KB)^(-1) Ax-(KB)^(-1) KBv.
После подстановки управления в систему (2.6) получим уравнение, описывающее скользящий режим:
x ̇=(E-B(KB)^(-1) K)Ax. (2.7)
По сравнению уравнений (2.5) и (2.7) видно, что уравнение скользящего режима остаётся неизменным и не зависит от возмущения v, присутствующего в канале управления. Это свидетельствует о том, что скользящий режим обладает устойчивостью к таким типам возмущений, что делает его надёжным и эффективным в условиях, когда управление не является идеальным.
3.3 Описание импульсно-скользящего режима при наличии возмущения только в канале управления
Рассмотрим пример управляемого объекта, который описывается системой дифференциальных уравнений
x ̇_1=x_2+v_1 (t)
x ̇_2=u +v_2 (t).
Возмущение v(t)=〖(v_(`1) (t),v_2 (t))〗^T влияет на систему.
Возьмём прямую в качестве поверхности для скольжения, записывается как
〖ax〗_1+〖bx〗_2=0.
В данном случае k=(a,b), и линия скольжения задается уравнением kx=0 .
Для начала определим величину импульса, который обеспечивает попадание фазовой точки на линию скольжения. Получим
k∙(x+(■(0@1))∙p(x)=0.
В результате получается
ax_1+〖bx〗_2+bp(x)=0.
Отсюда получаем интенсивность импульса
p=-(〖ax〗_1+〖bx〗_2)/b=-kx/b.
Далее найдем управление, которое обеспечивает движение по этой линии после попадания на неё. Для этого продифференцируем уравнение 〖ax〗_1+〖bx〗_2=0 вдоль траекторий системы. Получим
a(x_2+v_1 (t))+b(u +v_2 (t))=0 .
Из полученного находим искомое управление
u=-(a(x_2+v_1 (t)))/b-v_2 (t).
С данным управлением система примет вид
x ̇_1=x_2+v_1 (t),
x ̇_2=-(a(x_2+v_1 (t)))/b.
Матрица фундаментальных решений системы представлена следующим образом:
(■(1&e^(-a/b t)-1@0&e^(-a/b t) )).
Решение исходной системы можно записать в виде
x_1 (t)=x_10+(e^(-a/d t)-1) x_20+∫_0^t▒〖((b-a)/b+(e^(-a/d (t-τ) )-1)) v_1 (τ)dt〗,
x_2 (t)=e^(-a/d t) x_20-∫_0^t▒〖(e^(-a/d (t-τ) )-1) a/b v_1 (t)dt〗.
Однако, заметим, что условия Теоремы 2 в данном случае не выполняются. Из представленного решения видно, что при произвольных x устойчивость нулевого решения, вообще говоря, не имеет места.
ГЛАВА 4 Решение задач в MATLAB
4.1 Линейно-квадратичный регулятор
Постановка задачи
Рассматривается система описывается следующим уравнением:
ẋ= Ax(t)+Bu(t),x(0)=0 (1)
где x ∈ R^(n_x ) представляет собой вектор состояния системы, а u ∈ R^(n_u ) - вектор управления.
Необходимо найти такое управление, как функцию вектора состояния, который:
обеспечил бы устойчивость замкнутой системы;
дополнительно доставлял бы минимум интегрального функционала качества
J= ∫_0^∞▒〖(x^T (t)Qx(t)+u^T (t)Ru(t))dx.〗 (2)
Матрицы системы имеют вид:
A=(■(0&1&0@-4.2&-1.5&4.2@0.77&0&-0.77))
B=(█(0@7.4@0))
Методические указания
Оптимальное стабилизирующее управление системой (1) имеет вид:
u = Kx, (3)
найдем на основе решения вспомогательной задачи оптимизации при ограничениях в виде линейных матричных неравенств.
Система (1), замкнутая обратной связью (3), принимает вид:
ẋ =(A+BK)x,
На ее решениях имеем
J= ∫_0^∞▒〖(x^T Qx+x^T K^T RKx)dt=∫_0^∞▒〖x^T (Q+K^T RK)xdt〗〗
Минимальное значение функционала J представляет решение задачи
x_0^T Px_0→min
при ограничениях
(A+BK)^T* P + P(A+BK)+ Q +K^T* RK ≤0 (4)
Неравенство (4) является неравенством Ляпунова для системы (1), и в силу сделанных предположений относительно матриц Q и R, его выполнение гарантирует экспоненциальную устойчивость этой системы с управлением (3).
Умножив данное неравенство слева и справа на матрицу X = P^(-1), мы приходим к выводу:
(A+BK)X + X〖(A+BK)〗^T + XQX +XK^T RKX ≤0,
или, используя лемму Шура дважды, можно переформулировать это как:
(■((A+BK)X+X〖(A+BK)〗^T&X&XK^T@X&-Q^(-1)&0@KX&0&-R^(-1) ))≤0.
Далее, вводим Y = KX - вспомогательную матричную переменную. Приходим к линейному матричному неравенству:
(■(AX+XA^T+BY+Y^T B^T &X&Y^T@X&-Q^(-1)&0@Y&0&-R^(-1) ))≤0
относительно X и Y.
Из этого следует, на решениях этого матричного неравенства необходимо минимизировать величину
x_0^T Px_0=x_0^T X^(-1) x_0,
которая является нелинейной по X. Чтобы обойти эту трудность, возможно ввести скалярную переменную γ>0, которая удовлетворяет неравенству
x_0^T X^(-1) x_0≤γ
что, согласно лемме Шура о дополнении равнозначно линейному матричному неравенству
(■(γ&x_0^T@x_0&X))≥0.
Поставив задачу минимизации γ, можно установить, что минимум будет достигнут, когда будет выполнено равенство в условии x_0^T X^(-1) x_0≤γ и значение этого минимума будет соответствовать минимальному значению функционала (2).
Результаты работы программы
При начальных данных:
A=(■(0&1&0@-4.2&-1.5&4.2@0.77&0&-0.77)),B=(█(0@7.4@0)),x=[0.5,0,0]
График изменения управления u(t):
Рисунок 1
График временного поведения вектора состояния x(t):
Рисунок 2
4.2 Оптимальная стабилизация линейной системы импульсным управлением
Рассмотрим систему
x ̇(t)=Ax+Bv ̇(t),x(t)=x, (1)
где v(t) – функция ограниченной вариации, производная понимается в обобщенном смысле. Рассмотрим задачу о минимизации критерия
J[v(∙)]= ∫_(t_0)^∞▒〖x^T (t)Φx(t)dt 〗 (2)
на траекториях системы, заданной уравнением (1).
Данная задача минимизации критерия на траекториях системы (1) является вырожденной и в классе абсолютно непрерывных траекторий решений не имеет. В системе, заданной уравнением (1) произведем замену переменной:
y(t)=x(t)-Bv(t) (3)
Получим
y ̇(t)=Ay(t)+ABv(t),y(t_0 )=x_0,v(t_0 )=0. (4)
Функционал (2) получит такую запись
J^∞ [v(∙)]= 1/2 ∫_(t_0)^∞▒〖(y(t)+Bv(t))^T Φ(y(t)+Bv(t))dt.〗 (5)
В результате выполненных преобразований, мы сталкиваемся с задачей минимизации функционала (5) для траекторий, определенных в системе (4). Если det(B^T ΦB)≠0, то задача оказывается невырожденной. Оптимальное управление будет выглядеть как
v(t)=-(B^T ΦB)^(-1) B^T (Φ+A^T K)y. (6)
Матрица K есть решение управления Рикатти
-KA-A^T K+(KAB+ΦB) (B^T ΦB)^(-1) (B^T Φ+B^T A^T K) -Φ=0 (7)
С помощью уравнения Рикатти мы можем построить управление в исходной задаче (6). Дифференцируя его мы получим управление для исходной задачи.
v ̇(t)= -(B^T ΦB)^(-1) B^T (Φ+A^T K)∙x_0∙δ(t)+v ̇_2 (t).
Здесь v ̇_2 (t) – регулярная составляющая управления
v ̇_2 (t)= -(B^T ΦB)^(-1) B^T (Φ+A^T K)∙y ̇= -(B^T ΦB)^(-1) B^T (Φ+A^T K)(x ̇-Bv ̇ )= -(B^T ΦB)^(-1) B^T (Φ+A^T K)(Ax+Bv ̇-Bv ̇ )=〖-(B^T ΦB)〗^(-1) B^T (Φ+A^T K)∙Ax
Заметим, что в последнем выражении производная получается в обычном смысле (x_0,∞)
В результате имеем следующую структуру управления. В начальный момент под действием начального импульса фазовая точка попадает на множество
〖-(B^T ΦB)〗^(-1) B^T (Φ+A^T K)∙x=0 (*)
и далее будем двигаться по этой гиперплоскости. Если на систему будет действовать некоторое возмущение, которое будет сдвигать фазовую точку с помощью позиционного импульсного управления движения будет удерживаться на гиперплоскости (*).
Математическая основа программы
Программа решает задачу оптимизации для динамической системы, описываемой линейными уравнениями с управлением. Основой служит линейная модель:
x ̇(t)=Ax+Bu
где x представляет собой вектор состояний системы, A является матрицей состояний, B - матрицей управления, а u - вектором управления. Цель состоит в минимизации квадратичного критерия стоимости, который является общим выбором в задачах оптимального управления:
J[v(∙)]= ∫_(t_0)^∞▒〖x^T (t)Φx(t)dt〗
Здесь Φ - положительно определенная матрица, которая задает веса состояний в функции стоимости
Функция стоимости на основе уравнения Риккати
В программе для решения уравнения Рикатти используется численный метод, минимизирующий функцию стоимости, которая определяется как:
f(K)=‖-KA-A^T K+(KAB+ΦB) (B^T ΦB)^(-1) (B^T Φ+B^T A^T K) -Φ‖_F
где ‖∙‖_F обозначает норму Фробениуса, измеряющую “размер” или “отклонение” матрицы. Норма Фробениуса матрицы А определяется как:
‖A‖_F=√(∑_(i,j)▒|a_ij |^2 )
Эта норма эквивалентна евклидовой норме вектора, полученного вытягивание всех элементов матрицы в один вектор.
Метод Рунге-Кутты 4-го порядка
Для численного решения дифференциальных уравнений используется метод Рунге-Кутты 4-го порядка, который обеспечивает высокую точность при относительно больших шагах интегрирования. Метод вычисляет приближение решения на каждом шаге с помощью четырех промежуточных значений (производных), комбинируя их для получения конечного приближения:
y_(n+1)=y_n+h/6(k_1+2k_2+2k_3+k_4)
где k_i- промежуточные значения, зависящие от функции f(t,y), текущего времени t и шага h.
Результаты работы программы
При начальных данных:
A=(■(0&1@-1&0)),B=(█(0@1)),Φ=(■(1&0@0&1)),x_0=(█(0.3@-0.5))
График изменения управления u(t):
Рисунок 3
График временного поведения вектора состояния x(t):
Рисунок 4
ЗАКЛЮЧЕНИЕ
Предложен вариант решения задачи стабилизации с помощью импульсно-скользящих режимов. Сформулированы уравнения движения для импульсно-скользящего режима. Показано влияние возмущений, действующих на весь фазовый вектор, и в случае, когда возмущение действует только в канале управления. Приведены иллюстрирующие примеры.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Y. Shtessel, C. Edwards, L. Fridman, and A. Levant, Sliding Mode Control and Observation. New York: Birkh¨auser, 2013.
J. Ackermann and V. I. Utkin, “Sliding mode control design based on Ackermann’s formula,” IEEE Trans. Autom. Control, vol. 43, no. 2, pp. 234–237, 1998.
Уткин В.И. Скользящие режимы в задачах оптимизации и управления. М.: Наука. 1981. 367 с.
V. Utkin and J. Shi, “Integral sliding mode in systems operating under uncertainty conditions,” in Proc. 35th Conf. Decision Control, Kobe, Japan, Dec. 1996, pp. 4591–4596.
W.-J. Cao and J.-X. Xu, “Nonlinear integral-type sliding surface for both matched and unmatched uncertain systems,” IEEE Trans. Autom. Control, vol. 49, no. 8, pp. 1355–1360, 2004.
Y. Niu, D. W. C. Ho, and J. Lam, “Robust integral sliding mode control for uncertain stochastic systems with time-varying delay,” Automatica, vo. 41, pp. 873–880, 2005.
H. H. Choi, “LMI-based sliding surface design for integral sliding mode control of mismatched uncertain systems,” IEEE Trans. Autom. Control, vol. 52, no. 4, pp. 736–742, 2007.
X. Han, E. Fridman, and S. K. Spurgeon, “Sliding mode control in the presence of input delay: A singular perturbation approach,” Automatica, vol. 48, no. 8, pp. 1904–1912, 2012.
L. Wu, W. X. Zheng, and H. Gao, “Dissipativity-based sliding mode control of switched stochastic systems,” IEEE Trans. Autom. Control, vol. 58, no. 3, pp. 785–791, 2013.
J. Song, Y. Niu, and Y. Zou, “Finite-time stabilization via sliding mode control,” IEEE Trans. Autom. Control, vol. 62, no. 3, pp. 1478–1483, 2017.
J. Song, Z. Wang, and Y. Niu, “On H1 sliding mode control under stochastic communication protocol,” IEEE Trans. Autom. Control, vol. 64, no. 5, pp. 2174–2181, 2019.
R. Yang and W. X. Zheng, “Two-dimensional sliding mode control of discrete-time fornasini Cmarchesini systems,” IEEE Trans. Autom. Control, vol. 64, no. 5, pp. 2174–2181, 2019.
T. Gonzalez, J. A. Moreno, and L. Fridman, “Variable gain supertwisting sliding mode control,” IEEE Trans. Autom. Control, vol. 57, no. 8, pp. 2100–2105, 2012.
I. Nagesh and C. Edwards, “A multivariable super-twisting sliding mode approach,” Automatica, vol. 50, no. 3, pp. 984–988, 2014.
I. Castillo, L. Fridman, and J. A. Moreno, “Super-twisting algorithm in presence of time and state dependent perturbations,” Int. J. Control, vol. 91, no. 11, pp. 2535–2546, 2018.
B. Brogliato, A. Polyakov, and D. Efimov, “The implicit discretization of the supertwisting sliding-mode control algorithm,” IEEE Trans. Autom.
Самойленко А.М., Перестюк Н.А. Дифференциальные уравнения с импульсным воздействием. Киев.: Вища школа, 1987. 288 с.
E. Sharifi and C. J. Damaren, “Nonlinear optimal approach to spacecraft attitude control using magnetic and impulsive actuations,” J. Guid. Control Dyn., vol. 43, no. 6, pp. 1154–1163, 2020.
Yu.F. Dolgii, А.N. Sesekin, I.A. Chupin. Impulse control of the manipulation robot // Ural Mathematical Journal. Vol. 5. No. 2, P. 13-20..
Завалищин Д.С., Завалищин С.Т. Динамическая оптимизация обтекания. М.: Наука. 2002.
T. Tuma, A. Pantazi, J. Lygeros, and A. Sebastian, “Nanopositioning with impulsive state multiplication: A hybrid control approach,” IEEE Trans. Control Syst. Technol., vol. 21, no. 4, pp. 1352–1364, 2013.
K. Liu, E. Fridman, and K. H. Johansson, “Networked control with stochastic scheduling,” IEEE Trans. Autom. Control, vol. 60, no. 11, pp. 3071–3076, 2015.
D. Ne˘ei´c and A. R. Teel, “Input output stability properties of networked control systems,” IEEE Trans. Autom. Control, vol. 49, no. 10, pp. 1650–1667, 2004.
O. Jaramillo, B. Castillo-Toledoa, and S. Di Gennaro, “Impulsive observer-based stabilization Lipschitz nonlinear systems with uncertainties,” J. Franklin Inst., vol. 357, no. 17, pp. 12518–12537, 2020.
O. Jaramillo, B. Castillo-Toledoa, and S. Di Gennaro, “Robust impulsive observer-based stabilization for uncertain nonlinear systems with sampled-output,” IEEE Control Syst. Lett., vol. 5, no. 3, pp. 845–850, 2021.
T. Yang, Impulsive Systems and Control: Theory and Applications. New York: Nova Science, 2001.
Zavalishchin S.T.,Sesekin A.N. Dynamic Impulse Systems: Theory and Applications. Kluwer Academic Publishers.Dolrbrecht, 1997. 256 p.
Завалищин С.Т., Сесекин А.Н. Импульсно-скользящие режимы в нелинейных динамических системах // Дифференц. уравнения. 1983. Т.19, N 5. С. 790-799.
Завалищин С.Т., Сесекин А.Н., Дрозденко С.Е. Динамические системы с импульсной структурой. Свердловск. Средне-Уральское книжное издательство. 1983. 112 с.
Костоусов В.Б. Структура импульсно-скользящих режимов при возмущениях типа меры. I, Дифференц. уравнения, 20:3 (1984), 382–392.
Костоусов В.Б. Структура импульсно-скользящих режимов при возмущениях типа меры. II, Дифференц. уравнения, 20:5 (1984), 745–753.
Уткин В.И. Скользящие режимы и их применение в системах с переменной структурой. М.: Наука. 1974. 272 с.
Ложников А.Б., Сесекин А.Н. Теория устойчивости. УрФУ. 2012. 52 с., (учебное пособие).
Брайсон А., Хо Ю-Ши. Прикладная теория оптимального управления. М:”Мир”, 1972.
Поляк Б.Т., Хлебников М.В., Щербаков П.С. Управление линейными системами при внешних возмущениях. Техника линейных неравенств. М.: ЛЕЛАНД, 2014.- 560 сю.
ПРИЛОЖЕНИЕ
Линейно-квадратичный регулятор
% Определение матриц A, B, Q и R
A = [0 1 0; -4.2 -1.5 4.2; 0.77 0 0.77];
B = [0; -7.4; 0];
q = 3; % Простейший случай, где Q = q*I
Q = q*eye(size(A,1));
R = 1;
% Создание переменных X, Y и гамма
X = sdpvar(3, 3, 'symmetric');
Y = sdpvar(3, 1);
gamma = sdpvar(1);
% Задание начального состояния
x0 = [0.5; 0; 0];
% Определение линейного матричного неравенства (LMIs) и ограничений
LMIs = [A*X + X*A' + B*Y' + Y*B' <= 0;
[gamma, x0'; x0, X] >= 0];
% Минимизация гаммы под ограничениями
optimize(LMIs, gamma);
% Получение значений матриц X и Y
X_val = value(X);
Y_val = value(Y);
% Вычисление матрицы K
if isequal(rank(X_val), size(X_val, 1))
K = Y_val' * inv(X_val)';
else
disp('Матрица X вырождена, невозможно построить график');
return;
end
% Время симуляции
t = linspace(0, 5, 1000);
% Решение уравнения состояния
A_closed = A + B * K;
[~, x] = ode45(@(t, x) A_closed * x, t, x0);
% Построение графика
figure;
plot(t, x(:, 1), t, x(:, 2), t, x(:, 3));
xlabel('Время, сек');
ylabel('Значения состояний');
legend('x_1', 'x_2', 'x_3');
grid on;
% Расширение графика по оси Oy
cur_lim = ylim();
new_lim = cur_lim * 10;
ylim(new_lim);
% Вычисление управления
u = zeros(size(t)); % инициализация вектора управления
for i = 1:length(t)
u(i) = K * x(i, :)'; % умножение i-той строки вектора x на матрицу K
end
% Добавление управления на график
figure;
plot(t, u);
xlabel('Время, сек');
ylabel('Управление');
grid on;
% Вывод значений вектора состояния x и управления u
fprintf('Время \t x1 \t x2 \t x3 \t u\n');
for i = 1:length(t)
fprintf('%.2f \t %.4f \t %.4f \t %.4f \t %.4f\n', t(i), x(i, 1), x(i, 2), x(i, 3), u(i));
end
Оптимальная стабилизация линейной системы импульсным управлением
function main
% Объявление глобальных переменных
global U_saved T_saved;
U_saved = []; % Сохранение значений управления
T_saved = []; % Сохранение временных точек управления
% Определение параметров системы
A = [0 1; -1 0];
B = [0; 1];
Phi = [1 0; 0 1];
% Начальное приближение для матрицы K
K0 = zeros(1, 2); % 1x2 матрица
% Функция стоимости, основанная на уравнении Риккати
objectiveFunction = @(K) ...
norm(-K*A - A'*K' + (K*B*Phi + Phi*B)*(B'*Phi*B)^(-1)*(B'*Phi' + (A'*K')*B') - Phi, 'fro');
% Опции для оптимизатора
options = optimoptions('fmincon', 'Algorithm', 'sqp', 'Display', 'iter', 'MaxFunctionEvaluations', 10000);
% Поиск оптимального K
[K_opt, fval, exitflag, output] = fmincon(objectiveFunction, K0, [], [], [], [], [], [], [], options);
% Вывод результатов оптимизации
disp('Оптимизированная матрица K:');
disp(K_opt);
disp('Значение функции стоимости:');
disp(fval);
% Параметры замкнутой системы с оптимизированным K
A_cl = A - B * K_opt;
% Собственные значения замкнутой системы для проверки устойчивости
eigenvalues = eig(A_cl);
disp('Собственные значения замкнутой системы:');
disp(eigenvalues);
% Начальные условия для симуляции
x0 = [0.3; -0.5];
% Временной диапазон и шаг
tspan = [0 100];
h = 0.05; % Шаг интеграции
% Введение параметров для начального импульса
impulseDuration = 0.3; % продолжительность начального импульса
delta = 120; % коэффициент уменьшения начального импульса
% Запуск интеграции с помощью метода Рунге-Кутты 4-го порядка
[t, x] = ode4(@(t, x) dynamics(t, x, A_cl, B, K_opt, impulseDuration, delta), tspan, x0, h);
% Визуализация результатов симуляции состояний
figure;
plot(t, x);
xlim([0, 5]); % Ограничиваем ось времени для увеличения детализации начала
xlabel('Время, сек');
ylabel('Значение состояний');
title('График временного поведения вектора состояния x(t)');
legend('x1', 'x2');
figure;
plot(T_saved, U_saved, 'LineWidth', 2);
xlim([0, 5]); % То же самое для графика управления
xlabel('Время, сек');
ylabel('Управление, u(t)');
title('График изменения управления');
grid on;
% Функция динамики системы с управлением
function dx = dynamics(t, x, A_cl, B, K_opt, impulseDuration, delta)
% Управление с измененным импульсом в начальный момент
if t < impulseDuration
u = -delta * K_opt * x; % Уменьшенный начальный импульс
else
u = -K_opt * x; % Обычное управление
end
% Сохранение значения управления
U_saved = [U_saved, u];
T_saved = [T_saved, t];
dx = A_cl * x + B * u;
end
% Метод Рунге-Кутты 4-го порядка для решения ОДУ
function [t, y] = ode4(dydt, tspan, y0, h)
t = tspan(1):h:tspan(2);
y = zeros(numel(y0), numel(t));
y(:,1) = y0;
for i = 1:numel(t)-1
k1 = dydt(t(i), y(:,i));
k2 = dydt(t(i) + 0.5*h, y(:,i) + 0.5*h*k1);
k3 = dydt(t(i) + 0.5*h, y(:,i) + 0.5*h*k2);
k4 = dydt(t(i) + h, y(:,i) + h*k3);
y(:,i+1) = y(:,i) + (h/6)*(k1 + 2*k2 + 2*k3 + k4);
end
end
end
РЕФЕРАТ 2
ВВЕДЕНИЕ 4
ГЛАВА 1 Установка MATLAB SIMULINK и необходимых библиотек 5
1.1 Запрос лицензии и установка MATLAB SIMULINK 5
1.2 Установка YALMIP и SEDUMI 5
ГЛАВА 2 ИМПУЛЬСНО-СКОЛЬЗЯЩИЕ РЕЖИМЫ 7
2.1. Геометрические свойства импульсно-скользящих режимов 7
2.2. Ограниченность импульсно-скользящего режима и существование предельных режимов. 9
2.3. Уравнения, описывающие идеальное скольжение 11
ГЛАВА 3 ЗАДАЧА СТАБИЛИЗАЦИИ ДВИЖЕНИЯ 17
3.1 Стабилизация систем с помощью импульсно-скользящих режимов 17
3.2 Описание импульсно-скользящего режима при возмущения только в канале управления 18
3.3 Описание импульсно-скользящего режима при наличии возмущения только в канале управления 19
ГЛАВА 4 Решение задач в MATLAB 21
4.1 Линейно-квадратичный регулятор 21
4.2 Оптимальная стабилизация линейной системы импульсным управлением 25
ЗАКЛЮЧЕНИЕ 29
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 30
ПРИЛОЖЕНИЕ 34
ВВЕДЕНИЕ
Тема дипломной работы ориентирована на разработку методик импульсно-скользящего управления для стабилизации движений в системах с импульсным воздействием. Импульсно-скользящие режимы впервые были применены при решении вырожденных линейно-квадратичных оптимизационных задач, где оптимальное управление осуществлялось через начальный импульс, направляющий систему на специфическое многообразие, по которому она двигалась до применения заключительного импульса, минимизирующего конечный функционал.
В данной работе рассматривается стабилизация движения посредством создания скользящего многообразия, которое позволяет управлять движением в условиях импульсно-скользящего режима и эффективно противостоять внешним возмущениям. Методы исследования включают анализ дифференциальных уравнений с разрывными траекториями, применение интегральных неравенств для оценки решений, а также использование теории устойчивости для определения условий стабилизации.
Исследование направлено на разработку методики стабилизации движений через специально разработанное скользящее многообразие, обеспечивающее необходимые характеристики системы. В рамках работы были разработаны модели движения, исследованы условия стабилизации при внешних возмущениях и выполнен анализ иллюстративных примеров.
ГЛАВА 1 Установка MATLAB SIMULINK и необходимых библиотек
Запрос лицензии и установка MATLAB SIMULINK
Для получения лицензионной версии MATLAB SIMULINK необходимо подать заявку
1.1) В случае если у вас есть доменная почта университета, то можете оставить заявку на получении лицензии по данной ссылке: https://matlabsupport.ru/
1.2) В ином случае воспользуйтесь данной ссылкой: https://matlabsupport.bitrix24.site/
Там вам будет необходимо указать ваши данные и почту, на которую, в дальнейшем, придёт уведомление о выдачи вам лицензионной версии и ссылка на скачивание с подробной инструкцией по установке и активации.
Предупреждение! Размещайте и устанавливайте программу и её элементы так, чтобы путь состоял лишь из латинских символов.
Установка YALMIP и SEDUMI
YALMIP (Yet Another LMI Parser) — это бесплатный набор инструментов для MATLAB, разработанный для решения различных оптимизационных задач, включая линейное и квадратичное программирование, а также задачи с полуопределёнными матрицами.
Инструкции по установке этого инструментария доступны на официальном сайте разработчиков (https://yalmip.github.io/tutorial/installation/). Вы можете следовать этим рекомендациям, если владеете английским, или использовать переводчик. Однако я также поделюсь своим методом установки. Для установки YALMIP необходимо будет
Скачать и распаковать набор инструментов по данной ссылке с GitHub: https://github.com/yalmip/yalmip/archive/master.zip
В MATLAB зайдите во вкладку HOME и нажмите на опцию Set Path
Укажите следующие папки (на месте троеточий находится путь к расположению распакованного вами YALMIP)
…/YALMIP-master
…/YALMIP-master/extras
…/YALMIP-master/solvers
…/YALMIP-master/modules
…/YALMIP-master/modules/parametric
…/YALMIP-master/modules/moment
…/YALMIP-master/modules/global
…/YALMIP-master/modules/sos
.../YALMIP-master/operators
SeDuMi (Self-Dual-Minimization) - это оптимизационный солвер для решения задач семиопределенного программирования (SDP) и квадратичного программирования (QP). SeDuMi является одним из самых популярных и широко используемых солверов для решения задач SDP и QP, и он доступен в качестве бесплатного программного обеспечения с открытым исходным кодом.
Инструкция по установке SeDuMi:
Решатель можно скачать по этой ссылке на GitHub: https://github.com/sqlp/sedumi
В MATLAB зайдите в HOME и нажмите на Set Path
Укажите следующие папку:
…/sedumi-master
ГЛАВА 2 ИМПУЛЬСНО-СКОЛЬЗЯЩИЕ РЕЖИМЫ
2.1. Геометрические свойства импульсно-скользящих режимов
Формализация движения систем с импульсным воздействием была проведена в [27]. При изложении материала разделов 1.2, 1.3 и 1.4 будем опираться на работы [28,29]. Импульсно-скользящие режимы в условиях импульсных возмущений исследовались в [30,31].
Пусть модель управляемого объекта имеет вид (t∈I=[t_0,ϑ])
ẋ=f(t.x)+v(t)+u,x(t_0 )=x_0 (1.1)
где x-n-мерный вектор – состояние объекта, v(.)-возмущение, описываемое кусочно- непрерывной вектор- функцией, u-управляющее воздействие.
Импульсное позиционное управление будем задавать оператором, который текущему моменту времени и состоянию объекта (t, x(t)) ставит в соответствие импульс 〖p(t.x(t))δ〗_t. Здесь δ_t-функция Дирака, сосредоточенная в момент t, p(.)- n-мерная вектор-функция, определяющая интенсивность импульса. Тот факт, что в системе (1.1) действует импульсное позиционное управление, обозначим символическим выражением
u→p(t,x) δ_t. (1.2)
Для описания поведения объекта (1.1) и управляемого согласно (1.2). необходимо в первую очередь провести разбиение интервала времени I
h:t_00 существует число ∆(ε) такое, что для любого разбиения (1.3)
(d(h)<∆(ε)) имеет место неравенство
|x^h (t)-x_p (t)|<ε
при всех t ∈ I
В дальнейшем будет установлено, что сеть ломаных Эйлера может и не сходиться. Ради этого напомним для (1.2) следующее определение.
Последовательность ломаных Эйлера {x^(h_i ) (∙)│i=1,2,…} назовем конфинальной, если lim┬(i→∞)〖d(h_i )=0〗
Элемент r(∙)∈B(I) считаем предельным режимом системы (1.1) с управлением (1.2), если существует конфинальная последовательность ломаных Эйлера, равномерно на отрезке I сходящаяся к этому элементу.
Легко проверить, что если сеть X_p- сходится, то все предельные режимы совпадают с пределом сети. Обратно, если из каждой конфинальной последовательности можно выделить подпоследовательность, равномерно сходящуюся к одному и тому же пределу, то к нему сходится и вся сеть X_p, (заметим, что факта совпадения предельных режимов недостаточно для сходимости сети).
Теперь рассмотрим один специальный класс управлений (1.2). Пусть в расширенном фазовом пространстве объекта (1.1) задано некоторое многообразие, описываемое системой из m (1≤ m 0)
x ̇=1+u;x(0)=0
u←-(1+α)/2 σ(x) δ_t; σ(x)=x+|x|.
Ясно, что многообразие (1.5) представляет собой нижнюю полуплоскость в расширенном фазовом пространстве и условие сброса (1.6) соблюдается. Импульсно –скользящий режим равномерно сходится к идеальному r(t)=0,t≥0. Уравнения типа (2.9) имеет вид
r ̇=(1-α)/2-(1+α)/2 sgn r,r(0)=0
и не подразумевают тривиального решения, если придерживаться классического определения решения. Важным фактором является то, что многообразие (1.5), в отличие от ранее использованных, обладает непустой внутренностью.
Также установлено следующее: если функция f(∙,∙) измерима по первому аргументу, непрерывна по второму и соответствует оценке (1.11), возмущение v(∙) локально интегрируемо, матрица B(∙,∙) ограничена, вектор-функция σ(∙,∙) дифференцируема по направлениям и к тому же
|(D_1,(_f+ϑ^ )σ )(t,y)|≤α(t),t∈I,y∈U_∆ (r(t)),
где α(∙)- интегрируемая функция, r(∙)-идеальный импульсно-скользящий режим, описываемый при t>t_0 абсолютно непрерывным пределом конфинальной последовательности ломаных Эйлера. Тогда вектор- функция r(∙) почти везде на отрезке I удовлетворяет дифференциальному включению
r ̇(t)∈f(t,r(t))+v(t)+∩ (co) ̅{ω(τ,t,y)|y∈U_∆ (r(t)) ,
0<τ-t<∆}
r(t_0 )=x_0+p(t_0,x_0 ).
Здесь ω(τ,t,φ(τ,t,y))(D_1,(_f+ϑ^ )σ )(t,y),φ(τ,t,y)- решение задачи Коши: x ̇=f(t,x)+v(t),x(t)=y. (co) ̅M - выпуклая замкнутая оболочка множество М.
ГЛАВА 3 ЗАДАЧА СТАБИЛИЗАЦИИ ДВИЖЕНИЯ
3.1 Стабилизация систем с помощью импульсно-скользящих режимов
Рассмотрим управляемую систему
x ̇=Ax+Bu+v (2.1)
где A является постоянной матрицей размера n×n, B - постоянной матрицей размера n×m, u - m-мерной управляющей функцией, x - n –мерным фазовым вектором.
Определим поверхность скольжения с помощью уравнения
Kx=0 (2.2)
В данном случае K – матрица, которая постоянна и имеет размеры m×n. Импульсное управление, обеспечивающее скольжение по многообразию (2.2), задается, как и в (1.2), с помощью оператора
u=p(t,x) δ_t. (2.3)
KB обладает размерностью m×m,detKB≠0. С помощью (2.2) и (2.3) найдем интенсивность импульса, переводящего фазовую точки из положения x на многообразие (2.2). Значение p(t,x) мы можем получить из равенства
K(x+Bp(t,x))=0.
При условии, что detKB≠0, это уравнение может быть разрешено относительно p(t,x)
p(t,x)=-(KB)^(-1) Kx. (2.4)
Импульсный оператор (2.3) обеспечивает не только перевод фазовой точки на многообразие (2.2), но и поддержание её на этом многообразии в условиях возмущений, которые могут нарушать скольжение. Обычное управление, которое осуществляет движение по многообразию (2.2), можно вывести продифференцировав в рамках системы (2.1) выражение (2.2). В результате получаем следующее равенство:
K(Ax+Bu+v)=0;u=-(KB)^(-1) K(Ax+v)
Подставив это в уравнение (2.1), мы получаем:
x ̇=(E-B(KB)^(-1) K)Ax-B(KB)^(-1) K (2.5)
Теорема 3. Предположим, что существует матрица K, такая, что фундаментальная матрица X(t,τ) системы
x ̇=(E-B(KB)^(-1) K)Ax
удовлетворяет следующему неравенству
|X(t,τ)|≤Re^(-ρ(t-τ) )
(ρ>0,R>0) и
v(t,x)≤α|x|
при t > 0. Тогда любое решение системы (2.5) удовлетворяет оценке
|x(t)|≤e^(-(ρ-αR)t) Rx_0.
Следствие. Если α<ρ/R, то асимптотически устойчивым будет нулевое решение системы.
Справедливость теоремы не трудно из теоремы об устойчивости по первому приближению (см., например [33]).
3.2 Описание импульсно-скользящего режима при возмущения только в канале управления
Рассмотрим систему управления вида
x ̇=Ax+B(u+v) (2.6)
Система (3.1) отличается от системы (2.1) тем, что возмущение v проявляется исключительно в канале управления. Этот подход был изучен, например, в работе [10], где применялась формализация импульсной системы по методике Самойленко-Перестюка [17]. Скользящая поверхность и интенсивность импульсного воздействия определяются соответственно выражениями (2.2) и (2.4).
Для описания импульсно-скользящего режима в условиях данного возмущения определим эквивалентное управление. Продифференцируем уравнение (2.2) с использованием параметров системы и решим полученное уравнение относительно управления u. В итоге получим:
K(Ax+B(u+v))=0;u=-(KB)^(-1) Ax-(KB)^(-1) KBv.
После подстановки управления в систему (2.6) получим уравнение, описывающее скользящий режим:
x ̇=(E-B(KB)^(-1) K)Ax. (2.7)
По сравнению уравнений (2.5) и (2.7) видно, что уравнение скользящего режима остаётся неизменным и не зависит от возмущения v, присутствующего в канале управления. Это свидетельствует о том, что скользящий режим обладает устойчивостью к таким типам возмущений, что делает его надёжным и эффективным в условиях, когда управление не является идеальным.
3.3 Описание импульсно-скользящего режима при наличии возмущения только в канале управления
Рассмотрим пример управляемого объекта, который описывается системой дифференциальных уравнений
x ̇_1=x_2+v_1 (t)
x ̇_2=u +v_2 (t).
Возмущение v(t)=〖(v_(`1) (t),v_2 (t))〗^T влияет на систему.
Возьмём прямую в качестве поверхности для скольжения, записывается как
〖ax〗_1+〖bx〗_2=0.
В данном случае k=(a,b), и линия скольжения задается уравнением kx=0 .
Для начала определим величину импульса, который обеспечивает попадание фазовой точки на линию скольжения. Получим
k∙(x+(■(0@1))∙p(x)=0.
В результате получается
ax_1+〖bx〗_2+bp(x)=0.
Отсюда получаем интенсивность импульса
p=-(〖ax〗_1+〖bx〗_2)/b=-kx/b.
Далее найдем управление, которое обеспечивает движение по этой линии после попадания на неё. Для этого продифференцируем уравнение 〖ax〗_1+〖bx〗_2=0 вдоль траекторий системы. Получим
a(x_2+v_1 (t))+b(u +v_2 (t))=0 .
Из полученного находим искомое управление
u=-(a(x_2+v_1 (t)))/b-v_2 (t).
С данным управлением система примет вид
x ̇_1=x_2+v_1 (t),
x ̇_2=-(a(x_2+v_1 (t)))/b.
Матрица фундаментальных решений системы представлена следующим образом:
(■(1&e^(-a/b t)-1@0&e^(-a/b t) )).
Решение исходной системы можно записать в виде
x_1 (t)=x_10+(e^(-a/d t)-1) x_20+∫_0^t▒〖((b-a)/b+(e^(-a/d (t-τ) )-1)) v_1 (τ)dt〗,
x_2 (t)=e^(-a/d t) x_20-∫_0^t▒〖(e^(-a/d (t-τ) )-1) a/b v_1 (t)dt〗.
Однако, заметим, что условия Теоремы 2 в данном случае не выполняются. Из представленного решения видно, что при произвольных x устойчивость нулевого решения, вообще говоря, не имеет места.
ГЛАВА 4 Решение задач в MATLAB
4.1 Линейно-квадратичный регулятор
Постановка задачи
Рассматривается система описывается следующим уравнением:
ẋ= Ax(t)+Bu(t),x(0)=0 (1)
где x ∈ R^(n_x ) представляет собой вектор состояния системы, а u ∈ R^(n_u ) - вектор управления.
Необходимо найти такое управление, как функцию вектора состояния, который:
обеспечил бы устойчивость замкнутой системы;
дополнительно доставлял бы минимум интегрального функционала качества
J= ∫_0^∞▒〖(x^T (t)Qx(t)+u^T (t)Ru(t))dx.〗 (2)
Матрицы системы имеют вид:
A=(■(0&1&0@-4.2&-1.5&4.2@0.77&0&-0.77))
B=(█(0@7.4@0))
Методические указания
Оптимальное стабилизирующее управление системой (1) имеет вид:
u = Kx, (3)
найдем на основе решения вспомогательной задачи оптимизации при ограничениях в виде линейных матричных неравенств.
Система (1), замкнутая обратной связью (3), принимает вид:
ẋ =(A+BK)x,
На ее решениях имеем
J= ∫_0^∞▒〖(x^T Qx+x^T K^T RKx)dt=∫_0^∞▒〖x^T (Q+K^T RK)xdt〗〗
Минимальное значение функционала J представляет решение задачи
x_0^T Px_0→min
при ограничениях
(A+BK)^T* P + P(A+BK)+ Q +K^T* RK ≤0 (4)
Неравенство (4) является неравенством Ляпунова для системы (1), и в силу сделанных предположений относительно матриц Q и R, его выполнение гарантирует экспоненциальную устойчивость этой системы с управлением (3).
Умножив данное неравенство слева и справа на матрицу X = P^(-1), мы приходим к выводу:
(A+BK)X + X〖(A+BK)〗^T + XQX +XK^T RKX ≤0,
или, используя лемму Шура дважды, можно переформулировать это как:
(■((A+BK)X+X〖(A+BK)〗^T&X&XK^T@X&-Q^(-1)&0@KX&0&-R^(-1) ))≤0.
Далее, вводим Y = KX - вспомогательную матричную переменную. Приходим к линейному матричному неравенству:
(■(AX+XA^T+BY+Y^T B^T &X&Y^T@X&-Q^(-1)&0@Y&0&-R^(-1) ))≤0
относительно X и Y.
Из этого следует, на решениях этого матричного неравенства необходимо минимизировать величину
x_0^T Px_0=x_0^T X^(-1) x_0,
которая является нелинейной по X. Чтобы обойти эту трудность, возможно ввести скалярную переменную γ>0, которая удовлетворяет неравенству
x_0^T X^(-1) x_0≤γ
что, согласно лемме Шура о дополнении равнозначно линейному матричному неравенству
(■(γ&x_0^T@x_0&X))≥0.
Поставив задачу минимизации γ, можно установить, что минимум будет достигнут, когда будет выполнено равенство в условии x_0^T X^(-1) x_0≤γ и значение этого минимума будет соответствовать минимальному значению функционала (2).
Результаты работы программы
При начальных данных:
A=(■(0&1&0@-4.2&-1.5&4.2@0.77&0&-0.77)),B=(█(0@7.4@0)),x=[0.5,0,0]
График изменения управления u(t):
Рисунок 1
График временного поведения вектора состояния x(t):
Рисунок 2
4.2 Оптимальная стабилизация линейной системы импульсным управлением
Рассмотрим систему
x ̇(t)=Ax+Bv ̇(t),x(t)=x, (1)
где v(t) – функция ограниченной вариации, производная понимается в обобщенном смысле. Рассмотрим задачу о минимизации критерия
J[v(∙)]= ∫_(t_0)^∞▒〖x^T (t)Φx(t)dt 〗 (2)
на траекториях системы, заданной уравнением (1).
Данная задача минимизации критерия на траекториях системы (1) является вырожденной и в классе абсолютно непрерывных траекторий решений не имеет. В системе, заданной уравнением (1) произведем замену переменной:
y(t)=x(t)-Bv(t) (3)
Получим
y ̇(t)=Ay(t)+ABv(t),y(t_0 )=x_0,v(t_0 )=0. (4)
Функционал (2) получит такую запись
J^∞ [v(∙)]= 1/2 ∫_(t_0)^∞▒〖(y(t)+Bv(t))^T Φ(y(t)+Bv(t))dt.〗 (5)
В результате выполненных преобразований, мы сталкиваемся с задачей минимизации функционала (5) для траекторий, определенных в системе (4). Если det(B^T ΦB)≠0, то задача оказывается невырожденной. Оптимальное управление будет выглядеть как
v(t)=-(B^T ΦB)^(-1) B^T (Φ+A^T K)y. (6)
Матрица K есть решение управления Рикатти
-KA-A^T K+(KAB+ΦB) (B^T ΦB)^(-1) (B^T Φ+B^T A^T K) -Φ=0 (7)
С помощью уравнения Рикатти мы можем построить управление в исходной задаче (6). Дифференцируя его мы получим управление для исходной задачи.
v ̇(t)= -(B^T ΦB)^(-1) B^T (Φ+A^T K)∙x_0∙δ(t)+v ̇_2 (t).
Здесь v ̇_2 (t) – регулярная составляющая управления
v ̇_2 (t)= -(B^T ΦB)^(-1) B^T (Φ+A^T K)∙y ̇= -(B^T ΦB)^(-1) B^T (Φ+A^T K)(x ̇-Bv ̇ )= -(B^T ΦB)^(-1) B^T (Φ+A^T K)(Ax+Bv ̇-Bv ̇ )=〖-(B^T ΦB)〗^(-1) B^T (Φ+A^T K)∙Ax
Заметим, что в последнем выражении производная получается в обычном смысле (x_0,∞)
В результате имеем следующую структуру управления. В начальный момент под действием начального импульса фазовая точка попадает на множество
〖-(B^T ΦB)〗^(-1) B^T (Φ+A^T K)∙x=0 (*)
и далее будем двигаться по этой гиперплоскости. Если на систему будет действовать некоторое возмущение, которое будет сдвигать фазовую точку с помощью позиционного импульсного управления движения будет удерживаться на гиперплоскости (*).
Математическая основа программы
Программа решает задачу оптимизации для динамической системы, описываемой линейными уравнениями с управлением. Основой служит линейная модель:
x ̇(t)=Ax+Bu
где x представляет собой вектор состояний системы, A является матрицей состояний, B - матрицей управления, а u - вектором управления. Цель состоит в минимизации квадратичного критерия стоимости, который является общим выбором в задачах оптимального управления:
J[v(∙)]= ∫_(t_0)^∞▒〖x^T (t)Φx(t)dt〗
Здесь Φ - положительно определенная матрица, которая задает веса состояний в функции стоимости
Функция стоимости на основе уравнения Риккати
В программе для решения уравнения Рикатти используется численный метод, минимизирующий функцию стоимости, которая определяется как:
f(K)=‖-KA-A^T K+(KAB+ΦB) (B^T ΦB)^(-1) (B^T Φ+B^T A^T K) -Φ‖_F
где ‖∙‖_F обозначает норму Фробениуса, измеряющую “размер” или “отклонение” матрицы. Норма Фробениуса матрицы А определяется как:
‖A‖_F=√(∑_(i,j)▒|a_ij |^2 )
Эта норма эквивалентна евклидовой норме вектора, полученного вытягивание всех элементов матрицы в один вектор.
Метод Рунге-Кутты 4-го порядка
Для численного решения дифференциальных уравнений используется метод Рунге-Кутты 4-го порядка, который обеспечивает высокую точность при относительно больших шагах интегрирования. Метод вычисляет приближение решения на каждом шаге с помощью четырех промежуточных значений (производных), комбинируя их для получения конечного приближения:
y_(n+1)=y_n+h/6(k_1+2k_2+2k_3+k_4)
где k_i- промежуточные значения, зависящие от функции f(t,y), текущего времени t и шага h.
Результаты работы программы
При начальных данных:
A=(■(0&1@-1&0)),B=(█(0@1)),Φ=(■(1&0@0&1)),x_0=(█(0.3@-0.5))
График изменения управления u(t):
Рисунок 3
График временного поведения вектора состояния x(t):
Рисунок 4
ЗАКЛЮЧЕНИЕ
Предложен вариант решения задачи стабилизации с помощью импульсно-скользящих режимов. Сформулированы уравнения движения для импульсно-скользящего режима. Показано влияние возмущений, действующих на весь фазовый вектор, и в случае, когда возмущение действует только в канале управления. Приведены иллюстрирующие примеры.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Y. Shtessel, C. Edwards, L. Fridman, and A. Levant, Sliding Mode Control and Observation. New York: Birkh¨auser, 2013.
J. Ackermann and V. I. Utkin, “Sliding mode control design based on Ackermann’s formula,” IEEE Trans. Autom. Control, vol. 43, no. 2, pp. 234–237, 1998.
Уткин В.И. Скользящие режимы в задачах оптимизации и управления. М.: Наука. 1981. 367 с.
V. Utkin and J. Shi, “Integral sliding mode in systems operating under uncertainty conditions,” in Proc. 35th Conf. Decision Control, Kobe, Japan, Dec. 1996, pp. 4591–4596.
W.-J. Cao and J.-X. Xu, “Nonlinear integral-type sliding surface for both matched and unmatched uncertain systems,” IEEE Trans. Autom. Control, vol. 49, no. 8, pp. 1355–1360, 2004.
Y. Niu, D. W. C. Ho, and J. Lam, “Robust integral sliding mode control for uncertain stochastic systems with time-varying delay,” Automatica, vo. 41, pp. 873–880, 2005.
H. H. Choi, “LMI-based sliding surface design for integral sliding mode control of mismatched uncertain systems,” IEEE Trans. Autom. Control, vol. 52, no. 4, pp. 736–742, 2007.
X. Han, E. Fridman, and S. K. Spurgeon, “Sliding mode control in the presence of input delay: A singular perturbation approach,” Automatica, vol. 48, no. 8, pp. 1904–1912, 2012.
L. Wu, W. X. Zheng, and H. Gao, “Dissipativity-based sliding mode control of switched stochastic systems,” IEEE Trans. Autom. Control, vol. 58, no. 3, pp. 785–791, 2013.
J. Song, Y. Niu, and Y. Zou, “Finite-time stabilization via sliding mode control,” IEEE Trans. Autom. Control, vol. 62, no. 3, pp. 1478–1483, 2017.
J. Song, Z. Wang, and Y. Niu, “On H1 sliding mode control under stochastic communication protocol,” IEEE Trans. Autom. Control, vol. 64, no. 5, pp. 2174–2181, 2019.
R. Yang and W. X. Zheng, “Two-dimensional sliding mode control of discrete-time fornasini Cmarchesini systems,” IEEE Trans. Autom. Control, vol. 64, no. 5, pp. 2174–2181, 2019.
T. Gonzalez, J. A. Moreno, and L. Fridman, “Variable gain supertwisting sliding mode control,” IEEE Trans. Autom. Control, vol. 57, no. 8, pp. 2100–2105, 2012.
I. Nagesh and C. Edwards, “A multivariable super-twisting sliding mode approach,” Automatica, vol. 50, no. 3, pp. 984–988, 2014.
I. Castillo, L. Fridman, and J. A. Moreno, “Super-twisting algorithm in presence of time and state dependent perturbations,” Int. J. Control, vol. 91, no. 11, pp. 2535–2546, 2018.
B. Brogliato, A. Polyakov, and D. Efimov, “The implicit discretization of the supertwisting sliding-mode control algorithm,” IEEE Trans. Autom.
Самойленко А.М., Перестюк Н.А. Дифференциальные уравнения с импульсным воздействием. Киев.: Вища школа, 1987. 288 с.
E. Sharifi and C. J. Damaren, “Nonlinear optimal approach to spacecraft attitude control using magnetic and impulsive actuations,” J. Guid. Control Dyn., vol. 43, no. 6, pp. 1154–1163, 2020.
Yu.F. Dolgii, А.N. Sesekin, I.A. Chupin. Impulse control of the manipulation robot // Ural Mathematical Journal. Vol. 5. No. 2, P. 13-20..
Завалищин Д.С., Завалищин С.Т. Динамическая оптимизация обтекания. М.: Наука. 2002.
T. Tuma, A. Pantazi, J. Lygeros, and A. Sebastian, “Nanopositioning with impulsive state multiplication: A hybrid control approach,” IEEE Trans. Control Syst. Technol., vol. 21, no. 4, pp. 1352–1364, 2013.
K. Liu, E. Fridman, and K. H. Johansson, “Networked control with stochastic scheduling,” IEEE Trans. Autom. Control, vol. 60, no. 11, pp. 3071–3076, 2015.
D. Ne˘ei´c and A. R. Teel, “Input output stability properties of networked control systems,” IEEE Trans. Autom. Control, vol. 49, no. 10, pp. 1650–1667, 2004.
O. Jaramillo, B. Castillo-Toledoa, and S. Di Gennaro, “Impulsive observer-based stabilization Lipschitz nonlinear systems with uncertainties,” J. Franklin Inst., vol. 357, no. 17, pp. 12518–12537, 2020.
O. Jaramillo, B. Castillo-Toledoa, and S. Di Gennaro, “Robust impulsive observer-based stabilization for uncertain nonlinear systems with sampled-output,” IEEE Control Syst. Lett., vol. 5, no. 3, pp. 845–850, 2021.
T. Yang, Impulsive Systems and Control: Theory and Applications. New York: Nova Science, 2001.
Zavalishchin S.T.,Sesekin A.N. Dynamic Impulse Systems: Theory and Applications. Kluwer Academic Publishers.Dolrbrecht, 1997. 256 p.
Завалищин С.Т., Сесекин А.Н. Импульсно-скользящие режимы в нелинейных динамических системах // Дифференц. уравнения. 1983. Т.19, N 5. С. 790-799.
Завалищин С.Т., Сесекин А.Н., Дрозденко С.Е. Динамические системы с импульсной структурой. Свердловск. Средне-Уральское книжное издательство. 1983. 112 с.
Костоусов В.Б. Структура импульсно-скользящих режимов при возмущениях типа меры. I, Дифференц. уравнения, 20:3 (1984), 382–392.
Костоусов В.Б. Структура импульсно-скользящих режимов при возмущениях типа меры. II, Дифференц. уравнения, 20:5 (1984), 745–753.
Уткин В.И. Скользящие режимы и их применение в системах с переменной структурой. М.: Наука. 1974. 272 с.
Ложников А.Б., Сесекин А.Н. Теория устойчивости. УрФУ. 2012. 52 с., (учебное пособие).
Брайсон А., Хо Ю-Ши. Прикладная теория оптимального управления. М:”Мир”, 1972.
Поляк Б.Т., Хлебников М.В., Щербаков П.С. Управление линейными системами при внешних возмущениях. Техника линейных неравенств. М.: ЛЕЛАНД, 2014.- 560 сю.
ПРИЛОЖЕНИЕ
Линейно-квадратичный регулятор
% Определение матриц A, B, Q и R
A = [0 1 0; -4.2 -1.5 4.2; 0.77 0 0.77];
B = [0; -7.4; 0];
q = 3; % Простейший случай, где Q = q*I
Q = q*eye(size(A,1));
R = 1;
% Создание переменных X, Y и гамма
X = sdpvar(3, 3, 'symmetric');
Y = sdpvar(3, 1);
gamma = sdpvar(1);
% Задание начального состояния
x0 = [0.5; 0; 0];
% Определение линейного матричного неравенства (LMIs) и ограничений
LMIs = [A*X + X*A' + B*Y' + Y*B' <= 0;
[gamma, x0'; x0, X] >= 0];
% Минимизация гаммы под ограничениями
optimize(LMIs, gamma);
% Получение значений матриц X и Y
X_val = value(X);
Y_val = value(Y);
% Вычисление матрицы K
if isequal(rank(X_val), size(X_val, 1))
K = Y_val' * inv(X_val)';
else
disp('Матрица X вырождена, невозможно построить график');
return;
end
% Время симуляции
t = linspace(0, 5, 1000);
% Решение уравнения состояния
A_closed = A + B * K;
[~, x] = ode45(@(t, x) A_closed * x, t, x0);
% Построение графика
figure;
plot(t, x(:, 1), t, x(:, 2), t, x(:, 3));
xlabel('Время, сек');
ylabel('Значения состояний');
legend('x_1', 'x_2', 'x_3');
grid on;
% Расширение графика по оси Oy
cur_lim = ylim();
new_lim = cur_lim * 10;
ylim(new_lim);
% Вычисление управления
u = zeros(size(t)); % инициализация вектора управления
for i = 1:length(t)
u(i) = K * x(i, :)'; % умножение i-той строки вектора x на матрицу K
end
% Добавление управления на график
figure;
plot(t, u);
xlabel('Время, сек');
ylabel('Управление');
grid on;
% Вывод значений вектора состояния x и управления u
fprintf('Время \t x1 \t x2 \t x3 \t u\n');
for i = 1:length(t)
fprintf('%.2f \t %.4f \t %.4f \t %.4f \t %.4f\n', t(i), x(i, 1), x(i, 2), x(i, 3), u(i));
end
Оптимальная стабилизация линейной системы импульсным управлением
function main
% Объявление глобальных переменных
global U_saved T_saved;
U_saved = []; % Сохранение значений управления
T_saved = []; % Сохранение временных точек управления
% Определение параметров системы
A = [0 1; -1 0];
B = [0; 1];
Phi = [1 0; 0 1];
% Начальное приближение для матрицы K
K0 = zeros(1, 2); % 1x2 матрица
% Функция стоимости, основанная на уравнении Риккати
objectiveFunction = @(K) ...
norm(-K*A - A'*K' + (K*B*Phi + Phi*B)*(B'*Phi*B)^(-1)*(B'*Phi' + (A'*K')*B') - Phi, 'fro');
% Опции для оптимизатора
options = optimoptions('fmincon', 'Algorithm', 'sqp', 'Display', 'iter', 'MaxFunctionEvaluations', 10000);
% Поиск оптимального K
[K_opt, fval, exitflag, output] = fmincon(objectiveFunction, K0, [], [], [], [], [], [], [], options);
% Вывод результатов оптимизации
disp('Оптимизированная матрица K:');
disp(K_opt);
disp('Значение функции стоимости:');
disp(fval);
% Параметры замкнутой системы с оптимизированным K
A_cl = A - B * K_opt;
% Собственные значения замкнутой системы для проверки устойчивости
eigenvalues = eig(A_cl);
disp('Собственные значения замкнутой системы:');
disp(eigenvalues);
% Начальные условия для симуляции
x0 = [0.3; -0.5];
% Временной диапазон и шаг
tspan = [0 100];
h = 0.05; % Шаг интеграции
% Введение параметров для начального импульса
impulseDuration = 0.3; % продолжительность начального импульса
delta = 120; % коэффициент уменьшения начального импульса
% Запуск интеграции с помощью метода Рунге-Кутты 4-го порядка
[t, x] = ode4(@(t, x) dynamics(t, x, A_cl, B, K_opt, impulseDuration, delta), tspan, x0, h);
% Визуализация результатов симуляции состояний
figure;
plot(t, x);
xlim([0, 5]); % Ограничиваем ось времени для увеличения детализации начала
xlabel('Время, сек');
ylabel('Значение состояний');
title('График временного поведения вектора состояния x(t)');
legend('x1', 'x2');
figure;
plot(T_saved, U_saved, 'LineWidth', 2);
xlim([0, 5]); % То же самое для графика управления
xlabel('Время, сек');
ylabel('Управление, u(t)');
title('График изменения управления');
grid on;
% Функция динамики системы с управлением
function dx = dynamics(t, x, A_cl, B, K_opt, impulseDuration, delta)
% Управление с измененным импульсом в начальный момент
if t < impulseDuration
u = -delta * K_opt * x; % Уменьшенный начальный импульс
else
u = -K_opt * x; % Обычное управление
end
% Сохранение значения управления
U_saved = [U_saved, u];
T_saved = [T_saved, t];
dx = A_cl * x + B * u;
end
% Метод Рунге-Кутты 4-го порядка для решения ОДУ
function [t, y] = ode4(dydt, tspan, y0, h)
t = tspan(1):h:tspan(2);
y = zeros(numel(y0), numel(t));
y(:,1) = y0;
for i = 1:numel(t)-1
k1 = dydt(t(i), y(:,i));
k2 = dydt(t(i) + 0.5*h, y(:,i) + 0.5*h*k1);
k3 = dydt(t(i) + 0.5*h, y(:,i) + 0.5*h*k2);
k4 = dydt(t(i) + h, y(:,i) + h*k3);
y(:,i+1) = y(:,i) + (h/6)*(k1 + 2*k2 + 2*k3 + k4);
end
end
end