ОДИН АЛГОРИТМ ПОСТРОЕНИЯ МНОЖЕСТВА УПРАВЛЯЕМОСТИ ПРИ НАЛИЧИИ ФАЗОВЫХ ОГРАНИЧЕНИЙ *
А.Р. Матвийчук
Приводится один из алгоритмов построения множества управляемости для нелинейной системы при наличии фазовых ограничений. Действия алгоритма базируются на операциях с многоугольниками.
Ключевые слова: управление, многоугольники, препятствия.
1. Введение
В работе рассматривается метод численного решения задачи о построении множества управляемости на некоторый момент времени на плоскости для подвижного объекта, имеющего вид произвольного многоугольника. Предполагается, что многоугольник осуществляет плоско-параллельное (поступательное) движение. На плоскости имеются фазовые ограничения (препятствия), которые также представляют собой произвольные многоугольники, а вектограмма скоростей подвижного многоугольника есть любое компактное множество, содержащее начало координат. Требуется построить множество точек на плоскости, рассматриваемых как начальные положения, из которых можно провести подвижный многоугольник в некоторую область (целевое множество) за заданное время так, чтобы при этом подвижный многоугольник не пересекался с внутренностями фазовых ограничений. Потребность в решении подобного рода задач возникает при решении задач навигации в средах с препятствиями (см. [1]).
Предложенный в статье алгоритм построения множества управляемости основывается на методе динамического программирования (см. [2] и [3]). Представленная работа является дальнейшим развитием [6]. Также при решении задачи была использована идея из [4] о переходе к задаче о движении точки. Кроме того, для построения множеств управляемости были использованы некоторые элементы конструкции из [5] и [8].
* Работа выполнена при поддержке грантов РФФИ (грант № 02-01-00769) и Научных школ (гранты № НШ-791.2003.1 и 02-01-96424).
2. Постановка задачи
Прежде чем перейдем к постановке задачи, определимся с тем, что мы будем понимать под многоугольником в рамках данной задачи. Многоугольником на плоскости будем называть связное множество на плоскости, граница которого состоит из конечного числа отрезков и является набором замкнутых ломаных линий (рис. 1). Тогда дополнение до многоугольни-
Рис. 1
ка будет состоять из нескольких связных множеств, которые назовем компонентами дополнения. Односвязные компоненты дополнения, являющиеся ограниченными множествами, назовем “дырами” многоугольника, а объединение ломаных линий, являющихся их границами, - внутренней границей многоугольника. При этом условимся, что нумерация вершин в таких ломаных осуществляется по часовой стрелке. Другими словами, при движении от вершины с меньшим номером к вершине с большим номером препятствие остается справа (кроме последней и первой вершин). Такую ориентацию будем считать отрицательной ориентацией. Если среди компонентов дополнения есть неограниченное множество, то границу такого множества назовем внешней границей многоугольника. , что вершины внешней границы многоугольника пронумерованы против часовой стрелки (при обходе многоугольник остается слева). Такую ориентацию назовем положительной ориентацией. В дальнейшем “дырой” будем называть не только ограниченные односвязные компоненты дополнения до некоторого многоугольника,
но и односвязные замкнутые области на плоскости, границы которых являются замкнутыми ломаными с отрицательной ориентацей.
Пусть на плоскости Е2 задана “дыра” А (назовем ареной), а внутри нее заданы произвольно расположенные многоугольники препятствия Ф*, г = 1, где V* = 1 %гЛФ{ ф 0. Множество Д2\А также бу-
дем считать препятствием. Кроме того, внутри арены имеется некоторый подвижный многоугольник Ф*, который можно перемещать в плоскости путем параллельного переноса. Произвольно выбранную точку О, лежащую внутри этого многоугольника и жестко связанную с ним, условимся называть “центром” многоугольника Ф*.
Положение точки О на плоскости Д2 переменных х±,х2 характеризуется парой координат х\ и х2 этой точки и представляется как точка
х = I ) € R ■ Так как подвижный многоугольник можно перемещать \х2 )
только путем параллельного переноса, то точка х полностью определяет положение многоугольника Ф* на плоскости i?2. Тогда и движение точки х полностью определяет движение многоугольника Ф*.
Полагаем, что движение точки х задается нелинейным по х дифференциальным уравнением
х = f(t,x) + B(t,x) • и, (1)
где х = ( Xl ) € R2, t — время из промежутка [£о;$] (0 < to < $ < сю),
\ Х2 )
и — управление такое, что «£[/,[/ — компакт в i?2. Полагаем также,
( f\(t Ж) \
что вектор-функция f(t,x) = ( ’ ) и матрица-функция B(t,x) =
\ J2\t') %) )
bn(t,x) bi2(t,x) b2l(t,x) b22(t,x)
удовлетворяют условиям:
А. f(t,x) и В(Ь,х) непрерывны по совокупности х, и для любой ограниченной замкнутой области I) € [£(ь$] х -К2 найдется такое число Ь = Ь(Б) € (0, сю), что
||/(£, ж*) — / (£, ж*)|| < Ь ■ ||ж* — ж* ||
||В(1, х*) — В (1,х*) || < Ь • Ц®* — ж* ||
для любых (t,x*), (t,x*) из D.
В. Существует такое число 7 Є (0, оо), что
Ж ж) II < 7- (1 + 11*11)
В(і, ж)|| < 7 • (1 + \\х\\)
для любого (і,х) Є ії2, і Є [£(ь$]-
Здесь символ ІІ/Ц означает евклидову норму вектора / 1/2
, а
ІЗ
Условия А и В обеспечивают при любом начальном условии ж(£о) = хо и любом измеримом управлении и(1) € 17 существование движения х{Ь), ^ € [£(Ь$]) понимаемого как абсолютно-непрерывная функция х{Ь), удовлетворяющая уравнению
почти всюду на [£о,Щ-
Будем считать, что компакт 17 представляет собой многоугольник с ки вершинами. Поскольку многоугольник 17 однозначно определяется упорядоченным множеством своих вершин % = 1,... , ки, то и вектограмма скоростей /(£, х) + .В(£, х) ■ 17 = {/(£, х) + .В(£, х) • и : и € 11} системы (1) в точке (£, х) будет полностью определяться упорядоченным множеством векторов /(£, х) + В(1, х) ■ Щ, г = 1,... , ки, где каждой вершине Щ многоугольника 1/ соответствует вектор начало которого находится в начале координат, а конец в точке и%.
Сформулируем основную задачу, которая рассматривается в этой работе.
Задача. Построить множество точек ж(£о) = ^о, рассматриваемых как начальные точки для системы (1), из которых возможно провести подвижный многоугольник Ф* своим “центром” О за время Т = § — £о в некоторое целевое множество Л/. заданное в виде многоугольника.
Здесь возможность провести означает существование такого программного управления и{Ь), I € [^а,Щ (измеримая по Лебегу вектор-функция и(1) € 11 на [*о,0]), которое порождает движение х{Ь) системы (1), удовлетворяющее условиям ж(£о) = х0 И ж($) € М, при этом многоугольник Ф*, жестко связанный с х{Ь), не должен пересекаться с внутренностями препятствий.
х = /(і, х(і)) + В (і, х(і)) ■ и(і)
3. Переход к задаче о движении “центра” О
Перейдем от исходной задачи к задаче о движении точки — “центра”
О подвижного многоугольника Ф*, поскольку с точкой гораздо проще ра-
'( р \
ботать. Для этого выделим из множества А\ I У Ф, ) множество точек, где
может находиться “центр” О подвижного многоугольника Ф*, так, чтобы при этом подвижный многоугольник не пересекался ни с множеством и2\А, ни с внутренностями многоугольников-препятствий {Ф^, % = 1,... ,р}.
С этой целью строятся “запретные зоны” для всех Ф{ и для арены А. “Запретная зона” для Ф{ — это множество точек Ф'г, соответствующее таким положениям “центра” О, из которых подвижный многоугольник Ф* пересе-
(т \
У А^ 1 для арены А — это 3=1 )
множество точек, которое соответствует таким положениям “центра” О, из которого подвижный многоугольник Ф* пересекается с препятствием Д2\Л “Запретные зоны” 7, = 1,... ,р} получаются путем обвода подвижным многоугольником Ф* каждого из Ф{ с внешней стороны, а “запретная зона” для арены — путем обвода многоугольником Ф* арены изнутри. Траектория, которую будет описывать при таком обводе “центр” О, окажется границей соответствующей “запретной зоны”, причем эта граница будет являться замкнутой ломаной, а все “запретные зоны” — многоугольниками. Один из численных методов построения “запретных зон” описан в работе [6].
В итоге может оказаться, что для арены “запретной зоной” будет часть плоскости Д2 со множеством “дыр” А^, j = 1,... ,т, где т > 1, а в “запретных зонах” Ф'г, г = 1,2,... ,р могут получиться “дыры”.
На следующем этапе перехода от задачи движения многоугольника Ф* к задаче движения “центра” О происходит объединение пересекающихся между собой “запретных зон” ^ и, затем, объединение пересекающихся с “запретной зоной” арены “запретных зон” препятствий. На этом шаге часть “запретных зон” препятствий может “влиться” в “запретную зону” арены, отчего возможно произойдет дробление “дыр” в “запретной зоне” арены и их количество изменится. В результате получим множество “запретных зон” препятствий Ф'г, % = 1,2,... , д и множество “дыр” А{, % = 1,2,... ,д в “запретной зоне” арены.
Поскольку полагаем, что подвижный многоугольник за заданное время Т должен попасть в целевое множество своим центром (то есть ж(#) € М), то нет необходимости в обводе многоугольника М подвижным объектом.
На последнем этапе алгоритма перехода к задаче движения “центра” О нужно осуществить теоретико-множественное вычитание из целевого множества М всех “запретных зон” препятствий, включая “запретную зону” арены, т.е.
В формуле (2) множества М и представляют собой многоугольники, а — “дыры”. В работе [5] подробно описывается численный алгоритм пересечения и объединения многоугольников, который позволяет реализовать данную формулу.
В результате может оказаться, что М° — не связное множество, а множество, состоящее из нескольких непересекающихся многоугольников,
внутри которых могут находиться “дыры”. То есть М° = У М?, где каждое
множество М? — многоугольник.
Если в результате оказалось, что М° = 0 , то нет такой точки в А/. поместив в которую “центр” О не произошло бы пересечения многоугольника Ф* с внутренностью какого-либо препятствия. В этом случае задача не имеет решения. Во всех остальных случаях начинаем построение множеств управляемости.
4. Построение множеств управляемости
В предыдущем пункте было указано, как свести исходную задачу к задаче построения множества всех точек ж(£о) = хо, из которых возможно приведение в целевое множество М за время Т системы (1). Это множество управляемости Х(1о) определяется равенством Х(1о) = {х(1о): 3 управление и(1) €?/,£€ [£(ь$]) порождающее движение системы (1) х(1), I € [£(ь$])
удовлетворяющее включениям х{Ь) € при I €
Однако в общем случае для нелинейной системы (1) точное построение множества Х{Ьо) не представляется возможным. Поэтому будем строить это множество приближенно, подменяя непрерывное время I € [ка,Щ дискретным разбиением Т = - = $}) где 4+1 = ^
г = 0,1,... , N — 1, А = и используя идеи метода динамического
(2)
3=1
х{д) € М0}.
программирования (см. [3] и [7]). А именно, при приближенном построении множества Х(£о) будем пятиться во времени от целевого множества М°, отвечающего конечному моменту $ = 1]\г (то есть М° = Х($)).
Попятная процедура состоит из N шагов, отвечающих N временным примежуткам разбиения Т, при этом последний временной промежуток дг__1, ^дг] оказывается первым в этой процедуре. На каждом из этих про-
межутков [^,^+1] подменяем уравнение (1) равенством
х(и+г) = х{и) + А • (/(^, х(и)) + В (и, х(и)) - и), ае II.
Введенное выше условие А позволяет от этого равенства перейти с некоторой погрешностью к равенству
х(и+\) = х(и) + А • (/(^+1, х{и+1)) + В(и+1, х{и+1)) ■ и),
то есть к равенству
х(и) = х{и+г) - А • (/(^+ь х{и+1)) + В(и+ь х{и+1)) ■ и). (3)
Последнее равенство отвечает течению времени в обратном направлеНИИ.
В начальный момент времени располагаем множеством М° (то есть множеством Х{Ьм)). На первом шаге найдем множество точек Х(^-г)) из которого возможно провести многоугольник Ф* в множество Х(^) за время А. Соответственно на г-м шаге ищем множество точек Х(^-г)) 113 которого возможно провести многоугольник во множество Х(^-г-ы) за время А. Таким образом, на шаге N будет построено искомое множество Х{Ьо). Для удобства обозначим множества Х(^-г)) ••• Д(^о) как М1, А/-.
... ,Мм соответственно.
В работе [6] рассматривалась подобная задача, но для простой системы вида х = и. Для решения этой задачи на (г + 1)-м шаге смещали ки раз
каждый многоугольник Мг- множества АГ (где АГ = У МЯ в направлении
3=1
каждого из векторов II* = ,э = 1,... , ки, в результате чего получали
множества многоугольников {М? 3, 5 = 1,... ,ки}. Затем каждый М? 5 обводили вектором [/“ = ^А • (£/3-1-1 — II8). В результате получали многоугольник М?*. Повторив перечисленные операции со всеми многоугольниками М|5, получали множество многоугольников 5 = 1,... ,ки}. На сле-
дующем шаге объединяли все многоугольники М?* и получали некоторый
ТО;
многоугольник М”. На последнем шаге вычитали из У М” все “запрет-
•7=1
ные зоны” и в итоге получали множество точек Мг+1, из которого можно привести многоугольник Ф* за время А в множество М\ Такой алгоритм подходил для случая, когда система была линейной. В нашем случае система нелинейная и, в зависимости от координаты, управление будет разным, а значит, нельзя смещать многоугольник целиком на каждый из векторов
Щ = -А-и3.
Рассмотрим процедуру построения Мг+1 из М' с учетом нелинейности
уравнения (1). Поскольку М' = У М|, где Мг- — это многоугольник, то для
1 ^ ^
3=1
каждого М| построим множество точек М?г, из которого можно попасть в М| за время А, используя уравнение (1).
Чтобы учесть зависимость управления от координаты, предлагается для каждой вершины многоугольника М| найти множество точек {Щ, 5 = 1,... , ки} таких, что — это точка, из которой можно попасть в вершину за дискрет времени А под действием вектора управления 173. Учитывая уравнение (3), будем вычислять по формуле
= я* - а • /(**, гк) - а • в(1ь гк) ■ й3. (4)
В результате для каждой вершины многоугольника М| вычислим множество точек 5 = 1,... , ки}.
ки
Если сформировать М” таким образом, что М” = У М^г3, где каж-
в=1
дый М?* — это множество, из которого можно привести многоугольник Ф* в М1-, используя только один вектор управления 173, то множество мр будет множеством, из которого можно привести подвижный объект Ф* в М| за время А, используя только конечное множество векторов управления {1/3, з = 1,... ,ки}. Поскольку каждая пара соседних вершин [13 и 1/3+1 компакта 11 задает не только векторы 173 и из^\, но и множество векторов скорости из>3+1 таких, как 1/3>3+1 = Х-из + (1 — Х)-из+1, где Л € [0; 1], то будем строить М?*, рассматривая одновременно два соседних вектора управления из и из+1. Для этого станем последовательно перебирать ребра [Х/.; . | ]
многоугольника М| и вычислять координаты точек ^+1 и
по формуле (4). Затем из полученной четверки точек по приведенному ниже критерию выберем пару, которая и сформирует очередное ребро многоугольника . Это ПОЗВОЛИТ учесть все векторы 5 = 1,,ки},
где ки + 1 = 1. Обойдя таким образом последовательно все ребра многоугольника М|, сформируем ребра искомого М?*.
Заранее оговоримся, что под полуплоскостью Ггк,гк+1 будем понимать ту замкнутую полуплоскость, которая расположена слева от прямой, проходящей через направленный отрезок . | ].
Рассмотрим к-й шаг алгоритма построения многоугольника М?*. На нем осуществляются следующие действия.
1. По формуле (4) вычисляются координаты точек ^+1 и
2. Рассматриваются 4 возможных случая:
(a) Если € Г28+1 и € Г25+1 , то в список вершин
границы многоугольника заносятся вершины ^+1 и
(см. рис. 2а).
(b) Если € Г28+1 25+1 и € Г^н-х^+х, то в список вершин
границы многоугольника заносятся вершины ^+1 и
(см. рис. 26).
(c) Если -2^+1 € Г25 25+1 и € Г25 2«+1, то в список вершин границы многоугольника М?* заносятся вершины и (см. рис.
2в).
(ё) Если ^+1 € Гг|,2|+1 и € Гг|,2|+1, то в список вершин границы многоугольника М?* заносятся вершины и (см. рис.
2г).
На рис. 3 изображен возможный результат работы алгоритма для нескольких ребер многоугольника Мг- и пары векторов управления 17$ и
и*+1-
После того, как будут перебраны все ребра многоугольника М|, получится замкнутая ломаная, возможно, имеющая точки самопересечения. Удаляя из такой ломаной соседние вершины с одинаковыми координатами и используя процедуру выделения многоугольника из замкнутой ломаной с самопересечениями, строится многоугольник М?*, у которого, возможно, будут “дыры”. На следующем шаге объединяются все многоугольники М?* и получается некоторый многоугольник мр.
Следует отметить, что поскольку система описывается нелинейным уравнением, то в общем случае ребро [У-!/. многоугольника М1- не обязательно перейдет под действием управления 173 в отрезок [Х/у. (]. В
Рис. 2
Рис. 3
идеальном случае это может быть некоторая кривая (см. рис. 4а). Если ребро [^; Z).+l] достаточно протяженное, то в результате получится до-
вольно большая погрешность. Чтобы уменьшить ее, предлагается перед построением М*г раздробить каждое ребро [^;^+і] многоугольника па несколько ребер так, чтобы длина каждого из новых ребер не превышала определенной, достаточно малой величины (см. рис. 46). В результате за счет увеличения количества вершин в (а следовательно, и времени вычислений) повысится точность, с которой строится множество М*г.
а) 6)
Рис. 4
С “дырами” многоугольника М'!■ производятся те же операции, что и с внешней границей многоугольника за тем исключением, что вместо объединения применяется операция их пересечения друг с другом. После этого измененные “дыры” заносятся в многоугольник М*г.
т.;
На последнем шаге из и М*г вычитаются все “запретные зоны”, то
3 = 1
есть
м‘+1 = (иМГ\ (и11 \ ('■' (и 111 • (5)
В формуле (5) все множества, входящие в нее, являются многоугольниками. Используя алгоритмы из [5], можно численно реализовать эту формулу.
Если оказалось, что М1+1 = 0 и (г + 1) < Ж, то при данных условиях задача не имеет решения. Иначе, повторяем описанную выше итерацию до тех пор, пока (г + 1) < N и М1+1 ф 0.
5. Пример работы алгоритма
В качестве примера посчитана система, описываемая уравнением (1),
х-2 2 • яіп(хі)
х\ 2 • соя(х2)
Компакт II представляет собой правильный 16-уголышк, вписанный в окружность единичного радиуса. Кроме того, Т=1,5, а А = 0,1. Ограничивающая область представлена в виде прямоугольника, целевое множество М в виде квадрата. Имеются два фазовых ограничения (рис. 5). На рис. 6 изображены “запретные зоны” и вид множеств управляемости па каждом шаге алгоритма.
5 • СОя(х 1 + Х-2) 5 • яіп(хі + х-г)
В{і1 х)
Рис. 5
Рис. 6
6. Заключение
В представленной статье описан метод численного построения множества управляемости па некоторый момент времени. Преимущества представленного метода по сравнению с тем, что был предложен в статье [6], заключается в том, что он применим к системе, описываемой нелинейным уравнением (1), а это более общий случай.
Предложенный алгоритм отличается от сеточного метода, приводимого в статье [7], тем, что все множества в нем представлены в виде многоугольников и все операции над множествами, в итоге, сводятся к операциям па многоугольниках. Это позволяет использовать меньшие объемы памяти для его реализации, так как о каждом множестве хранится информация только о его границах, заданных в виде замкнутых ломаных.
Для повышения точности предложенного алгоритма следует уменьшать дискрет времени А и увеличивать количество вершин на уже построенных множествах управляемости, как это было описано выше. Кроме того, можно добавить новые вершины в многоугольник U и рассматривать большее количество векторов управления.
Список литературы
1. Тимофеев А.В. Адаптивные робототехнические комплексы. Л.: Машиностроение, 1988.
2. Хедли Дж. Нелинейное и динамическое программирование. М.: Мир, 1967.
3. Беллман Р. Динамическое программирование. М.: Изд-во иностр. лит., 1960.
4. Вахрушев В.А., Махова А.В., Ушаков В.Н. Один из алгоритмов решения задачи об обходе препятствий // Изв. РАН ТиСУ. 2000. 1. С. 101-109.
5. Вахрушев В.А., Тарасьев А.М., Ушаков В.Н. Алгоритмы пересечения и объединения множеств на плоскости // Управление с гарантированным результатом: Сб. науч. тр. / УНЦ АН СССР. Свердловск, 1987. С. 28-36.
6. Матвийчук А.Р., Ушаков В.Н. Задача об оптимальном по быстродей-
стви управлении подвижным объектом на плоскости при наличии препятствий / НММ УрО РАН. Екатеринбург, 2003. Деп. в ВИНИТИ 21.01.03, № 125-В2003.
7. Хрипунов А.П., Ушаков В.Н. Построение интегральных воронок дифференциальных включений // Журн. вычисл. математики и мат. физики. 1994. Т. 34, № 7.
8. Гусейнов Х.Г., Моисеев А.Н., Ушаков В.Н. Об аппроксимации областей достижимости управляемых систем // Прикладная математика и механика. 1998. Т. 65, № 2.
Институт математики и механики УрО РАН [email protected]