УДК 519.859
ПОЛНЫЙ КЛАСС Ф-ФУНКЦИЙ ДЛЯ КРУГОВ И МНОГОУГОЛЬНИКОВ С ПОВОРОТАМИ
ЗЛОТНИК М.В.______________________________
Рассматривается аналитическое описание взаимодействия неориентированных геометрических 2D объектов с помощью метода Ф-функций. Строятся Ф-функции для неориентированных объектов, имеющих границу круга и многоугольника.
Введение
Задачи оптимизационного геометрического проектирования возникают в разнообразных отраслях науки и техники [1-4]. Они связаны с обработкой геометрической информации и заключаются в поиске оптимального размещения конечного множества геометрических объектов, которое определяется вектором параметров размещения объектов в заданных областях размещения.
Наибольшую сложность представляет класс оптимизационных задач размещения, в которых допускаются аффинные преобразования не только трансляции объектов, но и поворота [5]. Для построения математических моделей таких оптимизационных задач необходимо исследование и аналитическое описание взаимодействий геометрических объектов [6]. С этой целью используется метод Ф-функции. В работах [7,8] построены Ф-функции для базовых и составных ориентированных объектов (допускающих аффинные преобразования только трансляции), а Ф-функция для неориентированных многоугольников приведена в статье [8].
Рассмотрим полный класс Ф-функций для Ф -объектов [3], граница которых - окружность или многоугольник (в общем случае невыпуклый). Введем следующие обозначения: C; - круг радиуса г; , K; -выпуклый многоугольник, заданный последовательностью своих вершин (Vij = (Ху,Уу) , j = 1,...,П;, хіп; +1 = xi1, yin; +1 = yil), Si - невыпуклый многоугольник, заданный последовательностью своих вершин (Vij = (xij,yij), j = 1,..., П; , хіп; +1 = xi1 ,
Уіп; +1 = Уі1 ) в собственной системе координат (xioiyi), C* = cl(R2 \C;) , K* = cl(R2 \K;) ,
S* = cl(R2 \ S;), где cl( ) - замыкание множества (•)
[9].
Обозначим параметры размещения объекта T;,
T; e{C, C*, K, K*, S, S*} через u; = (V;,Фі) = (x;,y;,ф;), где х;, у; - координаты центра собственной системы координат объекта T;, а ф; - угол поворота собственной системы координат T; относительно пространства R .
Множество T;, для которого задан вектор движения u; = (v; , ф; ), обозначим через T; (u; ). Очевидно, что C2(u2) совпадает с C2CV2), поэтому ф2 можно опустить.
Как известно [6], Ф-функция Ф^,^) зависит от взаимного расположения объектов T1 и T2 в пространстве R 2 и позволяет моделировать их взаимодействие. При этом Ф(^, u2) > 0 если T1 и T2 не имеют общих точек (рис. 1,а), Ф(ul,u2) = 0, если T1 и T2 касаются (рис. 1,б), и Ф(ul,u2) <0 , если T1 и T2 пересекаются (рис. 1,в).
а б в
Рис. 1. Взаимное расположение объектов
Полный класс Ф-функций для кругов и многоугольников с поворотами состоит из Ф-функций для следующих пар объектов: C1 (V1) и C2CV2), C*(V1) и C2CV2), K1(u1) и C2CV2), S1(u1) и C2CV2), K1(u1) и K2(u2), S1(u1) и K2(u2), S1(u1) и S2(u2), K*(u1) и K2(u2), K*(u1) и S2(u2), S*(u1) и S2(u2), K*(u1) и C2CV2), S*(u1) и C2CV2), K1(u1) и C2 (V2 ) , S1(u1) и C2(V2).
На данный момент построены Ф-функции для: S1(u1) и S2(u2), K1(u1) и K2(u2) [8], C1CV1) и C2CV2), C*(V1) и C2(V2) [6].
Целью данной работы является построение Ф-функ-ции для: K1(u1) и C2CV2), S1(u1) и C2CV2), K*(u1) и K2(u2), K*(u1) и S2(u2), S*(u1) и S2(u2), K*(u1) и C2CV2), S*(u1) и C2CV2) ,K1(u1) и C2 (V2) , S1(u1) и C2(V2).
Постановка задачи. Даны два объекта T1 и T2, T; є {C, C*, R, R*} , i = 1,2 . Необходимо построить Ф-функцию, зависящую от параметров размещения u1 и u2 объектов T1 и T2 , которая позволяет моделировать их взаимодействие (пересечение, касание, принадлежность, непересечение) в пространстве R 2 .
1. Ф-функция для K1(u1) и C2CV2)
Для построения Ф-функции Ф(Vl, V2) объектов K1(V1) и C2CV2) используется метод, описанный в статье [10].
Предполагается, что V1 = (0,0) , т. е. K1 - неподвижен. 0-уровень Ф-функции K1 и C2, описанной уравнени-
29
РИ, 2006, № 3
ем Ф(0,У2) = 0 [6, 11], формируется отрезками прямых 1; И дугами g; , І = 1,...,Пі .
Касание Кі(0) и C2(v2) может быть двух видов:
1) i-я сторона [(хіі,Уіі),(хіі+і,Уіі+і)] многоугольника Кі касается круга C2 ;
2) i-я вершина (х1і,У1і) многоугольника K1 касается круга C2.
Т аким образом, касания первого типа образуют прямые 1;, параллельные прямым, проходящим через стороны [(х1і,У1і),(х1і+1,У1і+1)] на расстоянии Г2, а касания второго типа порождают дуги g; окружностей радиуса Г2, i = 1,...,П1. Следует учесть, что для описания дуги g; необходимо построить окружность W; с центром в вершине (х1і,У1і) и прямую 1І , проходящую через точки сопряжения дуги окружности с прямыми 1; и 1;-1 .
Уравнение 1; имеет вид:
f;(x2,y2) = A;X2 -віУ2 + C; = 0, (1)
где A; = У 1i+1 - У1;, Bi = X1i+1 - x1i,
Ci = AiX1i + Biy1i , Ci = Ci — AiXi + ВіУі ,
Г Га; n
Bi ’ ...............^ B; , •
di =
VAT+BT • Vi = <хі'Уі)=di
Уравнение 1; выглядит следующим образом:
Фі(х2,У2) = aix2 -Ь;У2 + ci = ^ (2)
здесь C; =-a;(X1i + y;-1) + b;(yU + yi-1) ,
ai = уІ - yi-b bi = УІ - УІ-1 .
Уравнение окружности Wi :
rai(x2,y2) = (x2 - x1i)2 + (y 2 - у1;)2 - Г2 . (3) Тогда на основании (1)-(3) Ф - функция ориентированного многоугольника К1 (v1 ) и круга C2CV2) имеет вид:
Ф(у 1, v2) = max max{f;(v2 - v1),
І=1,...,П1
min{y i(v2 - v1), ro;(v2 - v1)}}.
Пусть K1<u1) и C2<v2), т.е. допускается трансляция и вращение К1 .
Так как многоугольник К1 вращается, то координаты X1i , У1І вершин К1 являются функциями от Ф1 , которые при вращении К1 по часовой стрелке определяются следующим образом:
Х1І (Ф1) = X1i cos Ф1 + У1І sin Ф1 ' , ч , І = 1,...,П1,
У1І (Ф1) = -X1i sin Ф1 + У1ІCos Ф1
при этом, A; <Ф1) = A; cos Ф1 - В; Sin Ф1 ,
В; <Ф1) = A; sinФ1 + В; cosФ1 ,
C;(Ф1) = -A;X1i + в;У; = C; ^ УІ(Ф1) == C; <Ф1) - Г^/a2 + В2 = C;:
di =
л/(АІ(Ф1))2 + (ВІ(Ф1))2 Vа2 + В2
УІ (Ф1) = (УІ (Ф1),уі (Ф1)) = di
= d;
Л', ч У АІ(Ф1)
- ВІ(Ф1)
Г
Г
А(Фьх2,У2) = АІ(Ф1)Х2 - ВІ (Ф1)У 2 - CІ(Ф1) ^ fi(ubv2) = А; <(х 2 - X1)cos Ф1 - (у2 - yOsin Ф1) --В;((Х2 -X1)sinФ1 + (у2 -y1)cosФ1) + C; =
= f; (x'(U1,v2),y'(U1,v2)),
x'(U1,v2) = (x2 - X1)cos Ф1 - (y 2 - y1)sin Ф1 , y'(U1,v2) = (X2 - X1)sin Ф1 + (y 2 - y1)cos Ф1 ,
а;(Ф1) = -(A;d; - AMd;-1)sinФ1 -
- (B;d; - В;—1 d;—1) cos Ф1,
b; (Ф1) = (A;d; - Ai-1d;-1)cos Ф1 -
- (B;d; - Bi-1d;-1)sin Фь
ci (Ф1) = -ai(x1i + У;-1) + b; (У 1i + yi-1) = cb фІ(Ф1,х2,У2) = ai(Ф1 )x2 -bi(Ф1)У2 + CІ(Ф1) ^
ф; <U1, v 2 ) = a; (Ф1)(Х2 - X1) - Ь;(Ф1)(У2 - У1) +
+ ci (Ф1) = ф;(x'(U1,v2),y'(U1,v2)),
'2 '22 Ю;(Ф1,Х2,У2) = (X2 - Х1;<Ф1)) + <У2 - У1І (Ф1)) - Г2 ^
' '2 '2 ff>i(UbU2) = (Х2 - Х1 - Х1І (Ф1)) + (у 2 - У1 - у 1І (Ф1)) -
- Г22 =ro;(x'(U1,U2),y'(U1,U2)).
Таким образом, Ф-функция примет вид:
KC
Ф (Ubv2) = max S;(U1,v2) (4)
і=1,...,п1 ’ w
где
S;(U1,U2) = f; (x'<UbU2 ),y'fab^)),
min{y ;(x'(UbU2Xy'(UbU2)X ra;(x'(U1,U2),y'(U1,U2))},
x'(U1,U2) = (x2 -X1)cosФ1 -(y2 -У1)sinФ1 , y'(U1,U2) = (x2 - X1)sinФ1 + (y2 -y1)cosФ1 .
2. Ф-функция для S1<U1) и C2(v2)
Представим S1 в виде объединения выпуклых многоугольников (рис.3):
mi
S1 = UK1j , (5)
j=1
30
РИ, 2006, № 3
где mj - количество выпуклых многоугольников (составляющих Sj), Kjj задан набором своих вершин v1jk = (x1jk’y!jk), k = 1,-,n1j, n1j - количество вершин выпуклого многоугольника Kjj, j = 1,...,mj. Для разбиения невыпуклого многоугольника на выпуклые (рис. 2) можно использовать, например, алгоритм, приведенный в [12].
Используя способ построения Ф-функции для составного объекта [7] и выражение (4), получаем Ф-
функцию для Sj(uj) и C2(u2):
Ф SC(u1,u2) = min Ф KC (u1, u 2 ) j=1,...,m1
KC
где Ф j (u1,u2) - Ф-функция j-го многоугольника K1j и круга C2 .
Обозначим через у = {(u1,u2) є R6 | Ф(u1,u2) = 0} -поверхность нулевого уровня Ф-функции [6], а у' -нулевой уровень для случая, когда Х2 = х2, У2 = у2, Ф1 = ф* и ф2 = ф2 - константы. На рис. 3 изображен нулевой уровень Ф^Оі*,^) и ФKC(u*,u2), а на рис. 4 - Ф^(и*,и2).
Рис. 2. Объект 5^1 = Кц U K12
Рис. 3. Иллюстрация у1 и у 2
3. Ф-функция для K*(u1) и K2(u2)
Выполнив преобразования, аналогичные рассмотренным в п.1, получим Ф-функцию для пары множеств K*(u1) и K2(u2) в следующем виде:
*
Ф (U1,U2) = min Xi(U1,U2), (6)
i=1,...,n1 ’ v '
где X*(U1,U2) = Ai(x2 + ~i) - Bi (y 2 + ~i) + Ci,
Ai = У 1i - У1і+1, Bi = x1i - x1i+1,
Ci =-Aix1i + ВіУ1і, i = 1,2,..., n1, x1n+1 = x11, y1n+1 = y11 ,
(~iJi) = {(x,y) є {(~2j,~2j),j = l,-,n2}| Xi(x,y) =
= min{Xi (~2 j,~2j),J = Iv? n2 }}
X i(x,y) = Aix - ВіУ + Cb
~2j = x2j СОЗ(ф2) + У 2j Яіп(Ф2),
~2j = —x2j 51п(Ф2) + У2j СО$(ф2) , x2 = (x2 - x1)COSф1 - (y2 - yOsinфl,
У2 = (x2 - x1)sinф1 + (y2 - y1)COSф1.
4. Ф-функция для K*(u1) и S2(u2)
Пусть S2 задан объединением выпуклых многоугольников вида (5). Учитывая способ построения Ф-функции для составного объекта [7] и выражение (6), получаем Ф-функцию для K* и S2 в виде:
ФKS(U1,U2) = min ФK K(u1,U2), (7)
j=1,...,m2
*
где ФK K(U1,U2) - Ф-функция j- го многоугольника K2j и объекта K*.
5. Ф-функция для S*(u1) и S2(u2)
Представим S1* в виде:
m1
S* = K*o U (U K1j), (8)
j=1
здесь m1 - количество выпуклых многоугольников; K*0 = cl(R2 \K10), K10 - выпуклая оболочка многоугольника S1 ; K1j задан набором своих вершин v1jk = (x1jk,y1jk); k = 1, -,n1j, n1j - количество вершин выпуклого многоугольника K1j ; S2 - задан объединением выпуклых многоугольников вида (5). Используя способ построения Ф-функции для составного объекта [7] и выражение (7), получаем Ф-
функцию для S*(u1) и S2(u2):
*
Ф(і1,U2) = min{ФK S(U1,U2),
min min Ф ■■ (U1, U2)}, i=1,...,m1 j=1,...,m2 ij
РИ, 2006, № 3
31
где ФK S(U!,U2) - Ф-функция K*0 и S2; Ф ij (uj,U2) - Ф - функция пары выпуклых
многоугольников Kji и K2j. На рис. 5 представлен нулевой уровень у , Ф-функции S* (u* ) и S2 (u2).
* * *
Рис. 5. Иллюстрация у для S^(u^) и S2(U2)
6. Ф-функция для K* (uj) и C2(v2)
Выполнив преобразования, аналогичные рассмотренным в п.1, получим Ф-функцию для пары множеств K*(uj) и C2CV2) в следующем виде:
*
K с ~
Ф (ui,V2) = min Xi(ui,V2), (9)
i=1,...,n1 ’ v '
где Xi(u1,v2) = Ai(x2)-Bi(y2) + Ci, Ci = Ci -r2,
Ai = -(y 1i+1 - y1i)/di, Bi =-(x1i+1 - x1i)/di,
Ci = (x1iy1i+1 - x1i+1y1i)/di,
di =\(x1i+1 -x1i)2 + (y 1i+1 -У1і)2 , i = 1,,n1, (x1n+1,y1n+1) = (x11,y11), x2 = (x2 - x1)cosФ1 - (y2 - y1)sinФ1 ,
У2 = (x2 - x1)sinФ1 + (y2 - y1)cosФ1 .
7. Ф-функция для S*(u1) и C2(v2)
Представим S* в виде (8). Тогда, учитывая выражение (4), (9) и способ построения Ф-функции для составного объекта [7], построим Ф-функцию для S*(u1) и C2(v2) в следующем виде:
K*C KC
Ф(^^2) = min^0 (ubv2), min Ф, (u1,v2)},
i=1,...,m1
* % где фKC(u1,v2) - Ф-функция k10 и C2;
Ф^C(u1,v2) - Ф-функция K1j и C2 . На рис. 6 представлен нулевой уровень Ф-функции S* (u* ) и C2 (v2).
8. Ф-функция для K1(u1) и C2(v2)
Выполним преобразования аналогичные рассмотренным в п.1. При этом Ф-функция для пары множеств
K1(u1) и C2 (v2) примет следующий вид:
*
kc ~
Ф (u1,v2) = min Xi(u1,v2),
i=1,...,n1
~ 2 ' 2 ' 2 где Xi(u1,v2) = r2 - (x2 - x1i) - (У 2 - У1і) ,
X2 = (X1 - X2 ) COS Ф1 - (У1 - y 2 ) sin фl,
У 2 = (X1 - x 2) sin Ф1 + (У1 - y 2 ) cos Ф1.
9. Ф-функция для S1(u1) и C^(v2)
Представим 5*1 в виде (5). Согласно [7] Ф-функция для S1(u1) и C2 (v2) имеет вид:
*
Ф(^^) = min ФjKC (u1,v2). (8)
j=1,..,m1
Так как для нахождения многоугольника в круге достаточно, чтобы каждая вершина многоугольника лежала внутри круга, то Ф-функцию для S1(u1) и C2 (v2) можно представить в следующем виде:
Ф(^^) = min Xi (u 1, v2) i=1,...,n1 ’
где Xi(u1,v2) = r2 - (x2 - x1i) - (У2 - У1і) ,
X2 = (X1 - X2 ) COS Ф1 - (У1 - У 2 ) Sin Фl,
У 2 = (X1 - x 2) sin Ф1 + (У1 - y 2 ) cos Ф1.
На рис. 7 представлен нулевой уровень Ф-функции
S1(u*) и C*2(v*2).
* * *
Рис. 6. Иллюстрация у для S1(u1) и C2(v2)
Рис. 7. Иллюстрация у' для S1 (u* ) и C2(v2)
32
РИ, 2006, № 3
Выводы
Новизна. Впервые построен полный класс Ф-функ-ций с поворотами для объектов, имеющих пространственную форму круга и многоугольника.
Научные и практические результаты. Построенные Ф-функции позволяют строить математические модели оптимизационных задач геометрического проектирования, в которых объекты могут не только транслироваться, но и поворачиваться. Результаты работы могут быть использованы при решении задач упаковки, раскроя, покрытия, а также в робототехнике. Применение метода Ф-функций позволяет строить математические модели в виде задач математического программирования, а также применять эффективные методы локальной и глобальной оптимизации для решения задач геометрического проектирования.
Литература: 1. Lody A., Martello S., Vigo D. Recent advances on two-dimensional bin packing problems// Discrete applied mathematics. 2002. № 123. C. 379-396. 2. Dyckhoff H., Scheithower G., Terno J. Cutting and Packing// In Annotated Bibliographies in Combinational Optimization. Chichester. 1997. С. 393-412. 3. Стоян Ю. Г.,Яковлев С. В. Математические модели и оптимизационные методы геометрического проектирования. Киев: Наук. думка, 1986. 268 с.
4. Karen D., Rajasekhar I. An Incremental Algorithm for Translational Polygon Covering// Computer Science Technical Report. University of Massachusetts at Lowell.
2001. № 2001-1. 31 с. 5. Milencovich V. Rotational polygon overlap minimization and compaction// Computational Geometry. 1998. № 10. С. 305-318. 6. Stoyan Y., Terno J., Gil N., Romanova T., Ф-function for 2D primary objects// Studia Informatica, Paris, University. 2002. Vol. 2, № 1. P. 1-32. 7. Stoyan Y., GilM., Terno J., Scheithauer G., Romanova Т. Ф-function for complex 2D objects// 4OR Quarterly Journal of the Belgian, French and Italian Operations Research Societies. 2004. Т 2, № 1. Р. 69-84. 8. СтоянЮ. Г. Phi-function of non-convex polygons with rotations//Проблемы машиностроения, 2003. В. 6. No 1. С. 74-86. 9. Александрян Р.А., Мирзаханян Э.А. Общая топология. М.: Высш. шк., 1979. 336 с. 10. Stoyan Yu.G. Analytical description of interaction of point sets. Journal of mechanical engineering. 2001. V 4, N 1-2. P. 77-88. 11. Stoyan, Yu.G. Ф - function and its basic properties. Reports of National Academy of Sciences of Ukraine. 2001. Ser. A. N 8. P.112-117. 12. Пандорин О. К., Панкратов О.В., Новожилова М.В. Аналіз і складність алгоритму зображення однозв’язного не опуклого многокутника у вигляді об’єднання опуклих многокутників// Вісник запорізького державного університету. 1999. № 2. С. 79-83.
Поступила в редколлегию 20.07.2006
Рецензент: д-р техн. наук Романова Т.Е.
Злотник Михаил Викторович, младший научный сотрудник отдела математического моделирования и оптимального проектирования Института проблем машиностроения НАНУ им. А.Н. Подгорного. Адрес: Украина, 61046, Харьков, ул. Дм. Пожарского, 2/10, тел. раб. (0572) 95-95- 36.
УДК618.514.01:517.977.5
ЗАДАЧА ДИНАМИЧЕСКОГО СИНТЕЗА ДЛЯ ГАРМОНИЧЕСКОГО ОСЦИЛЛЯТОРА КАК ОБЪЕКТА УПРАВЛЕНИЯ
РАДИЕВСКИЙ А.Е.___________________________
В классе задач аналитического конструирования оптимальных регуляторов исследуется процедура разработки математического обеспечения задачи динамического синтеза для линейной модели гармонического осциллятора с демпфированием как объекта управления. Исследование базируется на положениях теории экстремальных задач.
1. Введение
Развитие механики тесно связано с изучением маятника [ 1 ]. Интерес к его изучению объясняется тем, что он был той математической моделью, при посредстве которой удалось проникнуть в различные аспекты теории колебаний, решить многие ее вопросы для объектов различной физической природы [2]. Последнее позволило понять и сформулировать основные законы механики [1]. Одной из разновидностей многообразия маятников является гармонический осциллятор с демпфированием.
Уравнение движения последнего как объекта управления (ОУ) можно записать в виде
d2x dx
-----+ a і-+ &0x = ku
dt2 1 dt 0 ’
где x - состояние; u - управление; a^a0 - параметры, а k - коэффициент усиления ОУ.
Задача динамического синтеза для гармонического осциллятора с демпфированием исследовалась, например, в [3-7], где в [3] исследование базируется на асимптотических методах, в [4] - на условиях минимума гамильтониана, в [5,6] - на графических методах, в [7] - на вариационных методах. В настоящей работе для ОУ (1) исследуется процедура динамического синтеза в классе задач аналитического конструирования оптимальных регуляторов (АКОР).
Целью настоящего исследования является разработка математического обеспечения процедуры структурного и параметрического синтеза для линейной модели гармонического осциллятора с демпфированием как ОУ.
2. Постановка и особенности задачи Выражение (1) можно записать в виде dx .
—=Ax+Вu dt
(2)
где x = (x1, x2) - матрица-столбец вектора фазовых
координат; A
0 1
- a0 - a1
В =
0
k '
РИ, 2006, № 3
33