Линейное дифференциальное уравнение второго порядка. Целевой функционал. Исследуемая система автоматического управления – поисковая (экстремальная) система

Страницы работы

Содержание работы

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ

КАФЕДРА АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Расчетное задание 2

Дисциплина: Адаптивные системы управления

Работу выполнил студент     5081/2            

группа                           ФИО

Преподаватель                          

подпись                            ФИО

Санкт-Петербург

2009г.


Задание

Рассматривается объект, математическая модель которого - линейное дифференциальное уравнение второго порядка:

Управление задано в виде: , k1=kп, k2=kд.

Задан функционал:

Требуется: построить систему экстремального регулирования с использованием двух методов: покоординатного спуска и градиентного.

Исходные данные

a0 = 5 , a1 =                α = 1, β = 0

Получаем следующее уравнение объекта:

Целевой функционал

Рис. 1. Исследуемая система автоматического управления – поисковая (экстремальная) система

Передаточная функция первичного контура:

Для совпадения выхода x объекта в статике с уставкой Vуст требуется выполенение g0 = Kп+1.

Выполнение работы

1. Метод покоординатного спуска

Метод предполагает выбор направлений поиска, параллельных координатным осям. Таким образом, задача оптимизации J в двумерном пространстве раскладывается на две задачи одномерной покоординатной оптимизации, выполняемые поочередно. На каждом шаге оптимизации выполняется две итерации, на каждой из которых изменению подвергается только одна координата (KП или КД).

r2.1.m

A = [0 1; -5 –sqrt(5)/2];

n = 10;

eps = 0.05;

step = -0.01;

for i = 1:n

k1 = (i-1)/10;

for j = 1:n

k2 = (j-1)/10;

sim('model');

xx(j,i) = k1;

yy(j,i) = k2;

zz(j,i) = J(length(J));

end

end

contour(xx, yy, zz,100)

hold on;

k1s = 1.5;

k2s = 1.5;

cnt=0;

i = 0;

while i == 0

k1 = k1s;

k2 = k2s;

sim('model');

minJ = Inf;

for k1 = k1s:step:0

sim('model');

tempJ = J(length(J));

if tempJ <= minJ

minJ = tempJ;

k1new = k1;

end

end

plot([k1s, k1new], [k2s, k2s]);

k1 = k1new;

k2 = k2s;

sim('model');

minJ = inf;

for k2 = k2s:step:0

sim('model');

tempJ = J(length(J));

if tempJ <= minJ

minJ = tempJ;

k2new = k2;

end

end

plot([k1new, k1new], [k2s, k2new]);

%проверка условия останова

if ( max(abs([k1s-k1new, k2s-k2new])) <= eps )

break;

end

k1s = k1new;

k2s = k2new;

cnt=cnt+1;

end

Рис. 1.1. Модель поисковой системы в Simulink

Рис. 1.2. Процесс поиска, шаг = 0.01, начальные значения Кп = 1.5, Кд = 1.5

Рис. 1.3. Процесс поиска, шаг = 0.03, начальные значения Кп = 1.5, Кд = 1.5

Рис. 1.4. Процесс поиска, шаг = 0.05, начальные значения Кп = 1.5, Кд = 1.5

Рис. 1.5. Процесс поиска, шаг = 0.1, начальные значения Кп = 1.5, Кд = 1.5

Рис. 1.6. Процесс поиска, шаг = 0.05, начальные значения Кп = 1.0, Кд = 1.4

Рис. 1.7. Процесс поиска, шаг = 0.05, начальные значения Кп = 2.5, Кд = 2.5

Таблица 1.1. Результаты моделирования

Величина шага

Начальная точка

Конечная точка

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

Время поиска, с

КП

КД

КП

КД

J

0,05

2,5

2,5

0,3

0,7

17,16

6

27,29

0,05

1,0

1,4

0,3

0,7

17,16

5

27,29

0,10

1,5

1,5

0,2

0,7

17,16

4

26,79

0,05

0,3

0,7

17,16

5

27,29

0,03

0,24

0,69

17,15

6

26,89

0,01

0,24

0,69

17,15

6

27,19

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

2. Градиентный метод

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

r2.2.m

Похожие материалы

Информация о работе