На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

4
Ожидается:
09 Декабря 2024

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

Статья опубликована в выпуске журнала № 2 за 2009 год.
Аннотация:
Abstract:
Автор: Сачкова Е.Ф. () -
Ключевые слова: программа, алгоритм, нильпотентная аппроксимация, управляемая система, нелинейная система, задача управления
Keywords: software, algorithm, nilpotent approximation, , nonlinear system,
Количество просмотров: 16816
Версия для печати
Выпуск в формате PDF (4.72Мб)

Размер шрифта:       Шрифт:

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

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

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

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

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

Рассматриваются системы вида

=, ,

,                                           (1)

где     (2)

– линейно независимые гладкие векторные поля в R3 с заданными граничными условиями и точностью: , ,,               (3)

где , , .

Ставится задача управления: требуется переместить систему (1), удовлетворяющую условию (2),из начального состояния  в  – окрестность конечного состояния  за время      

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

Алгоритм приближенного решения задачи управления (1)–(3) основан на методе нильпотентной аппроксимации системы (1), (2) в окрестности точки x1. В алгоритме используются две управляемые системы: исходная (1), (2) и ее нильпотентная аппроксимация в окрестности точки x1, которая сводится заменой переменных к симметричной нильпотентной системе

                      (4)

Метод приближенного решения задачи управления (1)–(3) заключается в последовательном приближении системы (1) к целевой точке x1 с помощью управлений системы (4), вычисляемых на каждой итерации и точно переводящих систему (4) в целевую точку. Из общей теории следует, что для любой точки x1 существует радиус сходимости этого алгоритма, такой, что для всех точек , строящаяся в алгоритме последовательность приближений qn сходится к x1 [4]. Далее будем решать задачу перемещения системы (1) из точки x0 в точку x1при условии ; такую задачу управления назовем локальной. Заметим, что граничным состояниям x0, x1 исходной системы соответствуют граничные состояния y0, 0 соответственно системы (4).

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

=, =,                                    (5)

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

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

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

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

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

Процедуры программы FindControlLoc:

NilpApprox()  вычисляет нильпотентную аппроксимацию системы (1), (2) в точке ;

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

dsolve(), odeplot()встроенные процедуры пакета расширения Maple DEtools.

Библиотека NilpControls.

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

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

;

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

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

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

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

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

Программа FindControlLoc.

Входные данные: , Vec(), , , , , – имя процедуры из библиотеки NilpControls,  – числовые параметры для процедуры ;

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

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

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

3. Считываются данные: , , .

4. Вычисляется матрица =NilpApprox, , .

5. Считываются данные , , ; из библиотеки NilpControls выбирается процедура-управление , считываются числовые параметры

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

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

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

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

b) вычисляются координаты начального состояния системы (4): = ChangeCoords );

c) с помощью процедуры NilpControls вычисляются управления и запоминаются в массиве переменной длины :=NilpCont- rols(), , ) (номер ячейки массива равен значению счетчика итераций);

d) численно решается задача Коши:  = dsolve, , ;

e) вычисляется следующее приближение к финальной точке : =

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

9. Делается линейное преобразование переменной  в управлениях , i=1,…,N.

10. Управления , i=1,…,N, умножаются на функции  с соответствующими номерами i, где

полученные функции, определенные на временном отрезке  суммируются. Получаются искомые управления u(t).

11. Делается проверка: управления u(t) подставляются в исходную систему (1), численно решается задача Коши: dsolve, , , вычисляется состояние, в которое приходит система: =; вычисляется ( ).

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

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

2.   Если ( ), то выводится сообщение об ошибке.

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

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

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

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

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

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

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

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

На рисунке 1 показана структура программного комплекса для решения задачи управления (1)–(3). Основная программа GlobAlg преобразует входные данные , (), , , , ,в функции , такие, что соответствующая траектория исходной системы выходит из начальной точки и входит в e-окрестность финальной точки. Если в задаче имеются фазовые ограничения, то программа не учитывает их автоматически и необходимо конструировать алгоритм, опираясь на свойства управлений библиотеки NilpControls.

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

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

,

,

,       (6)

, .

С помощью компьютерной программы FindControlLoc задача управления (1)–(3) для системы (6) решена в пяти классах управлений с использованием пяти процедур библиотеки NilpControls.

Пример работы программы FindControlLoc.

Входные данные: векторные поля системы (6)

,

,

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

=[.3555263893, .2583050417, .1359392951],

=[.1381591491, 0., .05841275134];

время ; точность ,  NilpControls,

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

.3463818366;

Коэффициенты нильпотентной аппроксимации в точке :

;

Таблица зависимости

Процедура

Параметры

Число итераций

Optimal

 

6

Trig

.

5

PieceConst

1.8849555922

5

Centre

(1, 4, -1

8

Centre

(0, 5, -3)

4

Focus

(0, 5, -2, 0.3)

3

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

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

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

,

,

,                                       (7)

где , ,

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

, (8)

и фазовыми ограничениями

, ,

.                                                   (9)

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

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

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

Литература

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

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

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

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

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


Постоянный адрес статьи:
http://swsys.ru/index.php?id=2254&like=1&page=article
Версия для печати
Выпуск в формате PDF (4.72Мб)
Статья опубликована в выпуске журнала № 2 за 2009 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: