Принцип максимума Понтрягина. Экономия управления
При решении задач оптимизации на основе принципа максимума, управляющее воздействие ищется среди решений некоторой системы дифференциальных уравнений, в формировании которой используется система дифференциальных уравнений описывающая объект управления и выражение для интегрального критерия качества. В настоящем разделе рассмотрим задачу экономии управления, т.е. задачу перевода объекта управления из заданного начального состояние в заданное конечное состояние за заданное время таким образом, чтобы минимизировать некоторую меру затрат управляющего воздействия. Под мерой затрат управления будем понимать интеграл от положительно определенной формы управляющих воздействий. В простейшем случае скалярного управления мера затрат имеет следующий вид: (4.1) где - заданное время управления. Допустим, что объект управления описывается следующей системой дифференциальных уравнений: (4.2) Тогда первым шагом в решении задачи определения управляющего воздействия является запись функции Гамильтона: (4.3) где - переменные некоторой системы дифференциальных уравнений (системы сопряженных уравнений) На втором шаге определяется зависимость оптимального управляющего воздействия от переменных сопряженной системы уравнений. Понтрягиным было доказано, что при величина функции Гамильтона имеет максимум. Следовательно, для определения зависимости оптимального управления от переменных сопряженной системы уравнений можно использовать следующее уравнение: или или (4.4) На третьем шаге формируется система сопряженных уравнений: или (4.5) Выполненные шаги позволяют сформировать систему дифференциальных уравнений, среди решений которой находится искомое управляющее воздействие: (4.6) Определение требуемого решения системы уравнений (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)]; Сравнивая значения , полученные в программах Main4_1.m и Main4_2.m можно сделать вывод о правильности работы численного метода решения задачи оптимального управления.
|