Научная статья на тему 'Метод вариационного аналитического программирования для решения проблемы синтеза системы управления'

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

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

Текст научной работы на тему «Метод вариационного аналитического программирования для решения проблемы синтеза системы управления»

УДК 519.6

Дивеев А.И.1, Конырбаев Н.Б.2

Федеральное государственное бюджетное учреждение науки Вычислительный центр им. А.А. Дородницына Российской академии наук, Москва, Россия

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Российский университет дружбы народов, Москва, Россия

МЕТОД ВАРИАЦИОННОГО АНАЛИТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ СИНТЕЗА СИСТЕМЫ УПРАВЛЕНИЯ

Введение.

Метод аналитического программирования [1-4] предназначен для задач, решениями которых являются нечисловые структуры. К таким задачам относится задача синтеза управления, решением которой является математическое выражение, описывающее функциональную зависимость управления от координат пространства состояния объекта. Метод аналитического программирования представляет собой разновидность метода генетического программирования [5-7]. Код метода аналитического программирования состоит из упорядоченного множества целых чисел, которые указывают на номера кодируемых структур. Простота кодирования определяет преимущества метода аналитического программирования.

Постановка задачи синтеза системы управления

Задана модель объекта управления

x = f (x,u) , (1)

где x Є Rn , u Є U c Rn , U - ограниченное замкнутое множество. Задана область начальных значений x(0)є X° . (2)

Заданы терминальные условия

fi (x (tf)) = 0 , і = 1,r , (3)

где tf - время окончания процесса управления, оно может быть не задано, ограничено сверху,

tf < t+ и определяться выполнением терминальных условий (3) .

Задан функционал качества tf

J = J fo (x,u)dt ® min . (4)

o

Необходимо найти управление в виде u = h(x) , (5)

где h(x) :Rn ® Rm , "x(0)є Xo, решение x(t)

системы x

x=f (x,h (x)), обеспечивает удовлетворение

ограничениям на управление h(x(t))є U , достижение терминальных условий (3) и минимум функционала качества (4).

Для решения задачи используем метод вариационного аналитического программирования.

Метод аналитического программирования

Введем упорядоченные множества функций с определёнными количествами аргументов

Fi = (f,i(zi,K,zi),...,f.m A,...,zi)) , i = °n , (5)

где fij (Zl,к, zt) - функция под номером j с количеством аргументов i , j = 1,mi

Объединим все множества в одно

i = °, n .

F = U Fi .

(6)

Пронумеруем все элементы объединённого множества

F = ( fi,K, fD ) , (7)

где

D=2 mi,

(8)

f1 = f°,1 , f2 = f°,2 ,“, fm° = f°,m°, fm°+1 (z)= f1,1 (z) ,“, fm°+m1 (z) = f1,m1 (z) , fm°+m1+1 (z1,z2 ) = f2,1 (z1,z2 ) ,“, fm° +...+mn (z1,K , Zn ) = fn,mn (z1,K , Zn ) .

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

i=0

i=°

F° =(f°,1,K,f°,m° ) =(X1,K, xN, q1,K, qp ) . (9)

Запись кода математического выражения в методе аналитического программирования осуществляется в форме упорядоченного множества целых чисел

C = (c1,...,cK) , (10)

где c. є{1,...,D} , i = 1,K .

Каждое число указывает на номер элемента в объединенном множестве F (7) . Запись имеет префиксный порядок.

Рассмотрим пример. Пусть задано множество функций

F0 =(x,a,b,c) , F = (-z,ez,cos(z)) , F2 =(zx + z2,zx ■ z2) .

Построим объединённое множество F = (x,a,b,c,-z,ez,cos(z),zx + Z2,zx ■ Z2) .

Объединённое множество содержит девять элементов lFl=9 . Множество переменных и параметров содержит четыре элемента |Fo| = 4 .

Пусть задана запись из восьми элементов

C = (8,5,3,9,4,6,7,1) .

Определяем вид математического выражения

( A

F

x,a,b,c,-z,ez,cos(z),z1 + z2 ,z1 ■ z2

y = z1 + z2 ,

F

F

F

F

F

F

V 8

(

z

1, a,b, c, —z, ez ,cos (z), z1 + z2, z1 ■ z2

V 5 J

( A

x, a,b, c, -z, ez ,cos (z), z1 + z2, z1 ■ z2

чУ? ' J

( A

, a, b, c, -z, Є ,cos (z), z1 + z2, z1 ■ z

V 9 J

( A

1, a, b, c, -z, ez ,cos (z), z1 + z2, z1 ■ z2

V 4 j

( A

1, a,b2c,-z,e— ,cos (z), z1 + z2, z1 ■ z2

V 6 j

(

\

x, a, b, c, -z, ez ,cos (z), z1 + z2, z1 ■ z2

V 7

У = -z1 + z2 ,

У = -b + z2 ,

У = -b + z1 ■ z2 ,

y = -b + c ■ z2 ,

y = -b + c ■ ez ,

1 , cos(z)

У = -b + c ■ e v ,

F = ^x,a,b,c,-z,ez,cos(z),zi + z2,zi ■ z2 J , y = -b + c ■ ecos^x^ .

Для получения математического выражения из записи кода необходимо знать количества элементов в каждом из множеств функций: ^ ,.., тп , и количества используемых переменных и параметров N и p .

Количество аргументов функции i и номер функции j определяем по значению элемента ck кода математического выражения с помощью соотношений 0, если 0 < ck < mo

i =

a-1 a ____

a, если ^ mr < ck < ^ mr , a = 1, mn

r=0 r=0

(11)

j = ck - 2 mr , 1 < i < П

(12)

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

При соответствии элемента кода ck функции без аргументов, i = 0 , для определения переменной xj или параметра qj необходимо использовать количества используемых переменных N и параметров p .

€k, ЄСЛИ €k < N

kk i = 0 , (13)

ек - N иначе

где код ck соответствует переменной xj, если ck <N , или параметру qj , если N <ck <m0 .

Для описания кодов векторных математических выражений используем один набор целых чисел с определенным количеством элементов для каждого компонента векторного выражения. Пусть вектор математических выражений имеет M компонент. Выделим под каждую компоненту вектора L позиций в коде записи. Код математического выражения каждого компонента i векторного выражения содержит ki <L

элементов, i = 1,M . Не используемым в формировании кода элементам задаем нулевые значения

C = ( у-- ,c2o,к,o,...,^м-^..., cl(m-1 )+kM,л-— ), (14)

L ' L *

где L - число позиций для кода одной компоненты векторного выражения, ki - длина кода компоненты i векторного выражения, i = 1,M .

В коде записи векторного выражения (14) значения для элементов выполняются условия cj = 0 , если L(i -1) + ki < j < Li , i = 1,M . (15)

Для расшифровки кода векторного выражения необходимо вместе с величинами

i = 1, n , N и p

дополнительно знать число позиций L и длины кодов компонент ki , i = 1,M .

Для определения корректности записи кода математического выражения используем индекс элемента. Пусть в записи кода (10) математического выражения элемент Cj Ф0 . Для векторного математического

выражения определим него номер компоненты i

j -1'

+1.

(16)

из соотношения

L L J

Для корректной записи для индекса элемента Cj Ф0 необходимо выполнения условий т(j)>о , jФki , (17)

T(+ L(i-1)) = 0 . (18)

где T(j) индекс элемента j записи кода математического выражения.

Для вычисления индекса T( j) элемента j при условии Cj Ф 0 используем соотношение

T (j ) = 1 -(j - Lb) + І ik , (19)

k =Lb+1

где

h =

0,

a,

если 0 < Ck < m0

a-1 a _____

если І mr < ck < І mr , a = 1, mn

r=0 r=0

b

j -1

L

(20)

Индекс T (j) элемента j указывает на минимальное число недостающих справа элементов. Невыполнение условий (17) или (18) указывает на неправильность записи математического выражения.

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

Метод вариации аналитического программирования

Пусть запись кода (10) определяет пространства записей математических выражений. Пространство

всех вариантов возможных записей длины K для D значений кодов содержит DK элементов .

Малой вариацией кода аналитического программирования является изменение значения кода элемента ct є|1,...,D} . Одной малой вариации достаточно для получения любой записи пространства из одной за-

данной записи за конечное число вариаций.

Для описания малой вариации используем вектор из двух компонент

w = [wx w2]T , (21)

где w - номер позиции изменяемого кода элемента записи, w2 - значение кода элемента.

Для выполнения вариации необходимо знать: количество элементов в векторном выражении M , количество переменных N , количество параметров p , количества используемых функций определенной арности m0 = N + p , mj ,.., mn , количество выделенных для каждой компоненты позиций L и количество

используемых в варьируемом коде позиций ki , i = 1,M .

При выполнении вариации возможно получение некорректных записей. Проверку корректности записи кода осуществляем по условиям (17), (18) . Для обеспечения корректности записи в зависимости от

полученного в результате вариации кода записи изменяем значения некоторых последних кодов.

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

F = (x^,...,XN,q^,...,qp, fu (z) = z, fl 2 (z) = sgn(z)z2 , /y (z) = z2 , fX A (z) = -z , /15 (z) = sgn^)^ ,

/1,6 (z) = z‘ , f1,7 (z) = eZ , f1,8 (z) = lnlz\ , f1,9 (z) =

1 - e~z f ( ) J1, ifz -0 f ( ) ( )

-—-z , f1,10 (z) = у , fm (z ) = sgn (z),

1 + e z 10, иначе ’

f1,12 (z) = C0S (z) , f1,13 ( z) = sin (z) , f1,14 (z) = arctan (z) , f1,15 ( z) = z3 , f1,16 (z)= , f1,17 ( z) = i'

U

z, if z < 1

lsgn(z), иначе '

f1,18 (z) = sgn(z)ln(Iz| + 1) , f1,19 (z) = sgn(z)(e-z - l) , f1,20 (z) = sgn(z)(l - e-z ) , f1,21 (z)

1, if z > a -1, if z < 0

f1,22 ( z ) =

1, if z > a /2 -1, if z < -a /2

f1,23 (z) = e , f1,24 (z) = z z , f2,1 (z1, z2 ) = z1 + z2 , f2,2 (z1, z2 ) = z1z2 ,

f2,3 (z1, z2 ) = mаx{z1, z2} , f2,4 (z1, z2 ) = z2} , f2,5 (z^ z2 ) = z1 + z2 - z1z2 , f2,6 (z^ z2 ) = Jzb+Z2 ,

3za 2 -2z3a 3, иначе

3za 2 - 4z3a 3, иначе

f2,7 (Z1,z2 ) =|Z1 + |Z2 /3,3 (Z1,Z2,z3) =

f2,8 ( z1, z2 )_ max{|z1,| z21} ' f3,1 ( z1, z2, z3 )_

z2, if z1 < 0

, иначе

f3,2 (z1,z2,z3) =

z3, if z1 < z2

z2, if z1 < z2

z3, if (z1 > z2) Л (z1 > z3) , f3,4 (zl,

z1, if (z1 > z2 )Л( z1 < z3 )

Пример синтеза системы управления

3 ) =

Z2 Z1, if Z1 z2 < Z1 Z3

Z3 - Z1, иначе

(22)

Рассмотрим применение метода вариационного аналитического программирования к решению задачи синтеза управления для системы третьего порядка с фазовыми ограничениями [3].

Задана система уравнений x&1 = Х2 , Х2 = Х3 , Х3 = и .

Заданы терминальные условия xf (tf) = 0 , i = 1,2,3 .

Заданы фазовые ограничения Х1 > 0 .

Задана область начальных значений

Х (0) = 1 , -1 < Х2 (0) < 1 , -1 < Х3 (0)< 1 .

Задан функционал

t ® min .

J = о V X1+~2j ®

Необходимо найти управление в виде и = h (Х1, Х2 Х3) .

Для решения задачи используем метод вариационного аналитического программирования. При решении использовали набор функций (22)

Базисное решение имело следующий вид

h0 (Х1, Х2,Х3) = q1 (х{ — Х1) + q (х{ — Х2) + q3 (х( — Х3) ,

где q1 = 1 , q2 = 1 , q3 = 1 .

В результате применения метода было получено следующее решение и = q1 (x{ - X) + q2 (x{ — Х2) + (x( — Х3)max{|x{ — х^,|q1 — sin(x{ — Х1)} , где q1 = 4.729600 , q2 = 8.815670 .

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

На рис. 1-4 приведены результаты моделирования системы с полученным решением.

в г

Рис. 1 График изменения Х1 при различных начальных условиях:

а - Х2 (0) = — 1 , Х3 (0) = — 1 ; б - Х2 (0) = — 1 , Х3 (0) = 1 ;

в - Х2 (0) = 1 , Х3 (0) = — 1 ; б - Х2 (0) = 1 , Х3 (0) = 1 ;

- Z

иначе

3

х2

ч X ,

и С

Рис. 2 График изменения при различных начальных условиях: а - х2 (0) = -1 , Х3 (0) = -1 ; б - х2 (0) = -1 , Х3 (0) = 1 ; в - х2 (0) = 1 , Х3 (0) = -1 ; б - х2 (0) = 1 , Х3 (0) = 1 ;

Рис. 3 График изменения Х3 при различных начальных условиях: а - Х2 (0) = -1 , Х3 (0) = -1 ; б - Х2 (0) = -1 , Х3 (0) = 1 ;

в - Х2 (0) = 1 , Х3 (0) = -1 ; б - Х2 (0) = 1 , Х3 (0) = 1 ;

а

а

Рис. 4 График изменения и при различных начальных условиях: а - х2 (0) = -1 , Хз (0) = -1 ; б - х2 (0) = -1 , Хз (0) = 1 ;

в - Х2 (0) = 1 , Хз (0) = -1 ; б - Х2 (0) = 1 , Хз (0) = 1 ;

Из сказанного следует вывод, что метод вариационного аналитического программирования эффективен для решения задач синтеза управления.

Работа выполнена при финансовой поддержке гранта РФФИ № 14-08-00008-а.

ЛИТЕРАТУРА

1. Дивеев А.И., Конырбаев Н.Б. Вычислительный метод вариационного аналитического программирования для синтеза системы управления// Современные проблемы и образования. - 2014. - № 2; URL:

http://www.science-education.ru/116-12401

2. Zelinka I. Analytic programming by Means of Soma Algorithm// Mendel '02 In: Proc. 8th

International Conference on Soft Computing Mendel'02, Brno, Czech Republic, 2002, P. 93-101.

3. Zelinka I., Oplatkova Z. Analytic programming // Comparative Study. CIRAS'03, The second International Conference on Computational Intelligence, Robotics, and Autonomous Systems, Singapore, 2003.

4. Zelinka I., Nolle L., Oplatkova Z. Analytic Programming —Symbiloc Regression by Means of Arbitrfary Evolutionary Algorithms //Journal of Simulation. 2012. Vol. 6, N 9. P. 44—56.

5. Koza J. R., Keane M. A., Rice J. P. Performance improvement of machine learning via automatic discovery of facilitating functions as applied to a problem of symbolic system identification //IEEE International Conference on Neural Networks I. 1993. San Francisco, USA. 1993. P. 191—198.

6. Koza J.R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. Cambridge, Massachusetts, London, MA: MIT Press, 1992. 819 p.

7. Bourmistrova A., Khantsis S., Control System Design Optimisation via Genetic Programming in Proc. of IEEE Congress on Evolutionary Computation, Singapore, 2007, P. 1993-2000.

8. Robbins H. Junction phenomena for optimal control with state variable inequality constraints of third order// Journal of Optimization Theory and Applications. 31:1. 1980, P. 8599 .

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