📄 cola.html
字号:
<Html><head><TITLE>Distillation: Column A </TITLE></head><body><h1> MATLAB Distillation column model ("Column A")</h1>This documentation is written by Sigurd Skogestad<p>For general information on distillation: see <a href="http://www.chembio.ntnu.no/users/skoge/distillation"> here </a>. <p>The model described below has been developed for a binary mixture.Corresponding files for the multicomponent case are found <a href="http://www.nt.ntnu.no/users/skoge/distillation/multicomp_skouras/"> here </a><hr><p>Contents:<ul><li> <A HREF="cola.html#intro"> Introduction </A> <br><li> <A HREF="cola.html#files"> MATLAB and SIMULINK files</A> <br><li> <A HREF="cola.html#start"> Getting started</A> <br><li> <A HREF="cola.html#model"> The model and assumptions</A> <br><li> <A HREF="cola.html#data"> Column data ("Column A")</A> <br><li> <A HREF="cola.html#matlab"> MATLAB model</A> <br><li> <A HREF="cola.html#init"> Steady-state operating point</A> <br><li> <A HREF="cola.html#dyn1"> Example: Dynamic response to increase in feed-rate</A> <br><li> <A HREF="cola.html#dyn2"> Simulations with various configurations</A> <br><li> <A HREF="cola.html#lin"> Linearized models</A> <br><li> <A HREF="cola.html#g4"> Scaled linear model G4 </A> <br><li> <A HREF="cola.html#temp"> Column temperatures </A> <br><li> <A HREF="cola.html#simulink "> SIMULINK</A> <br><li> <A HREF="cola.html#new"> Simulating another column</A> <br><li> <A HREF="cola.html#ref"> References</A> <br></ul><hr><p><h2> <a name="intro"> Introduction </a></h2>You can here find nonlinear and linear dynamic models of a continuous distillationcolumn for use with MATLAB and/or SIMULINK. The models are for the 4x4 "open-loop" (uncontrolled) column, as well as for the LV, DV,and L/D-V/B-configurations. <p>The column is "column A" studied in severalpapers by Skogestad and Morari, e.g. see S. Skogestad and M. Morari, ``Understanding the Dynamic Behavior of Distillation Columns'', <i> Ind. & Eng. Chem. Research</i>, 27, 10, 1848-1862 (1988) and the book <a href="http://www.chembio.ntnu.no/users/skoge/book.html">Multivariable feedback control</a> (Wiley, 1996) by S. Skogestad and I. Postlethwaite. The model is the same as the one given inthe book of Morari and Zafiriou (1989) - see their Appendix - except thatwe have here also included liquid flow dynamics, which is crucial if themodel is used for feedback control studies. In addition, the model has recently been used in a tutorial paper:S. Skogestad, <A HREF="http://www.chembio.ntnu.no/users/skoge/publications/1997/dist_plenary.ps"> Dynamics and control of distillation columns - A tutorial introduction.</A>, Trans IChemE (UK), Vol. 75, Part A, Sept.1997, 539-562 (Presented at <i>Distillation and Absorbtion 97</i>, Maastricht, Netherlands, 8-10 Sept. 1997).<p>The following assumptions are used:Binary mixture; constant pressure; constant relative volatility;equlibrium on all stages; total condenser;constant molar flows; no vapor holdup; linearized liquid dynamics, but effect of vapor flow ("K2"-effect) is included.These assumptions may seem restrictive, but they capture the maineffects important for dynamics and control (except for the assumptionabout constant pressure). <p>The column has 40 theoretical stages and separates a binary mixturewith relative volatility of 1.5 into products of 99% purity.It is relatively easy to change the model parameters and to simulateanother column.<p>The MATLAB column model is given in the file <a href="colamod.m"><tt>colamod.m</tt></a>.Most of results given below can be generated from the file<a href="cola_test.m"> cola_test.m </a>, and a collection of usefulMATLAB-commands for linear analysis (poles, zeros, RGA, CLDG, singular values, etc.) are found in <a href="cola_commands.m"> cola_commands.m </a>.In addition, the file <A HREF="paper/cola_paper.m"> <tt>cola_paper.m</tt></A>(in the subdirectory <A HREF="paper"> <tt>paper</tt></A>)contains the files needed to generate the results in the tutorial paper (Skogestad, 1997).<p><p> This documentation was written by <A HREF="http://www.chembio.ntnu.no/users/skoge"> Sigurd Skogestad </a>on 26 Nov 1996 and was last updated on 30 May 1997.<p>Thanks to Kjetil Havre, Magne Wiig Mathisen, Elisabeth Kjensjordand Atle Christiansen for their contributions.<h2> <a name="files"> MATLAB and SIMULINK files </a></h2>The most important files for the 4x4 column model (no control) are <ul><li><a href="colamod.m"><tt>colamod.m</tt></a> (function with basic column model), <li><a href="cola4.m"><tt>cola4.m</tt></a> (MATLAB interface to colamod.m),<li><a href="colas.m"><tt>colas.m</tt></a> (SIMULINK interface to colamod.m)<li><A href=colas_nonlin.mdl> <tt>colas_nonlin.mdl</tt> </a>(SIMULINK block diagram setup).</ul>In addition the following files for the LV-configuration are important<ul><li><a href="cola_lv.m"><tt>cola_lv.m</tt></a> (same as <tt>cola4.m</tt>,but close level loops with D and B using P-controllers)<li><a href="cola_init.m"><tt>cola_init.m.</tt></a> (generates steady-state data in file <tt>cola_init.mat</tt>- Run this program first). </ul>It is recommended that you at least copy the above 6 files to your userarea.<p>However, to get other configurations, tolead you the through the examples below, and to provideyou with easily accessible linear models (*.mat) - the following MATLAB (cola_) and SIMULINK (colas_) files are <A HREF=" "> available</A>:<pre>G4.mat cola_init.m cola_test.mREADME.cola cola_init.mat colamod.mcola.dat cola_lb.m colas.mcola.html cola_lb_F1.m colas_PI.mcola4.m cola_linearize.m colas_lin.mcola4_F1.m cola_lv.m colas_lv_nonlin.mcola4_lin.m cola_lv_F1.m colas_nonlin.mcola_G4.m cola_lv_lin.m colas_test.mcola_G4_lin.mat cola_lv_lin.mat matlab_cola.tar.gzcola_G4u_lin.mat cola_lvu_lin.mat matlab_cola.zipcola_commands.m cola_rr.m numjac.mcola_db.m cola_rr_F1.m ode15s.mcola_db_lin.mat cola_rr_lin.m odeget.mcola_dv.m cola_rr_lin.mat odeset.mcola_dv_lin.mat cola_rru_lin.mat paper/cola_init.dat cola_simulink_readme vrga.m</pre>In addition, subdirectory <A HREF="paper"> <tt>paper</tt></A>contains the files (see in particular<A HREF="paper/cola_paper.m"> <tt>cola_paper.m</tt></A>)needed to generate the results in the paper:S. Skogestad, <AHREF="httP://www.chembio.ntnu.no/users/skoge/publications/1997/dist_plenary.ps"> Dynamics and control of distillation columns - A tutorial introduction.</A> Presented at <i>Distillation and Absorbtion 97</i>, Maastricht, Netherlands, 8-10 Sept. 1997.<p>All the files can be transferred <a href="http://www.chembio.ntnu.no/users/skoge/book/matlab_m/cola">one by one </a> using your browser (e.g netscape),or you can transfer all the files to your local machinesby transferring the file<A HREF="matlab_cola.tar.gz"><tt>matlab_cola.tar.gz</tt></A> (unix)or <A HREF="matlab_cola.zip"><tt>matlab_cola.zip</tt></A> (PC).Afterwards you "unpack" the files by writing:<PRE> gunzip -c matlab_cola.tar.gz | tar xvf - </PRE> <p>It is recommended that you run MATLAB in one window and have the m-file inanother window, and transfer text using the mouse. <h2> <a name="start"> Getting started </a></h2>To test that things are working you may enter the following commands<pre>cola_init % Generates initial steady-state profilecola_simf % Simulates an increase in feed rate of 1% (using Matlab)</pre>If this works then you are in business. But: These two files are the only ready-made scipt files,so from now on you mustgo into the files and modify by yourself(as descibed in more detail below).<h2> <a name="model"> The model and assumptions </a></h2><b>Assumptions:</b> Binary mixture, constant pressure, constant relative volatility,constant molar flows, no vapor holdup, linear liquid dynamics, equlibriumon all stages, total condenser.<p>Note that we do <b>not</b> assume constant holdup on the stages, that is, weinclude liquid flow dynamics. This meansthat it takes some time (about (NT-2)*taul) from we change the liquid inthe top of the column until the liquid flow into the reboiler changes. Thisis good for control as it means that the initial ("high-frequency")reponse is decoupled (if we have sufficiently fast control then we can avoid some of the strong interactions that exist at steady-state betweenthe compositions at the top and bottom of the column).<p> <b>Notation:</b> <br> L_i and V_i - liquid and vapor flow from stage i [kmol/min],<br> x_i and y_i - liquid and vapor composition of light component on stage i [mole fraction],<br> M_i - liquid holdup on stage i [kmol],<br> D and B - distillate (top) and bottoms product flowrate [kmol/min],<br> L=LT and V=VB - reflux flow and boilup flow [kmol/min],<br> F, z_F - Feed rate [kmol/min] and feed composition [mole fraction],<br> q_F - fraction of liquid in feed<br> i - stage no. (1=bottom. NF=feed stage, NT=total condenser)<br> alpha - relative volatility between light and heavy component <br> taul - time constant [min] for liquid flow dynamics on each stage<br> lambda - constant for effect of vapor flow on liquid flow ("K2-effect")<p><p> We will write the model such that the states are x_i (i=1,NT)and M_i (i=1,NT) - a total of 2*NT states. <p> <b>Model equations.</b>The basic equations are (for more detailssee <a href="colamod.m"><tt>colamod.m</tt></a>):<p><b>1. Total material balance om stage i:</b><center>dM_i/dt = L_{i+1} - L_i + V_{i-1} - V_i</center><b> 2. Material balance for light component on each stage i: </b><center>d(M_i x_i)/dt = L_{i+1} x_{i+1} + V_{i-1} y_{i-1} - L_i x_i - V_i y_i</center>which gives the following expression for the derivative of theliquid mole fraction:<center>dx_i/dt = ( d(M_i x_i)/dt - x_i dM_i/dt ) / Mi</center><p><p> <b>3. Algebraic equations.</b> The vapor composition y_i is related to theliquid composition x_i on the same stagethrough the algebraic vapor-liquid equlibrium:<center>y_i = alpha x_i / (1 + (alpha - 1)x_i)</center>where alpha is the relative volatility.From the assumption of constant molar flows andno vapor dynamics we have the following expression for the vaporflows (except at the feed stage if the feed is partly vaporized,where V_NF = V_{NF-1} + (1-q_F) F): <center> V_i=V_{i-1} </center>The liquid flows depend on the liquid holdup on the stage above and thevapor flow as follows (this is a linearized relationship;we may alternatively use Francis' Weir formula etc.):<center>L_i = L0_i + (M_i - M0_i)/taul + (V-V0)_{i-1} * lambda;</center>where L0_i [kmol/min] and M0_i [kmol] are the nominal values forthe liquid flow and holdup on stage i. The vapor flow into thestage may also effect the holdup; lambda may be positivebecause more vapor may give more bubbles and thus may push liquid off thestage. If lambda is large (larger than 0.5) then the reboilerholdup "flattens out" for some time in response to an increasein boilup, and if lambda > 1 we get an inverse response; seealso Skogestad and Morari (1988). lambda may also be negative ifthe increased pressure drop caused by larger V results in a largerholdup in the downcomers - in general it is difficult to estimatelambda for tray columns. For packed columns lambda is usually close to zero.<p> The above equations apply at all stages except in the top (condenser),feed stage and bottom (reboiler). <p><b>Feed stage</b>, i=NF (we assumethe feed is mixed directly into the liquid at the feed stage):<center>dM_i/dt = L_{i+1} - L_i + V_{i-1} - V_i + F<p> d(M_i x_i)/dt = L_{i+1} x_{i+1} + V_{i-1} y_{i-1} - L_i x_i - V_i y_i + F z_F</center><p><b>Total condenser</b>, i=NT (M_NT = M_D, L_NT=L_T)<center>dM_i/dt = V_{i-1} - L_i - D<p> d(M_i x_i)/dt = V_{i-1} y_{i-1} - L_i x_i - D x_i</center><p><b>Reboiler</b>, i=1 (M_i = M_B, V_i = V_B = V)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -