Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2012-03-16
帖子: 1
声望力: 0 ![]() |
![]()
function Fourlump
%由实验室固定床反应器数据估计三集总催化裂化动力学模型参数 format long e k0=[1.0 0.5 1.0];%动力学参数初值 [k,resnorm,residual,exitflag]=lsqnonlin(@ObjFun,k0) zspan=[0 1]; function Delta=ObjFun(k) %参数估计目标函数 global xx0 M NH V21 V23 V24 theta A xx0==[31.423 42.861 6.403 19.315]; M=[93.99229 83.27657 102.8053 116.2428]; NH=[0.2271 0.2271 0.2271 0.0852 0.0852 0.0852 0.1135 0.1135 0.1419 0.1419 0.1419 0.1419 0.1703 0.1703 0.1703]; V21=[0.8837 1.0897 0.9285 0.8446 0.9119 0.8925 0.9612 0.8992 0.8601 0.9473 0.9115 0.9747 0.8795 0.9365 0.9162]; V23=[0.8853 0.9914 0.8874 0.8228 0.8501 0.8609 0.9220 0.8669 0.8354 0.8654 0.8592 0.9637 0.8455 0.8638 0.9014]; V24=[0.7570 0.8668 0.7843 0.7332 0.7551 0.7666 0.7936 0.7678 0.7411 0.7644 0.7638 0.8576 0.7503 0.7658 0.8033]; theta=[166.8411 250.2616 286.0133 155.4816 248.7706 266.5399 169.4721 593.1523 80.9890 377.9487 566.9230 566.9229 180.9717 361.9435 434.3321]; A=[0.1562 0.1562 0.1562 0.0728 0.0728 0.0728 0.0925 0.0925 0.1106 0.1106 0.1106 0.1106 0.1270 0.1270 0.1270]; %--------------------------------------试验产率 %烷烃产率实验值 Pexp=[0.002553 0.003354 0.002758 0.003226 0.003495 0.003105 0.003571 0.003073 0.002857 0.003621 0.003228 0.003121 0.002850 0.003406 0.003142]; %烯烃产率实验值 Oexp=[0.002189 0.001745 0.002128 0.003156 0.002759 0.002974 0.001938 0.002763 0.002761 0.001888 0.002415 0.001553 0.002348 0.001851 0.001809]; %环烷烃产率实验值 Nexp=[0.000629 0.000684 0.000585 0.000672 0.000707 0.000678 0.000791 0.000675 0.000630 0.000679 0.000629 0.000734 0.000636 0.000648 0.000677]; %芳烃产率实验值 Aexp=[0.001467 0.001973 0.001336 0.001585 0.001658 0.001677 0.001780 0.001594 0.001569 0.001637 0.001522 0.001877 0.001601 0.001570 0.001687]; %-------------------------------------- for i=1:length(theta) f0(1)=xx0(1)/((1+2*NH(i))*M(1));%计算进料浓度:mole oil/g gas f0(2)=xx0(2)/((1+2*NH(i))*M(2)); f0(3)=xx0(3)/((1+2*NH(i))*M(3)); f0(4)=xx0(4)/((1+2*NH(i))*M(4)); z0=0;z1=1+eps; [z,f]=ode45(@FixBed,[z0 z1],f0,[],k,theta(i),V21(i),V23(i),V24(i),A(i),NH(i));%估计产率 fout=f(end, ![]() Pout(i)=fout(1); Oout(i)=fout(2); Nout(i)=fout(3); Aout(i)=fout(4); end DeltaG=Pexp-Pout; DeltaC=Oexp-Oout; DeltaG=Nexp-Nout; DeltaC=Aexp-Aout; Delta=[DeltaP;DeltaO;DeltaN;DeltaA]; %-------------------------------------- function df=FixBed(z,f,k) %固定床反应器物料衡算微分方程 global xx0 M NH V21 V23 V24 theta A Mwave=1.0/(f(1)+f(2)+f(3)+f(4)+A); df(1)=theta*Mwave*k(1)*V21*f(2); df(2)=-theta*Mwave*(k(1)+k(2)+k(3))*f(2); df(3)=theta*Mwave*k(2)*V23*f(2); df(4)=theta*Mwave*k(3)*V24*f(2); df=df'; 运行后:??? Error using ==> optim\private\lsqncommon User supplied function failed with the following error: Error using ==> eq Matrix dimensions must agree. Error in ==> lsqnonlin at 147 [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... Error in ==> Fourlump11111 at 5 [k,resnorm,residual,exitflag]=lsqnonlin(@ObjFun,k0) |
![]() |
![]() |