请帮忙修改一个优化程序
在保证Pf最小的情况下,用matlab优化Rf,Hpf,Hcf的值?%***************************************************************
% This function is used to caculate the measurement of solar
% collector.
%***************************************************************
function =SoclCal(ta,ra,pr,pc,r,yt,pout)
%***************************************************************
% Tempretures
%***************************************************************
ts=348;
tm=324;
ti=(ta+tm)/2;
tt=(ts-ti)/ta;
%**************************************************************
% Physical Coefficient
%**************************************************************
rm=1.093;
k=2.76e-2;
g=9.8;
cp=1.005e3;
rf=24.3e-6;
v=16.96e-6;
pm=(rm^8*k^5*g^15)/(ra^15*cp^15*rf^(5/3)*v^(7/3));
%**************************************************************
% Coefficient
%**************************************************************
roc=pi*pr/cos(2*pi/45);
hoc=(pc/tt)*(pout^11/((0.018*yt)^11*pm*r^16))^(1/15);
%**************************************************************
% Independent Variable
%**************************************************************
R=;
Hp=;
%**************************************************************
% Grid Paremeters
%**************************************************************
x=R;
y=Hp;
=meshgrid(x,y);
P=roc.*X.^2+hoc.*Y.^(0.80)./X;
%***************************************************************
% Get mininum value of P
%***************************************************************
a=min(P);
Pf=min(a);
=size(P);
zb=0;
for i=1:s
for j=1:t
if P(i,j)==Pf
zb=1;
break;
end
end
if zb==1
break;
end
end
Rf=X(i,j);
Hpf=Y(i,j);
Hcf=(Pf-pi*pr*Rf^2/cos(2*pi/45))/pc;
以上是我自己做的程序,所得结果非常的不合情理,请版主帮我修改一下!
先谢谢了!
[ 本帖最后由 eight 于 2007-9-16 23:19 编辑 ] 先把你的问题及参数用word上传一下.---否则很难猜测你在做什么,更不用说提出更好的办法了.
另: 你的代码存在明显问题.
请再帮我看一下如何修改这个优化程序
首先感谢xjzuo版主的提示,现把已把问题说明及变量做成word上传!
%%%%%%%%%%%变量表%%%%%%%%%%%%%%%%%
%ts:地面黑体温度; tm:接近烟筒入口处的最大温度;
%ti:集热棚和地面之间气流的平均温度;ta:集热棚周边入口处的环境温度;
%rm:为tm温度下空气的密度; ra:为ta温度下空气的密度;
%k: 空气导热系数; g: 重力加速度;
%cp:定压比热容; rf:热扩散率;
%v: 空气的运动粘度; r: 烟筒的半径;
%yt:电机转子效率; pout:发电机的输出功率;
%pr:集热棚材料价格; pc:烟筒材料价格;
%Rf:集热棚半径; Hpf:集热棚距地面的高度;
%Hcf:烟筒的高度; Pf:太阳能发电机的总成本;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%***************************************************************
% This function is used to caculate the measurement of solar
% collector.
%***************************************************************
function =SoclCal(ta,ra,pr,pc,r,yt,pout)
%***************************************************************
% Tempretures
%***************************************************************
ts=348;
tm=324;
ti=(ta+tm)/2;
tt=(ts-ti)/ta;
%**************************************************************
% Physical Coefficient
%**************************************************************
rm=1.093;
k=2.76e-2;
g=9.8;
cp=1.005e3;
rf=24.3e-6;
v=16.96e-6;
pm=(rm^8*k^5*g^15)/(ra^15*cp^15*rf^(5/3)*v^(7/3));
%**************************************************************
% Coefficient
%**************************************************************
roc=pi*pr/cos(2*pi/45);
hoc=(pc/tt)*(pout^11/((0.018*yt)^11*pm*r^16))^(1/15);
%**************************************************************
% Independent Variable
%**************************************************************
R=;
Hp=;
%**************************************************************
% Grid Paremeters
%**************************************************************
x=R;
y=Hp;
=meshgrid(x,y);
P=roc.*X.^2+hoc.*Y.^(0.80)./X;
%***************************************************************
% Get mininum value of P
%***************************************************************
a=min(P);
Pf=min(a);
=size(P);
zb=0;
for i=1:s
for j=1:t
if P(i,j)==Pf
zb=1;
break;
end
end
if zb==1
break;
end
end
Rf=X(i,j);
Hpf=Y(i,j);
Hcf=(Pf-pi*pr*Rf^2/cos(2*pi/45))/pc;
请版主帮我再看看如何修改.
[ 本帖最后由 li343 于 2007-9-17 12:40 编辑 ] 看了一下你的说明文档------这应该是一个“无约束非线性多变量优化问题”。
可以直接利用fminsearch或者fminunc函数求解,你可以试试。
(看看help,或者搜索论坛均可找到例子)
另:现在再返回来看你的代码,似乎离求解问题很远。
页:
[1]