Расчет и оптимизация процессов и аппаратов химических и пищевых производств в среде MatLab. Дворецкий Д.С - 54 стр.

UptoLike

2 Нелинейное программирование. Приложения MatLab позволяет решать ряд оптимизационных
задач, в которых есть линейные и нелинейные ограничения. Общая постановка задачи нелинейного
программирования такова: требуется разыскать )(min xf среди всех векторов
x
, удовлетворяющих сис-
теме неравенств и равенств
() ()
ubxlbbxAbAxxcxc
eqeqeq
== ;;;0;0
.
Решение поставленной задачи производится при помощи функции fmincon, обращение к которой в
общем случае выглядит следующим образом:
x = fmincon(‘fun’, x0, A, b, Aeq, beq, lb, ub, ‘nonlcon’)
где x приближенное решение; fun имя файла, содержащего исследуемую функцию; x0 вектор на-
чальных приближений; A, b, Aeq, beq, lb, ub – вектора, содержащие линейные ограничения; nonlcon имя
файла, содержащего функцию с нелинейными ограничениями
c, c
eq
.
П р и м е р. Найти оптимальные конструктивные параметры эрлифтного аппарата, при которых ка-
питальные затраты минимальны. Капитальные затраты эрлифтного аппарата могут быть определены по
формуле
222
107233912261588
957736727262213378248314
ϕ++ϕ
ϕ
+
ϕ
+
+=
dvd
vddvK
где
v
– объем аппарата, м
3
;
d
– диаметр аппарата, м;
ϕ
– угол раскрытия конического днища, рад.
В соответствии со справочными данными для эрлифтных аппаратов конструктивные параметры
могут находиться в диапазоне
[]
[
]
[
]
50,20,5.0,3.0,16,4
ϕ
dv град.
Задача не требует предварительной подготовки для задания функции цели. Начальными приближе-
ниями будут средние значения из диапазонов конструктивных параметров. Расчет целевой функции
производится в файл-функции airlift.
function F = airlift(x)
% расчет целевой функции оптимизации
F = 248314+13378*x(1)+2622*x(2)-6727*x(3)-773*x(2)+...
+95*x(1)*x(3)-1588*x(2)*x(3)+1226*x(2)^2+339*x(2)^2-1072*x(3)^2;
Вызов функции fmincon для расчета минимальных капитальных затрат эрлифтного аппарата от
функции airlift производится в программе boundopt:
% программа boundopt определения минимальных
% капитальных затрат на эрлифтный аппарат
% границы диапазонов конструктивных параметров
vmin = 4;
vmax = 16;
dmin = 0.3;
dmax = 0.5;
fimin = 20*pi/180;
fimax = 50*pi/180;
% формирование вектора начальных приближений
x0 = [(vmax+vmin)/2 (dmax+dmin)/2 (fimax+fimin)/2];
% вызов функции fmincon целевой функции airlift
% определение функции в точке решения
% и идентификатора успешности найденного решения
[x, f, flag] = fmincon('airlift', x0, [], [], [], [],...
[vmin;dmin;fimin], [vmax;dmax;fimax])
Результаты поиска минимума капитальных затрат:
,