Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
33
Добавлен:
05.02.2023
Размер:
1.43 Mб
Скачать

x2

x(t f )

x(t)

x(t0 )

x1

x3

Рис. 4.4. К принципу оптимальности.

Принцип оптимальности гласит, что любая конечная часть оптимальной траектории является, в свою очередь, оптимальной траекторией. Это означает, что траектория от некоторой промежуточной точки x(t) до конечной точки x(t f ) является оптимальной, то есть обеспечивает мак-

симум критерия R′ = tf r(x,u,t)dt . Действительно, предположим, что это

t'

не так, а, следовательно, есть какая-то другая траектория (на рис. 4.4 показана штриховой линией), доставляющая максимум функционала R. Но тогда и первоначальная траектория вопреки предположению не являлась оптимальной, поскольку критерий оптимальности, состоящий из суммы двух частей – максимальной на отрезке траектории от точки x(t0 ) до точки x(t) и не максимальной – от точки x(t) до точки x(t f ), принимал бы не максимальное значение.

Изложенное выше справедливо, конечно, и для систем, в которых время разбито на дискретные шаги (этапы).

251

Таким образом, оптимальная стратегия зависит только от состояния объекта в рассматриваемый момент времени и не зависит от того как объект попал в это состояние, то есть не зависит от его предыстории.

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

Если речь идёт о многошаговых процессах оптимизации, то такой подход сводит исходную задачу к последовательному решению одношаговых процессов оптимизации. В многошаговом процессе оптимизации полных выигрыш для N шагов, согласно принципу оптимальности, можно представить в виде

RN = r(x1,u1 )+ RN1(x1,u1 ).

Первое слагаемое в этом выражении – начальный выигрыш, второе слагаемое – максимальный выигрыш от последующих N-1 шагов.

Максимальный выигрыш запишется как

R

(x )= max(r(x ,u

)+ R

 

(x ,u )).

(4.4.1)

N

1

u1

1 1

 

 

N 1

1

1

 

 

 

 

 

 

 

 

 

 

 

Соотношение (4.4.1) справедливо для любых

N ≥ 2 . Для N=1 полу-

чим, очевидно

 

 

 

 

 

 

 

 

 

 

 

R (x

)= max r(x

1

,u

).

 

 

 

1

1

u1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

252

 

 

 

 

 

 

 

 

 

 

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

Пример 4.4.1. Пусть требуется положительную величину с разделить на n частей так, чтобы их произведение было максимальным.

Обозначим через Rn (c) максимальное значение произведения, x

первая часть, (c x) – оставшаяся часть. Тогда, используя соотношение

(4.4.1), можно составить функциональное уравнение

Rn (c)= max{x Rn

1(c x)}, n 2.

(4.4.2)

0xc

 

 

Очевидно, что при n=1

R1 (c)= c и R1 (c x)= c x .

Положим в уравнении (4.4.2) n=2:

R (c)= max{x R (c x)}= max{x(c x)}.

2

0xc

1

0xc

 

 

Максимум найти нетрудно, приравняв нулю производную по x от вы-

ражения в фигурных скобках. Этот максимум будет при x = c2 . Таким

образом, оптимальная стратегия деления на две части – это деление на две равные части

253

{ }= c , c , ui 2 2

 

 

c

 

2

а максимальное значение произведения –

R2

(c)=

 

.

2

 

 

 

 

 

Положим n=3. Максимальное произведение найдем из соотношения

 

 

 

 

2

 

R (c)= max{x R

(c x)}= max

x(c x)

.

 

3

0≤xc

2

 

4

 

 

 

0≤xc

 

 

 

 

 

 

 

Взяв производную и приравняв её нулю, получим x = 3c . Оставшаяся

часть в 23 c , согласно предыдущему рассуждению, оптимально будет

разделена на две равные части, то есть на 3c и 3c .

Оптимальное деление на три части будет, таким образом

{ui }

c

 

c

 

 

c

 

 

=

 

,

 

 

,

 

 

,

 

3

3

 

3

 

 

 

 

 

а максимальное произведение равно

 

 

 

 

 

 

 

 

 

 

 

c

3

 

 

R3

(c)=

 

 

 

.

 

3

 

 

 

 

 

 

 

 

Продолжая подобные рассуждения, приходим к выводу, что при n=k оптимальным делением будет деление на k равных частей

254

 

c

 

c

 

c

 

{ui

}=

 

,

 

,...,

 

 

,

 

k

 

 

k

 

 

k

 

а максимальное произведение будет

( )= c k .

Rk c k

Методом математической индукции можно доказать, что оптимальным делением будет деление на равные части и при n=k+1. Действительно, полагая n=k+1, из соотношения (4.4.2) получим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

R

(c)= max{x R (c x)}= max

x(c x)

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k+1

 

0≤xc

k

 

 

 

 

 

 

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0≤xc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Путём простейших

вычислений

 

получаем

оптимальное

значение

 

c

 

 

 

 

 

 

 

 

 

 

 

 

c

 

 

c

 

 

c

 

 

x =

 

 

, оптимальную стратегию деления {ui }=

 

 

,

 

,...,

 

 

и

 

 

 

 

 

 

 

k +1

 

 

 

 

 

 

 

 

 

 

 

 

k +1

 

k +1

 

 

k +1

 

 

 

 

 

 

 

 

 

 

 

c

 

 

k+1

 

 

 

 

 

 

 

 

 

 

максимальное произведение

Rk+1(c)

=

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k +1

 

 

 

 

 

 

 

 

 

 

 

Окончательно, оптимальная стратегия деления на n частей

 

 

 

 

 

 

 

 

 

 

 

c

 

c

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{ui}=

 

,

 

,...,

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

n

 

 

 

 

 

 

 

 

 

 

и максимальное произведение равно

255

( )= c n .

Rn c n

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

4 . 4 . 3 . Дискр етный вар иант м ето да динам ическо го про гр амм иро вания

Начать рассмотрение метода динамического программирования про-

ще с дискретного варианта процесса, подлежащего оптимизации.

 

Пусть имеются дискретные возможные значения

x X ={x1,x2 ,...,xl }.

Время также течет дискретно, шагами t = kT .

 

 

Ставится задача из начального состояния x(k0 )

перейти в заключи-

тельное состояние x(k f ) с минимальным показателем качества

 

R(x(k0 ),u(k),k0 )= T k f

r(x(k),u(k),k),

(4.4.3)

k=k0

 

 

 

то есть найти оптимальную траекторию, соединяющую точку x(k0 ) и точку x(k f ).

256

В критерии (4.4.3) r(x(k),u(k)) – потери от сделанного k-го шага. Например, это могут быть затраты энергии или штраф на k-м шаге.

Поскольку на каждом шаге (а таких шагов N = k f k0 ) состояние объекта принимает только одно из l значений, то число возможных траекторий конечно и равно lN , и, в принципе, оптимальную траекторию можно было бы найти простым перебором. Однако в реальных случаях это потребовало бы непомерно большого объема вычислений. Метод динамического программирования позволяет резко сократить объем вычислительной работы.

Возьмём некоторую промежуточную точку k j . Показатель качества R

на интервале от k j до k f определяется состоянием объекта x(k j ) и управляющими воздействиями u(k) при k j k kf :

R(x(k j ),u(k),k j )= T k f

r(x(k),u(k),k).

(4.4.4)

k=k j

 

 

Принцип оптимальности означает, что если выражение (4.4.3) минимально, то часть (4.4.4) также должна быть минимальной. Более того, оптимальная стратегия управления u (k) на интервале (kj ,kf ) является только функцией состояния x(k j ), то есть u (k)= gk (x(k j )). Поэтому оптимальное значение критерия (4.4.4) является лишь функцией состояния x(k j ) и самого k j :

R (x(k j ),k j

)= min k f

Tr(x(k),u(k),k).

(4.4.5)

 

u(k)

k=k j

 

 

 

 

 

257

Очевидно, что при k j = k f R (x(k f ),k f )= 0 . Приняв это граничное

условие за исходное, можно воспользоваться уравнением (4.4.5) для вычисления u (k) при попятном движении от k = k f до k = k0 .

Действительно, на шаге k f 1 находим управление u (kf 1), соот-

ветствующее минимальному значению R, то есть, определяем и запоминаем R (x(k f 1),k f 1), которое будет являться функцией значения x в

начале последнего шага. Поиск минимума при этом ведётся только по одной переменной u(k f 1)

 

 

 

 

R (x(k

f

1),k

f

1)= minTr(x(k

f

1),u(k

f

1),k

f

1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u(k )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Важно отметить, что и u (k

f

1), и значение R

зависят от x(k

f

1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переходим

 

к

 

шагу

 

k f

 

2 .

 

Оптимальной

 

стратегией

 

 

будет

{u (k

f

 

2),u (k

f

1)}, соответствующая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R (x(k

 

2),k

 

2)= minT{r(x(k

 

2),u(k

 

2),k

 

2)+r(x(k

 

1),u(k

 

1),k

 

1)}=

 

 

f

 

f

 

 

 

u(kf 1)

 

 

f

 

 

 

f

 

 

 

f

 

 

 

f

 

 

 

f

 

 

f

 

minT{r(x(kf

 

 

 

 

u(kf 2)

 

 

 

 

 

 

 

1),kf 1)}.

 

 

 

 

 

 

 

 

 

 

 

2),u(kf

2),kf

2)+ R (x(kf

 

 

 

 

 

 

 

 

 

 

 

u(kf 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Минимизировать приходится всё выражение в фигурных скобках, по-

скольку само

значение

x(k f 1)

зависит

от u (k f 2). Минимизация

опять

осуществляется

только

по

одной

переменной, теперь уже по

u (k

f

2).

В результате

получаем

оптимальное управление

 

 

 

 

 

 

 

258

 

 

 

 

 

 

 

{u (kf 2),u (kf 1)}, значение x(k f 1) в конце предпоследнего шага и величину R (x(k f 2),kf 2) как функцию x(kf 2). Заносим её в память

вместо R (x(k f 1),k f 1).

Далее процесс повторяется до тех пор, пока мы не придём в точку, соответствующую k = k0 . А значения x(k0 ) нам известно! Таким образом, определится стратегия оптимального управления

{u (k0 ),u (k0 +1),...,u (kf 2),u (k f 1)}.

При

получении

 

оптимальной

стратегии

для

 

 

вычисления

R (x(k f

i),k f i)

для каждого узла в момент времени

 

(kf

i)T необхо-

димо хранить временно в памяти ЦВМ

R (x(k

f

i +1),k

f

i +1)

для мо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мента времени (kf

i +1)T .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку R (x(k

j

),k

j

) не зависит от управления u, уравнение (4.4.5)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

можно переписать в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k f

 

 

 

 

 

 

 

 

 

 

),kj

 

 

min Tr(x(kj

),u(kj ),kj )+ Tr(x(k),u(k),k)R (x(kj

) = 0 .

 

u(k)

 

 

 

 

 

k=k j +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последнее уравнение эквивалентно условию

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R (x(k

j

+1),k

j

+1)R (x(k

j

),k

j

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min r(x(kj

),u(kj ),kj )+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 0

. (4.4.6)

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

u(k)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

259

4 . 4 . 4 . Уравнения Беллм ана и Гам ильто на Яко би

При определённых ограничениях в условии (4.4.6) можно период квантования T 0 , и тогда получим непрерывный аналог этого уравнения

 

dR (x(t),t)

 

 

min r(x(t),u(t),t)+

 

 

 

= 0, t0 t tf

(4.4.7)

 

 

u(t)

dt

 

 

 

 

с граничными условиями x(t0 )= x0 ;R (x(tf

),t f

)= 0 .

 

Данное уравнение известно как уравнение Беллмана.

В общем случае состояние объекта задано вектором x(t), управляющее воздействие также вектор u(t), и уравнение Беллмана приобретает вид

 

dR (x(t),t)

 

 

 

min r(x(t),u(t),t)+

 

 

= 0, t0

t tf .

(4.4.8)

 

u(t)

dt

 

 

 

 

Возьмём полную производную по времени от второго слагаемого в фигурных скобках

min r(x(t),u(t),t)+

R

u(t )

t

n

R

 

dx

 

+

 

 

i

 

= 0 .

xi

 

i=1

 

dt

 

Учитывая уравнения динамики объекта

dxi

= f

(x,u,t)

и независи-

 

 

 

 

dt

i

 

 

 

 

 

 

 

 

мость

R

от управления u, получим уравнение Беллмана в виде

 

t

 

 

 

 

 

260