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

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

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

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

{f - \ d13a2 2d33a2ai . d23ai

--3322 1 -di2 X2 + c

a

3

a

a

/

x +

+

_d _d33a2 i d23a2^ /

22 a2

+

x2 +

"3 7

x2 = 0 . (24)

лз

\ 3

Задача 3.

#Построение границы области х^х2) по условию Е(хх, х2)=0 для тепловой машины

#Используем выписанную функцию (24) Е(хь х2)=0 #Используем значения коэффициентов а1; с1; dij для тепловой машины:

ах:=1; а2:=1; аз:=1;

__ 1 ; _ 1___ 1

; С2:_т ^ ; С3

T

minus

T T

minus plus

T .

minus

dn:=0; di2:=0; d2i:=0; d2

1

alpha*T2

-; di3:=0;

plus

d2з:=0; dзз:=0;

#Решаем получившееся уравнение относительно х1 и получаем функцию для расчета границы области х1(х2):

х1:=8о1уе(Г,х1);

_ 1 х2(х2Тт1пи5 _ 2а1рЬаТр21„8 + а^аТ^^)

2

Задача 4.

alphaT

plus

#Нахождение точки экстремума restart;

#Используем выписанную функцию (24): F(xbx2)=0 #Выпишем первое уравнение системы (5) eq:=2*di2*x1+2*d22*x2 = С2; #Выразим x2 из выписанного уравнения: x2 :=solve(eq,x2);

#Подставим полученное соотношение в функцию F(xb x2)=0 (24) и сгруппируем члены при xx: F:= collect(F,x1);

#Найдем дискриминант полученного квадратного уравнения

d:=discrim(F,x1);

d:= lairi 4d22c2a3dii_4d33c2a2dii+4afëd22d

4a3d22

2c2d d

c2d22d33

-8aid33C1C2a2d22 -

-4aid33c2d12a2 8aiCia3C3d22 -4aid22c2a3d13 + +4aid22C3C2d13a2 + 4aid22c3a3c2d12 -

—8aid22c3d12a2 —4aiC2d23C3d22 + 4aid22C2d23a3C1— -2aiC2d23d13a2 + 4aiC2d23d12C3a2 +

+2aiC2d23a3d12 — 8d23C3a3d11C2a2 + 4d22Cia3C2dA — —4d22Cia3C2d12 + 8d22Cia3d12C3a2 +

+8d33C1C2d12a2 + 2c2d12a3d13a2 — 4c3d13C2d12a2 — —4C3a3d22a2C2 — 8C2d23a3d12a2C1 +

+4c2d23a3diia2 + 4c2a^<222 + ^c^ + ^^ + +c2d22a3 + c^a2 + a2c2d23)

#Если найденный дискриминант d больше или равен нулю, поток x1 ограничен сверху и точка экстрему-

max г

ма x1 может быть найдена.

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

Литература

1. Хейвуд Р. Термодинамика равновесных процессов. М.: Мир, 1983.

2. Орлов В.Н., Розоноэр Л.И. Оценки эффективности управляемых термодинамических процессов на основе уравнений баланса энергии, вещества и энтропии: матер. X Всесоюз. совещ. по проблемам управления. М.: Наука, 1986.

3. Цирлин А.М. Математические модели и оптимальные процессы в макросистемах. М.: Наука, 2006.

4. Розоноэр Л.И., Цирлин А.М. Оптимальное управление термодинамическими системами // Автоматика и телемеханика. 1983. № 1. С. 70-79; № 2. С. 88-101; № 3. С. 50-64.

c3ai

a

3

c3a2

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

(Работа поддержана РФФИ, проект № 09-01-00246-а) Е.Ф. Сачкова (ИПС им. А.К. Айламазяна РАН, г. Переславль-Залесский, elenas@u-pereslavl.ru)

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

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

Настоящая работа посвящена описанию программной реализации алгоритма перемещения трехмерной нелинейной системы с двумя линей-

ными управлениями из заданного начального состояния в малую окрестность заданного финального состояния. Написанная в системе компью-

терной математики Maple [1] программа осуществляет последовательное приближение системы к цели с помощью управлений другой, более простой управляемой системы, являющейся аппроксимацией исходной.

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

На базе полученного комплекса программ для приближенного решения локальной задачи управления разработан комплекс программ для приближенного решения глобальной задачи управления.

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

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

Рассматриваются системы вида dx/dt=u1X1(x) + u2X2(x), х 6 R3, u=(u1,u2)£r2, (1)

где XtX2,X3 = [Х1Д2] =^Xi-1X1X2 (2) - линейно независимые гладкие векторные поля в R3 с заданными граничными условиями и точностью: х(0) = х0, х(Т) = х1, £ > 0, (3) где х0, х1 6 R3, Т > 0.

Ставится задача управления: требуется переместить систему (1), удовлетворяющую условию (2), из начального состояния х0 в £ - окрестность конечного состояния х1 за время Т > 0.

Задача (1)-(3) разрешима в R3, так как из условия (2) следует полная управляемость системы (1) в R3 [3].

Алгоритм приближенного решения задачи управления (1)-(3) основан на методе нильпо-тентной аппроксимации системы (1), (2) в окрестности точки x1. В алгоритме используются две управляемые системы: исходная (1), (2) и ее ниль-потентная аппроксимация в окрестности точки x1, которая сводится заменой переменных к симметричной нильпотентной системе dy!/dt= u!,dy2/dt= u2, dy3/dt= (u2y1-u1y2)/2. (4)

Метод приближенного решения задачи управления (1)-(3) заключается в последовательном приближении системы (1) к целевой точке x1 с помощью управлений системы (4), вычисляемых на каждой итерации и точно переводящих систему (4) в целевую точку. Из общей теории следует, что для любой точки x1 существует радиус сходимости 8(х1) > 0 этого алгоритма, такой, что для

всех точек х°, |х° — х1! < 8, строящаяся в алгоритме последовательность приближений qn сходится к x1 [4]. Далее будем решать задачу перемещения системы (1) из точки x0 в точку x1 при условии |х0 — х1! < 8; такую задачу управления назовем локальной. Заметим, что граничным состояниям x0, x1 исходной системы соответствуют граничные состояния y0, 0 соответственно системы (4).

Решения задачи управления для системы (4) с граничными условиями

y(0)=y0, y(T)=T > 0, (5)

найдены в пяти классах управлений: в тригонометрическом, кусочно-постоянном с одним переключением, оптимальном в смысле минимума функционала субримановой длины [5]; центральном и фокусном, построенных с помощью линейных векторных полей на плоскости, имеющих особенность, соответственно, типа центр и типа фокус. Все эти управления реализованы в виде пяти процедур программы FindControlLoc и составляют библиотеку управлений NilpControls.

С помощью локального алгоритма можно построить и глобальный, введя по некоторому правилу промежуточные узлы х1, — ,х£ так, что х1 = х0, х£ = х1 и |х1+1 — х1| < 8(х1).

Описание программы FindControlLoc

Локальный алгоритм приближенного решения задачи управления (1)-(3) реализован в виде компьютерной программы FindControlLoc, написанной на входном языке системы Maple. Отметим существенные характеристики программы, а именно, возможности рассматривать произвольные системы вида (1), (2), выбирать произвольные граничные условия (3) (близкие в смысле 8) и выбирать класс управлений.

Гибкость программы FindControlLoc обусловлена, в частности, тем, что она использует средства Maple-языка — языка процедурного программирования. Фрагменты алгоритма реализованы в нескольких процедурах, которые вызываются из тела программы. Это позволяет использовать один и тот же код для различных классов управлений, экономно проводить вычисления, например, для фиксированного финального состояния вычислять нильпотентную аппроксимацию только один раз. Процедуры программы FindControlLoc: NilpApprox() — вычисляет нильпотентную аппроксимацию системы (1), (2) в точке х 6 R3;

ChangeCoords() — выполняет замену переменных в окрестности точки х1 6 R3;

dsolve(), odeplot() — встроенные процедуры пакета расширения Maple DEtools. Библиотека NilpControls. Все процедуры библиотеки NilpControls вычисляют управления, являющиеся решениями задачи (4), (5):

Optimal() — вычисляет программные управления, оптимальные в смысле минимума функционала субримановой длины

L = J0TJui + u2 dt ^ min;

Trig() — вычисляет программные управления в классе тригонометрических функций;

PieceConst() - вычисляет кусочно-постоянные с одним переключением программные управления, порождающие синтез;

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

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

Focus() — вычисляет программные управления, полученные с помощью линейного поля на плоскости, имеющего в нулевой точке особенность типа фокус (рассматривается неустойчивый фокус). Управления этого класса имеют одно переключение, постоянны на второй половине временного отрезка.

Проанализируем описанную библиотеку. Управления Optimal, Trig решают задачу управления (4), (5) во всем пространстве состояний R3, а управления PieceConst, Centre, Focus, в отличие от первых двух, только в R3 \ {у2 + у| = 0}, это означает, что они неприменимы в случае, если у0 6 {у! + у| = 0}, и нужно искать другую стратегию перемещения. Все управления библиотеки, за исключением Trig, порождают управления с обратной связью, что обусловливает их устойчивость к небольшим погрешностям начального положения.

Программа FindControlLoc.

Входные данные: Х1? Х2 6 Vec(R3), х°, х1 6 R3, T > 0, £ > 0, пс - имя процедуры из библиотеки NilpControls, par(nc) - числовые параметры для процедуры пс;

Выполняемые действия.

1. Инициализируются пакеты расширения системы Maple: linalg, DEtools, plottools, plots.

2. Инициализируются процедуры NilpApprox, ChangeCoords, библиотека NilpControls.

3. Считываются данные: Xi, Х2, х1 .

4. Вычисляется матрица C=NilpApprox(X1, Xi, х1).

5. Считываются данные х0, T, £; из библиотеки NilpControls выбирается процедура-управление пс, считываются числовые параметры par(nc).

6. Входное начальное состояние х0 запоминается в переменной q°, счетчику итераций присваивается нулевое значение: i: = 0.

7. Итерационный процесс реализуется с помощью условного цикла While(Dist(q°, х1)^ £) do ..., где Dist(q0, х1) — евклидово расстояние между точками q0, х1.

¡-я итерация: пусть - приближение к х1 на — 1)-й итерации (считаем ц°=х° приближением к х1 на нулевой итерации);

a) счетчик итераций увеличивается на единицу (1:=1+1);

b) вычисляются координаты начального состояния системы (4): у0 = СЬа^еСооМэ(я0, х1);

c) с помощью процедуры пс б№1рСоп1гок вычисляются управления и запоминаются в массиве переменной длины и[Ц:=№1рСоп1> го18(пс)(у°, Т, раг(пс)) (номер ячейки массива равен значению счетчика итераций);

ё) численно решается задача Коши: 1га| = dso1ve(X1, Х2,и[ЦОО, я0);

е) вычисляется следующее приближение к финальной точке х1: =1га^Т).

8. Если 0151(ц°, х1)< £, то переменной N присваивается количество итераций 1, если N=0, то программа останавливается, если N>0, то переходит к следующему пункту.

9. Делается линейное преобразование переменной I в управлениях иЩ(1), 1=1,...,№

10. Управления и[Ц(1), 1=1,.умножаются на функции 8Щ с соответствующими номерами 1, где

(0, если I 6 [0,(1 — 1)Т/№|, 8[1]=]1, если 16 [(¡ — 1)Т/N,iТ/N], [0, если I 6 [iТ/N,Т]),

полученные функции, определенные на временном отрезке [0, Т], суммируются. Получаются искомые управления и(1)

11. Делается проверка: управления и(0 подставляются в исходную систему (1), численно решается задача Коши: 1га| =dso1ve(X1, Х2,и(1),

вычисляется состояние, в которое приходит система: я0 =1га|(Т); вычисляется 0151(ц°, х1).

Вывод результата.

1. Если 0151(ц0, х1)< £, то управление ифД 6 [0, Т], выводится аналитически и графически. Трехмерное изображение траектории исходной системы выводится с помощью функции odeplot; для анализа результата выводятся ее двухмерные проекции и графики компонент.

2. Если 0151(ц0, х1)^ £, то выводится сообщение об ошибке.

Конец программы.

Проанализируем возможные причины ошибок:

1) недостаточная точность £ в итерационном процессе;

2) наличие фазовых ограничений: траектория системы может выходить за пределы области;

3) задача не локальна для выбранного класса управлений.

Для устранения ошибок дадим следующие рекомендации. В первом случае надо повысить точность в итерациях; во втором можно поварьиро-вать параметры раг(пе) или выбрать другую про-

цедуру nc; в третьем случае следует выбрать другую процедуру nc или построить глобальный алгоритм.

Программный комплекс

Процедурные свойства Maple-языка позволили создать библиотеку процедур приближенного решения локальной задачи управления FCL. Каждая процедура - это программа FindControl-Loc(nc), nc - процедура библиотеки NilpControls. Из основной программы GlobAlg вызываются процедуры FCL, которые, в свою очередь, вызывают процедуры NilpControls, Nilpapprox, встроенные процедуры Maple. Программа GlobAlg может быть организована линейно, в виде цикла For ... , в смешанном варианте. Программа GlobAlg универсальна. Она позволяет решать локальные и глобальные задачи управления вида (1)-(3) точно для подкласса неголономных систем -нильпотентных управляемых систем, и приближенно - для произвольных систем вида (1), (2). Решая глобальную задачу управления, можно для каждой локальной подзадачи использовать свою процедуру из библиотеки FCL, что означает возможность конструирования комбинированных алгоритмов. Эти возможности программного комплекса позволяют рассматривать глобальные задачи управления с фазовыми ограничениями. Такие задачи возникают, например, при решении задач управления для систем с трехмерными орбитами и двухмерным линейным управлением без ограничений. Комбинированные алгоритмы апробированы на примере такого рода задач - на задаче импульсного управления двухзвенным манипулятором с естественными фазовыми ограничениями.

На рисунке 1 показана структура программного комплекса для решения задачи управления (1)-(3). Основная программа GlobAlg преобразует входные данные Xl5 Х2 £ Vec(R3), х0, х1 6 R3, Т > 0, £ > 0, в функции u1(t),u2(t) 6 КС[0,Т], такие, что соответствующая траектория исходной системы выходит из начальной точки и входит в е-окрестность финальной точки. Если в задаче имеются фазовые ограничения, то программа не учитывает их автоматически и необходимо конст-

Рис. 1. Структура программного комплекса

руировать алгоритм, опираясь на свойства управлений библиотеки NilpControls.

Пример управления ориентацией катящейся по плоскости сферы

Управляемая система, описывающая качение сферы по плоскости без прокручивания и проскальзывания, описана в [3]. Рассмотрим подсистему этой системы, описывающую изменение ориентации сферы. Переходя в этой подсистеме от ортогональных 3x3 матриц к кватернионам и применяя проекцию на трехмерное пространство, получим следующую систему: аХ!/^ = -ХзЫ! + Х2Ц2,

dx2/dt = - - х2 - х2 - х2 и! - х^и2, ахз/а1 = х1и1 - - х1 - х2 - хЗ и2, (6)

Ч = (Х1,Х2,Хз) £Вз = {х1 +Х2 + хЗ < 1},

и = (и1,и2) е к2.

С помощью компьютерной программы Find-ControlLoc задача управления (1)-(3) для системы (6) решена в пяти классах управлений с использованием пяти процедур библиотеки NilpControls. Пример работы программы ¥тйСои1го1Ъос. Входные данные: векторные поля системы (6)

Х1 = (-Хз ,- I1 - Х1 - х2 - хЗ-х1)Т,

Х2 (х2 ' х1 < х1 х2 Х3)Т,

граничные условия: х0 =[.3555263893, .2583050417, .1359392951], х1 =[.1381591491, 0., .05841275134];

время Т = 1; точность £ = 10_б, nc 6 NilpControls, par(nc).

Выполняемые действия: Dist^0^1) =.3463818366; Коэффициенты нильпотентной аппроксимации в точке х1 :

С =/-.06987008492 -0.5 \

V 0.5 -.0698700849

Таблица зависимости N = N(nc, par(nc)):

Процедура пс Параметры раг(пс) Число итераций N

Optimal 6

Trig 1. 5

PieceConst 1.8849555922 5

Centre (1, 4, -1) 8

Centre (0, 5, -3) 4

Focus (0, 5, -2, 0.3) 3

Выходные данные: управления u(t), te [0, 1].

Пример импульсного управления манипулятором

Рассматривается управляемая система, моделирующая импульсное управление двухзвенным манипулятором:

ах1/а1=

—и1х3(х3 + С05х2)/(2 + 2х3совх2 + х3) — и2 5тх2/(2 + 2х3совх2 + х2), ах2/^ = и1,

ах3/а1 = и2, (7)

где х = (х1,х2,х3) 6Я3, и = (и1,и2) 6 R2,

с граничными условиями

х(0) = (л/4, л/2,1), х(Т) = (л/2,0,2) (8) и фазовыми ограничениями — л/2 < х1 < л/2, —л/2 < х2 < л/2, 0 < х3 < 2. (9)

Для приближенного решения задачи (7)-(9) применяется следующая стратегия, реализуемая программой GlobAlg. На первом шаге решения задачи (7)-(9) выбирается промежуточная целевая точка внутри области (9), и система (7) с границы области (9) перемещается в выбранную целевую точку с помощью постоянных управлений. Затем внутри области (9) выбирается вторая промежуточная цель, достаточно близкая к первой, и решается двухточечная граничная задача управления двумя способами: 1) с помощью центральных управлений исеп1ге(1), £ = 10"2, 2) с помощью оптимальных управлений иор1(1), £ = 10_3. На последнем шаге решения задачи (7)-(9) система (7) посредством постоянных управлений перемещается из £-окрестности второй промежуточной целевой точки в £-окрестность финальной точки условия (8). В первом случае траектория системы (7) называется центрально-постоянной траекторией. Она приходит в финальную точку условия (8) с точностью £ = 10"2. Во втором случае траектория системы (7) называется оптимально-постоян-

ной траекторией, она приходит в финальную точку условия (8) с точностью £ = 10_3. В течение общего времени движения Т = 1 обе траектории остаются в области, являющейся объединением параллелепипеда (9) и соответствующей £-окрест-ности терминальной точки.

Подытоживая, следует отметить, что в статье приводится компьютерная реализация FindCon-trolLoc вычислительного алгоритма приближенного решения локальной задачи управления (1)-(3). Описывается библиотека управлений NilpControls, благодаря которой программа FindControlLoc осуществляет пять стратегий управления системой в малой окрестности целевой точки. Описывается программный комплекс, основанный на базовой программе FindControlLoc, который позволяет решать глобальные задачи управления с фазовыми ограничениями. Приводятся примеры работы локального алгоритма и глобального, учитывающего фазовые ограничения системы. Дальнейшее развитие программного комплекса для повышения эффективности вычислений планируется с использованием методов параллельного программирования.

Литература

1. Дьяконов В. Maple 6: учебный курс. СПб: Питер, 2001.

2. Гурман В.И. Принцип расширения в задачах оптимального управления. М.: Наука, 1997. 288 с.

3. Аграчев А.А., Сачков Ю.Л. Геометрическая теория управления. М.: Физматлит, 2005.

4. Jean. F. // Lectures on Dynamical and Contol Systems, Trieste, 2003.

5. Сачкова Е.Ф. Решение задачи управления для нильпо-тентной системы // Дифференциальные уравнения. 2008. № 12. С.1704-1707.

АЛГОРИТМ РАСЧЕТА ТЕХНОЛОГИЧЕСКОЙ И ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРЕДПРИЯТИЯ

(Работа выполнена при финансовой поддержке РФФИ, грант № 08-06-00141)

С.А. Амелъкин, к.т.н. (ИПС им. А.К. Айламазяна РАН, г. Переславлъ-Залесский, sam@sam.botik.ru)

В работе рассматривается производственное предприятие, работающее в открытой экономической системе. Технологическое оборудование предприятия представляет собой тепловую машину. Требуется определить максимальное значение термодинамической (КПД тепловой машины) и экономической (рентабельности предприятия) эффективности такого производства. Получены условия оптимальности для этой задачи.

Ключевые слова: открытая экономическая система, тепловая машина,термодинамическая и экономическая эффективность производства.

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

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

Подробно изучен случай, когда технологическая линия представляет собой тепломеханическую систему (например тепловую машину). Исследования в этой области получили название «термоэкономика» [1]. Кривая производственных

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