Решение задач оптимизации в среде 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.