Академический Документы
Профессиональный Документы
Культура Документы
Algorithm
» Input data: f(x), df(x)/dx, x0, tolerance (), maximum
number of iterations (N)
» Given xn, compute xn+1 as:
f ( xn )
xn 1 xn
df ( xn ) dx
Write Matlab m-file function, fun.m:
Call fzero from the Matlab command line to
find the solution: >> xo = 0;
>> fzero('fun',xo)
ans =
0.5376
Different initial guesses, xo, can give different
solutions:
>> fzero('fun',1) >> fzero('fun',4)
ans = ans =
1.2694 3.4015
Nonisothermal Chemical Reactor
Reaction: A B
Assumptions
» Pure A in feed
» Perfect mixing
» Negligible heat losses
» Constant properties (, Cp,
H, U)
» Constant cooling jacket
temperature (Tj)
Constitutive relations
» Reaction rate/volume: r = kcA = k0exp(-E/RT)cA
» Heat transfer rate: Q = UA(Tj-T)
Model Formulation
Mass balance
d ( V )
0 wi w qi q qi q
dt
Component balance
d ( M AVC A )
M A qi C Ai M A qC A M AVr
dt
dC A
V q(C Ai C A ) Vk0 exp( E / RT )C A
dt
Energy balance
d
dt
VC p (T Tref ) wi C p (Ti Tref ) wC p (T Tref ) (H )rV Q
dT
VC p qC p (Ti T ) (H )Vk0 exp( E / RT )C A UA(T j T )
dt
Matlab Exercise
Steady-state model
0 q(C Af C A ) Vk0 exp( E / RT )C A
0 qC p (T f T ) (H )Vk0 exp( E / RT )C A UA(T j T )
Parameter values
» k0 = 3.493x107 h-1, E = 11843 kcal/kmol
» (-H) = 5960 kcal/kmol, Cp = 500 kcal/m3/K
» UA = 150 kcal/h/K, R = 1.987 kcal/kmol/K
» V = 1 m3, q =1 m3/h,
» CAf = 10 kmol/m3, Tf = 298 K, Tj = 298 K.
Problem
» Find the three steady-state points: (C A , T )
Matlab Tutorial cont.
FSOLVE – multivariable nonlinear zero finding
» Matlab function for solving a system of nonlinear algebraic
equations
» Syntax: x = fsolve(‘fun’,xo)
– Same syntax as fzero, but x is a vector of variables and the function,
‘fun’, returns a vector of equation values, f(x).
» Part of the Matlab Optimization toolbox
» Multiple algorithms available in options settings (e.g. trust-
region dogleg, Gauss-Newton, Levenberg-Marquardt)
Matlab Exercise: Solution with fsolve
Syntax for fsolve
» x = fsolve('cstr',xo,options)
» 'cstr' – name of the Matlab m-file function (cstr.m) for the CSTR model
» xo – initial guess for the steady state, xo = [CA T] ';
» options – Matlab structure of optimization parameter values created with the
optimset function
Solution for first steady state, Matlab command line input and output:
>> xo = [10 300]';
>> x = fsolve('cstr',xo,optimset('Display','iter'))
Norm of
First-order Trust-region
Iteration Func-count f(x) step optimality radius
0 3 1.29531e+007 1.76e+006 1
1 6 8.99169e+006 1 1.52e+006 1
2 9 1.91379e+006 2.5 7.71e+005 2.5
3 12 574729 6.25 6.2e+005 6.25
4 15 5605.19 2.90576 7.34e+004 6.25
5 18 0.602702 0.317716 776 7.26
6 21 7.59906e-009 0.00336439 0.0871 7.26
7 24 2.98612e-022 3.77868e-007 1.73e-008 7.26
Optimization terminated: first-order optimality is less than options.TolFun.
x =
8.5637
311.1702
Matlab Exercise: cstr.m
function f = cstr(x)
ko = 3.493e7;
E = 11843;
H = -5960;
rhoCp = 500;
UA = 150;
R = 1.987;
V = 1;
q = 1;
Caf = 10;
Tf = 298;
Tj = 298;
Ca = x(1);
T = x(2);
f=f';