梦马论坛-以梦为马,不负韶华

搜索
搜索附件  

N.m

 

matlab求助,大家看看这个程序怎么改改啊:
谢谢大家了
求助改程序,也不把问题描述清楚!

啊啊,我错了,function  N
%图解法确精馏塔理论版数
clear
clc
xD=0.97;xW=0.02;R=3;xF=0.44;q=1.31;alph=2.47;
x2=[0 0.5 1 1.5 5 6 7 8 9];
y2=feval(@vle,x2);    这边怎么改改啊
%绘制平衡曲线
plot(x2,y2,'*')
hold on
p=polyfit(x2,y2,3);
x1=[0:0.01:1];
y1=polyval(p,x1);
plot(x1,y1)
hold on
%绘制对角线
line([0;1],[0;1])
%绘制精馏段操作线
fplot(@recope,[0 xD],[],[],'r',R,xD),
hold on
%绘制进料线方程
fplot(@qline,[xF 1],[],[],'g',q,xD),
hold on
%求解精馏段操作线与进料线的交点
xc=fzero(@cross,0.5,optimset('fzero'),R,xD,q,xF);
yc=recope(xc,R,xD);
%绘制提馏段操作线
line([xc,xW],[yc,xW],'Color','k'),
%绘制阶梯
x0=xD;
y0=xD;
n=0;
while 1
    n=n+1;
    [x0,y0]=tri(x0,y0,R,xD,p,xc,yc,xW,n);
    if x0<xW
        break;
    end
end
s=sprintf('理论板数为%d',n);
text(0.1,0.9,s);
xlim([0,1]),ylim([0,1]);
title('图解法确定精馏塔理论塔板数')
xlabel('x')
ylabel('y')
function y=vle(x)
y=2.47*x/(1+(2.47-1)*x);
function y=recope(x,R,xD)
y=R*x/(R+1)+xD/(R+1);
function y=qline(x,q,xF)
y=q*x/(q-1)-xF/(q-1);
function y=cross(x,R,xD,q,xF);
y=recope(x,R,xD)-qline(x,q,xF);
function y=vlei(x,p,yn)
y=polyval(p,x)-yn;
function [x,y]=tri(x0,y0,R,xD,p,xc,yc,xW,n)
x=fzero(@vlei,x0,optimset('fzero'),p,y0);
if x>xc
    y=recope(x,R,xD);
else
    y=yc+(yc-xW)*(x-xc)/(xc-xW);
end
line([x0,x,x],[y0,y0,y],'Color','m');
text(x,y0,int2str(n),'VerticalAlignment','bottom')



@胜源毅
有空看看这个问题能解决不?
不知道这是计算什么,只能看运行是否正确
feval错了
while循环语句没有作用,设置错误,让matlab无限运行

前几个画图与后几个画图有冲突,以至于前几个画图的点都掩盖了
我也不知这个program目的是什么,就没有改
加上xlim([0 10])可以设置图的x轴


胜源毅 发表于 2013-4-6 12:00
不知道这是计算什么,只能看运行是否正确
feval错了
while循环语句没有作用,设置错误,让matlab无限运行 ...

非常感谢啊,我已经自己解决了,这是图解法求理论板数呢,
楼主可以给一份解决答案吗??我也遇到这个问题:fplot(@recope,[0 xD],[],[],'r',R,xD)只告诉我这行错误,咋改呀,,matlab小白

手机版|Mammoth Forum - Ride on Dreams, Live Up to Youth

GMT+8, 2026-3-12 00:36

Powered by 梦马论坛-以梦为马,不负韶华

© 2024-2099 Meng.Horse

返回顶部