Решение задач оптимизации в среде MatLab

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    73,72 Кб
  • Опубликовано:
    2016-12-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Решение задач оптимизации в среде MatLab

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования

“Тверской государственный технический университет”









Лабораторная работа №5

по дисциплине: “Автоматизация технологических процессов и производств”

на тему: “ Решение задач оптимизации в среде MatLab”

Выполнил: Мякатин И.Д.

Принял: Марголис Б.И.




Тверь 2016

Цель работы: Ознакомиться со способами решения задач в среде MatLab. Рассмотреть несколько типовых примеров задач оптимизации и реализовать программу в среде MatLab для их решения.

Optimization ToolBox

Среда MatLab содержит расширение “Optimization ToolBox”, обеспечивающее доступ к сервисным средствам обычной и крупномасштабной (большой размерности) оптимизации.

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

·              Современные стандартные алгоритмы оптимизации.

·              Нелинейная минимизация без ограничений.

·              Нелинейная минимизация с ограничениями, включая задачи минимакса, достижения цели и полубесконечной минимизации.

·              Квадратичное и линейное программирование.

·              Нелинейный метод наименьших квадратов и подбор кривых с границами.

·              Решение системы нелинейных уравнений.

·              Линейный метод наименьших квадратов с ограничениями.

·              Специализированные крупно-масштабные алгоритмы (большой размерности) для решения больших разреженных задач.

·              Подбор данных с помощью подбора кривых, нелинейный метод наименьших квадратов, определение нулей нелинейных уравнений и системы нелинейных уравнений.

·              Гибкая среда, которая обрабатывает ввод скаляра, вектора или матрицы.

Функции нелинейной оптимизации

С их помощью можно определить оптимум целевой функции одной (fminbnd) или нескольких (fminsearch) переменных. Функции fminunc и fmincon позволяют решать оптимизационные задачи градиентными методами соответственно при отсутствии и наличии ограничений. [2]

·              fminbnd - поиск функции одной переменной для фиксированного интервала.

·              fmincon - поиск минимума нелинейной задачи с ограничениями.

·              fminsearch - поиск минимума функции нескольких переменных без ограничений.

·              fminunc - поиск минимума функции нескольких переменных без ограничений.

·              fseminf - поиск минимума полубесконечной нелинейной функции нескольких переменных с ограничениями. [4]

Реализуем программу в среде MatLab для решения некоторых типовых задач оптимизации

.        Поиск минимума функции одной переменной вида

.        Поиск минимума функции нескольких переменных вида

.        Поиск оптимальных настроек ПИД-регулятора при наличии ограничений, путём минимизации целевой функции вида , где  - коэффициенты усиления дифференциальной, пропорциональной и интегральной составляющих регулятора соответственно.

Листинг программы

нелинейный оптимизация целевой регулятор

Файл-сценарийall

method=input(['Выберите метод оптимизации(1-Метод золотого сечения,' ...

'параболическая интерполяция,2-Метод Нелдера-Мида(Симплекс): '...

'3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора : ) ']);

optset=optimset('Display','iter','MaxFunEvals',500);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 4W 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);

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;=min(m);

disp(['Степень колебательности: ',num2str(m)])

step(Wzam)on;;

Файл-функция (функции для решения 1 и 2 задачи )

function y=fun(x,nf)nf

case 1

y=x^4+exp(-x);

case 2

y=4*x(1)+x(1)^2+8*x(2)+x(2)^2;

Файл-функция (Целевая функция для решения 3 задачи )

function y = fun2(K)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;=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=[];

Полученные результаты

.        Решение 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= 0.6675= 1

.        Решение 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= -20.0000= 1

.2. Выберите метод оптимизации(1-Метод золотого сечения, параболическая интерполяция, 2-Метод Нелдера-Мида(Симплекс): 3-Квазиньютоновский метод, 4-поиск оптимальных настроек регулятора: )3

Введите номер функции: 2: Gradient must be provided forregion algorithm;

using line-search algorithm instead.

> In fminunc at 347

In laba5a at 29order


Local minimum found.completed because the size of the gradient is less thandefault value of the function tolerance.

<stopping criteria details>= -2.0000 -4.0000= -20= 1


В качестве начальных значений параметров регулятора [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 для решения поставленной задачи

Файл-сценарий:

clcallC X B;=optimset('Display','iter','Algorithm','Active-set');

disp('Вектор мощностей поставщиков')=[80,120,50,30]=[60,40,40,90,10,10];('Вектор мощностей потребителей')

B(7)=sum(X)-sum(B)=[4 8 3 12 9 7;

2 1 24 7 8 5;

5 11 7 4 1 6;

6 7 4 3 8 8];(1,7)=zeros;('Матрица транспортных издержек')

С=10*ones(size(C));=[];b=[];Aeq=[];beq=[];=zeros(size(C));ub=100*ones(size(C));

[xmin,fval]=fmincon(@fun,K,A,b,Aeq,beq,lb,ub,@ogr,optset);

disp('Матрица переменных')(['Наименьшее значение целевой функции= ', num2str(fval)])

Файл-функция (Целевая функция)y = fun(M)

global C;=C.*M;

y=sum(V(:));

Файл-функция (ограничения)[c,ceq] = ogr(M)

global X B=size(M);i=1:s(1)(i)=X(i)-sum(M(i,:));j=1:s(2)(i+j)=B(j)-sum(M(:,j));

ceq(i+j)=M(1,j,1)-B(j);

c=[];

Результаты работы программы

Вектор мощностей поставщиков= 80 120 50 30

Вектор мощностей потребителей= 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.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>inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin

4

5

7

8

10

11

12

13

17

18

20

23

24

26

27

28

Матрица переменных xmin =


Наименьшее значение целевой функции = 750

Список литературы

1.      Конспекты лекций по курсу “АТПП”

.        Марголис, Б.И. Компьютерные методы анализа и синтеза систем автоматического регулирования в среде Matlab / Б.И.Марголис. - Учеб. Пособие для вузов. - Тверь: изд-во ТвГТУ, 2015.-92 с.

3.      <http://matlab.exponenta.ru/optimiz/book_1/1.php>

.        http://matlab.exponenta.ru/optimiz/book_4/

Похожие работы на - Решение задач оптимизации в среде MatLab

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!