Принцип максимума Понтрягина. Экономия управления
При решении задач оптимизации на основе принципа максимума, управляющее воздействие ищется среди решений некоторой системы дифференциальных уравнений, в формировании которой используется система дифференциальных уравнений описывающая объект управления и выражение для интегрального критерия качества. В настоящем разделе рассмотрим задачу экономии управления, т.е. задачу перевода объекта управления из заданного начального состояние в заданное конечное состояние за заданное время таким образом, чтобы минимизировать некоторую меру затрат управляющего воздействия. Под мерой затрат управления будем понимать интеграл от положительно определенной формы управляющих воздействий. В простейшем случае скалярного управления мера затрат имеет следующий вид:
где Допустим, что объект управления описывается следующей системой дифференциальных уравнений:
Тогда первым шагом в решении задачи определения управляющего воздействия является запись функции Гамильтона:
где На втором шаге определяется зависимость оптимального управляющего воздействия Следовательно, для определения зависимости оптимального управления от переменных сопряженной системы уравнений можно использовать следующее уравнение: или или
На третьем шаге формируется система сопряженных уравнений: или
Выполненные шаги позволяют сформировать систему дифференциальных уравнений, среди решений которой находится искомое управляющее воздействие:
Определение требуемого решения системы уравнений (4.6) может быть выполнено либо аналитическим методом, либо с помощью численных методов решения дифференциальных уравнений и поиском начальных условий для Аналитическое решение может быть получено с помощью функции DSOLVE из раздела символьных вычислений MATLAB: Файл Main4_1.m S=dsolve('Dx1=x2', 'Dx2=0.5*Ksi2', 'DKsi1=0', 'DKsi2=-Ksi1', 'x1(0)=1', 'x2(0)=0', 'x1(2)=0', 'x2(2)=0') Результатом работы приведенного выше скрипта является MATLAB – структура, поля которой имеют следующие символьные значения: S.x1=”1/4*t^3-3/4*t^2+1” S.x2=”3/4*t^2-3/2*t” S.Ksi1=”-3” S.Ksi2=”3*t-3” Поскольку нам известно выражение (4.4) то информация, полученная в структуре S позволяет получить искомое управляющее воздействие в виде функции времени: Правильность полученного выражения может быть проверена путем численного решения уравнений объекта управления (4.2) средствами MATLAB: Файл Main4_1.m [t, x]=ode45('odefun4_2', [0 2], [1 0 -3 -3]); plot(t, x(:, 1), 'r', t, x(:, 2), 'g', t, 0.5*x(:, 4), 'b') Файл odefun4_2.m function f=odefun4_2(t, x) f=[x(2); 0.5*x(4); 0; -x(3)]; Графики переходных процессов показывают, что необходимые условия задачи выполнены, т.е. объект управления переводится из заданной начальной точки в заданную конечную точку за заданное время. Минимум расхода управления гарантируется тем, что использованное для этого перевода управляющее воздействие является решением системы уравнений (4.6). В некоторых случаях система уравнений (4.6) слишком сложна для аналитического решения. В этом случае определения оптимального управления выполняется численными методами. Суть этих методов состоит в поиске таких значений начальных условий для Пример численного решения задачи оптимального управления средствами MATLAB приведен далее. Функция FMINSEARCH используется здесь для поиска таких значений начальных условий для Файл Main4_2.m %Начальное приближение вектора начальных условий для поиска Ksi0B=[1 1]; Ksi0=fminsearch('fmsfun4_2', Ksi0B) Файл fmsfun4_2.m function f=fmsfun4_2(Ksi0) t=[]; x=[]; [t, x]=ode45('odefun4_2', [0 2], [1 0 Ksi0(1) Ksi0(2)]); %вычисление невязки f=x(length(t), 1)*x(length(t), 1)+x(length(t), 2)*x(length(t), 2); % наблюдение за процессом поиска plot(t, x(:, 1), 'r', t, 0.5*x(:, 4), 'g') pause(0.5) Файл odefun4_2.m function f=odefun4_2(t, x) %вычисление правых частей (4.6) f=[x(2); 0.5*x(4); 0; -x(3)]; Сравнивая значения
|