声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1103|回复: 3

[综合讨论] 请帮忙修改一个优化程序

[复制链接]
发表于 2007-9-16 19:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在保证Pf最小的情况下,用matlab优化Rf,Hpf,Hcf的值?

%***************************************************************
% This function is used to caculate the measurement of solar
% collector.
%***************************************************************
function [Pf,Rf,Hpf,Hcf]=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=[1:15];
Hp=[0.1:0.02:2.5];
%**************************************************************
%           Grid Paremeters
%**************************************************************
x=R;
y=Hp;
[X,Y]=meshgrid(x,y);
P=roc.*X.^2+hoc.*Y.^(0.80)./X;
%***************************************************************
%          Get mininum value of P
%***************************************************************
a=min(P);
Pf=min(a);
[s,t]=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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-9-17 09:27 | 显示全部楼层
先把你的问题及参数用word上传一下.---否则很难猜测你在做什么,更不用说提出更好的办法了.
另: 你的代码存在明显问题.
 楼主| 发表于 2007-9-17 12:37 | 显示全部楼层

请再帮我看一下如何修改这个优化程序


首先感谢xjzuo版主的提示现把已把问题说明及变量做成word上传!

问题说明.doc (83 KB, 下载次数: 12)

%%%%%%%%%%%变量表%%%%%%%%%%%%%%%%%
%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 [Pf,Rf,Hpf,Hcf]=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=[1:15];
Hp=[0.1:0.02:2.5];
%**************************************************************
%           Grid Paremeters
%**************************************************************
x=R;
y=Hp;
[X,Y]=meshgrid(x,y);
P=roc.*X.^2+hoc.*Y.^(0.80)./X;
%***************************************************************
%          Get mininum value of P
%***************************************************************
a=min(P);
Pf=min(a);
[s,t]=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 编辑 ]

问题说明及参数.doc

83 KB, 下载次数: 8

发表于 2007-9-17 14:36 | 显示全部楼层
看了一下你的说明文档------这应该是一个“无约束非线性多变量优化问题”。
可以直接利用fminsearch或者fminunc函数求解,你可以试试。
(看看help,或者搜索论坛均可找到例子)

另:现在再返回来看你的代码,似乎离求解问题很远。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 06:52 , Processed in 0.096660 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表