I am getting same intial guess value in fmincon
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Get Started with Optimization Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!