Download Full Computational Techniques for Process Simulation and Analysis Using MATLAB® 1st Edition Niket S. Kaisare PDF All Chapters
Download Full Computational Techniques for Process Simulation and Analysis Using MATLAB® 1st Edition Niket S. Kaisare PDF All Chapters
com
https://textbookfull.com/product/computational-techniques-
for-process-simulation-and-analysis-using-matlab-1st-
edition-niket-s-kaisare/
OR CLICK BUTTON
DOWNLOAD NOW
https://textbookfull.com/product/numerical-methods-for-engineers-and-
scientists-using-matlab-ramin-s-esfandiari/
textboxfull.com
https://textbookfull.com/product/network-modeling-simulation-and-
analysis-in-matlab-theory-and-practices-dac-nhuong-le/
textboxfull.com
Chemical thermodynamics for process simulation Gmehling
https://textbookfull.com/product/chemical-thermodynamics-for-process-
simulation-gmehling/
textboxfull.com
https://textbookfull.com/product/signals-and-systems-analysis-using-
transform-methods-and-matlab-third-edition-michael-j-roberts/
textboxfull.com
https://textbookfull.com/product/power-system-transient-analysis-
theory-and-practice-using-simulation-programs-atp-emtp-1st-edition-
arai/
textboxfull.com
Computational Techniques for
Process Simulation and Analysis
Using MATLAB®
Computational Techniques for
Process Simulation and Analysis
Using MATLAB®
Niket S. Kaisare
MATLAB ® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the accuracy
of the text or exercises in this book. This book’s use or discussion of MATLAB ® software or related products does not constitute
endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular use of the MATLAB ® software.
CRC Press
Taylor & Francis Group,
6000 Broken Sound Parkway NW, Suite 300,
Boca Raton, FL 33487-2742
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to pub-
lish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the
consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in
this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright
material has not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any
form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming,
and recording, or in any information storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.
copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400.
CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been
granted a photocopy license by the CCC, a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification
and explanation without intent to infringe.
Preface, xix
Author, xxiii
vii
viii ◾ Contents
Chapter 7 ◾ Special Methods for Linear and Nonlinear Equations 273
7.1 GENERAL SETUP 273
7.1.1 Ordinary Differential Equation–Boundary Value Problems 274
7.1.2 Elliptic PDEs 274
7.1.3 Outlook of This Chapter 275
7.2 TRIDIAGONAL AND BANDED SYSTEMS 275
7.2.1 What Is a Banded System? 275
7.2.1.1 Tridiagonal Matrix 276
7.2.2 Thomas Algorithm a.k.a TDMA 276
7.2.2.1 Heat Conduction Problem 277
7.2.2.2 Thomas Algorithm 281
7.2.3 ODE-BVP with Flux Specified at Boundary 285
7.2.4 Extension to Banded Systems 288
7.2.5 Elliptic PDEs in Two Dimensions 289
7.3 ITERATIVE METHODS 290
7.3.1 Gauss-Siedel Method 291
7.3.2 Iterative Method with Under-Relaxation 295
7.4 NONLINEAR BANDED SYSTEMS 296
7.4.1 Nonlinear ODE-BVP Example 296
7.4.1.1 Heat Conduction with Radiative Heat Loss 297
7.4.2 Modified Successive Linearization–Based Approach 298
7.4.3 Gauss-Siedel with Linearization of Source Term 302
7.4.4 Using fsolve with Sparse Systems 304
7.5 EXAMPLES 304
7.5.1 Heat Conduction with Convective or Radiative Losses 304
7.5.2 Diffusion and Reaction in a Catalyst Pellet 305
xiv ◾ Contents
BIBLIOGRAPHY, 527
INDEX, 529
Preface
S tudents today are expected to know one or more of the several computing or simu-
lation tools as part of their curriculum, due to their widespread use in the industry.
MATLAB® has become one of the prominent languages used in research and industry.
MATLAB is a numerical computing environment that is based on a MATLAB scripting
language. MathWorks, the makers of MATLAB, describe it as “the language of technical
computing.” The focus of this book will be to highlight the use of MATLAB in technical
computing or, more specifically, in solving problems in the analysis and simulation of pro-
cesses of interest to engineers.
This is intended to be an intermediate-level book, geared toward postgraduate students,
practicing engineers, and researchers who use MATLAB. It provides advanced treatment
of topics relevant to modeling, simulation, and analysis of dynamical systems. Although
this is not an introductory MATLAB or numerical techniques textbook, it may however
be used as a companion book for introductory courses. For the sake of completeness, a
primer on MATLAB as well as introduction to some numerical techniques is provided in
the Appendices. Since mid-2000s,we have always used MATLAB in electives in IIT Madras.
The popularity of MATLAB among students led us to start a core undergraduate (sopho-
more) and a postgraduate (first-year masters) laboratory. Since 2016, I have started teach-
ing a massive open online course (MOOC) on MATLAB programming on the NPTEL
platform.* The first two years of this course had over 10,000 enrolled students. Needless to
say, MATLAB has become an important tool in teaching and research. The focus of all the
above courses is to introduce students to MATLAB as a numerical methods tool. Some of
the students who complete these courses inquire about the next-level courses that would
help them apply MATLAB skills to solve engineering problems. This book may also be used
for this purpose. In introductory courses, a significant amount of time is spent in develop-
ing the background for numerical methods itself. In our effort to make the treatment gen-
eral and at a beginner’s level, we eschew real-world examples in favor of abstracted ones.
For example, we would often introduce a second-order ODE using a generic formulation,
such as y″ + ay′ + b(y − c) = 0. A sophomore who hasn’t taken a heat transfer course may
not yet appreciate a “heating in a rod” problem. An intermediate-level text means that it
is more valuable to use a real example, such as T″ + r−1T′ + β(T − Ta) = 0. The utility of such
* NPTEL stands for National Programme for Technology Enhanced Learning and is a Government of India−funded initiative
to bring high-quality engineering and science courses on an online (MOOC) platform to enhance students’ learning.
xix
xx ◾ Preface
an approach cannot be understated, since it allows the freedom to introduce some of the
complexity that engineers, scientists, and researchers face in their work.
The value of using real-world examples was highlighted during my experience in indus-
trial R&D, where we used MATLAB extensively. We needed to interface with cross-func-
tional teams: engineering, implementation, and software development teams. Individuals
came from a wide range of backgrounds. These interactions exposed me to a new experi-
ence: Your work must be understood by people with very different backgrounds, who may
not speak the same technical language. The codes had to bridge the “language barrier”
spoken in different teams, and the codes were to be combined with a reasonably intuitive
interface. I have tried to adopt some of these principles in this book, without moving too far
from the more common pedagogy in creating such a book.
Thus, a practically oriented text that caters to an intermediate-level audience is my objec-
tive in writing this book.
systems. The “process” is the focus. Numerical methods are introduced insofar as is essen-
tial to make a judicious choice of algorithms for simulation and analysis.
PREREQUISITES
Since this is a postgraduate-level text, some familiarity with an undergraduate-level
numerical techniques or an equivalent course is assumed, though we will review all the
relevant concepts at the appropriate stage. So, the students are not expected to remem-
ber the details or nuances of “Newton-Raphson” or “Runge-Kutta” methods, but this
book is not the first time they hear these terms.
Some familiarity with coding (MATLAB, Fortran, C++, Python, or any language)
will be useful, but not a prerequisite. MATLAB primer is provided in the Appendix for
first-time users of MATLAB. Finally, with respect to writing MATLAB code, I focus on
“doing it right the first time” approach—by bringing in good programming practices
that I have learnt over the years. Things like commenting and structuring your code,
scoping of variables, etc., are also covered, not as an afterthought but as an integral part
of the discussion. However, these are dealt with more informally than a “programming
language” course.
xxiii
CHAPTER 1
Introduction
1.1 OVERVIEW
1.1.1 A General Model
This book is targeted toward postgraduate students, senior undergraduates, researchers, and
practicing engineers to provide them with a practical guide for using MATLAB® for process
simulation and numerical analysis. MATLAB was listed among the top ten programming
languages by the IEEE Spectrum magazine in 2015 (a list that was topped by Java, followed by
C and C++). While the basics of MATLAB can be learnt through various sources, the focus
of this book is on the analysis and simulation of processes of interest to engineers.
The terms “analysis” and “simulation” are generic terms that define a rather broad spectrum
of problems and solution techniques. Engineering is a discipline that deals with the transfor-
mation of raw material, momentum, or energy. Thus, this book will focus on those process
examples where the variables of interest vary with time and/or space, including the relationship
of these state variables with their properties. I will use an example of a reactor-separator process
in Section 1.1.2 to illustrate this. While this is a chemical engineering example, the treatment in
this book is general enough for other engineering and science disciplines to also find it useful.
The problems mentioned above that are considered in this book include ordinary and
partial differential equations (ODEs and PDEs), algebraic equations (either linear or non-
linear), or combinations thereof. The three sections of this book are organized based on the
computational methodology and analysis tools that will be used for the respective problems.
Section I of this book includes Chapters 2 through 5 and deals with ODE-IVPs (initial
value problems) as well as the problems that can be converted into a standard form that can
be solved with ODE-IVP tools. A generic ODE-IVP is of the type
dy
= f ( t ,y ;f
f) (1.1)
dt
where
t is an independent variable
y ∈ R n is a vector of dependent variables
ϕ represents parameters
1
2 ◾ Computational Techniques for Process Simulation and Analysis Using MATLAB®
0 = g ( x;f
f) (1.2)
where
x ∈ R m is a vector of dependent variables
ϕ represents parameters
Nonlinear algebraic equations, such as Equation 1.2, fall under this category. Moreover,
ODE-BVPs (boundary value problems) and several PDEs are also converted into the form
of Equation 1.2. Section II will not only cover techniques to solve algebraic equations but
also expound methods to convert ODEs/PDEs to this form. A combination of Equations 1.1
and 1.2, called differential algebraic equations (DAEs), is covered in Chapter 8. Chapters 5
and 9 are the concluding chapters of the first two sections. They build on the concepts from
the preceding chapters in the respective sections for the analysis of dynamical systems and
provide an introduction to advanced topics in simulations.
Finally, Chapter 10, included in Section III, deals with the parameter estimation prob-
lem, that is, to compute the parameter vector, ϕ, that best fits the experimental data.
dx A
F = -r ( x A ) , x A V =0 = xin (1.3)
dV
Ffeed Fr, xr P, xp
D, xD Purge
Fin, xin
F, xf
F, xf
B, xB
FIGURE 1.1 A typical process consisting of a reactor and a separator, with a recycle.
Introduction ◾ 3
The reactor outlet conditions are obtained by solving the ODE-IVP above. ODE-IVP prob-
lems are covered in Chapter 3 of this book. If a dynamic response of the PFR is required,
the resulting model is a PDE, where the state variable of interest varies in both space and
time. Solutions to transient PDEs are covered in Chapter 4. Advanced topics in simulation
are presented in Chapter 5, for example, when the inlet conditions or model parameters
vary with time and/or space.
The distillation column consists of N nonlinear algebraic equations in N unknowns (mole
fractions on each tray). For example, one of the model equations for the kth tray is given by
ax i
0 = ( Li -1 xi -1 - Li xi ) + (Vi +1 yi +1 - Vi yi ) where yi = (1.4)
1 + ( a - 1) xi
Such balance equations are written for each ideal stage of the distillation column, resulting
in N nonlinear algebraic equations that need to be solved simultaneously to obtain N vari-
ables. These are further discussed in Chapter 6.
Axial dispersion is neglected while deriving the model (Equation 1.3). Inclusion of the
axial dispersion term converts this IVP to a BVP, which is covered in Chapter 7. Discretizing
the ODE-BVP results in a set of equations with a special matrix structure. Mass transfer
limitations result in DAEs, which are covered in Chapter 8.
MATLAB is instead provided in Appendix A. This book follows the principle of “learn it
right the first time.” Good programming hygiene, in writing MATLAB codes, is evange-
lized and implemented right from the first example. The book follows another principle
that the best way to learn programming is through extensive practice. MathWorks, the
parent company that develops MATLAB, has good introductory video tutorials, available
at: http://in.mathworks.com/products/matlab/videos.html.* A beginner may want to start
with their “Getting Started” videos.† I also have an introductory MOOC course on using
MATLAB for numerical computations on National Programme for Technology Enhanced
Learning.‡
Figure 1.2 shows a screenshot of MATLAB window. The main section contains two
windows: MATLAB editor at the top and MATLAB command window at the bottom. The
MATLAB editor currently shows the MATLAB file firstFlowSheet.m, which is a
“driver script” to simulate the reactor-separator flow sheet described above. Line number
13 shows the following statement:
[F,x,err] = solveFlowSheet(Ffeed,Vpfr,purge,initVal);
HARDWARE SPECIFICATIONS
119. The methods of specifying builders’ hardware differ
considerably. Some architects generalize and use the same form of
specification for buildings of all classes, while others are more
specific, and itemize all the hardware for the entire operation, giving,
besides the description, the catalog number and finish.
The first method is not considered good practice, and, though it
involves little work on the part of the architect, it rarely produces the
best results. Thus, wherever possible, the specification should be
complete and comprehensive, giving a full description of all the
hardware in the building.
120. Formerly, builders’ hardware could only be obtained in a few
styles, and there was not much choice regarding its physical
construction and mechanical operation, so that its selection could be
left to the contractor or builder. Specification, therefore, usually
included little more than a mere statement that the necessary
hardware should be furnished and that it should be of good quality.
In recent years, however, the revolution accomplished in the
designing and making of builders’ hardware has elevated it to an
important place in decorative art, and, simultaneously, the creating of
new and higher mechanical grades has radically changed the
requirements in specifications relating to this subject.
121. A few standard forms of hardware specifications that should
secure good results will now be considered. For convenience of
reference, these several forms are marked I, II, and III. The first two
forms are probably as good general forms of hardware specifications
as can be written, but, while they answer the purpose in some
instances, they should not be used where it is intended to have the
general contract include all the hardware, or where it is possible to
prepare an itemized specification such as that given in Form III. The
numbering of the paragraphs in these forms is continuous with this
Section, but in practice they generally start with 1.
FORM I
(See General Conditions)
Note.—Under the head of General Conditions preceding all
specifications furnished to contractors by the architect, a series of
binding requirements, reservations, and stipulations are specifically
stated, and it is most essential that the contractor carefully peruse
them, as he is bound by them as well as by the clauses under the
heading of Hardware Specifications.
122. Rough Hardware.—Provide all the rough hardware, such as
nails, screws, sash weights, pulleys, chain or cord, anchors, screw
bolts, and all other material in this line necessary for the completion of
the operation.
123. Finishing, or Builders’, Hardware.—All fastenings and
metal trimmings used on doors, windows, transoms, closets, cabinets,
pantries, etc. will be furnished by the owner and delivered at the
building in the quantities and at the times reasonably needed by the
contractor, he to apply the same under the direction and to the
satisfaction of the architect.
The contractor is to be responsible for all hardware after delivery
and until the completion of the building. He shall hang all doors,
properly fit all locks, etc., and return them to their original packages
until after completion of the painting or finishing, when he shall place
them permanently. All knobs shall be covered with Canton flannel, to
protect them from injury, and all keys are to be cared for until the
building is delivered to the owner. The contractor shall place all keys in
their locks or deliver them to the architect with tags attached,
indicating where they belong.
The contractor shall furnish the manufacturer or dealer furnishing
the hardware with details of woodwork or information that may be
necessary in order to understand the requirements and to harmonize
the hardware with the cabinetwork, and, where interferences are
discovered, to have them adjusted before the hardware is delivered.
FORM II
(See General Conditions)
124. Rough Hardware.—Same as in Form I.
125. Finishing, or Builders’, Hardware.—The contractor shall
include in his estimate the sum of _____ dollars ($____) for the
purchase of the finishing hardware, which is to be selected by the
architect or owner and charged to the contractor. If the hardware costs
less than the stipulated amount, the difference shall be deducted from
his contract price; if it costs more than herein contemplated, the owner
will pay to the contractor the additional amount.
The above hardware is to include all fastenings and metal
trimmings used on doors, windows, transoms, closets, cabinets,
pantries, etc., and will be delivered at the building in the quantities and
at the times reasonably required by the contractor, he to apply the
same under the direction and to the satisfaction of the architect.
FORM III
(See General Conditions)
126. Front-Entrance Doors.—Provide for the front-entrance
doors, cylinder, mortise, front-door lock and three 5" × 5" loose-pin,
ball-tip butts for each door; also flush extension bolts 12 inches and
24 inches long.
127. Vestibule Doors.—Provide for the vestibule doors, cylinder,
vestibule latch, keyed similar to the front door, and three 5" × 5" loose-
pin, ball-tip butts; also flush bolts, the same as specified for entrance
doors.
128. Side-Entrance and Rear Doors.—Provide for the side-
entrance and rear doors, locks and butts the same as specified for the
front-entrance doors. Exterior basement and kitchen doors to have 5-
inch, three-bolt or 4¼-inch, three-tumbler lock and mortise bolt; also
three 4½" × 4½" butts for each door.
129. Sliding-Doors.—Provide for all sliding-doors, Coburn trolley
hangers; double doors to have locks with astragal fronts, and single
doors to have flat-front locks.
130. Double-Acting Doors.—Provide for the doors where
indicated double-acting in the plans, Bommer spring hinges or floor
pivots of suitable size; also push plates, door holders, dead lock, and
kick plates.
131. Miscellaneous Doors.—Provide for all other doors on first
floor, 4¼-inch mortise lock with metal knobs and combined
escutcheons; also three 4" × 4" loose-pin, ball-tipped butts for each
door.
132. Doors on Second Floor.—Provide for all the doors on the
second floor, 4¼-inch mortise locks with metal knobs and combined
escutcheons; chamber-entrance and bathroom doors to have in
addition a mortise bolt. Also provide for these doors, three 4" × 4"
loose-pin, ball-tipped butts for each door.
133. Doors in Attic and Basement.—Provide for the doors in attic
and basement, 3½-inch mortise locks, pottery knobs, and
escutcheons; also two 3½" × 3½" butts for each door.
134. Transoms.—All transoms throughout are to be hinged at the
top or the bottom or pivoted (as indicated in the plans), and are to
have ⁵/₁₆-inch transom lifts to extend to within 5 feet of the floor.
135. Double-Hung Windows.—The double-hung windows on the
first floor are to have approved sash locks and two flush lifts; those on
the second floor, in the attic, and in the basement are to have
approved sash locks and two flush or hook lifts to each sash. All
window stops are to be secured with flush adjusting stop-screws
placed not more than 14 inches apart.
136. Casement Windows and Hinged Sash.—Provide for the
casement in the lavatory and on the second floor, 3" × 3" tight-joint
butts and suitable casement fasteners and adjusters. The basement
sash are to be hinged at the top with wrought butts and are to have
bolts and hooks and eyes to hold them open.
137. French Windows.—Provide for the French windows in the
dining room, 4" × 4" butts, three to each window sash. Also provide for
these windows, flush bolts, 12 inches and 24 inches on standing leaf,
and mortise turnbuckles.[1]
138. Bookcases and China Closets.—Provide for the doors of
the bookcases and china closets, 3" × 3" ball-tip butts, two to each
door; also locks and keyplates or mortise latches and knobs, and bolts
for double doors. All drawers to have drop drawer pulls, two to each
drawer over 20 inches wide.
139. Pantries, Dressers, and Linen Closets.—The doors of the
pantries, dressers, and linen closets are to be provided with 3" × 3"
butts, together with elbow catches or surface bolts for double doors.
Also provide rim cupboard catches or mortise latches with knobs. All
drawers over 20 inches wide are to have two drawer pulls. Flour bins
are to be hinged at the side or at the bottom, so as to tilt, and are to
be supplied with 3" × 3" wrought butts and bar pull or with large T-
handled cupboard turn. Place in each closet one (or two) rows of
brass-plated wire coat-and-hat hooks (or, bronze-plated cast coat-and-
hat hooks) to extend around all sides; these hooks are to be placed
not over 12 inches nor closer than 8 inches apart. Furnish rubber-
tipped, wooden-base knobs for all doors.
140. Quality and Finish.—All of the above hardware is to be of
Blank & Co.’s manufacture, except butts for interior doors, which are
to be the Stanley Work product. All the hardware on the first floor,
except kitchen and service portion, is to be plain, cast-bronze metal of
the design known as ____, and ____ finish. The hardware of the
second floor is to be of steel, in plain design and ____ finish. The
hardware of the bathroom is to be of plain bronze metal, nickel-plated,
while the basement, kitchen, and attic hardware is to be plain steel in
____ finish.
141. Miscellaneous Hardware.—The contractor shall furnish and
apply all hardware necessary to complete the building, under the
direction and subject to the approval of the architect.
142. The preceding specification is intended to meet the
requirements of a residence, but may be changed so as to apply to
other buildings by adding to the several items or by omitting some of
them. In following the specifications just given, the specification writer
should exercise great care in selecting the hardware required, using
the best that can be obtained with the money to be expended. In all
instances, the name, design, quality, and finish desired should be
stipulated.
SELECTION, ESTIMATION, AND
APPLICATION OF HARDWARE
First Floor
One Pair of Entrance Doors, 2' 8" × 7' 6" × 2¼" Rt.-Hd. rabbeted.
1 cylinder, front door, Set No. _____. Plain bronze metal.
1 push button, No. _______. Plain bronze metal.
2 extension flush bolts, No. ______, ¹/₁₂", ¹/₁₈". Plain bronze metal.
3 pair of butts, No. ______, 5" × 5". Plain bronze metal.
One Pair of Sliding-Doors, Hall to Parlor,
2" astragal face, 1½" friction strip.
1 set of locks, No. ______, 3" backset. Plain bronze metal.
3 dozen countersunk screws and washers. Plain bronze metal.
2 sets of anti-friction, noiseless, parlor-door
hangers and track, complete, No. _____.
Pantry Cupboard.
2 pair of doors, 1⅛"; 2 single doors, 1⅛".
1 tilt flour bin; 4 drawers (2 narrow).
6 pair of butts, No. _____, 2½" × 2½". Plain bronze plated.
1 pair of butts, No. _____, 3" × 2½". Plain bronze plated.
2 elbow catches, No. _____. Japanned.
4 cupboard turns, No._____. Plain bronze plated.
7 draw pulls, No._____. Plain bronze plated.
Second Floor
Ten Doors, 2' 8" × 7" × 1¾", 6 R. H., 4 L. H. transom, top-hung.
10 inside lock sets, No._____. Plain bronze metal.
15 pair of butts, No. ______, 4½" × 4½". Plain bronze plated.
10 pair of butts, No._____, 3" × 2½". Plain bronze plated.
10 transom lifts, No.______, ⁵/₁₆" × 4". Plain bronze plated.
10 wooden-base knobs, 2½" diameter.
Double-Hung Windows
10 sash fasts, No. ____. Plain bronze metal.
20 sash lifts, No. ____. Plain bronze metal.
10 sash sockets, No. ____. Plain bronze metal.
4 sash hooks, No. ____. Plain bronze metal.
10 dozen adjusting screws and washers. Plain bronze metal.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com