I am getting same intial guess value in fmincon

2 ビュー (過去 30 日間)
RAHUL KUMAR
RAHUL KUMAR 2019 年 8 月 19 日
this is my fitness function
clear all
close all
xo=[0.0011,0.0049,0.36]; % assumptions
%nvars=5;
A=[];
b=[];
Aeq=[];
beq=[];
lb=[0.001,0.002,0.01]; %lower bound
ub=[0.01,0.08,0.5]; %upper bound
nonlincon = @(X)constraint_new(X); % calling constraint function
Fitnessfun=@(X)weight_testvariable(X); %calling objective function
options = optimoptions(@fmincon,'Display','iter-detailed','Algorithm','sqp','MaxIterations',1500)
[X,fval]=fmincon(Fitnessfun,xo,[],[],[],[],lb,ub,nonlincon,options)
this is my constraint
function [c,ceq] = constraint_new(X)
D_i=X(1);D_io=.0014;D_o=X(2);D_oo=.0075;L=X(3);
Qreq=30;
c(3)=(D_io+.004)-D_o;
c(1)=(D_i-D_io);
c(2)=(D_o-D_oo);
ceq =[heatload1_new(D_i,D_io,D_o,D_oo,L)-Qreq];
end
this is my heatload calculation of doublepipe heat exchanger
function [Q]=heatload1_new(D_i,D_io,D_o,D_oo,L)
T_ri=373;
T_ro=303;
T_wi=293;
rho_r=21;
rho_w=998;
C_p_r=1936.8;
C_p_w=4218;
m_dot_r=.0002;
m_dot_w=.005;
miu_r=14.58*10^-6;
miu_w=10.5*10^-4;
k_r=35.958*10^-3;
k_w=.5918;
no_tu_r=1;
rho_ss=8000;
rho_cop=8960;
% D_i =input('dia of ref side(in m)=');
% D_o =input('dia of water side(in m)=');
% D_io=input('thickness of inside(in m)=');
% D_oo=input('thickness of outer (in m)=');
% L=input('length of tube(in m)=');
%% assumptions
X=[0.001;0.006;0.4];
X=[X(1);X(2);X(3)];
D_i=X(1);
D_io=.0014;
D_o=X(2);
D_oo=.0075;
L=X(3);
%A.*x<=b;
%D_i=x(1);D_io=x(2);D_o=x(3);D_oo=x(4);L=x(5);
%% CALCULATE THE GEOMETRY
%equation on ref side
A=pi/4*(D_i)^2;
G_r=m_dot_r/(no_tu_r*A);
Re_r=((G_r*D_i)/miu_r);
Pr_r=((miu_r*C_p_r)/k_r);
if Re_r>2100
h_i=(k_r/D_i)*.023*Re_r^.8*Pr_r^.4;
else
Re_r<2100
h_i=(k_r/D_i)*4.36;
end
h_io=h_i*(D_i/D_io);
%equations for water side
a=(pi/4)*(D_o^2-(no_tu_r*D_io^2));
Dia_h=(4*a)/((pi*no_tu_r*D_io));
G_w=m_dot_w/(a);
Re_w=((G_w*(Dia_h))/miu_w);
Pr_w=((miu_w*C_p_w)/k_w);
if Re_w>2100
h_o=(k_w/Dia_h)*.023*Re_w^.8*Pr_w^.3;
else
Re_w<2100
h_o=(k_w/Dia_h)*4.36;
end
%find UA
UA=(h_io*pi*D_i*no_tu_r*L*h_o*D_io*pi*no_tu_r*L)/((h_io*pi*D_i*no_tu_r*L)+(h_o*D_io*pi*no_tu_r*L));
NTU=UA/(m_dot_r*C_p_r);
%effectiveness
C_R=(min(m_dot_r*C_p_r,m_dot_w*C_p_w))/(max(m_dot_r*C_p_r,m_dot_w*C_p_w));
fsylm=(1-exp(-NTU*(1-C_R)))/(1-(C_R*exp(-NTU*(1-C_R))));
Q=fsylm*m_dot_r*C_p_r*(T_ri-T_wi);
end
this is my objective function
function [fval]=weight_testvariable(X)
clear all;
clc;
rho_ss=8000;
rho_cop=8960;
% defined thickness
X=[0.001;0.006;0.4];
%D_i=0.002;D_o=0.006;L=0.4;
D_i=X(1);D_o=X(2);L=X(3);
thick_i=0.0014-X(1);
thick_o=0.0075-X(2);
fval=(((rho_ss*pi*thick_i*X(1)*X(3))+(rho_cop*pi*thick_o*X(2)*X(3))));% objective function
end

回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with Optimization Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by