Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Алгоритм метода проекции градиента



ОТЧЕТ

 

 

По лабораторной работе №4

 

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

 

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

 

ОГУ 010200.6006.04 О

 

 

Руководитель

_____________ Болодурина И.П.

“___ ”______________2011 г.

Исполнитель

студент гр. 08 ПриМ

_______________Кияева Е. А.

“___ ” _____________2011 г.

 

Оренбург 2011

Содержание

 

Постановка задачи………………………………………………………….1

Алгоритм метода проекции градиента…...……………………………….3

Практическая часть………………………………………………...………6

Приложение А - Листинг программы…………………………..…………9

 

 

Постановка задачи

, (1)
, (2)
, (3)
, (4)
, . (5)

 

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

, , (6)

 

где − множитель Лагранжа (в регулярном случае и можно положить и можно положить равным единице или любой другой положительной константе).

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

.

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

 

, (7)
, , (8)
Или  
, , (8')
   
, (9)
   
, . (10)

 

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

 

Алгоритм метода проекции градиента

 

Шаг Действие
Выбрать шаг разбиения
Задать начальное приближение управления – допустимый набор: где ;
Построить начальную траекторию: где используя начальные условия и разностные соотношения, аппроксимирующие уравнение движения
Вычислить начальное приближение целевой функции J(0) по формуле: ;
Найти сопряженные переменные по формулам: , , ;
Вычислить производные функции Лагранжа по уравнению: , ;
Задать начальное значение шага спуска и организовать цикл по шагам градиентного спуска – реализовать метод автоматического выбора шага;
  Найти по формуле , и построить проекцию на допустимое множество , ;
Вычислить соответствующую этому управлению траекторию по формулам: , ;
Найти очередное приближение целевой функции J(1) по формуле: ;
Проверить условие монотонности в методе градиентного спуска. Если то переход к шагу 12, иначе переход к шагу 11;
  Поделить шаг спуска пополам . Переход к шагу 7;
Проверить достигнута ли заданная точность вычислений. Если и то переход к шагу 14, иначе – переход к шагу 13;
  Произвести переприсваивание . Переход к шагу 4;
  Положить, что решение, полученное с шагом разбиения ;
Если шаг не делился, то переход к шагу 16, иначе – переход к шагу 17;
  Разделить шаг разбиения отрезка переход к шагу 1;
  Проверить заданную точность: если и то переход к шагу 18, иначе – переход к шагу 16;
Произвести переприсваивание: – затем переход к шагу16 – следующему шагу двойного пересчета;
решение задачи. Конец алгоритма.

 

 

Практическая часть

Рассмотрим следующий пример:

Найти , при которой достигается минимум функционала

Проведем дискретную аппроксимацию поставленной задачи. Для этого разобъем отрезок [0; 2π ] точками на q частей. Обозначим значения в точках разбиения следующим образом:

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

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

Составим функцию Лагранжа

Условие стационарности по x

Условие стационарности по u

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

С помощью метода проекции градиента получим решение дискретной задачи (рисунок 1).

 

Рисунок 1 – Результаты работы программы

Приложение A

(обязательное)

Листинг программы


//-------------------------- -------------------------------------------------

 

#include < vcl.h>

#pragma hdrstop

#include < math.h>

#include " Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource " *.dfm"

TForm1 *Form1;

 

int q, n=2;

 

double T=6.28, t0=0;

 

typedef double **mass;

 

typedef double *mas;

 

Double f(mass x, double u, int j, int l)

{

switch (j)

{

case 0: return x[1][l];

case 1: return -x[0][l]+u;

}

}

 

Double F0(double x, double u)

{

return 0;

}

 

Double FI(mass x)

{

return x[1][q];

}

 

Double df0(double x, double u, double dt)

{

double Func, F;

 

F=F0(x+dt, u);

 

Func=(F-F0(x, u))/dt;

 

return Func;

 

}

Double Funkcional(mas u, mass x, double Fi, double dt)

{

double s=0;

 

for (int i=0; i< =q-1; i++)

 

s+=F0(x[0][i], u[i]);

 

return s*dt+Fi;

}

 

 

ОТЧЕТ

 

 

По лабораторной работе №4

 

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

 

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

 

ОГУ 010200.6006.04 О

 

 

Руководитель

_____________ Болодурина И.П.

“___ ”______________2011 г.

Исполнитель

студент гр. 08 ПриМ

_______________Кияева Е. А.

“___ ” _____________2011 г.

 

Оренбург 2011

Содержание

 

Постановка задачи………………………………………………………….1

Алгоритм метода проекции градиента…...……………………………….3

Практическая часть………………………………………………...………6

Приложение А - Листинг программы…………………………..…………9

 

 

Постановка задачи

, (1)
, (2)
, (3)
, (4)
, . (5)

 

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

, , (6)

 

где − множитель Лагранжа (в регулярном случае и можно положить и можно положить равным единице или любой другой положительной константе).

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

.

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

 

, (7)
, , (8)
Или  
, , (8')
   
, (9)
   
, . (10)

 

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

 

Алгоритм метода проекции градиента

 

Шаг Действие
Выбрать шаг разбиения
Задать начальное приближение управления – допустимый набор: где ;
Построить начальную траекторию: где используя начальные условия и разностные соотношения, аппроксимирующие уравнение движения
Вычислить начальное приближение целевой функции J(0) по формуле: ;
Найти сопряженные переменные по формулам: , , ;
Вычислить производные функции Лагранжа по уравнению: , ;
Задать начальное значение шага спуска и организовать цикл по шагам градиентного спуска – реализовать метод автоматического выбора шага;
  Найти по формуле , и построить проекцию на допустимое множество , ;
Вычислить соответствующую этому управлению траекторию по формулам: , ;
Найти очередное приближение целевой функции J(1) по формуле: ;
Проверить условие монотонности в методе градиентного спуска. Если то переход к шагу 12, иначе переход к шагу 11;
  Поделить шаг спуска пополам . Переход к шагу 7;
Проверить достигнута ли заданная точность вычислений. Если и то переход к шагу 14, иначе – переход к шагу 13;
  Произвести переприсваивание . Переход к шагу 4;
  Положить, что решение, полученное с шагом разбиения ;
Если шаг не делился, то переход к шагу 16, иначе – переход к шагу 17;
  Разделить шаг разбиения отрезка переход к шагу 1;
  Проверить заданную точность: если и то переход к шагу 18, иначе – переход к шагу 16;
Произвести переприсваивание: – затем переход к шагу16 – следующему шагу двойного пересчета;
решение задачи. Конец алгоритма.

 

 

Практическая часть

Рассмотрим следующий пример:

Найти , при которой достигается минимум функционала

Проведем дискретную аппроксимацию поставленной задачи. Для этого разобъем отрезок [0; 2π ] точками на q частей. Обозначим значения в точках разбиения следующим образом:

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

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

Составим функцию Лагранжа

Условие стационарности по x

Условие стационарности по u

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

С помощью метода проекции градиента получим решение дискретной задачи (рисунок 1).

 

Рисунок 1 – Результаты работы программы

Приложение A

(обязательное)

Листинг программы


//-------------------------- -------------------------------------------------

 

#include < vcl.h>

#pragma hdrstop

#include < math.h>

#include " Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource " *.dfm"

TForm1 *Form1;

 

int q, n=2;

 

double T=6.28, t0=0;

 

typedef double **mass;

 

typedef double *mas;

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 989; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.065 с.)
Главная | Случайная страница | Обратная связь