Научная статья на тему 'Один алгоритм построения множества управляемости при наличии фазовых ограничений'

Один алгоритм построения множества управляемости при наличии фазовых ограничений Текст научной статьи по специальности «Математика»

CC BY
131
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УПРАВЛЕНИЕ / МНОГОУГОЛЬНИКИ / ПРЕПЯТСТВИЯ

Аннотация научной статьи по математике, автор научной работы — Матвийчук А. Р.

Приводится один из алгоритмов построения множества управляемости для нелинейной системы при наличии фазовых ограничений. Действия алгоритма базируются на операциях с многоугольниками.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Один алгоритм построения множества управляемости при наличии фазовых ограничений»

ОДИН АЛГОРИТМ ПОСТРОЕНИЯ МНОЖЕСТВА УПРАВЛЯЕМОСТИ ПРИ НАЛИЧИИ ФАЗОВЫХ ОГРАНИЧЕНИЙ *

А.Р. Матвийчук

Приводится один из алгоритмов построения множества управляемости для нелинейной системы при наличии фазовых ограничений. Действия алгоритма базируются на операциях с многоугольниками.

Ключевые слова: управление, многоугольники, препятствия.

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), будем вычислять по формуле

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

= я* - а • /(**, гк) - а • в(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]

i Надоели баннеры? Вы всегда можете отключить рекламу.