УДК 519.714
ЗАДАЧА СТРУКТУРНОГО СИНТЕЗА СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ
А.И. Дивеев, Е.А. Софронова
Кафедра технической кибернетики Российский университет дружбы народов 117198, Москва, ул. Миклухо-Маклая, б
Дана математическая формулировка задачи структурного синтеза системы автоматического управления. Предложено для решения задачи применить метод генетического программирования, а для описания возможных структур системы управления использовать сетевой оператор.
Синтез структуры системы автоматического управления формально представляет собой добавление к математической модели объекта управления математической модели регулятора, причем совместная математическая модель всей системы управления должна удовлетворять определенным ограничениям и обеспечивать получение решения некоторой оптимизационной задачи.
Пусть объект управления описывается следующей системой уравнений
х = Г(х,и), (1)
у = у(х,и), (2)
где х = [х]. ..хя]Г - вектор пространства состояний объекта, х е Яп,
У -\y\---yiY ' вектор наблюдения, у е , и = \и\... ит - вектор управления,
и е £/ с; Ят, и - ограниченное замкнутое множество, С(х,и) =
= [/| (х,и)... /п (х,и)^, у(х, и) = [у] (х, и)... V/ (х, и)]2" - вектор функции, соответственно размерностей п и I, описывающие непрерывные однозначные отображения:
ф,и):
у(х,и): ЯпхКт^К1.
Для системы дифференциальных уравнений (1), описывающих динамику объекта управления, заданы начальные условия
х(0)=х° =
Система алгебраических уравнений (2) называется моделью наблюдателя.
Для объекта управления (1), (2) необходимо построить регулятор, динамика которого описывается системой уравнений следующего вида:
* = ё(2»у)> (4)
и = Ь(г,у), (5)
где г = \г\...2д~\Г - вектор состояния регулятора, г е №.
...хп
(3)
Для системы дифференциальных уравнений регулятора (4) заданы нулевые начальные значения
г(о) = = (р^лУ|. (6)
Ч
Регулятор (4), (5) должен обеспечивать достижение цели управления, сформулированной в виде функционала качества
ч
■Л) = |/о (*»«)# -> т*п> (7)
о
где /у - время длительности процесса управления, и выполнение ограничений
'/ ____________________
'1к = <0, ^ = 1,^. (8)
0
Решением задачи (1)-(8) является построение системы уравнений (4), (5), для которой первоначально не заданы размерность q и конкретный вид соотношений. Единственным свойством системы уравнений (4), (5) является то, что она описывает непрерывное, не обязательно дифференцируемое, однозначное отображение:
g(Z,y):
Ь(г,у): Д^хд'->ДШ.
Необходимо также при поиске вида уравнений (5) учитывать ограничения на управление, и е и.
Задачу (1)-(8) называем задачей структурного синтеза системы управления.
Часто поиск регулятора осуществляется в рамках заданных структур, тогда в самой структуре определяется дополнительно набор параметров, значения которых выбираются в соответствии с критерием качества (7) и ограничениями (8). Например, если регулятор ищется в классе типовых линейных звеньев, то система уравнений (4) может быть заменена следующей системой:
г = С((1)г + Ну, (9)
где С(<1) матрица размерности д х ц , элементы которой зависят от значений вектора (1 = [а?] ... с1с искомых параметров, йе й с: Л0, О - ограниченное множество значений параметров, Н - постоянная матрица размерности I х ц .
Регулятор (4), (5) может искаться в классе адаптивных, нелинейных, а также других видов регуляторов. Система уравнений (4), (5) с неизвестной правой частью
в этом случае заменяется системой с заданным видом правой части, но с неизвест-
ными значениями параметров
г = 1(М,у), (Ю)
и = £(г,а,у), (11)
где векторные функции правых частей выбираются из заданного множества структур
(|(гЖуЩг,а,у))еС^ЧМ,у)У (М,у))^2М,у),Ь2(г,с1,у))1...} .
Задачу (1)-(3), (7), (8), (10), (11) называем задачей структурно-параметрического синтеза.
Если множество структур (7 содержит только одну структуру,
И = 1, (12)
то получаем задачу параметрического синтеза системы управления.
Задача параметрического синтеза относится к классу задач нелинейного программирования [1], а задача структурно параметрического синтеза - к классу задач смешанного программирования [2].
Задачу структурного синтеза системы управления (1)-(8) точно нельзя отнести ни к одному известному классу оптимизационных задач. Скорее всего, если учитывать, что все пространство структур является счетным, т.е. все возможные виды правых частей системы уравнений (4), (5) могут быть перечислены, то задачу структурного синтеза системы управления можно отнести грубо к классу задач дискретной оптимизации [2]. Однако такая классификация возможна, если на пространстве структур установлен порядок их перечисления, т.е. для любой структуры определено соответствующее целое число, причем по значению этого числа можно определить соответствующую ему структуру.
В задаче (1)-(8) структурного синтеза системы управления установление порядка перечисления структур само по себе является сложной задачей из-за огромного размера пространства и отсутствия дополнительных отношений, определяющих порядок в пространстве структур. Если установить отношение порядка в структурах по значению целевого функционала (7), то получается, что для установления порядка требуется полный перебор всех возможных решений, а множество решений является бесконечным. Принципиальным в данной задаче является то, что множество решений не упорядочено и бесконечно.
Определение 1.
Класс задач дискретной оптимизации на не упорядоченном бесконечном множестве решений будем называть задачей структурной оптимизации.
К классу не управленческих задач структурной оптимизации можно отнести задачу написания оптимального алгоритма на множестве известных алгоритмов, решающих частные задачи или задачу построения оптимального графа на множестве допустимых подграфов. В данном классе задач решение проблемы упорядочивания элементов множества решений по некоторому критерию сравнимо по сложности вычислений с решением самой исходной задачи оптимизации.
Задача структурного синтеза (1)-(8) системы управления является основной задачей управления, так как в результате ее решения получаем математическую модель (1)-(6) замкнутой системы управления, по которой возможно исследование свойств системы и ее практическая реализация.
Наиболее часто задача структурного синтеза разбивается на две отдельные оптимизационные задачи, которые решаются последовательно в два этапа.
На первом этапе решается задача оптимального управления (1)-(3), (7),(8). Данная задача относится к классу задач бесконечномерной оптимизации, и для ее решения используются методы вариационного исчисления, динамического програм-
мирования [3] или принцип максимума Понтрягина [4]. В результате решения данной задачи получаем на всем временном отрезке процесса управления оптимальные значения вектора пространства состояний и вектора управления, х(/), и(?),
*е[о,7у] .
В некоторых случаях [5] при решении задачи оптимального управления методом динамического программирования Беллмана можно непосредственно получить зависимость оптимального управления как функции от вектора пространства состояний. Данная функция определяет структуру регулятора (4), (5), в котором отсутствует система дифференциальных уравнений (4), ^ = 0, и вектор наблюдения совпадает с вектором пространства состояний
и = Ь(х).
Однако даже ограничение на управление и е V для получения данной зависимости оказывается существенным препятствием, а в большинстве случаев уравнение Беллмана, которое представляет собой нелинейное уравнение в частных производных, не имеет решения в квадратурах.
На втором этапе осуществляется построение регулятора (4), (5), обеспечивающего нахождение объекта в окрестности полученных оптимальных решений
(13)
КО-*('1+!«(')-«Я -» шт, V/ е [о При этом в регуляторе устанавливается блок, генерирующий программную траекторию х(/), и(/), Ге[0, /у ] , а регулятор работает по величине отклонения от
нее. Построение регулятора по критерию (13) может и не обеспечивать решение задачи (1)-(8). Однако использование критерия (13) позволяет в большинстве случаев осуществлять линеаризацию системы (1), (2) в окрестности оптимального решения х(/), и^), е [о,/у] , а это, в свою очередь, позволяет целенаправленно
изменять свойства замкнутой системы управления с учетом свойств синтезируемого регулятора (4), (5). В частности, в замкнутой системе управления (1), (2), (4), (5) можно придать свойство аттрактора оптимальной траектории, т.е. существование
некоторых окрестностей Ох(/)с:/?”, Ом(?)с=/?,и, для которых выполняются условия
Нгп |х(?)-х(/| + |и(/)-и(г| = 0, х(/)еОх(/), и(()еОа(|). (14)
/—>оо
Двухэтапный синтез системы управления не решает исходную задачу (1)-(8), а заменяет ее двумя другими более простыми с вычислительной точки зрения задачами. Тем не менее, все же вызывает интерес поиск метода решения исходной задачи (1)-(8).
Рассмотрим подробнее множество возможных решений. Система уравнений (4), (5) должна содержать правые части в виде алгебраических выражений, представляющих собой набор функций и арифметических операций, аргументами которых могут являться элементы векторов наблюдения у, пространства состояний регулятора г , а также константы и начальные условия х(о).
Единственным требованием к правым частям уравнений (4), (5) является возможность вычисления по ним численных значений при заданных численных значениях аргументов. Таким образом, правые части уравнений (4), (5) должны представлять собой программно-реализуемые вычислительные алгоритмы. Это означает, что одним из методов решения задачи является построение алгоритма для автоматического написания программ.
В 1992 году профессор Дж. Коза предложил для решения задачи автоматического написания программ использовать генетический алгоритм [6]. Для этой цели он усовершенствовал алгоритм, введя в рассмотрение вместо битовых строк хромосом символьные строки. Каждая строка символов представляет собой польскую запись вычислительной процедуры. Для строк польских записей Коза модифицировал генетические операции скрещивания и мутации. В результате этих операций строки символов могут изменять свою длину, что существенно влияет на результат вычислений. Разработанный метод был назван генетическим программированием [7,8].
Применение строки польской записи в качестве хромосомы требует использования в вычислениях анализатора строк, который должен расшифровывать польскую запись. Это существенно замедляет процесс вычислений. К тому же польская запись не позволяет определить величину малой вариации, т.е. оценить - насколько изменится результат вычислений при малом изменении строки.
Рассмотрим другой подход в генетическом программировании, основанный на применении сетевого оператора [8].
Определим конечное множество унарных операций
му, например, вместо операции извлечения квадратного корня вещественного чис-
Для бинарных операций определим результат вычислений при отсутствии одного из аргументов
Бинарные операции также должны удовлетворять дополнительному требованию
ла у[г необходимо использовать операцию извлечения квадратного корня из модуля вещественного числа
Определим конечное множество коммутативных бинарных операций
(17)
Условие (18) позволяет из бинарной операции получить п -арную. Определим конечное множество аргументов
(19)
Определение 2.
Сетевым оператором называется ориентированный граф С^Е), где V = {VI } - множество узлов, Е = (е1,...,ем) - множество дуг, или пар уз-
лов, е,- = ,уу. )., 1 < к; < N, 1 <]{< N, і = \,М, обладающий следующими
свойствами:
а) в графе отсутствуют циклы;
б) к любому узлу, не источнику, имеется хотя бы один путь от узла-источника;
в) от любого узла, не стока, имеется хотя бы один путь до узла-стока;
г) каждому узлу-источнику соответствует элемент из множества аргументов А ;
д) каждому узлу, не источнику, соответствует бинарная операция из О2;
е) каждой дуге графа соответствует унарная операция из 0\.
Для вычислений согласно сетевому оператору необходимо пройти все пути в графе, выполняя последовательно операции, которые соответствуют встреченным на пути узлам и дугам. Результаты промежуточных вычислений необходимо сохранять. Для каждого узла хранится результат, который был получен по мере прохождения пути от источника до данного узла. Если через узел проходит несколько путей, то вычисления производятся следующим образом. При попадании в узел по первому пути выполняем бинарную операцию в соответствии с условием (17) и сохраняем результат вычислений. При попадании в узел по следующим путям используем сохраненный результат в качестве одного из аргументов бинарной операции.
Так как сетевой оператор представляет собой ориентированный граф, то его структуру можно описать с помощью матрицы смежности. Для более точного описания сетевого оператора в матрице смежности вместо единиц, которые соответствуют дугам графа, будем записывать номера унарных операций из множества (15), на диагонали - номера бинарных операций из множества (16).
Определение 3.
Матрицей сетевого оператора называется целочисленная матрица, на диагонали которой расположены номера бинарных операций из множества (16), а остальные элементы либо нули, либо номера унарных операций из множества (15), причем при замене диагональных элементов на нули, а ненулевых недиагональных элементов на единицы получается матрица смежности графа сети, удовлетворяющего условиям а, б, в.
Матрицу смежности любого ориентированного графа без циклов всегда можно представить в верхнетреугольном виде за счет изменения нумерации узлов.
В качестве примера рассмотрим систему алгебраических уравнений
Для реализации вычислений введем множество унарных операций
°\ = |р1 (2) = Р2 (2) = ^п(4 РЗ (2) = С08(4 Р4 М =
множество бинарных операций
02 = ІХ1 (*'. г’) = + Л Х2 (*'. г’) = 2' • *■}
и множество аргументов
А - {а, Ь, с}.
Тогда матрица сетевого оператора для данной системы будет иметь вид
'10 0 1
0 10 4
0 0 10
х¥= 0 0 0 1
0 0 0 0
0 0 0 0
0 0 0 0 Граф сетевого оператора представлен на рис. 1.
0
0
1
0
2
1
0
Рис. 1. Граф сетевого оператора
На графе в источниках помещены аргументы, так как при действии на них бинарных операций, согласно условию (17), их значения не изменяются.
Для вычислений по сетевому оператору первоначально создается вектор узлов
s = [sl...SpY размерности Р, равной количеству строк в матрице сетевого оператора, предназначенный для хранения результатов промежуточных вычислений. Удобно в качестве начальных значений элементов вектора узлов в задать такие величины, чтобы при выполнении соответствующей бинарной операции для одного аргумента выполнялось условие (17), т.е. результатом операции было значение самого аргумента. Например, если і -му узлу соответствует бинарная операция сложения, то начальное значение і -го элемента принимается равным нулю, 5/ = 0,
1 < /' < .Р . Для операции умножения начальное значение элемента задается равное единице.
Начальные значения элементов вектора узлов в, соответствующих узлам-источникам, зададим равными значениям аргументов.
где /о - множество номеров узлов источников. Узел-источник в матрице сетевого
оператора соответствует столбцам с нулевыми недиагональными элементами. В дальнейшем последовательно проходим по строкам матрицы сетевого оператора. Для недиагонального ненулевого элемента выполняем унарную операцию в соответствии с номером этого элемента. Результат операции используем в качестве второго аргумента бинарной операции, номер которой указан в диагональном элементе, расположенном в том же столбце. Первым аргументом для данной бинарной операции является значение соответствующего элемента вектора узлов. После вычислений значение рассматриваемого элемента вектора узлов заменяем полученным результатом.
5У = Ъуи (*У ’ Рч/у Ь)) ’ 1 = Р ’ ІФ 1 ’ (21}
где - диагональный элемент матрицы 4і сетевого оператора, ці у - недиагональный ненулевой элемент матрицы Ч* сетевого оператора.
После прохождения всех строк результаты вычислений оказываются в элементах Я;, вектора узлов, соответствующих номерам узлов-стоков, і; є І] , где І\ -
множество номеров узлов-стоков. Номера узлов-стоков соответствуют номерам строк матрицы сетевого оператора Ч* со всеми нулевыми недиагональными элементами.
Приведем пошаговое описание алгоритма.
Шаг 0. Заданы: матрица сетевого оператора Ч* = [м;у] , /, / = 1 ,Р\ множества
унарных (15), бинарных (16) операций и аргументов (19), а также множества номеров узлов-источников /0 и узлов-стоков /|. Для узлов-источников определены
элементов, соответствующих номерам узлов-источников, задаем значения равные аргументам (20). Для остальных элементов задаем значения, обеспечивающие выполнение условия (17).
(20)
конкретные элементы множества аргументов,
Шаг 1. і = 1. Задаем начальные значения вектора узлов
%ЧМ(г) j = hP, І £Іо-Шаг 2. у = / +1.
Шаг 3. Если і\іу - 0, то переходим на шаг 5.
Шаг 5. _/ = у + 1. Если у < Р, то переходим на шаг 3.
Шаг 6. і - і +1. Если і < Р, то переходим на шаг 2, иначе завершаем вычисления.
Результат вычислений получаем в виде значений элементов вектора узлов £г-,
Сетевой оператор удобен для использования в алгоритмах генетического программирования, так как он полностью описывается несложными математическими конструкциями: целочисленной матрицей сетевого оператора Ч* , тремя конечными множествами: унарных операций 0\, бинарных операций , аргументов А, и вещественным вектором узлов в.
Для получения новых решений определим множество операций над сетевым оператором. Операции должны модифицировать граф сетевого оператора и сохранять условия а, б, в. Используем следующие элементарные операции:
0) изменение номера унарной операции, что соответствует изменению в матрице 4х сетевого оператора значения ненулевого недиагонального элемента,
1) изменение номера бинарной операции, что соответствует изменению в матрице ¥ сетевого оператора значения диагонального элемента, 1 < ц/ц < |{?21 >
2) добавление новой дуги, что соответствует изменению в матрице 4х сетевого оператора значения нулевого недиагонального элемента на целое число, соответствующее номеру унарной операции из 0\;
3) удаление дуги, что соответствует замене в матрице 4х сетевого оператора ненулевого недиагонального элемента нулевым значением, причем для сохранения условий а, б, в такая операция выполняется только для строки, содержащей не менее трех ненулевых элементов и пересекающейся на диагонали со столбцом, который также содержит не менее трех ненулевых элементов, ц/у = 0, если
4) добавление нового узла, что соответствует вставке в матрицу 4х сетевого оператора новой строки и нового столбца, причем для сохранения условий а, б, в для новых столбца и строки необходимо иметь ненулевой диагональный элемент и хотя бы по одному ненулевому недиагональному элементу, Р = Р +1, 1 <к <Р,
¥к,к+1 =1» ¥к-\,к =1-
5) удаление узла, не являющегося источником или стоком, что соответствует уменьшению размерности матрицы ¥ сетевого оператора, причем для выполнения
V/ є /,.
!</<?;
(22)
Ч'і,Р-]=Ч'і,Р-]-1> І = ЬР, ] = 0,Р-к-\, у/ц = 0, у = 0,Р, \<іукк<\02
условий а, б, в ненулевые недиагональные элементы следует сохранить, 1 <к < Р, Ч'кк ~ Ч'к+Іук+Х’ У*ік ~ ікУ^ік — ^(У'ік^Уі,] > г = к,]£Іц^Іі,
Ущ =^К+(1'-Ф^)Ь’ / = 1>Л і,к$І0иІ\, Р = Р-1.
Все перечисленные операции модифицируют сетевой оператор, но оставляют выполнение условий а, б, в. Формально любую из перечисленных операций можно представить вектором из четырех целых чисел.
ту = [и1! м>2 И'з и>4 У» (23)
где м>\ - номер операции, м>\ є {О,... ,5}, - номер строки элемента матрицы се-
тевого оператора, над которым совершается операция, 1 < м>2 ^ Р, Щ -номер столбца элемента, над которым совершается операция, и»2 ^ Щ — Р ’ Щ ' дополнительное число, определяющее в зависимости от номера операции либо номер операции, любо номер узла сетевого оператора, 1 < \,
10\ |, если IV] е {0,2}
= |02І> если М>1 Є {1,3} .
Р, если М>1 € {4,5}
Использование элементарных операций 0)-5) позволяет получать любой сетевой оператор, ограниченный только множествами операций 0\, 02 и аргументов А .
Для построения какого-либо сетевого оператора 4у достаточно взять произвольный сетевой оператор с матрицей ¥ ® и применить к нему несколько элементарных операций
= ту1 »1У2 о...ОТУ'0 оЧР°, (24)
где ТУ* =
..У .
Щ 2 н’з ^4 ] - вектор элементарных операции.
Заметим, что согласно определению среди элементарных операций возможна и тождественная операция, не изменяющая вид сетевого оператора, например элементарная операция 1? = [о / _/ у/у , где у/у - значение матрицы сетевого оператора ЧР, на которую должна воздействовать данная элементарная операция. Тогда ЧР = €°Ч'.
Отсюда получаем, что для фиксированного сетевого оператора любой другой сетевой оператор определяется только упорядоченным множеством целочисленных векторов !¥()= (ту1,...^).
Это обстоятельство позволяет построить генетический алгоритм, основанный на принципе базисной структуры. Суть принципа заключается в том, что в качестве возможного решения или хромосомы в генетическом алгоритме используется не
искомая матрица 4х сетевого оператора, а упорядоченное множество )^(-)= (ту1,...,^^| элементарных операций, которые в результате действий на
матрицу базисного сетевого оператора ^ ® позволяют получить искомое решение
T=W1 ow2 o...owflof0,
Генетические операции скрещивания и мутации производятся не с матрицами сетевых операторов 'F, а с упорядоченными множествами элементарных
операций. Такой подход при построении генетического алгоритма позволяет получить два существенных преимущества перед методами генетического программирования [7], использующих в качестве решения строку описания структуры. Во-первых, операции скрещивания и мутации оказываются простыми и принципиально не отличаются от классических операций генетического алгоритма [6]. Во-вторых, хромосомы, описывающие возможные решения, оказываются одной длины, несмотря на то, что в результате действия хромосом fV(-) на сетевой оператор можно получать матрицы разной размерности.
Работа выполнена по теме гранта РФФИ 06-08-01485-а «Исследование методов структурного синтеза систем автоматического управления».
ЛИТЕРАТУРА
1. Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. - М.: Мир, 1928.-584 с.
2. Кофман А., Анри-Лобордер А. Методы и модели исследования операций. Целочисленное программирование. - М.: Мир, 1977. - 432 с.
3. Беллман Р. Динамическое программирование. - М.: Иностранная литература, 1960.-400с.
4. Понтрягин Л.С., Болтянский В.Г., Гамкршидзе Р.В., Мищенко Е.Ф. Математическая теория оптимальных процессов. - М.: Наука, 1969. - 384 с.
5. Афанасьев В.Н., Колмановский В.Б., Носов В.Р. Математическая теория конструирования систем управления. - М.: Наука, 1989, 448 с.
6. Holland J.H. Adaptation in Natural and Artificial Systems. - Ann Arbor: The University of Michigan Press, 1975.
7. Koza J.R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. - Cambridge, Massachusetts, London, MA: MIT Press, 1992. - 819 p.
8. Дивеев А.И., Софронова E.A. Основы генетического программирования. - М.: Изд-во РУДН, 2006. - 48 с.
THE PROBLEM OF STRUCTURE SYNTHESIS FOR AUTOMATED CONTROL SYSTEM
A.I. Diveev, E.A. Sofronova
Technical Cybernetics’ Department Peoples’ Friendship University of Russia 6, Miklukho-Maklayci St., Moscow, Russia, 117198
The problem formulation for structure synthesis of automated control system is given. The application of genetic programming to solve this problem and network operator to describe possible structures is proposed.