|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
代码如下;
% h+ |+ ^+ W! X6 Ufunction Kinetics4
# c) X5 z; _1 ?; L# Q% vclear all
. U" M q4 d$ h9 lclc$ c; r2 T2 F3 b1 L7 W
k0 = [2.159*10^8 4.734*10^6 174686 149892 0.99 0.7 0.5 0.78];%参数初值,其实是不知道的
$ c+ ~: z8 i/ F2 blb = [-inf -inf -inf -inf -inf -inf -inf -inf]; % 参数下限
& ]* O" ]. E7 dub = [inf inf inf inf inf inf inf inf]; % 参数上限
; S0 Y" O! a. }1 c: I4 W9 \$ Lu0 = [0,0]; %y初值
9 V8 q6 E. h$ O, `6 i5 P0 O3 k' d! ra=[0;0.06680583;0.192617534;0.301693824;0.419783943;0.527041818;0.598345407;0.65055108;0.6876854;0;0.0295189820000000;0.0760025420000000;0.143652564000000;0.303435528000000;0.419715167000000;0.525496977000000;0.565069320000000;0.743536298000000;0;0.0411725930000000;0.0608472370000000;0.0986899250000000;0.241132264000000;0.324760943000000;0.466871464000000;0.531688237000000;0.683614442000000];
, _: k5 Y: _9 q9 e6 k- ?b=[0;0.2378;0.3288;0.3556;0.39;0.3877;0.3766;0.3580;0.3384;0;0.1373;0.2123;0.2755;0.3561;0.3549;0.3475;0.3486;0.2518;0;0.115879961000000;0.178182567000000;0.219982937000000;0.315058656000000;0.339244190000000;0.348664305000000;0.351963292000000;0.313743618000000];
' d8 _ p _- S; ~( a- p+ gyexp=[a,b];: P7 l8 P# p7 I6 {- a) [
% 使用函数lsqnonlin()进行参数估计
/ |- J6 r$ ]* c) q0 _" ~
2 z2 C4 p& V7 [! d7 a0 z$ k3 X[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...' l. g$ F Y, K
lsqnonlin(@ObjFunc4LNL,k0,lb,ub,[],u0,yexp);
! t" \( w/ i7 G$ R; v/ pci = nlparci(k,residual,jacobian);
I/ b* `( x& O/ A6 u6 {5 F/ ~" _& g" {fprintf('\tk1 = %.4f ± %.4f\n',k(1),ci(1,2)-k(1))
. R' P9 j! H; z; C, hfprintf('\tk2 = %.4f ± %.4f\n',k(2),ci(2,2)-k(2))
2 ] M, X: J/ F- _ Z3 x0 ^" j+ _fprintf('\tk3 = %.4f ± %.4f\n',k(3),ci(3,2)-k(3))
) [% `5 J$ a$ l, E0 xfprintf('\tk4 = %.4f ± %.4f\n',k(4),ci(4,2)-k(4))
! q; _2 Y& b; p& pfprintf('\tk5 = %.4f ± %.4f\n',k(5),ci(5,2)-k(5))
" [3 R0 D. c1 T3 |6 A' Qfprintf('\tk6 = %.4f ± %.4f\n',k(6),ci(6,2)-k(6))
/ \# a j7 @9 ^0 I; z+ tfprintf('\tk7 = %.4f ± %.4f\n',k(7),ci(7,2)-k(7))
2 `3 [/ |5 R/ |( M' m5 Kfprintf('\tk8 = %.4f ± %.4f\n',k(8),ci(8,2)-k(8))6 r9 p, Y+ Z4 r2 F9 I6 {! _4 C
fprintf(' The sum of the squares is: %.1e\n\n',resnorm)9 @ O8 j2 [0 R' U8 U
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
' n( k6 B- o3 `6 I' A8 e%目标函数/ k9 x0 l) i$ w
function f =ObjFunc4LNL(k,u0,yexp)! m8 f6 L, ]. C" E- I
global theta Pt Ac R T Fa0
`: t. l8 u% x. _7 C# }( |, [theta=zeros(5,1);9 X0 N* y. }0 Z6 K7 k
r0= 1.24*10^-3; % Outer diameter of the membrane, [m]8 ^) A& ^' `1 v( t
ri= 9.4*10^-4;% Inner diameter of the membrane, [m]% g$ k' S: \2 M: t" C+ v# e
r=(r0-ri)/log(r0/ri);% equivalent diameter ,[m]
z( y m* g1 m* k7 M% DPi=3.14159;* J2 q+ J0 U% s2 y7 v6 \
L=0.05;% membrane length,[m]* F6 h9 }* |" F4 v: @: c
Ac=Pi*r*L;% membrane area [m^2]( p: ~8 t' q# I
R=8.314; % [J/K.mol]
; |! ? B: P1 l' u( i# c, }Pt=101.325;! j2 _! e7 N$ }
Ftot=[2.678*10^-2;2.678*10^-2*1.5;2.678*10^-2*2];6 ]4 F$ p4 y, J
Kmax=length(Ftot);
9 @" }0 O' o' f! u1 t; P' ~
$ l9 r' l$ ^- p, s% ~' K- e% eT0=600+273;% Inlet temperature [K]
$ y m$ C* b( A/ z4 ^' H- Pnmax=9;8 z! u X! j! J
X1=zeros(nmax,Kmax);X2=zeros(nmax,Kmax);% P* N% [: E/ v3 M* h+ \ e
for K=1:Kmax- ] g7 w5 |. [% k9 v" r9 `7 I
Fa0=Ftot(K); % If Pt is the parameter/Matrix. p+ e* N9 L* h" @& @
%Pt=Pt0+(k-1)*1; % If Pt is an axis# T/ l _9 }7 k: p1 |9 z# J# {
%L=Lsize(k); % If L is the parameter/Matrix
% L5 e( Z8 p7 Y6 G%theta(2)=H2Oratio+(k-1)*1; % If m is the parameter/Matrix+ |2 h2 A* G+ ^9 G: i) {: t( I. p1 {
theta(2)=3; % F0(H2O)/F0(CH4)
2 f) h9 S6 w! V6 Rtheta(3)=0; % F0(CO)/F0(CH4)
* L. a* T5 B- Y rtheta(4)=0; % F0(CO2)/F0(CH4)
! Y/ |! _ u+ c: ?0 z' |8 btheta(5)=0; % F0(H2)/F0(CH4)
$ j8 O0 K* E& X; w0 ufor n=1:nmax
3 }/ Y" R- p8 D%delta=delta0+(n-1)*1e-6; % If delta is the parameter/Matrix6 E9 ^2 _7 a" ]: h& P
%rit=r0+delta; % inner tube radius [m]
- d1 E2 I" {" B" {9 W5 W%sweep=s0+(n-1); % If sweep is the parameter/Matrix
' X/ S* L6 {/ Z* ?. P: G%T=T0; % If T is a constant
4 @# W0 x3 q7 E3 DT=T0+(n-1)*50;
. W+ S$ A* o, w& |6 \+ E, |5 bksispan=(0:0.1:1); % precision
8 o5 X( L; H B: ?% R9 Q[ksi,S1]=ode23s(@KineticEqs,ksispan,u0,[],k); % PBR reactor
3 S5 m# m) T7 [& \/ Y/ W: OX1(n,Kmax)=real(S1(end,1)); % methane finale conversion
j* C# {9 X: M4 @ hX2(n,Kmax)=real(S1(end,2)); % carbon dioxide finale conversion
$ j- X) x- J: {8 x! U& S* k% p l/ bend6 O. _6 |/ O! T( ]( P7 w8 s l9 U% o
end
+ L3 i+ k, t$ r j) h/ [f1=X1(n,Kmax)-yexp(:,1);
, d: |9 V' z" Q* U& _' T1 \4 {f2=X2(n,Kmax)-yexp(:,2);
# |" ~' W% {, {: s* x* \% uf=[f1;f2];2 @7 k7 z6 F/ b. x$ {9 }# y. P' r* U
%T0=T0-273.15;T=T-273.15; % Temperature expressed in Celsius ) `: K4 V8 M: C4 }
%Tspan=(T0:1:T);
; Z6 u' @3 c; r* \0 b) I8 Q9 \%Pspan=(Pt0:1 t);% \2 j1 ~0 W) x9 I: _5 K5 ]
%DSPan=(delta0*1e6:1:delta*1e6);2 M+ C" V2 ]( r3 X r; ]
%Sspan=(s0:1:sweep);& S( ~$ T+ h* {" J1 }1 {
%D(:, =X3(:, -X1(:, ; % Delta = XCH4(MR) - XCH4(PBR)
" q7 w: o$ a& _( v( Z8 g
3 b( o- C: i( Sfunction diff=KineticEqs(ksi,u,k)
o) A3 S* A. X6 W; Hglobal theta Pt Ac Fa0 T R
: u. G& ?1 ~5 R! G5 @- kS=Pt/(1+theta(2)+theta(3)+theta(4)+theta(5)+2*(u(1)+u(2)));
, I. J: ^" y+ z4 RP(1)=(1-u(1)-u(2))*S; {+ O; v5 ~: y% A" u
P(2)=(theta(2)-u(1)-2*u(2))*S;
I4 O1 V- Z0 @/ C1 fP(3)=(theta(3)+u(1))*S;# l/ Y2 J( F+ U0 }! ?
P(4)=(theta(4)+u(2))*S;
+ k p2 f* G% k) eP(5)=(theta(5)+3*(u(1)+u(2))+u(2))*S;
. ^8 A" y/ H W8 P: b: E" f% Differential System3 P) s4 M8 E! t. r E) \. @
diff1=Ac/Fa0*k(1)*exp(-k(3)/R/T)*P(1)^k(5)*P(2)^k(7);' a3 Z( a' m% }* v
diff2=Ac/Fa0*k(2)*exp(-k(4)/R/T)*P(1)^k(6)*P(2)^k(8);# y' d# i5 s; `# h0 M. i' H, @6 W
diff=[diff1 diff2]';
, J, ^" `6 X: H6 O2 [. P
! x4 _( O) O; _运行结果:
2 U W# ~" F u \% b& }# sIn nlparci (line 104)" d3 ^. Z' Y# t6 m) {3 h
In Kinetics4 (line 15); V" k- N. D! B! b
警告: 矩阵为奇异工作精度。. z: k) ]& ]9 y |
k1 = 215900000.0000 ± NaN) X5 d0 O$ I' N) j
k2 = 4734000.0000 ± NaN
3 }3 W3 {5 r2 z- I( Y3 E k3 = 174686.0000 ± NaN
/ T& a; A; W* U5 t6 K k4 = 149892.0000 ± NaN
8 Q2 X o+ t+ ?" L+ ^* _8 { k5 = 1.2381 ± NaN
# P, h$ z+ d! T( T& U. g6 ? k6 = 0.5426 ± NaN
- N- p: R) h, i: g @# T; {/ W+ k( E k7 = -0.3426 ± NaN8 m2 Y# B- F. C( B8 O$ s E& ^. e
k8 = 0.4455 ± NaN" ^- G; i- b3 P* G9 o5 o9 |; y: R6 N
The sum of the squares is: 2.0e+00
9 Y( ~8 s! L9 A U4 I( A" S! l1 M$ | |
|