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

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

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

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

Дивеев А.И., Северцев Н.А., Софронова Е.А. ЭФФЕКТИВНЫЙ АЛГОРИТМ ДЛЯ СИНТЕЗА СТРУКТУРЫ СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ

Рассматривается следующая задача синтеза системы автоматического управления. Задана система дифференциальных уравнений, описывающих динамику объекта управления:

х = Г(х,и), (1)

у = V(X,и) , (2)

где х е Яп , и е и с Кт , у е Я/, т < п , и - ограниченное множество.

Задан функционал, описывающий цель управления /

-1 = |/о(х(?),и(?))Л . (3)

о

Необходимо построить систему дифференциальных уравнений, описывающих динамику регулятора.

г=^(г,у), (4)

и = Ь(ъ,у) , (5)

где ъ е Я" , и е И с Ят .

Решение х(^) , г системы (1), (2), (4), (5) Ух (0) е X С Яп и ъ (0) = о , должно обеспечивать минимум

функционала (3).

В отличие от традиционной задачи оптимального управления ищется не функция управления удовле-

творяющая ограничениям и обеспечивающая достижения минимума функционала (3), а ищется система дифференциальных уравнений (4), (5), решение которой совместно с системой уравнений объекта (1), (2) дает необ-

ходимое оптимальное управление. Задачу (1)-(8) называем задачей структурного синтеза систем управления. При решении задачи используем метод генетического программирования. Для более удобного формирования вариаций решения, т.е. вариаций отображений (7), (8) представим формулы, описывающие правые части выражения системы (4), (5) в виде вычислительного графа. Для этой цели определим несколько конечных мно-

жеств.

Множество переменных - это множество символов, вместо которых в процессе вычисления могут подставляться числа из одного определенного ранее числового множества, вещественных чисел Я1 , целых чисел Z , комплексных чисел С или любого другого.

V = , а(е А, г=1,Р, Ае^^С,..^ . (6)

Множество констант - это множество чисел, не меняющихся в процессе вычислений.

К = , к( =сош1;, 1 = 1,К. (7)

Множество унарных операций - это упорядоченное множество функций или однозначных отображений, заданных на числовом множестве.

°1=(А(г);Р2(г);---=Аг(г))- (8)

где Р1(г)'. А—>■ А , Уг е А , Э_у е А=>;у = рДг) , г = \,1¥ , А е {к'^С,...} .

Множество коммутативных бинарных операций с единицей - это множество однозначных отображений декар-

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

°2 = (х1{^',г"),х2(г',г"),...,{г',г")) , (9)

где х(т', z’)^. Ах А = А2 ^ А , Ут', z" е А , Зу е А ^ у = х,(т', т") , г = 1, V .

X (т,т") = X (т"т) , г = 1,V , (10)

Зе е А ^х(е, т) = х (т, е) = т , г = 1, V . (11)

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

Правильная запись операции строится по следующим правилам:

а) записывается символ операции, для унарной операции символ «р », для бинарной операции символ «X

»;

б) к символу добавляется индекс, указывающий на номер операции в соответствующем множестве;

в) после индекса в круглых скобках записываются один или два через запятую, в зависимости от операции аргумента;

г) аргументами бинарной операции являются унарные операции или единица соответствующей бинарной операции, аргументом унарной операции является либо символ бинарной или унарной операции, либо переменная из множества переменных или константа из множества констант;

Сетевой оператор - это ориентированный граф, обладающий следующими свойствами:

а) в графе отсутствуют циклы;

б) к любому узлу, не источнику, имеется хотя бы один путь от узла-источника;

в) от любого узла, не стока, имеется хотя бы один путь до узла-стока;

г) каждому узлу-источнику соответствует элемент из множества аргументов А или из множества констант

К ;

д) каждому узлу соответствует бинарная операция из множества 02 бинарных операций;

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

тт - о Г о о 1г

Для вычислении согласно сетевому оператору первоначально задаем вектор узлов ъ =\2х...2р для хранения промежуточных результатов вычислений. Размерность Р вектора узлов равна количеству узлов в графе. Начальными значениями т0 элементов вектора узлов устанавливаем единичные элементы для соответствующей

бинарной операции. Например, если узлу I соответствует бинарная операция х(т, т2), то т0 должно являться единицей для этой операции,

Xj (т<0, т2 ) = т2 , Ут2 е А •

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

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

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

Теорема 1. Для любой формулы можно построить сетевой оператор, вычисления по которому будут давать те же результаты, что и вычисления по формуле.

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

Так как внутренние скобки формулы относятся к какой-либо унарной операции, то от построенных узлов проведем дуги и определим для них соответствующие унарные операции. На концах дуг установим узлы, соответствующие бинарным операциям. Если две унарные операции являются аргументами одной бинарной операции, то на концах обеих дуг расположим один узел, соответствующий данной бинарной операции. Если вторым аргументом бинарной операции является единица для данной операции, то строим узел, соответствующий бинарной операции, в который входит только одна дуга, соответствующая унарной операции. Если бинарная операция является аргументом унарной операции, то построим от узла, соответствующего бинарной операции дугу и свяжем с ней соответствующую унарную операцию.

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

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

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

Так как сетевой оператор представляет собой ориентированный граф, то его структуру можно описать с помощью матрицы смежности. Для более точного описания сетевого оператора в матрице смежности вместо единиц, которые соответствуют дугам графа, будем записывать номера унарных операций из множества (8), на диагонали - номера бинарных операций из множества (9).

Матрицей сетевого оператора называем целочисленную матрицу, на диагонали которой расположены номера бинарных операций, а остальные элементы либо нули, либо номера унарных операций, причем при замене диагональных элементов на нули, а ненулевых недиагональных элементов на единицы получаем матрицу смежности графа сети, удовлетворяющей условиям а) - в).

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

Определим следующие вариации вычислительного графа:

замена унарной операции на дуге графа;

замена бинарной операции в узле графа;

добавление дуги;

удаление дуги;

удаление узла.

добавление узла;

Последние три вариации должны сохранять свойства а)-в) сетевого оператора. Удаление дуги возможно только, если из узла, из которого выходит удаляемая дуга, имеется еще одна выходящая дуга, и в узел в который входит удаляемая дуга, также имеется еще одна входящая дуга.

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

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

Все вариации формально могут быть описаны целочисленным вектором вариаций из четырех компонент:

^ =[^ w3 -^4 ]Г , (12)

где - номер вариации, - номер строки матрицы сетевого оператора, - номер столбца матрицы

сетевого оператора, - номер бинарной или унарной операции, в зависимости от номера вариации.

Для решения задачи (1)-(5) синтеза структуры системы автоматического управления используем графическое представление формул, описывающих динамику системы управления (4), (5) в виде графа или сетевого

оператора, построенного на основе конечных множеств (6)-(11). При построении алгоритма синтеза используем метод генетического программирования [1,2]. и принцип базисной структуры [3], который позволяет сократить время вычислений за счет исключения проверки правильности полученной структуры в результате выполнения генетических операций.

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

Рассмотрим подробнее этапы генетического алгоритма для решения задачи (1)-(5).

Задаем размерность " >т для искомой системы уравнений (4), (5). Определяем начальную размерность

Р > I + 2" сетевого оператора. Строим базисный сетевой оператор

'¥ = \уу ] , г,' = 1,P , (13)

на основе множеств унарных О и бинарных 02 операций.

Если нет никаких предположений о структуре системы (4), (5) можно в качестве базисного сетевого опе-

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

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

= , (14)

где г - заданная длина хромосомы.

Создаем с помощью генератора случайных чисел популяцию хромосом

W = {w1(•),...,wi^(•)} , (15)

где H - заданный размер популяции.

Вычисляем для каждой хромосомы функцию приспособленности, которую определяем по функционалу (3) и начальным условиям из заданной области

^ ^ _____________________________ _____________________

С =2|/о(х(t),u(t))dt, г = 1,Н , х(0)еХо , ] = 1,ко , (16)

j=1 о

где к0 - заданное количество начальных значений, при которых решается задача (1)-(5). При вычислении

функции приспособленности (16) для каждой хромосомы ^ выполняем вариации базисного сете-

вого оператора

=щ,г о^.о-те'1 "Ч1 , / = 1 ,Н ■ (17)

По полученному сетевому оператору ¥1 вычисляем правые части искомых уравнений (4), (5). Далее для

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

каждого начального условия х' (о)е Хо , j = 1, к0 , интегрируем совместно уравнения (1), (2), (4), (5) и по

полученным функциям х (I) и и () определяем значение функционала (3).

Среди всей популяции находим наилучшую хромосому (■) , имеющую наименьшее значение су* = с функции приспособленности.

Выбираем случайно 2Я хромосом и для каждой пары проверяем условие их скрещивания.

4< — I, г = \л , (18)

с2,- ) \ с2,-+1 )

где % - случайное число, равномерно распределенное в диапазоне от 0 до 1.

Если условие (18) выполняется, то осуществляем получение пары новых хромосом

^+2() = {уч2‘\...,уч2‘’к-\у*2‘-и, (20)

где к - случайно выбранная точка скрещивания, 1 <к<г .

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

Повторяем все операции заданное число раз. В результате отбираем в популяции наилучшую хромосому, которую считаем решением задачи (1)-(5) для заданных размерностей " систем (4) и Р сетевого оператора. При необходимости ищем решения для других значений " и Р .

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

= ХуС2 + (м1) ,

х2 = (и2 ) ,

где

и1, если и > и ' -- и, если и~ < и < и + .

и , если и < и

X = {Х1 < X (о) < х+ , х2 < Х2 (о) < Х+| .

Функционал качества имел следующий вид:

t/ I

I х (t )2 х

3 = | ,

где t/ - время окончания процесса, которое определялось по условию

t, если .^(^ < Е

\Г , если t > t+

a , p , е и t+

постоянные

величины.

Были определены следующие множества унарных операции

01 = {А (2) = г,Р2 (2) = в(2)Аз (2) = г3,Р4 (о) = 31} '

бинарных операций

02 = [хо (2,2) = о + о, х (2,1 ) = 1 • 1}

и переменных

V = |х^ — X, *2 ■

В результате вычислений при пяти ( =5 ) случайно выбранных начальных значениях и

еличин постоян-

¥ =

= ■ г2 , , X + = 2, x2 ' =Г 2 , X+ = 2,

й сетевой оператор:

0 0 0 0 1 0 2 0 0 0 0 0

0 0 0 0 0 1 0 0 0 0 0 0

0 0 0 0 5 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 з 0

0 0 0 0 0 1 1 1 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 з

0 0 0 0 0 0 0 0 0 0 0 4

0 0 0 0 0 0 0 0 1 2 0 0

0 0 0 0 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0

-2 , u+= 2 , a = 1 , P = 1 , Е = 10 , t+= 10 , одним из решений был

по полученному сетевому оператору строим искомую систему уравнений

i2 = {в{х( — х-^1 + 2^х{ - Xj - Zj^j + Xj' - х2 j +

+ (Xl Г X2 + Xf Г X Г Zj) +Z2 + Xjf Г Xj Г Zj +в(^л + Xjf Г X Г Zj) I z3 ,

«1 = ,

«2 — ^2 *

При вычислении использовались следующие параметры генетического алгоритма: начальная популяция -

100, число поколений - 20, число родительских пар - 50, вероятность мутации 0,33.

Работа выполнялась по гранту РФФИ 06-08-01485 Исследование методов структурного синтеза систем автоматического управления

ЛИТЕРАТУРА

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

2. Holland J.H. Adaptation in Natural and Artificial Systems* Ann Arbor: The University of Michigan Press, 1975*

3. Дивеев А.И. Метод синтеза оптимальной структуры безопасной системы автоматического управления// Вопросы теории устойчивости и безопасности систем. 2006, Вып. 8. С. 117-122*

X

X

2

X

u

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