САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И СИСТЕМ
Лан Синчэн
Магистерская диссертация
Управление автомобилем на траектории с
использованием нечёткой логики
Направление 02.04.02
Фундаментальные информатика и информационные технологии
Магистерская программа Автоматизация научных исследований
Научный руководитель,
кандидат физ.-мат. наук,
доцент
Жабко Н. А.
Санкт-Петербург
2016
1
Содержание
Введение ........................................................................................................ 3
Постановка задачи ........................................................................................6
Обзор литературы .........................................................................................9
Глава 1. Синтез законов управления автомобилем на траектории ........10
1.1. Линеаризация .................................................................................10
1.2. Синтез закона LQR-оптимизации ................................................ 12
1.3. Автоматический выбор параметров в управлении .....................14
1.4. Построение TS-модель нечёткой логики ....................................16
1.5. Синтез нечеткого управления (Fuzzy Controller) ........................20
Глава 2. Компьютерное и имитационное моделирование ...................... 24
2.1. Выборка точки равновесии ...........................................................24
2.2. Simulink-модель непрерывной системы ......................................24
2.3. Автоматическая настройка коэффициентов управления ...........27
2.4. Задание траектории ....................................................................... 31
2.5. TS-нечеткая модель ....................................................................... 33
2.6. Увеличение законов для нечеткого управления ..........................36
2.7. Эксперимент для увеличения законов .........................................39
2.8. Проверка асимптотической устойчивости .................................. 44
Выводы ........................................................................................................ 48
Заключение ..................................................................................................49
Список литературы .....................................................................................50
Приложение .................................................................................................52
2
Введение
В прошлом веке с момента появления автомобиля он сразу стал важной
частью повседневной жизни человека. С развитием современной
промышленности в сфере машиностроения количество владельцев
автомобилями во всех странах мира характеризовалось существенным
ростом, и со временем проблему трафика стало невозможно игнорировать в
градостроительстве. В классических моделях система «машина – водитель дорога» является замкнутой системой с обратной связью. Увеличивающийся
объем потребности в использовании возможностей современных
автомобилей, растущие требования к комфорту и безопасности, делают
актуальным направление исследований, ориентированное на то, как
исключить человека из этой системы. На всех этапах автоматизации задача
исследования динамики движения автомобиля является необходимой, при
этом при исследованиях необходимо основываться на знаниях теории
управления и моделирования, а также возможностях современных
компьютерных и информационных технологий.
Задача управления на траектории и на заданном пути стала популярной
и актуальной в настоящее время, в том числе речь идет об автоматизации
такого движения для автомобилей. Люди придумают новые способы для
дальнейшего увеличения удобства в жизни. Например, американская
компания «Google» изобрела «Google Car» автомобиль, который может сам
доехать до желаемого места.
Развитие компьютерных технологий позволяет нам реализовывать
синтез закона автоматического управления в устройствах системы
управления, которые будут занимать место водителя или работать
помощником в опасной ситуации. А методы, основанные на использовании
нечеткой логики возникли как наиболее удобный и понятный способ
построения систем управления различными системами, в том числе
автомобилем и сложными технологическими процессами, и нашли
3
применение в бытовой электронике, диагностических и других экспертных
системах. При этом актуальной является задача автоматизации процесса
разработки систем автоматического управления с нечеткой логикой,
используемых на борту автомобиля, а также разработки простых
вычислительных схем, легко реализуемых на борту.
Данная работа посвящена вопросам, связанным с синтезом нечеткого
управления на траектории автомобилем, с использованием для его настройки
средств компьютерного и имитационного моделирования. Во многих работах
нечеткая логика применяется с целью реализовать интуитивные
представления о поведении объекта и имеющийся опыт в нелинейном
нечетком законе управления, формальный анализ свойств которого (таких как
устойчивость замкнутой системы) провести, как правило, не представляется.
В данном исследовании, в отличие от таких работ, нечеткая логика
используется для замены исходной нелинейной модели с помощью
нескольких линейных, и, аналогично, получение нечеткого регулятора TS) на
основе нескольких линейных управлений. При этом такая замкнутая система
может быть формально исследована на предмет глобальной асимптотически
устойчивой, что делает подобный подход перспективным с точки зрения
применения на практике. Для синтеза регулятора в работе также
привлекаются средства классического метода LQR-оптимизации.
Для проведения исследований в работе создается компьютерная модель
объекта с помощью системы Simulink. Simulink – это графическая среда
имитационного моделирования, позволяющая при помощи блок-диаграмм в
виде направленных графов строить динамические модели любой сложности,
включая дискретные, непрерывные и гибридные, нелинейные и разрывные
системы.
Построенная Simulink-модель используется для проведения численного
моделирования при синтезе законов управления на траектории.
При этом возможность многократно повторять похожие эксперименты с
объектом посредством имитационного моделирования существенно
4
упрощает задачу выбора параметров в законах управления, проверки
получаемых результатов, и позволяет проводить автоматизацию разработки
элементов системы управления автомобилем.
5
Постановка задачи
1. Построение математической модели
В работе рассматривается, что автомобиль двигается по плоской
дороге, сухой и без возмущений, таких как ветер, снег и дождь. В качестве
входного сигнала, играющего роль управления, принимается тяговое усилие
или тормозное усилие T, и угол поворота переднего колеса δ . Тогда
движение автомобиля можно представить с помощью следующих четырех
параметров: продольная скорость u , поперечная скорость v , угловая
скорость по курсу r , и угла курса φ .
На основе известных законов теоретической механики, описывающих
движение автомобиля, могут быть получены уравнения, которые приведены
ниже ([2],[3]):
ú=vr− fg+
v́=−ur −
(
)
f k 1−k 2 2 C f v ar
1
u +
+
δ+ T
M
M u u
M
C f +C r v b C r −a C f r C f
1
+
+ δ + Tδ (1)
M u
M
u M
M
2
2
b C r −a C f v b C r −a C f r a C f
−fMh
ŕ=
ur +
−
+
δ
Iz
Iz
u
Iz
u Iz
φ́=r
Здесь использованы различные коэффициенты, которые характеризуют
параметры автомобиля: a=1.05 – передняя колесная база, b=1.63 – задняя
колесная база, h=0.53 – высота, M =1480 – масса автомобиля, f =0.02 –
коэффициент трения, I z =2350
силы тяжести, C f =135000
C r =95000
– момент инерции, g=8.81
– жесткость угла крена передней подвески,
– жесткость угла крена задней подвески, k 1=0.005
перевозки, k 2=0.41
– ускорение
– параметр
– параметр сопротивления. При моделировании
задается ограничение δ =[−22° ,22° ] .
Модель является MIMO и сильно нелинейной.
6
2. Задача стабилизации на траектории (path-following)
В данной работе изучаются вопросы управления автомобилем на
траектории (заданном пути). На рисунке 1 показана целевая конфигурация
представления эталонного автомобиля с теми же ограничениями, как
кинематики реального.
Рис. 1.
Соответственно, ( u , v , φ ) и ( ur , vr , φ r ), будут продольные,
поперечные скорости и угол курса реального и желаемого автомобиля.
Наша цель состоит в определении управляющих воздействий T
и δ ,
которые позволяют реальному автомобилю следовать определенной
траектории. Иными словами, пусть ( x е , y e ) являются координатами
MM r
ошибки вектора положения ⃗
в системе координат R l (M, i⃗ , ⃗j ),
связанной с реальным автомобилем. Обозначим ошибку ориентации между
обоих транспортных средств φ e
MM r
положения ⃗
= φ − φ r . Так что вектор ошибки
можно описываться в системе координат R l
таким
образом:
7
⃗
MM r =x е i⃗ + y e ⃗j
Продифференцируем по времени, получим:
d⃗
MM r
= x́ е i⃗ + ý e ⃗j+ x е φ́ ⃗j− ye φ́ i⃗ =ue i⃗ +v e ⃗j
dt
Тогда,
x´e=u e− y e r
ý e=v e− x e r
Кроме того, у нас есть
d⃗
MM r d⃗
O Mr d⃗
OM
=
−
dt
dt
dt
где
d⃗
O Mr
=ur cos φe i⃗ −ur sin φe ⃗j+v r sin φe i⃗ +vr cos φ e ⃗j
dt
d⃗
OM
=u i⃗ + v ⃗j
dt
Из вышеприведенных уравнений получим следующее:
x´е=ur cos φ e +v r sin φ e−u+ y e φ́
ý е=−ur sin φ e +v r cosφ e−v− x e φ́
Кроме того,
φ́ e= φ́− φ́r =r e =r−r r
Наконец, представление для задачи траектории автомобиля могут быть
записаны следующим образом:
ú=vr− fg+
v́=−ur −
(
)
f k 1−k 2 2 C f v ar
1
u+
+
δ+ T
M
M u u
M
C f +C r v b C r −a C f r C f
1
+
+ δ + Tδ
M u
M
u M
M
2
2
b C −a C f v b C r −a C f r a C f
−fMh
ŕ=
ur + r
−
+
δ (2)
Iz
Iz
u
Iz
u Iz
x´е=ur cos φ e +v r sin φ e−u+ y e φ́
ý е=−ur sin φ e +v r cosφ e−v− x e φ́
φ́ e= φ́− φ́r
8
Обзор литературы
Работа Гуо КонХуэй «Динамика управления автомобилем»(1991)[4] содержит
характеристики автомобиля, позволяет составить представление о
построении математической модели автомобиля на основе исходной
физической модели. Постановка задачи управления автомобилем на
траектории, которая рассматривается в настоящей работе, а также основная
идея, на которой основано решение задачи в данной работе, приведены в
работе A.El Hajjaji,S.Bentalba [3]. Эта работа совместно с работой S.Bentalba,
A. El Hajjaji and A. Rachid [2] посвящена использованию нечеткой логики при
управлении автомобилем, нелинейная модель, используемая при проведении
вычислений, также сформирована на основе этих работ. Монография
Веремея.Е.И
«Линейные системы с обратной связью»(2013)[1] дает мне
теоретические знания про оптимизационные методы, которые нашли
применение в настоящей работе для синтеза управления движения
автомобиля. Книга Ван ЧжэнЛин «Процесс управления и применение в
Simulink»(2006)[5] и книга Liu Bao, Tang WanSheng «Современная теория
управления»[6] помогает решить проблемы моделирования, которое
применяется в среде MATLAB-Smiulink. Статья «Matlab и система нечеткой
управления»[7] объясняет понятия нечеткой логики, и, совместно с работой
Zhao JingHui «T-S нечеткая модель»[8], а также [13], позволяет понятие о
применении T-S нечеткой модели. В работе Dao Ke «Определение LMIсистемы с использованием lmiedit» [9], а также работа Dynamic «Решение
линейных матричных неравенств в среде Matlab»[10] изложены вопросы,
посвященные проблеме решения системы линейных матричных неравенств, в
том числе в среде MATLAB. Нечеткие T-S модели успешно используются в
разных приложениях и при учете некоторых дополнительных условий,
примеры такого использования приведены, например, в [11]-[15], однако из
указанных работ видно, что многие вопросы их использовании остаются
открытыми и не имеют единственного решения.
9
Глава 1. Синтез законов управления автомобилем
на траектории
В данной главе опишем теоретические основы тех подходов, которые
будут использоваться при проведении компьютерного и имитационного
моделирования управления автомобилем на траектории.
1.1. Линеаризация
При выполнении синтеза регулятора в рамках применяемого в работе
подхода, необходимым этапом является линеаризация – процесс построения
приближения для нелинейной системы линейными уравнениями в
окрестности некоторого решения этой системы (контролируемого движения).
Как правило, в качестве такого решения выступает точка равновесия –
постоянное решение. Иными словами, нелинейные дифференциальные
уравнения, представляющие собой математическую модель динамики
объекта
X́ =F ( X ,U ),
где X
– n -мерный вектор состояния системы, U – m -мерный вектор
управлений, заменяется на линейные дифференциальные уравнения при
условии непрерывной дифференцируемости компонент вектор-функции F
по совокупности аргументов на множестве своего определения при
допустимых значениях динамических переменных,
конкретной точки
в окрестности
( X ,U )=( X ei , U ei ) заменяются системой:
x́= A i x+B i u ,
∂F
где A i= ∂ X ¿( X
ei
,U ei )
, B i=
∂F
¿
∂U ( X
ei
,U ei )
.
Для рассматриваемой математической модели (2), задаваемой исходными
полными нелинейными уравнениями, указанным способом для дальнейшего
исследования могут быть получены линейные модели в окрестности
представляющих интерес точек ( X ,U )=( X ei , U ei ) .
Записывая уравнения в стандартной форме, мы получим стационарную
10
систему линейных дифференциальных уравнений (LTI-систему) следующего
вида в окрестности точки X ei , U ei :
´ = A X́ +B Ú
X́
i
i
Здесь X́=X− X ei ,
Ú =U −U e i .
Матрицы A i , Bi показаны ниже
(
a11 , a12 , a13 , a14 , a15 , a16
a21 , a22 , a23 , a24 , a24 , a26
A i= a31 , a32 , a33 , a34 , a35 , a36
a41 , a42 , a43 , a44 , a 45 , a46
a51 , a52 , a53 , a54 , a55 , a56
a61 , a62 , a63 , a64 , a65 , a66
()
b11 , b12
b21 , b22
Bi = b31 , b32
b 41 , b42
b51 , b52
b61 , b62
)
,
,
где
a11 =
2 uei ( f k 1−k 2 ) C f ( v ei +a r ei ) δ ei
C δ
aC δ
−
,a12=r ei + f ei ,a13 =v ei + f ei ,
M
M uei
M uei
M u ei
a14 =0, a15 =0,a16 =0,
a21=
(C f +C r )v ei
M uei
2
−
b C r −aC f
Mu
2
ei
r ei −r ei ,a22=
−C f +C r
b C r −a C f
,a23=
−uei ,
M uei
M uei
a24 =0, a25=0, a26 =0,
2
a31=
2
b C r +a C f
b C r −a C f
b C r −a C f
−fMh
r ei −
r ei +
v ei , a32=
,
2
2
Iz
I z uei
I z uei
I z uei
2
2
b C r +a C f
−fMh
a33=
u ei−
,
Iz
I z uei
a34 =0, a35 =0,a36 =0,
a 41=−1, a42=0, a43=0, a44 =0, a 45=r ei ,a 46=v ei ,
a51=−1, a52=−1,a53=0, a54=−r ei ,a55=0, a56=−uei ,
11
a61=0,a62=0,a63=1, a64 =0, a65=0, a66=0,
b11 =
C f ( v ei +a r ei )
1
,b12=
,
M
M uei
b21=
b31=
δ ei
T +C
,b22= ei f ,
M
M
a δ ei
T +C
,b32=a ei f ,
Iz
Iz
b 41=0 , b42=0,
b51=0 , b52=0,
b61=0 , b62=0,
для X ei=[ uei v ei r ei xei y ei φei ]T ,
T
U ei=[T ei δ ei ] .
Для того чтобы получить конкретные постоянные матрицы A i
и Bi ,
выбираем некоторые конкретные точки равновесия – наборы из постоянных
значений ( X ei ,U ei ) , обращающих (2) в тождество.
При этом для полученных LTI-систем с помощью соответствующих
алгоритмов можем считать обратную связь, которая будет задаваться в
следующем виде:
u= K i x .
(3)
Следовательно, удобно считать матрицу K i , которая обеспечивает
асимптотически устойчивость соответствующей замкнутой линейной
системы. В дальнейшем, полученные матрицы K i , будут получены и
использованы в TS -модели с пользованием нечёткой логики.
1.2. Синтез закона управления с помощью LQRоптимизации
Матрицы K i
из (3) могут быть построены на основе применения
различных математических методов.
При синтезе управления для обеспечения движения на траектории в
данной работе будем опираться на популярный в исследовательской практике
метод линейной интегральной квадратичной оптимизации (LQR12
оптимизации). Описание такого подхода можно найти, например, в
монографии [1].
Задача LQR-оптимизация формулируется для линейных систем с
математическими моделями в виде LTI-систем (linear time-invariant)
(1.1)
x́= A x+ B u ,
г д е x ∈ E n – вектор состояния, u ∈ Em
компоненты матриц A
иB
– вектор управлений, причем
являются постоянными, определяющими
свойствами объекта. Здесь считаем, что системы (1.1) полностью управляема.
Для объекта вида (1.1) управление строим в виде линейной обратной
связи:
u= K x .
(1.2)
На решениях замкнутой системы (1.1), (1.2) зададим интегральный
квадратичный функционал:
∞
J=J ( K )=∫ [ x ' Q x+u' R u ] dt ,
(1.3)
0
который характеризует поведение замкнутой системы x́=( A+BK ) x . Здесь
Q≥0
неотрицательно определенная симметрическая матрица, а
положительно определенная симметрическая матрица. Матрицы Q
R>0−¿
и R
являются весовыми матричными множителями.
То гд а з а д ач у о п о и с ке LQR-оптимального управления можно
сформулировать следующим образом:
J=J ( K )→ min
K ∈Ω K
г д е Ω K −¿ множе ство по стоянных матриц K таких, что
(1.4)
корни
характеристического полинома Δ(s)=det ( E s− A−BK ) замкнутой системы
расположены в открытой левой комплексной полуплоскости, то есть
ℜ λ i ( A+BK ) <0 .
Для поиска матрицы
K 0=arg min
K ∈ΩK
в оптимальном управлении (1.2)
необходимо выполнить следующие действия:
1. Сформировать матричное алгебраическое уравнение Риккати
13
−1
−1 T
T
T
SB Q B S + A S+SA +C RC=0
d
его решение S−¿ симметрическая положительно определенная матрица:
полином det ( E s− A+B Q−1 B T S)
является гурвицевым, который имеет все
корни в левой полуплоскости.
2. Построить матрицу коэффициентов K 0=−Q−1 B T S
оптимального
регулятора по вектору состояния u=K 0 x .
Выполнение указанных действий приводит к стабилизирующему
управлению, которое является оптимальным по отношению к функционалу
(1.3), для заданных матриц Q и R . Как правило, в исходной постановке
задачи такие матрицы не заданы, соответственно, применение метода LQRоптимизации предполагает выбор элементов этих мат риц как
дополнительный этап решения задачи. Выбирать указанные матрицы следует
таким образом, чтобы они отражали требования к динамическим процессам в
замкнутой системе. В общем случае, подобная процедура не является
формализованной, и это позволяет ставить задачу о выборе матриц
R
Q
и
таких, чтобы замкнутая система удовлетворяла заданным требованиям.
1.3. Автоматический выбор параметров в управлении
Рассмотрим теперь другой оптимизационный подход, его описание
можно найти в монографии [1], в котором требования к качеству
динамических процессов задается с помощью учета ограничений,
непосредственно накладываемых на контролируемые переменные с помощью
задания области, которой они должны принадлежать. Если контролируемые
переменные принадлежат заданным областям, это означает, что требования к
динамики процессов выполнены. Для задания такой области необходимо
задать две функции времени так, чтобы выполнялось x 2 ( t ) < x1 ( t ) , ∀t ∈ [ 0 ,T ] .
Пусть в правую часть модели замкнутой системы входит ряд
параметров, объединенных в общий вектор h , от которых зависит ее
поведение. Пусть x ( t , h )
– некоторая динамическая контролируемая
14
переменная (представляющая для нас интерес), тогда можно считать
допустимым динамический процесс, если вектор настраиваемых параметров
h∈E
p
выбран так, чтобы выполнялись неравенства:
x 2 ( t ) ≤ x ( t , h ) ≤ x 1 ( t ) ∀ t ∈ [ 0, T ] .
(1.5)
Графически это проиллюстрировано на следующем рисунке 2.
Рис.2 Допустимая область для характеристики x (t , h) динамического
процесса [1]
Видно, что допустимая область, заданная парой [ x 1(t ) , x 2(t ) ], может
ограничить динамический процесс x (t , h) . Для получения допустимого
динамического процесса необходимо подобрать вектор h
моделируемый процесс по переменной x (t , h)
так, чтобы
лежал внутри области, то
есть обеспечить выполнение ограничений (1.5).
Эффективным способом достижения такого результата является
постановка и решения оптимизационной задачи, рассмотрим её. Зафиксируем
некоторый набор моментов времени из промежутка, на котором выполняем
имитационное моделирование t i ∈ [ 0 , T ] ,
i=1,´N . Для каждой точки
зададим функцию α i (h) , которая будет служить мерой выхода переменной
x (t , h)
за пределы допустимой области в момент t i
(штрафом), с
помощью формулы
{
0, if x 2 ( t i ) ≤ x ( t i ,h ) ≤ x 1 ( t i ) ;
α i ( h )= x ( t i , h ) −x 1 ( t i ) ,if x ( t i , h ) >x 1 ( t i ) ;
x2 ( t i )− x ( t i , h ) ,if x ( t i , h ) < x 2 ( t i ) .
Тогда общий штраф за выход из коридора на всем отрезке
(1.6)
[ 0 ,T ] будет
определяться суммой:
15
N
α ( h )=∑ α i ( h ) .
i=1
Исходя из желания минимизировать общий штраф, можно перейти к
оптимизационной задаче
~( )
J h =α ( h ) → minh ∈ E
(1.7)
P
Такая задача решается численно, и это означает, что важной
особенностью и преимуществом такого подхода является то, что при
моделировании и получении значения минимизируемой функции α ( h )
может использоваться нелинейная модель замкнутой системы, содержащая
любые необходимые для моделирования элементы.
Для вычислений в работе объединяются возможности обоих описанных
оптимизационных подходов (в настоящем и предыдущем пунктах).
Для этого требования к динамическим процессам в замкнутой системе
характеризуются с помощью задания допустимой области на плоскости, в
которую должна попасть контролируемая динамическая переменная, а вектор
параметров h
составляется из параметров в матрицах Q
и R
в
функционале (1.3). Для упрощения ненулевыми элементами указанных
матриц будут считаться только диагональные. В этом случае эти элементы
будут задавать весовые коэффициенты перед соответствующими
переменными состояния и управления в функционале (1.3), определяя вклад
каждой такой переменной в функционал. Диагональные значения матрицы
R
будем считать положительными фиксированными вещественными
числами
(матрица R
должны быть положительно определена).
Варьируемые диагональные элементы матрицы Q
(часть может быть
фиксирована изначально) задаются как квадраты некоторых вещественных
чисел (параметров), которые исходно не заданы. Все такие параметры
объединяются в вектор h
в функционале (1.7), и выбираются путем
решения оптимизационной задачи (1.7).
16
1.4. Построение нечёткой TS-модели
Нечеткая логика представляет собой многозначной логикой, которая
позволяет определить промежуточные значения для таких общепринятых
оценок, как да или нет, истинно или ложно, черное или белое и т.п. Подобные
выражения, которые определяются с помощью нечеткой логики, будет
представляться, например, следующим образом: чуть-чуть жарко или
достаточно холодно. Такой способ описания может быть формализован
математически.
Одним из основных понятий нечеткой логики является понятие
нечеткого множества. Известно, что из классической математики задание
четких множеств означает использование вполне определенных значений, а
нечетких – неопределенных. Допустим, что множество A всех чисел от 0 до 5,
а подмножество B множества A от 2 до 4. Для характеристики множества B
может быть задана функция μ A ( x )
(функция принадлежности), ставящая в
соответствие число от 0 до 1 каждому элементу множества B, и
характеризующая степень принадлежности конкретного элемента множества
A нечеткому множеству B. Значение 1 означает, что элемент определенно
принадлежит нечеткому множеству B, соответственно, 0 – определенно не
принадлежит нечеткому множеству B. Функции принадлежности могут
задаваться разными способами. Например, популярным вариантом являются
треугольные функции принадлежности, которые задаются как:
(
0, x ≤ a
x−a
trimf ( x , a , b , c )=
,a ≤ x ≤ b
b−a
0, c ≤ x
Если задаем a=20,
b=40,
c=60,
то получается следующий
график:
17
Рис.3. Пример функции принадлежности
Ещё пример, если жарко в комнате, тогда включим кондиционер. Но как
определим, что в комнате жарко и когда включать кондиционер? Тогда
получается с помощью нечеткой логики значения: если немножко жарко,
тогда открываем кондиционер несильно, то есть степень принадлежности
промежутку [0,1] может быть получена, например, 0.3. Если жарко, тогда
открываем кондиционер побольше, что значит, что степень может быть уже
0.5. А если достаточно жарко, тогда открываем кондиционер сильно. Это
значит уже, что уровень принадлежности максимален, то есть значение
функции принадлежности 1. Общая процедура использования нечетких
множеств предполагает наличие следующих этапов: сначала следует
выполнить фаззификацию или переход к нечеткости, задание правил и
функций принадлежности для конкретных переменных, и, наконец,
дефаззификацию или устранение нечеткости чтобы получить конкретной
определенное значение переменной.
Известно, что в нечёткой логике необходимо задавать несколько правил
такого типа, как “IF…THEN…”. Это соответствует, например, методу
Мамдани (Mamdani), то есть после THEN… как сдаваем значение 1 или 0
(true или false). Поставим как условие просто равенство состояний некоторым
желаемым значениям.
А идея метода Takagi-Sugeno предполагает, что в правиле “IF…
18
THEN…” в условии “…THEN…” задается явно какое-нибудь математическое
выражение. Это означает, что этап дефаззификации в данном случае
отсутствует.
Данный метод может быть применен для построения нечеткой TSмодели, которая заменяет собой исходную нелинейную модель.
Эти наборы “IF…THEN…” представляют собой замену нелинейной
системы так, что каждое правило соответствовало замене нелинейной
системы одной локальной линейной подсистеме, а вся нечёткая система,
заменяющая исходную нелинейную систему, представлена как комбинация
всех локальных подсистем:
i
R : IF
z 1 (t)
is M i1 and … and z p (t) is M ip , THEN
x́ ( t )= A i x ( t ) + Bi u ( t ) , i=1,2 ,… , r
г д е M ij
– нечёткие множества, ( A i
, Bi ) – пара матриц
соответствующих i -тому набору ( X ei ,U ei ) ,
z j(t)
– динамические
переменные, задающие конкретную равновесную точку в правилах.
Теперь зададим функции принадлежности, которые в нечёткой логике
представляет степень принадлежности рассматриваемой переменной к
данному нечёткому множеству. Пусть M ij (z ( t )) обозначает, что переменной
z j ( t ) соответствует функция принадлежности
i
Mj
в i -м правиле.
Берём произведение, получаем:
P
W i ( z ( t ) )=∏ M j (z ( t ) )
i
j=1
W i ( z ( t ) ) представляет собой вес
i
-ого правила.
Средневзвешенный метод широко используется в промышленном
управлении, используем его и получим уравнения общей системы (TSмодель), которую будем рассматривать вместо исходной нелинейной системы
(2) при синтезе управления:
19
n
x́=
∑ W i ( A i x ( t ) +B i u ( t ) )
i=1
n
Wi
∑
i=1
(1.8)
Поскольку TS-модель (1.8) построена на основе нескольких линейных
моделей, ее использование вместо исходной нелинейной модели при
построении регулятора, означает, что можно попробовать свести эту задачу к
применению стандартного математического аппарата для работы с
отдельными линейными системами, которые задают модель (1.8).
1.5. Синтез нечеткого управления (Fuzzy Controller)
В предыдущем пункте была построена TS -модель для того, чтобы на
ее основе построить управление нелинейной модели, гарантирующее
асимптотически устойчивость TS -модели.
Правила,
которые использованы для построения TS -модели для
рассматриваемого объекта с исходной моделью (2), будут иметь вид
i
R : IF
X
is
, THEN x́ ( t )= A i x ( t ) + Bi u ( t ) , i=1,2 ,… , r
X ei
Идея, на которой основывается синтез регулятора, обеспечивающего
асимптотическую устойчивость замкнутой системы для динамической
модели (1.8), задающей объект, состоит в том, что управляющее воздействие
определяется правилами с теми же предпосылками, что и при задании
TS -
модели:
i
R : if
is X ei , then Ú =−K fi X́ .
X
Таким образом, схема TS
нечеткого регулятора для нелинейной
системы при управлении автомобилем на траектории, предполагает задание
управляющего воздействия как
n
−∑ W i K i X́
f
Ú =
i=1
n
Wi
∑
i =1
(1.9)
20
Основной результат, который используется в работе, может быть
представлен следующей теоремой [3], [13]:
Теорема:
Нечеткая система (1.8), (1.9) асимптотически устойчива, если
существует одна общая положительная определенная матрица
P , такая что
( A i −Bi K if )T P+ P ( A i− Bi K if ) <0 for i=1 ,… , n
T
G ij P+ P Gij <0 for i< j<n
где
где
G ij =
1
( [ A i−Bi K fj ] + [ A j−B j K fi ] ) .
2
Таким образом, управление строится для нечеткой системы (1.8), а
используется для исходной системы (2).
Достоинством такого управления является то, что основным этапом при
его построении является синтез линейных обратных связей для локальных
LTI-систем, и для такой задачи существуют известные методы,
гарантирующие построение требуемого управления. При этом, в
соответствии с теоремой имеет место глобальная асимптотическая
устойчивость замкнутой системы, если выполнены условия, указанные в
теореме. Для синтеза линейных обратных связей для локальных LTI-систем
на основе рассматриваемого метода и выбора неизвестных матриц в разных
ситуациях применялись различные подходы, которые предполагали, в том
числе, адаптивную настройку параметров всех матриц
f
Ki
одновременно
[11], обеспечение учета каких-то дополнительных ограничений, как,
например, в [15].
Однако в любых ситуациях применение такого подхода требует
решение некоторых практических вопросов.
Во-первых, необходимо выбрать равновесные точки для линеаризации.
Общей рекомендации по их выбору нет, однако от него зависит, насколько
21
близка будет динамика TS-модели нелинейной модели, а это влияет на то,
насколько хорошо построенное управление будет работать для исходного
объекта.
Во-вторых, точки и матрицы обратной связи должны быть выбраны так,
чтобы выполнялись условия теоремы, то есть система линейных матричных
неравенств, заданная в теореме. Задача поиска матрицы P для обеспечения
выполнения неравенств может быть решена с помощью ППП Robust Control
Toolbox системы MATLAB, содержащего инструментальные средства для
работы с линейными матричными неравенствами.
При этом, стремление получить более точное соответствии TS-модели
исходной модели приводит к использованию большего количества точек, а
чем больше количество использованных равновесных точек, тем больше
количество линейных матричных неравенств, которые должны выполняться в
соответствии с теоремой, то есть тем большим оказывается общий объем
вычислений и тем сложнее может быть поиск матрицы P .
Кроме того, построение нечеткого TS-регулятора так же, как и
построение регулятора иными способами, как правило, должно проводиться с
учетом дополнительных требований и ограничений, которые накладываются
на динамику замкнутой системы.
Таким образом, можно предложить следующий подход для синтеза TSрегулятора для обеспечения стабилизации нелинейной системы, в данной
работе – для обеспечения движения автомобиля на заданном пути:
для построения управлений Ú =−K fi X́
таких, чтобы в замкнутой
системе обеспечивалось требуемое динамическое качество, и
выполнялись указанные неравенства, матрицы в управлении для
локальных подсистем могут быть выбраны на основе решения задачи
параметрической оптимизации с подбором варьируемых параметров.
В частности, для этого разумно формировать минимизируемую
функцию с помощью задания «динамического» коридора, с введением
варьируемых параметров в функционал метода LQR- оптимизации
22
так, как это было описано в п.1.3. После выбора матриц локальных
обратных связей необходимо в соответствии с теоремой осуществить
поиск матрицы P , обеспечивающей выполнение неравенств из
теоремы. Если оказалось, что такой матрицы не существует,
необходимо изменить равновесные точки, их количество,
минимизирумые функции в задаче параметрической оптимизации, в
результате заново выбрать матрицы линейной обратной связи в
управлении и опять выполнить проверку, действуя так до тех пор, пока
матрица
P
не будет найдена. При этом, в отдельных ситуациях
может оказаться успешным следующая последовательность действий:
сначала выбирается малое количество равновесных точек, для них
ищется матрица P ,
далее набор используемых точек и,
соответственно, матриц локальных обратных связей, расширяется для
улучшения управляющего воздействия так, чтобы та же матрица
обеспечивала выполнение и новой группы неравенств
P . Следует
отметить, что выбор способа задания функций принадлежности также
может оказать влияние на итоговый результат.
23
Глава 2. Компьютерное и имитационное
моделирование
2.1. Выборка точки равновесия
Для отслеживания траектории (пути), мы выбираем некоторые точки,
которые удовлетворяют следующим уравнениям:
T e + M v e r e −Mfg +C f δ e
v e +a r e 2
+ue ( f k 1−k 2 )=0
ue
T e δ e −M ue r e +C f δ e− ( C f +C r )
ve
r
+ ( C r −a C f ) e =0
ue
ue
a T e δ e− Mfh ue r e +a C f δ e + ( b C r −aC f )
ve
r
−( b2 C r +a2 C f ) e =0
ue
ue
Например, выберем три операционные точки:
( ue1 , ve 1 , r e 1 ,T e 1 , δ e 1) =(22m/ s , 0 m/ s ,0 rad / s , 454.33 N , 0 °)
( ue2 , ve 2 , r e 2 ,T e 2 , δ e 2 )=(32m/ s ,−3.175 m/s , 0.83rad / s ,5345 N ,5 °)
( ue3 , v e 3 ,r e 3 ,T e3 , δ e 3 ) =(42 m/s ,−8 m/ s ,1 rad /s ,14803 N ,5 °)
2.2. Simulink-модель непрерывной системы
Для исследования динамики объекта построим компьютерную модель,
которая формируется на основе известной математической модели (2). В
работе компьютерная модель автомобиля построена в среде MATLABSimulink, в которой реализуется компьютерное и имитационное
моделирование рассматриваемых процессов. На рисунке 4 представлена
схема, соответствующая построенной Simulink-модели.
24
Рис.4. Simulink-модель динамики автомобиля
Рассмотрим назначение подсистем и использованных в модели блоков.
Здесь подсистемой «Model» (приведена на рис.5) является сама модель
автомобиля, которая соответствует уравнениям (2), подсистема «Control» –
подсистема, отвечающая за выработку управляющего сигнала, которое будет
в виде (1.8) .
В блоках «reference» и «reference1» задаются значения желаемой
траектории (пути).
Блок «Selector» выбирает нужные параметры, выходящей из блока
«reference».
Рис.5. Подсистема «Model»
В подсистеме «Model» на вход поступают сигналы: вектор состояния
x , управление u
и желаемые значения r . Блок «Interpreted MATLAB
Function» обеспечивает применение заданной m-функции (функции,
написанной на языке MATLAB) к входному сигналу и выдачу результата на
25
выходе блока. В данной подсистеме блок «nolinear» используется для задания
функции, которая описывает правую часть системы (Листинг 1.) нелинейных
уравнений движения автомобиля. Блок «Integrator» интегрирует входной
сигнал x́ , чтобы получить вектор состояния x .
Рис.6. Подсистема «Control»
В подсистеме «Control» (рис.6) есть два входных сигнала: внутри –
вектор x
и внешне – желаемое значение переменных состояния из блока
«reference1». С помощью блока функции «Ts_Control» обеспечивается
выработка управляющего сигнала управления динамикой движения
автомобиля с учетом изменения скорости.
Рис.7. Подсистема «Display»
Подсистема «Display» содержит блоки, обеспечивающие визуализацию
результатов численного моделирования. Основную роль играет блок «Scope»,
который можем увидеть визуальный результат моделирования, и позволяет
анализировать данные результаты.
26
2.3. Автоматическая настройка коэффициентов
управления
В данном разделе описан процесс реализации подхода, описанного в
разделе 1.2, в среде MATLAB-Simulink.
Решение задачи LQR-оптимизация в MATLAB может основываться на
применении специальной функции:
[ K , S , E ]=lqr ( A , B ,Q , R ) ,
где K
– строка с искомыми коэффициентами управления, S
– решение
матричного уравнения Риккати, используемое при построении закона
управления, E
–
вектор с корнями характеристического полинома
замкнутой системы. Для использования метода LQR-оптимального синтеза
необходимо задать матрицы Q
и R
в качестве входных аргументов
функции, а также матрицы самого LTI-объекта.
[ ]
1 0
Задаем R=
.
0 1
Для выбора элементов матрицы Q
можем использовать подход
параметрической оптимизации, в рамках которого будем изменять
настраиваемые параметры на о снове (1.7).
Составим матрицу
соответствующий вектор варьируемых параметров
Q=diag ( q1 2 ,q2 2 ,q32 ,1 ,1 , q 42 ) , h=( q1 ,q 2 , q3 , q4 ) .
Теперь необходимо организовать связь между конкретным набором
параметров, используемых при решении LQR-оптимизации, и функционал в
(1.7):
∞
[ ])
(
~
1 0 2
J ( h )=∫ q21 u2 +q 22 v2 +q 23 r 2+q24 φ2+
u dt
0 1
0
~( )
J h =α ( h ) → minh ∈ E
P
Схема компьютерной модели, предназначенной для выполнения
параметрической оптимизации, представлена на рисунке 7.
27
Рис.8. Компьютерная модель для проведения оптимизации
Здесь в блоке «Constant1» задаются варьируемые параметры матрицы
Q :
h= ( q1 , q2 , q3 , q4 ) ,
в блоке «Interpreted MATLAB Function» ставится в соответствие конкретному
набору параметров вычисленная матрица в управлении K с помощью LQR,
входом которого является блок «Constant1». В блоке «Matrix Multiply»
считается умножение матрицы K (x− x́ ) , чтобы получить управление u .
Рис.9. Блок в подсистеме «Display»
Идея с заданием динамической области, в которой должна находиться
28
некоторая динамическая переменная, при условии, что эта переменная
представляет собой сигнал, который формируется в Simulink-модели,
реализована посредством специального инструмента Simulink Design
Optimization. Функция
~( )
J h
формируется с помощью средства Simulink
Design Optimization, позволяющего задать коридор такой, чтобы кривая
функции не выходила за переделы заданной области. Коридор формируется
вручную путем перетаскивания отрезков, из которых он собирается, либо по
точкам, которые задаются в специальном поле. Вычисление точек, в которых
накладывается штраф, и вычисление итогового значения (1.7) выполняется
автоматически без участия пользователя.
В подсистеме «Display» подсоединим блок «Check Step Response
Characteristics» к линии, которая соответствует интересующему нас сигналу
-курсу, в нем нажимаем «Response Optimization». Появилось новое окно, в
котором выбираем «Design Variables Set», затем нажимаем «New» для
добавления новых параметров. Выберем из списка переменную « q »,
которую мы поставили в блок «Constant1», тем самым определив параметры,
которые будут изменяться в процессе численной оптимизации. Далее
выбираем «Plot Current Response», показывающий нам переходный процесс
по курсу.
Коридор зададим, исходя из пожелания не иметь перерегулирования по
курсу и уменьшить время регулирования
T f =inf { t m :ψ ( t ) ∈ M ( ψ 0 , ∆ ) , ∀t ≥ t m }
На рис.10, показан пример результатов оптимизационной процедуры. В окне,
в которое выводятся результаты, видно, что на плоскости есть пять черных
линий, передвигая которые мы можем сами регулировать высоту верхней и
нижней границы, разделяющие на три части. Первая часть дает задать
желаемое время для перехода кривой от начального условия к желаемой
цели. Вторая часть задает цель обеспечить стремление кривой к желаемому
значению. Третья часть фактически служит для контроля асимптотической
устойчивости. Обычно задаем верхнюю и нижнюю границу 5
желаемой
29
цель, то есть M = [ 0.95ψ 0 ,1.05 ψ 0 ] . В нашем случае ψ 0=45 ° , поставим
верхнюю и нижнюю границу M = [ 42.25 , 47.25 ] , получим график, который
показан на рис.9.
Рис.10. Результат параметрической оптимизации
После выполнения всех настроек запускаем процесс численной
оптимизации, предварительно можно выбрать алгоритм, который будет
использоваться, а также задать параметры численной минимизации. Если в
этом имеется потребность.
По сле завершения оптимизации в с р е д с т в е Simulink
Design
Optimization получили аргументы матрицы Q :
h= ( 0.0001 ,54.2597 ,−66.8651, 422.3046 )
30
2.4. Задание траектории на плоскости
В данной пункте опишем желаемую траекторию (путь), для которой в
работе представлены численные результаты. Способ задания траектории
автомобиля на плоскости:
Рис.11. Задание траектории
Пусть автомобиль двигается по кругу, соответственно, скорость ur
будет продольной скорости и радиус обозначается R , тогда угловая
скоро сть φ́ r =
ur
R
, и по закону треугольника помещения желаемого
автомобиля будет в следующем виде:
x r =R cos φr
y r = R sin φr
где φ r =∫
ur
dt .
R
Соответственно, по закону вектора следует получить перемещение
реального автомобиля:
x= xr +x e
y= yr + y e
где (x e , y e ) – отклонение между желаемым и реальным путями автомобиля.
31
Реализация задания траектории в Simulink-модели приведено на
рисунке 6. С помощью блока «Fcn» задаем перемещение x r =R cos φr
,
соответственно, б л о к «Fcn1» задаем перемещение yr = R sin φr . Считаем
сумму перемещение желаемого и отклонения автомобиля с использованием
блока «Sum». Получим результат перемещение, то есть траектории реального
автомобиля выведено в блоке «XY».
32
2.5. TS-нечеткая модель
Для того чтобы построить TS-модель с помощью нечеткой логики,
необходимо задавать функции принадлежности для всех переменных.
В качестве примера функции принадлежности (Листинг 2.) для одной
из переменных представлен на графике ниже, функции принадлежности для
остальных переменных могут быть выбраны аналогично.
Рис.12. Функция принадлежности
Для простого исследования, сначала создаем только три правила:
n
if X is X e1 , then X́=
∑ W i ( A 1 X +B 1 U )
i=1
n
Wi
∑
i=1
n
if X is X e2 , then X́=
∑ W i ( A 2 X +B 2 U )
i=1
n
Wi
∑
i=1
33
n
if X is X e3 , then X́=
∑ W i ( A 3 X+ B3 U )
i=1
n
Wi
∑
i=1
34
Соответственно, управление для исходной нелинейной модели
получается три правила:
n
if X is X e 1 , then Ú =
−∑ W i K 1 ( X e 1 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e2 , then Ú =
−∑ W i K 2 ( X e 2− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e3 , then Ú =
−∑ W i K 3 ( X e 3 −Xr)
i=1
n
Wi
∑
i=1
где Xr – наши желаемые значения переменных, задающие траекторию.
Построенная Simulink-модель проведена на Рис.3., рассмотрим
некоторые испытания.
Пусть задаем несколько начальных состояний и желаемых траекторий
для проверки нечеткого управления.
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[25−0.8 0.2 105 0.1]
¿
u
[ ¿¿ r , v r ,r r ]=[ 18.5−0.34 0.78] ,
¿
и в результате имеем графический результат:
Рис.13. Желаемая траектория
Рис.14. Реальная путь
35
Вышеприведенный результат показал, что автомобиль хорошо следует
желаемой траектории.
А если поменяем условия, то будет:
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[ 18.5−0.8 0.230−5 0.1]
¿
u
[ ¿¿ r , v r ,r r ]=[ 25−0.34 0.78 ] ,
¿
Рис.15. Желаемая траектория
Рис.16. Реальная путь
Если поставим оба отклонения перемещения [ x 0 , y0 ]=[0,0], тогда
графический результат тоже может стать идеальным:
36
Рис.17. Желаемая траектория
Рис.18. Реальная путь
Проблема возникла в недостаточности управления, так что автомобиль не
может следовать траекторию.
37
2.6. Улучшение свойств TS-регулятора
Из-за того, что регулятор, который построен для нелинейной системы,
обладал не очень хорошими свойствами, для улучшения теперь добавляем
ещё немного правил. В нашем случае, больше правил – значит больше точек.
Добавляем ещё две точки
( ue 4 , ve 4 , r e 4 ) =(32 m/ s , 0 m/s , 0 rad / s) ,
( ue 5 , v e 5 ,r e 5 ) =(42m/ s ,0 m/s , 0 rad /s) .
Тогда, наконец, у нас пять правил получается. Иллюстрирующий
п р о г р а м м н ы й к о д п р и в е д е н в п р и л о ж е н и и (Л и с т и н г 3 .):
n
if X is X e 1 , then Ú =
−∑ W i K 1 ( X e 1 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e2 , then Ú =
−∑ W i K 2 ( X e 2− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e3 , then Ú =
−∑ W i K 3 ( X e 3 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 4 ,then Ú =
−∑ W i K 4 (X e 4 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 5 , then Ú =
−∑ W i K 5( X e 5− Xr)
i=1
n
Wi
∑
i=1
Проверяем те же условия, которые в предыдущем варианте не сработали в
нелинейной
u
с и с т е м е : [ ¿¿ 0 , v0 , r 0 , x0 , y 0 , φ0 ]=[18.5−0.8 0.230−5 0.1] ,
¿
38
u
[ ¿¿ r , v r ,r r ]=[ 25−0.34 0.78 ] . Результат показан внизу:
¿
Рис.19. Желаемая траектория
Рис.20. Реальная путь
Результат улучшается, значит, наш подход увеличения количества правил
работает.
Теперь тогда рассмотрим другие условия и проверяем, например,
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[ 28−0.8 0.2 105 0.1] ,
¿
u
¿
r
,
v
,r
[¿
r
r ]=[ 20−0.34 0.78 ] :
¿
Р
ис.21. Желаемая траектория
Рис.22. Реальная путь
Пусть начальная скорость ещё немножко увеличивается, разница между
скоростями будет 10 m/ s , и посмотрим графический результат:
39
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[30−0.8 0.2 105 0.1] ,
¿
u
[ ¿¿ r , v r ,r r ]=[ 20−0.34 0.78 ] ,
¿
Рис.23. Желаемая траектория
Рис.24. Реальная путь
Рис.25. Скорость u
Рис.26. Угол курса
Если ещё увеличим отклонение между ними, используем скорости
такие же, как предыдущие, а разница перемещения побольше будет:
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[ 30−0.8 0.2 305 0.1] ,
¿
u
[ ¿¿ r , v r ,r r ]=[ 20−0.34 0.78 ] ,
¿
Результаты показаны внизу:
40
Рис.27. Желаемая траектория
Рис.28. Реальная путь
Проблема в том, что если разница между желаемым и реальным
перемещениями будет большой, тогда отслеживание не будет получаться. Для
большего улучшения свойств регулятора, проведем следующий эксперимент.
41
2.7. Эксперимент для улучшения свойств управления
У нас были три операционные точки, так что каждая переменная может
описываться в трех вариантах. Перебираем все эти значения, получая точки,
соответствующие всем возможным наборам так, что каждая переменная
принимает одно из трех значений. Тогда можем получить больше правил R i ,
то есть больше точек X i и больше матриц K i .
( ue1 , ve 1 , r e 1) =(22m/ s ,0 m / s , 0 rad / s)
( ue2 , ve 2 , r e 2 )=(32m/ s ,−3.175 m/s , 0.83rad / s)
( ue3 , v e 3 ,r e 3 ) =(42m/ s ,−8 m/ s ,1 rad / s)
Таким образом, количество правил составляет 27, которые проведены
внизу:
n
if X is X e 1 , then Ú =
−∑ W i K 1 ( X e 1 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e2 , then Ú =
−∑ W i K 2 ( X e 2− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e3 , then Ú =
−∑ W i K 3 ( X e 3 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 4 ,then Ú =
−∑ W i K 4 (X e 4 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e5 , then Ú =
−∑ W i K 5 ( X e 5 −Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 6 , then Ú=
−∑ W i K 6 (X e 6− Xr)
i=1
n
Wi
∑
i=1
42
n
if X is X e7 , then Ú=
−∑ W i K 7 (X e 7− Xr )
i=1
n
Wi
∑
i=1
n
if X is X e8 , then Ú=
−∑ W i K 8 (X e 8− Xr )
i=1
n
Wi
∑
i=1
n
if X is X e 9 , then Ú=
−∑ W i K 9 (X e 9− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 10 ,then Ú =
−∑ W i K 10 ( X e10− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 11 ,then Ú =
−∑ W i K 11 (X e 11− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 12 , then Ú=
−∑ W i K 12 (X e 12− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 13 ,then Ú =
−∑ W i K 13 ( X e13− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e14 ,then Ú =
−∑ W i K 14 (X e14 − Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 15 ,then Ú =
−∑ W i K 15 ( X e15− Xr)
i=1
n
Wi
∑
i=1
43
n
if X is X e16 ,then Ú =
−∑ W i K 16 ( X e 16− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e17 ,then Ú =
−∑ W i K 17 ( X e 17 − Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 18 ,then Ú =
−∑ W i K 18 ( X e18− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 19 ,then Ú =
−∑ W i K 19 ( X e19− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e20 ,then Ú =
−∑ W i K 20 ( X e20− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e21 ,then Ú=
−∑ W i K 21 ( X e 21− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e22 ,then Ú=
−∑ W i K 22 ( X e 22− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e23 ,then Ú =
−∑ W i K 23 ( X e23− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 24 ,then Ú =
−∑ W i K 24 (X e 24−Xr)
i=1
n
Wi
∑
i=1
44
n
if X is X e25 ,then Ú =
−∑ W i K 25 ( X e25− Xr)
i=1
n
Wi
∑
i=1
n
if X is X e26 ,then Ú =
−∑ W i K 26 ( X e 26 − Xr)
i=1
n
Wi
∑
i=1
n
if X is X e 27 ,then Ú =
−∑ W i K 27 ( X e 27 − Xr)
i=1
n
Wi
∑
i=1
Теперь будем проверять новые законы для построения нечеткого
регулятора. Поставим такие же условия, в которых не сработал предыдущий
регулятор:
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[ 30−0.8 0.2 305 0.1] ,
¿
u
[ ¿¿ r , v r ,r r ]=[ 20−0.34 0.78 ] .
¿
Даже можем составить побольше разницу перемещений для желаемого и
реального автомобилей
[ x 0 , y 0 ]=[ 205] .
Рис.29. Желаемая траектория
Рис.30. Реальная путь
Графический результат показывает, что улучшилось поведение системы
с полученным TS-регулятором.
45
Теперь покажем некоторые результаты для данного закона с 27
правилами,
u
[ ¿¿ 0 , v 0 , r 0 , x 0 , y 0 , φ0 ]=[45−0.8 0.230 20 0.1] ,
¿
u
[ ¿¿ r , v r ,r r ]=[35−0.34 0.78] .
¿
Для нового регулятора результат имеет следующий вид:
Рис.31. Желаемая траектория
Рис.32. Реальная путь
u
Для значений [ ¿¿ 0 , v0 , r 0 , x0 , y 0 , φ0 ]=[30−0.8 0.2 205 0.1]
¿
u
[ ¿¿ r , v r ,r r ]=[39−0.34 0.78] , для нового закона регулятора результат имеет
¿
следующий вид:
46
Рис.33. Желаемая траектория
Рис.35. Скорость u
Рис.34. Реальная путь
Рис.36. Скорость r
47
2.8. Проверка асимптотической устойчивости
В данном параграфе будем рассматривать вопрос асимптотической
устойчивости замкнутой TS-модели, заменяющей исходную нелинейную
систему (2), с использованием теоремы, которая проведена в параграфе [1.5]:
Напомним, что в соответствии указанной теоремой нечеткая система
асимптотически устойчива, если существует одна общая положительная
определенная матрица P, такая что
( A i −Bi K if )T P+ P ( A i− Bi K if ) <0 for i=1 ,… , n
T
G ij P+ P Gij <0 for i< j<n
где
G ij =
1
f
f
A i−Bi K j ] + [ A j−B j K i ] ) .
[
(
2
На данном этапе требуется решить систему линейных матричных
неравенств. Решение такой системы может быть найдено с помощью ППП
Robust Control Toolbox системы MATLAB. Функция
lmivar
позволяет
определить переменные в системе линейных неравенств. В нашем случае
матрица P
задается таким образом: P=lmivar (1 ,[6 1]) , она будет с
размером [ 6 × 6 ] . Функция
lmi term
позволяет создавать вонкретное
неравенство. В нашем случае, например, lmi term( [ 1 11 P ] ,G 11' , 1 ,' s ')
представляет собой неравенство G 11' P+ P G11 <0 . Программный код, где
находится такое решение, приведен в приложении (Листинг 4.).
Для первого варианта с тремя правилами нашлась такая матрица P ,
чтобы обеспечивала всю систему линейных матричных неравенств:
( A 1 −B 1 K 1f )' P+ P ( A 1−B 1 K f1) <0
( A 2 −B 2 K f2 )' P+P ( A 2− B2 K f2 ) <0
( A 3 −B 3 K f3 )' P+ P ( A 3 −B 3 K f3) <0
'
S11 =G 11 P+ P G 11 <0,
'
S12=G 12 P+ P G 12 <0,
48
'
S13=G13 P+P G13 <0,
'
S22=G 22 P+ P G22 <0,
'
S23=G 23 P +P G 23 <0,
'
S33=G33 P+P G33 <0,
Так что, получается, вся TS-модель система асимптотически устойчива
при нечетком регуляторе с тремя правилам.
Теперь проверяем асимптотическую устойчивость TS-модели с пятью
правилами. При помощи метода LMI функций в MATLAB также находится
одна общая положительная определенная матрица P, такая что:
( A 1 −B 1 K 1f )' P+ P ( A 1−B 1 K f1) <0
( A 2 −B 2 K f2 )' P +P ( A 2− B2 K f2 ) <0
( A 3 −B 3 K f3 )' P + P ( A 3 −B 3 K f3) <0
( A 4 −B 4 K 4f )' P + P ( A 4 −B 4 K f4 ) <0
( A 5 −B 5 K f5 )' P + P ( A 5 −B 5 K f5) <0
'
S11 =G 11 P+ PG 11 <0,
'
S12=G 12 P+ PG 12 <0,
'
S13=G13 P+P G13 <0,
'
S14 =G 14 P+ PG14 <0,
'
S15=G15 P+P G15 <0,
'
S22=G 22 P+ P G22 <0,
'
S23=G 23 P +P G 23 <0,
'
S24 =G 24 P+ P G 24 <0,
'
S25=G 25 P +P G 25 <0,
49
'
S33=G33 P+P G33 <0,
'
S34 =G 34 P+ PG34 <0,
'
S35=G35 P+P G35 <0,
'
S44 =G 44 P +P G 44 <0,
'
S45 =G 45 P+ P G 45 <0,
'
S55=G55 P+P G55 <0,
С помощью подхода LMI находится решение системы линейных
матричных неравенств, и матрица P описается в следующем виде:
(
p11 , p12 , p13 , p14 , p15 , p16
p21 , p22 , p23 , p24 , p24 , p26
P= p31 , p32 , p33 , p34 , p35 , p36
p41 , p42 , p 43 , p 44 , p45 , p 46
p51 , p52 , p53 , p54 , p55 , p56
p61 , p62 , p63 , p64 , p65 , p66
)
где,
−13
p11 =5.6341× 10
, p12=9.0144 ×10−13 , p13 =2.7794 ×10−12 ,
−12
p14 =−3.4491 ×10
−13
, p15 =−3.4989 ×10−13 , p16 =5.0191×10−11 ,
, p22=4 .7439 ×10−11 , p23 =−3.7921× 10−12 ,
p21=9.0144 ×10
−11
p24 =−4.2549 ×10
, p25 =−2.0966 ×10−10 , p26 =1.9895× 10−9 ,
−12
, p32=−3.7921× 10−12 , p33 =1.2607× 10−10 ,
−12
, p35 =2.6506× 10−11 , p36 =1.2742×10−10 ,
p31=2.7794 ×10
p34 =2.3734 ×10
−12
p 41=−3.4491 ×10
−10
, p 45=2.0398 ×10−10 , p 46=−2.3692×10−9 ,
p 44=1.8134 × 10
−13
p51=−3.4989 × 10
, p 42=−4.2549× 10−11 , p 43=2.3734 ×10−12 ,
, p52=−2.0966 ×10−10 , p53 =2.6506× 10−11 ,
−10
, p55 =1.8103× 10−9 , p56 =−9.3473×10−9 ,
−11
, p62=1.9895×10−9 , p63 =1.2742×10−10 ,
p54 =2.0398 ×10
p61=5.0191×10
50
−9
p64 =−2.3692×10
, p65 =−9.3473×10−9 , p66 =9.8047 ×10−8 .
Эта же матрица P соответствует решению и для исходных трех правил.
Соответственно, можем считать, что найдется матрица P, которая должна
будет обеспечить асимптотически устойчивость TS-модели с 27 правилами.
51
Вывод
В данной работе рассмотрена задача управления движением
автомобиля на желаемой траектории, для решения использована идея синтеза
нечеткого регулятора на основе нечеткой TS-модели в соответствии с (1), (2).
Такая идея может быть достаточно успешно реализована, при этом для
синтеза локальных управлений может применяться LQR-подход, который
позволит изменять параметры и влиять на результаты управления.
Соответственно, простой вариант регулятора был построен и найдены
недостатки. Далее из простого варианта сложились правила, так что удалось
улучшить результат на траектории. Так же на эксперименте тоже получилось
улучшить результаты для базы правил, без формальной проверки глобальной
асимптотической устойчивости.
Таким образом, указанный подход в отдельных ситуациях может быть
успешно применен, однако улучшение поведения объекта за счет увеличения
количества используемых локальных подсистем влечет существенное
увеличение объема вычислительной работы. Гарантия применимости
рассматриваемого регулятора к любым допустимым условиям, также
отсутствует.
52
Заключение
1.
Рассмотрены вопросы моделирования и управления движением
автомобиля на заданной траектории (пути).
2.
Сформирован моделирующий комплекс для проведения
компьютерного и имитационного моделирования в среде MATLAB-Simulink в
задаче управления движением автомобиля на заданном пути.
3.
Организован процесс выполнения имитационного моделирования
для автоматической настройки коэффициентов в законе управления с учетом
заданных ограничений и требований к качеству динамических процессов с
использованием специального инструмента Simulink Design Optimization.
4.
В среде MATLAB реализован подход и проведены вычисления для
построения нечеткого управления с использованием ППП Robust Toolbox.
5.
Проведен анализ результатов на траектории с различными
наборами правил, в том числе состоящим из трех и пяти правил, а также
проведен эксперимент с 27 правилами.
53
Список литературы
1. Веремей Е.И. Линейные системы с обратной связью. СПб.:
Издательство «Лань», 2013. 448 с.
2. Bentalba S, El Hajjaji A, Rachid A. Fuzzy parking and point stabilization:
application car dynamics model[C]//5th IEEE Mediterranean Conference on
Control and Systems. 1997.
3. El Hajjaji A, Bentalba S. Fuzzy path tracking control for automatic steering
of vehicles[J]. Robotics and Autonomous Systems, 2003, 43(4): 203-213.
4. Гуо КонХуэй. Динамика управления автомобилем.
Издательство
«Научные технологии Цзилинь»: 1991. 700 с. На кит.яз.
5. Ван ЧжэнЛин. Процесс управления и использования Simulink.
Издательство «Электронная промышленность»: 2006. 278 с. На кит.яз.
6. Liu Bao, Tang WanSheng. Современная теория управления.
Издательство «Машиностроение»: 1983. 166 с. На кит.яз.
7. Qing Hua. Matlab и система нечеткого управления. На кит.яз.
8. T-S нечеткая модель.
http://wenku.baidu.com/link?
url=AxjATkZdZg4NOER0_7dWz18OdacwtEWFcr5kZgmrBexxmJzS9M5D_fqlB
sFIpBNllqx9pKrIWB3biIto_4zOHngyUrkSySeEpAA0-b9wljO
9. Задание LMI-системы с использованием lmiedit.
http://wenku.baidu.com/link?
url=AxjATkZdZg4NOER0_7dWz18OdacwtEWFcr5kZgmrBexxmJzS9M5D_fqlB
sFIpBNllqx9pKrIWB3biIto_4zOHngyUrkSySeEpAA0-b9wljO
10. Решение линейных мат ричных неравенств в среде Matlab.
http://wenku.baidu.com/link?
url=r1QMgyWl4c79ib4ce3Xj_rJ1up10SBAG8dhULntphvVz5lVK8_ed_CB
QtPYqJQl3b4hpEZOSBS4NHeJmRzM8WueWsGJNiekW054J5_kVOJa
11. Kratmüller M. The Adaptive Control of Nonlinear Systems Using the TSK
Fuzzy Logic[J]. Acta Polytechnica Hungarica, 2009, 6(2): 5-16.
54
12.Kashyapa Narenathreyas, Fuzzy Logic Control for Aircraft Longitudinal
Motion.
13.Chadli M, Maquin D, Ragot J. Observer-based controller for Takagi-Sugeno
models[C]//Systems, Man and Cybernetics, 2002 IEEE International
Conference on. IEEE, 2002, 5: 6 pp. vol. 5.
14.Abdelkrim A, Ghorbel C, Benrejeb M, et al. Lmi-based tracking control for
takagi-sugeno fuzzy model[J]. International Journal of Control &
Automation, 2010, 3(2).
15.Xingquan G, Shuang G. LMI-based H2 Control for TS Fuzzy System with
Hard Constraints[J]. International Journal of Control and Automation, 2015,
8(3): 21-30.
55
Приложение
Листинг 1.
function Xn = nonlinearcar(U)
u = U(1);
v = U(2);
r = U(3);
xe = U(4);
ye = U(5);
phie = U(6);
T = U(7);
delta = U(8);
ur = U(9);
vr = U(10);
dphir = U(11);
a = 1.05;
b = 1.63;
h = 0.53;
M = 1480;
f = 0.02;
Iz = 2350;
g = 8.81;
Cf = 135000;
Cr = 95000;
k1 = 0.005;
k2 = 0.41;
du = v*r-f*g+u^2*(f*k1-k2)/M+Cf*delta*(v/u+a*r/u)/M+T/M;
dv = -u*r-(Cf+Cr)*v/(M*u)+(b*Cr-a*Cf)*r/(M*u)+Cf*delta/M+T*delta/M;
dr = -f*M*h*u*r/Iz+(b*Cr-a*Cf)*v/(Iz*u)-(b^2*Cr+a^2*Cf)*r/(Iz*u)
+a*Cf*delta/Iz+a*T*delta/Iz;
dphi = r;
dxe = ur*cos(phie)+vr*sin(phie)-u+ye*dphi;
dye = -ur*sin(phie)+vr*cos(phie)-v-xe*dphi;
dphie = dphi - dphir;
Xn = [du;dv;dr;dxe;dye;dphie];
end
Листинг 2.
function mff = mff11( x )
% by uei
% mf11
if x >= 10 && x <= 22
mff(1) = ((x - 10)/(22 - 10))*(1 - 0);
elseif x >= 22 && x <= 32
mff(1) = ((x - 22)/(30 - 22))*(0 - 1) + 1;
elseif x < 10
mff(1) = 1;
else mff(1) = 0;
end
56
% mf12
if x >= 22 && x <= 32
mff(2) = ((x - 22)/(32
elseif x >= 32 && x <= 42
mff(2) = ((x - 32)/(42
else mff(2) = 0;
end
% mf13
if x >= 32 && x <= 42
mff(3) = ((x - 32)/(42
elseif x >= 42 && x <= 50
mff(3) = ((x - 42)/(50
else mff(3) = 0;
end
end
- 22))*(1 - 0);
- 32))*(0 - 1) + 1;
- 32))*(1 - 0);
- 42))*(50 - 42) + 1;
function mff = mff21( x )
% by vei
% mf21
if x <= 0 && x >= -3.2
% y = k*x + b
mff(1) = 1/3.2*x + 1;
elseif x > 0
mff(1) = 1;
else mff(1) = 0;
end
% mf22
if x <= 0 && x >= -3.2
mff(2) = -1/3.2*x;
elseif x >= -8 && x <= -3.2
% y = ((x - x0) / (x1 - x0)) * (y1 - y0)
mff(2) = ((x + 3.2)/(-8 + 3.2))*(0 else mff(2) = 0;
end
% mf23
if x >= -8 && x <= -3.2
mff(3) = ((x + 3.2)/(-8 + 3.2))*(1 elseif x >= -10 && x <= -8
mff(3) = ((x + 8)/(-10 + 8))*(0 - 1)
else mff(3) = 0;
end
end
+ y0
1) + 1;
0);
+ 1;
function mff = mff31( x )
% by rei
% mf31
if x >= 0 && x <= 0.8
mff(1) = -1/0.8*x + 1;
elseif x < 0
mff(1) = 1;
else mff(1) = 0;
end
% mf32
if x >= 0 && x <= 0.8
mff(2) = 1/0.8*x;
elseif x >= 0.8 && x <= 1
57
mff(2) = ((x - 0.8)/(1 - 0.8))*(0 - 1) + 1;
else mff(2) = 0;
end
% mf33
if x >= 0.8 && x <= 1
mff(3) = ((x - 0.8)/(1 - 0.8))*(1 - 0);
% elseif x >= 1 && x <= 1.2
%
mff(3) = ((x - 1)/(1.2 - 1))*(0 - 1) + 1;
elseif x > 1
mff(3) = 1;
else mff(3) = 0;
end
end
Листинг 3.
function [Y, W] = r5Rule_Model( inp
x = inp(1:6);
xr = inp(7:12);
, w )
Y = 0; W = 0;
K1 = [2.8466*10^4, -9.5333*10^3, 5.9163*10^4, -2.4935*10^5,
3.2292*10^5, 1.0677*10^5;
-3.0888*10^-3, 0.13649, 0.087483, -0.087662, -0.88671, 6.8637];
K2 = [3.6311*10^4, 3.0077*10^4, 5.8368*10^5, -3.1659*10^5,
2.9973*10^2, 3.2963*10^6 ;
-1.9610*10^-2, 1.3031*10^-1, -2.0189*10^-1, 4.4963*10^-2,
-8.6899*10^-1, 5.3208];
K3 = [3.1642*10^4, -2.2318*10^5, 2.4846*10^5, -1.9236*10^5,
1.5170*10^6, -8.6682*10^6;
-1.3971*10^-2, 2.8546*10^-1, -1.5647*10^-2, -1.6701*10^-1,
-1.8193, 1.2974*10];
K4 = [3.6311*10^4, -9.5333*10^3, 5.9163*10^4, -2.4935*10^5,
3.2292*10^5, 1.0677*10^5;
-1.9610*10^-2, 0.13649, 0.087483, -0.087662, -0.88671, 6.8637];
K5 = [3.1642*10^4, -9.5333*10^3, 5.9163*10^4, -2.4935*10^5,
3.2292*10^5, 1.0677*10^5;
-1.3971*10^-2, 0.13649, 0.087483, -0.087662, -0.88671, 6.8637];
%
y
Y
W
Rule 1
= K1 * (x - xr) * w(1) * w(4) * w(7);
= Y + y;
= W + w(1) * w(4) * w(7);
%
y
Y
W
Rule 2
= K2 * (x - xr) * w(2) * w(5) * w(8);
= Y + y;
= W + w(2) * w(5) * w(8);
%
y
Y
W
Rule 3
= K3 * (x - xr) * w(3) * w(6) * w(9);
= Y + y;
= W + w(3) * w(6) * w(9);
58
%
y
Y
W
Rule 4
= K4 * (x - xr) * w(2) * w(4) * w(7);
= Y + y;
= W + w(2) * w(4) * w(7);
%
y
Y
W
Rule 5
= K5 * (x - xr) * w(3) * w(4) * w(7);
= Y + y;
= W + w(3) * w(4) * w(7);
end
function [ u_ts ] = r5Ts_Control(x)
global w;
%count weight
w=zeros(1,9);
w(1:3)=mff11(x(1));
w(4:6)=mff21(x(2));
w(7:9)=mff31(x(3));
[Y, W] = r5Rule_Model(x,w);
if W == 0
u_ts = [0;0];
else u_ts = - Y./W;
end
end
Листинг 4.
%seting LMI
setlmis([]);
P=lmivar(1,[6 1]);
% N
lmiterm([1 1 1 P],N1',1,'s');
% LMI #1: N1'*P+P*N1
lmiterm([2 1 1 P],N2',1,'s');
% LMI #2: N2'*P+P*N2
lmiterm([3 1 1 P],N3',1,'s');
% LMI #3: N3'*P+P*N3
lmiterm([4 1 1 P],N4',1,'s');
% LMI #4: N4'*P+P*N4
lmiterm([5 1 1 P],N5',1,'s');
% LMI #5: N5'*P+P*N5
% G
lmiterm([6 1 1 P],G11',1,'s');
G11'*P+P*G11
lmiterm([7 1 1 P],G12',1,'s');
G12'*P+P*G12
% LMI #6:
% LMI #7:
59
lmiterm([8 1 1 P],G13',1,'s');
G13'*P+P*G13
% LMI #8:
lmiterm([8 1 1 P],G14',1,'s');
G14'*P+P*G14
% LMI #8:
lmiterm([9 1 1 P],G15',1,'s');
G15'*P+P*G15
% LMI #9:
lmiterm([10 1 1 P],G22',1,'s');
G22'*P+P*G22
% LMI #10:
lmiterm([11 1 1 P],G23',1,'s');
G23'*P+P*G23
% LMI #11:
lmiterm([12 1 1 P],G24',1,'s');
G24'*P+P*G24
% LMI #12:
lmiterm([13 1 1 P],G25',1,'s');
G25'*P+P*G25
% LMI #13:
lmiterm([14 1 1 P],G33',1,'s');
G33'*P+P*G33
% LMI #14:
lmiterm([15 1 1 P],G34',1,'s');
G34'*P+P*G34
% LMI #15:
lmiterm([16 1 1 P],G35',1,'s');
G35'*P+P*G35
% LMI #16:
lmiterm([17 1 1 P],G44',1,'s');
G44'*P+P*G44
% LMI #17:
lmiterm([18 1 1 P],G45',1,'s');
G45'*P+P*G45
% LMI #18:
lmiterm([19 1 1 P],G55',1,'s');
G55'*P+P*G55
% LMI #19:
lmiterm([-20 1 1 P],1,1);
% LMI #20: P > 0
lmisys=getlmis;
[tmin,xfeas]=feasp(lmisys); % решить lmi
P=dec2mat(lmisys,xfeas,P); % count P
eig(P),
60
Отзывы:
Авторизуйтесь, чтобы оставить отзыв