Решение задач оптимизации в среде MatLab
Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 07.12.2016 |
Размер файла | 188,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
“Тверской государственный технический университет”
Лабораторная работа №5
по дисциплине: “Автоматизация технологических процессов и производств”
на тему: “ Решение задач оптимизации в среде MatLab”
Выполнил: Мякатин И.Д.
Принял: Марголис Б.И.
Тверь 2016
Цель работы: Ознакомиться со способами решения задач в среде MatLab. Рассмотреть несколько типовых примеров задач оптимизации и реализовать программу в среде MatLab для их решения.
Optimization ToolBox
Среда MatLab содержит расширение “Optimization ToolBox”, обеспечивающее доступ к сервисным средствам обычной и крупномасштабной (большой размерности) оптимизации.
Тулбокс Оптимизация содержит подпрограммы для реализации наиболее широко используемых методов минимизации и максимизации. Тулбокс включает в себя алгоритмы для решения многих типов задач оптимизации, таких как:
· Современные стандартные алгоритмы оптимизации.
· Нелинейная минимизация без ограничений.
· Нелинейная минимизация с ограничениями, включая задачи минимакса, достижения цели и полубесконечной минимизации.
· Квадратичное и линейное программирование.
· Нелинейный метод наименьших квадратов и подбор кривых с границами.
· Решение системы нелинейных уравнений.
· Линейный метод наименьших квадратов с ограничениями.
· Специализированные крупно-масштабные алгоритмы (большой размерности) для решения больших разреженных задач.
· Подбор данных с помощью подбора кривых, нелинейный метод наименьших квадратов, определение нулей нелинейных уравнений и системы нелинейных уравнений.
· Гибкая среда, которая обрабатывает ввод скаляра, вектора или матрицы.
Функции нелинейной оптимизации
С их помощью можно определить оптимум целевой функции одной (fminbnd) или нескольких (fminsearch) переменных. Функции fminunc и fmincon позволяют решать оптимизационные задачи градиентными методами соответственно при отсутствии и наличии ограничений. [2]
· fminbnd - поиск функции одной переменной для фиксированного интервала.
· fmincon - поиск минимума нелинейной задачи с ограничениями.
· fminsearch - поиск минимума функции нескольких переменных без ограничений.
· fminunc - поиск минимума функции нескольких переменных без ограничений.
· fseminf - поиск минимума полубесконечной нелинейной функции нескольких переменных с ограничениями. [4]
Реализуем программу в среде MatLab для решения некоторых типовых задач оптимизации
1. Поиск минимума функции одной переменной вида
2. Поиск минимума функции нескольких переменных вида
3. Поиск оптимальных настроек ПИД-регулятора при наличии ограничений, путём минимизации целевой функции вида , где - коэффициенты усиления дифференциальной, пропорциональной и интегральной составляющих регулятора соответственно.
Листинг программы
нелинейный оптимизация целевой регулятор
Файл-сценарий
clear
close all
clc
method=input(['Выберите метод оптимизации(1-Метод золотого сечения,' ...
'параболическая интерполяция,2-Метод Нелдера-Мида(Симплекс): '...
'3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора : ) ']);
optset=optimset('Display','iter','MaxFunEvals',500);
switch method
case 1
nf=1;
[xmin,fval,exitflag,output]=fminbnd(@fun,-2,2,optset,nf)
case 2
nf=input('Введите номер функции: ');
if nf==1
x0=0;
else
x0=[0 0];
end;
[xmin,fval,exitflag,output]=fminsearch(@fun,x0,optset,nf)
case 3
if nf==1
x0=0;
else
x0=[0 0];
end;
[xmin,fval,exitflag,output]=fminunc(@fun,x0,optset,nf)
case 4
global W tz sigz mz
tz=10;sigz=20; mz=0.5;
W=tf([2],[1 2 2])
K=[1 1 1];
% K=[2.261 23.07 11.77]
A=[];b=[];Aeq=[];beq=[];nonlcon=[];
lb=[0 0 0];ub=[100 100 100];
[xmin,fval,exitflag,output]=fmincon(@fun2,K,A,b,Aeq,beq,lb,ub,@ogran,optset)
Wreg=tf([xmin(1) xmin(2) xmin(3)],[1 0])
Wzam=feedback(W*Wreg,1,-1);
[u,t]=step(Wzam);
sig=((max(u)-u(end))/max(u))*100;
tp=t(end);
disp(['Время переходного процесса: ',num2str(tp),' c'])
disp(['Перерегулирование: ',num2str(sig),' %'])
[numz,denz]=tfdata(Wzam,'v');
r=roots(denz);
q=1;
for c=1:length(r)
if( imag(r(c))~=0 )
m(q)=abs(real(r(c))/imag(r(c)));
q=q+1;
end;
end;
m=min(m);
disp(['Степень колебательности: ',num2str(m)])
step(Wzam)
grid on;
end;
Файл-функция (функции для решения 1 и 2 задачи )
function y=fun(x,nf)
switch nf
case 1
y=x^4+exp(-x);
case 2
y=4*x(1)+x(1)^2+8*x(2)+x(2)^2;
end
Файл-функция (Целевая функция для решения 3 задачи )
function y = fun2(K)
global tz sigz mz W
Wr=tf([K(1) ,K(2) ,K(3)],[1 0]);
Wz=feedback(W*Wr,1,-1);
[u,t]=step(Wz);
sig=((max(u)-u(end))/max(u))*100;
tp=t(end);
[~,denz]=tfdata(Wz,'v');
r=roots(denz);
q=1;
for c=1:length(r)
if( imag(r(c))~=0 )
m(q)=abs(real(r(c))/imag(r(c)));
q=q+1;
end;
end;
m=min(m);
wt=1/3;wsig=1/3;wm=1/3;
y=wt*abs(tp-tz)/tz+wsig*abs(sig-sigz)/sigz+wm*abs(m-mz)/mz;
end
Файл-функция (ограничения для решения 3 задачи)
function [c,ceq] = ogran(K)
c=-0.25+K(1)*K(3)/(K(2)*K(2));
ceq=[];
end
Полученные результаты
1. Решение 1-й поставленной задачи:
Выберите метод оптимизации (1-Метод золотого сечения, параболическая интерполяция, 2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )1
Optimization terminated:
the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004
xmin = 0.5283
fval = 0.6675
exitflag = 1
2. Решение 2-й поставленной задачи
2.1. Выберите метод оптимизации(1-Метод золотого сечения, параболическая интерполяция, 2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )
Введите номер функции: 2
Optimization terminated:
the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004
and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-004
xmin = -2.0000 -4.0000
fval = -20.0000
exitflag = 1
2.2. Выберите метод оптимизации(1-Метод золотого сечения, параболическая интерполяция, 2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )3
Введите номер функции: 2
Warning: Gradient must be provided for
trust-region algorithm;
using line-search algorithm instead.
> In fminunc at 347
In laba5a at 29
First-order
Local minimum found.
Optimization completed because the size of the gradient is less than
the default value of the function tolerance.
<stopping criteria details>
xmin = -2.0000 -4.0000
fval = -20
exitflag = 1
3. Решение 3-й поставленной задачи
В качестве начальных значений параметров регулятора [1 1 1] |
Значения параметров регулятора, полученные при помощи альтернативного метода РЧХ в качестве начальных [2.261 23.07 11.77] |
|
Выберите метод оптимизации(1-Метод золотого сечения,параболическая интерполяция,2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )4 Transfer function: 2 ------------- s^2 + 2 s + 2 K = 1 1 1 Local minimum possible. Constraints satisfied. xmin = 0.2893 1.8760 2.6281 fval = 0.1462 exitflag = 5 Transfer function: 0.2893 s^2 + 1.876 s + 2.628 ---------------------------- s Время переходного процесса: 10.2528 c Перерегулирование: 18.2325 % Степень колебательности: 0.33751 |
Выберите метод оптимизации(1-Метод золотого сечения,параболическая интерполяция,2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )4 Transfer function: 2 ------------- s^2 + 2 s + 2 K = 2.2610 23.0700 11.7700 Local minimum possible. Constraints satisfied. xmin = 2.2856 23.0626 11.7730 fval = 0.0193 exitflag = 5 Transfer function: 2.286 s^2 + 23.06 s + 11.77 --------------------------- s Время переходного процесса: 9.7925 c Перерегулирование: 19.4689 % Степень колебательности: 0.50525 |
Рассмотрим одну из самых распространенных и востребованных оптимизационных задач в логистике - транспортную задачу.
Необходимо найти оптимальный план перевозок грузов от поставщиков к потребителям, если вектор мощностей поставщиков равен , вектор мощностей потребителей и задана матрица транспортных издержек
Суммарная мощность поставщиков равна 280, суммарная мощность потребителей равна 250, следовательно, задача является открытой и необходимо свести ее к закрытой. Для этого нужно ввести фиктивного потребителя, на которого будет приходиться 30 ед. продукции поставщиков.
Реализуем программу в среде MatLab для решения поставленной задачи
Файл-сценарий:
clc
close all
clear
global C X B;
optset=optimset('Display','iter','Algorithm','Active-set');
disp('Вектор мощностей поставщиков')
X=[80,120,50,30]
B=[60,40,40,90,10,10];
disp('Вектор мощностей потребителей')
B(7)=sum(X)-sum(B)
C=[4 8 3 12 9 7;
2 1 24 7 8 5;
5 11 7 4 1 6;
6 7 4 3 8 8];
C(1,7)=zeros;
disp('Матрица транспортных издержек')
С
K=10*ones(size(C));
A=[];b=[];Aeq=[];beq=[];
lb=zeros(size(C));ub=100*ones(size(C));
[xmin,fval]=fmincon(@fun,K,A,b,Aeq,beq,lb,ub,@ogr,optset);
disp('Матрица переменных')
xmin
disp(['Наименьшее значение целевой функции= ', num2str(fval)])
Файл-функция (Целевая функция)
function y = fun(M)
global C;
V=C.*M;
y=sum(V(:));
end
Файл-функция (ограничения)
function [c,ceq] = ogr(M)
global X B
s=size(M);
for i=1:s(1)
ceq(i)=X(i)-sum(M(i,:));
end
for j=1:s(2)
ceq(i+j)=B(j)-sum(M(:,j));
end
ceq(i+j)=M(1,j,1)-B(j);
c=[];
end
Результаты работы программы
Вектор мощностей поставщиков
X = 80 120 50 30
Вектор мощностей потребителей
B = 60 40 40 90 10 10 30
Матрица транспортных издержек
C =
4 8 3 12 9 7 0
2 1 24 7 8 5 0
5 11 7 4 1 6 0
6 7 4 3 8 8 0
Max Line search Directional First-order
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in feasible directions, to within the default value of the function tolerance, and constraints were satisfied to within the default value of the constraint tolerance.
<stopping criteria details>
Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin
3
4
5
7
8
10
11
12
13
17
18
20
23
24
26
27
28
Матрица переменных xmin =
Наименьшее значение целевой функции = 750
Список литературы
1. Конспекты лекций по курсу “АТПП”
2. Марголис, Б.И. Компьютерные методы анализа и синтеза систем автоматического регулирования в среде Matlab / Б.И.Марголис. - Учеб. Пособие для вузов. - Тверь: изд-во ТвГТУ, 2015.-92 с.
3. http://matlab.exponenta.ru/optimiz/book_1/1.php
4. http://matlab.exponenta.ru/optimiz/book_4/
Размещено на Allbest.ru
Подобные документы
Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.
дипломная работа [6,6 M], добавлен 04.09.2014Общая характеристика и свойства системы Matlab - пакета прикладных программ для решения задач технических вычислений. Разработка математической модели в данной среде, программирование функций для задающего воздействия. Проектирование GUI-интерфейса.
курсовая работа [1023,2 K], добавлен 23.05.2013Назначение и возможности пакета MATLAB, его основные составляющие. Набор вычислительных функций. Роль интерполяции функций в вычислительной математике. Пример интерполяции с четырьмя узлами. Интерполирование и сглаживание, схемы решения задач в MATLAB.
курсовая работа [594,5 K], добавлен 28.12.2012Математические основы оптимизации. Постановка задачи оптимизации. Методы оптимизации. Решение задачи классическим симплекс методом. Графический метод. Решение задач с помощью Excel. Коэффициенты целевой функции. Линейное программирование, метод, задачи.
реферат [157,5 K], добавлен 21.08.2008Создание программы в среде программирования MatLab для решения задачи одномерной оптимизации (нахождение минимума и максимума заданных функций) методом золотого сечения, построение блок-схемы алгоритма и графическое изображение исследованных функций.
реферат [112,0 K], добавлен 14.06.2010Сущность задач оптимизации и методы их решения с ориентацией на современные средства компьютерной техники. Область допустимых решений. Структура оптимизационной модели. Проверка правильности нахождения точек координат методом половинного деления.
курсовая работа [2,4 M], добавлен 25.04.2015Методы решения задач параметрической оптимизации. Решение однокритериальных задач с параметром в целевой функции и в ограничениях. Решение многокритериальной задачи методом свертки критериев, методом главного критерия, методом последовательных уступок.
курсовая работа [1,5 M], добавлен 14.07.2012Модель релейной системы регулирования и идентификации структуры отдельного характерного элемента ЭКС зубца Р в системе MatLab. Анализ линейных звеньев с применением Control System Toolbox и Simulink. Методы построения переходных и частотных характеристик.
дипломная работа [1,1 M], добавлен 28.01.2015Исследование основных концепций информационного поиска: булева и векторная модели, индексные термины. Реализация векторной модели в среде Matlab, расчет ранжированных списков документов, реализация оценок качества поиска и листинг программы в Matlab.
отчет по практике [444,8 K], добавлен 17.06.2012Дискретная минимаксная задача с ограничениями на параметры. Применение решений минимаксных задач в экономике с помощью математического пакета Maple. Математические пакеты Maple и Matlab. Основные средства решения минимаксных задач в среде Марle-языка.
курсовая работа [2,2 M], добавлен 17.06.2015