Forbes T. Brown
Email: ftb0@lehigh.edu
Phone: (610) 865-4137
Fax: (610) 758-6224
Professor Emeritus
Department of Mechanical Engineering and Mechanics
Became Professor emeritus on September 1, 2004
Key Recent Publications:
Engineering System Dynamics, A Unified Graph-Centered Approach, Second Edition (1078 pages) and Instructor's Manual (215 pages), CRC Press, 2007
"Simulation Software for Thermodynamic Models, Part 1" and "Part 2", Proceedings, International Conference on Bond Graph Modeling and Simulation, ed F.E. Cellier and J.J. Granda, The Society for Modeling and Simulation International (SCS), April, 2010, pp. 54-68
"Bond-Graph Based Simulation of Thermodynamic Models," Technical Brief in Journal of Dynamic Systems, Measurement and Control, ASME Transactions, vol 132, iss. 6, November, 2010.
Simulation Package for Convection Bond Graphs (revised June 2012)
Before December 2007 it was necessary for one to write his or her own differential equations to carry out a dynamic simulation of a thermodynamic system, using the bond graph as the principal guide. Thereafter, the equations have been deduced and the simulation carried out automatically. Revisions to the original software package have been made in three backward-compatible stages, in January-February 2010, October 2010 and June 2012. The two papers cited above (not the book) describe the situation as of the first update.
The June 2012 upgrades concern mostly the main MATLAB® function file convec.m and a new companion subprogram IRSAC.m. The critical file convRS.m also is included; it was supposed to have replaced the old file convecRS.m earlier. A minor deletion has been made to convectemplate.m, and some additional example models are given. The thermodynamic portion of convec.m has undergone a major restructuring, rendering it more robust, more efficient and better annotated, and correcting certain flaws. The author would appreciate learning of any difficulties software users may encounter.
The relevant operational and several example system files are listed below. The example of pistcyl.m is changed to make it correspond precisely to the version in the 2010 paper. The example of shocktube.m, used to illustrate to illustrate the handling of IRS and AC elements, is quite complicated, so the simpler examples testIRS1.m, test IRS2.m and test IRS3.m are included for this purpose, although they are not discussed. All files may be freely downloaded by clicking on there names (in red), and then run by anyone who has the required MATLAB software.
The first release of convec.m nicely handled the tested systems, but had an uncertain ability to address very complex systems. There was no explicit understanding of its limitations, and the annotation was too limited to permit a curious user to probe its methods deeply. The new release expands the range of allowable models. It is based largely on a new matrix JS which identifies 12 different possible statuses of each three-port flow 0S-junction (potentially irreversible 0-junction) involving convection bonds. It identifies, for example, whether at each moment in time the junction is diverging (reversible) or merging (irreversible), whether any of its bonds have zero flow, and whether the junction is “primary” or “subsidiary”. The user need not bother with these matters unless he or she wishes to get into the nitty-gritty of how they work, in which case considerable annotation is offered. A new vector (bs) also is employed to identify the status of bonds, and the evaluation of terms dealing with fluid inertance (the elements IRS and AC) is consigned to a sub-program (IRSAC.m) to preclude repetition in convec.m. The first release addressed its tendency to become unstable in its handling of area-change (AC) elements by employing a temporal filter on the state variables for momentum, despite the complication and modest distortion that it introduced. The new release dispenses with this filter altogether (resulting in the deletion in the template for the master program for a system, convectemplate.m). The new release is backward-compatible, except master programs for systems with fluid kinetic energy storage must drop any initial values for the filter variables. It also employs the maximum convergence rate for all but one of its dozen Newton-Raphson iterations, saving time; the first system had to slow down in more places to insure convergence. The primary exception is when a fluid transits the line between vapor state and mixed liquid-vapor state. Here, the convergence is purposefully slowed to minimize the risk of non-convergence, increasing overall reliability. Finally, the treatment of the minor momentum flux forces in IRS elements has been simplified and corrected, but the requisite data for viscosity is available thus far only for the refrigerant R12. The thermodynamic properties of this and 35 other substances are given in data files also listed below.
A further major expansion of the simulation package, dealing with hydraulic systems, is expected to be uploaded by perhaps October.
The procedure one follows to construct a bond graph and implement it with the software package is described in a special file; to download it, click on its name below (in red). It also discusses other new features in the non-thermodynamic portion of the program, including the use of activated bonds, greater facility for treating nonlinearities and the use of symbolic mathematics to facilitate energy-based modeling.
Click here for Instructions and Explanation of the Simulation Package for Convection Bond Graphs
This text file refers to the following MATLAB® files, which you may download by clicking on their respective names:
| File name | Description | Date |
| convec.m | Function file for generating differential equations | June 2012 |
| IRSAC.m | Script file to accompany convec.m; for IRS, AC elements | June 2012 |
| convectemplate.m | Template for master script file for simulation | June 2012 |
| convecRS.m | Function file for computing flow through restriction | June 2012 |
| pistcyl.m | Master script file for piston-cylinder compressor | June 2012 |
| DCmotor.m | Master script file for simple non-thermodynamic system | Oct. 2010 |
| catapult.m | Master script file for steam catapult of aircraft | Oct. 2010 |
| refrig.m | Master script file for refrigeration system | Oct. 2010 |
| Comptank.m | Master script file for compressor with tank | Oct. 2010 |
| rootsb.m | Master script file for roots blower | Oct. 2010 |
| rockdrill.m | Master script file for rock drill | Oct. 2010 |
| shocktube.m | Master script file for shock tube | Oct. 2010 |
| GEM.m | Ground effect machine, with nonlinearities | Oct. 2010 |
| DCmotors.m | Elaboration of DCmotor.m adding backlash, activated bonds | Oct. 2010 |
| solenoid.m | Solenoid model using separate compliances | Oct. 2010 |
| solenoids.m | Solenoid model using 2-port compliance field | Oct. 2010 |
| EMbalance.m | Electromechanical balance using 4-port compliance field | Oct. 2010 |
| testIRS1.m | Simple cascade emphasizing IRS, AC and RS elements | June 2012 |
| testIRS2.m | Simple model with 0S and IRS elements | June 2012 |
| testIRS3.m | Simple model with 0S, IRS and AC elements | June 2012 |
As a prerequisite for using this package, the user must also download at least convec.m and convRS.m above, and the relevant files from the Thermodynamics Properties Package, which are listed subsequently below. This includes at a minimum the updated file therprop.m, the relevant data file and the relevant vapor file as called by therprop.m. IRSAC.m also must be included unless you remove the two calls to it in convec.m. The revised file airmix.m (#12 in the list below), which treats wet air as a mixture of nitrogen, oxygen, argon and water, is needed if you wish to use air as the working fluid. Note the listed dates, and make sure you have the latest version of each needed file. The old file orificenew.m is abandoned.
Thermodynamic Properties Sub-Package (Revised January 2010)
The user of the full Simulation Package must download whatever files in the table below that are relevant to his intended simulation, but since these files are called automatically he need not understand their structure or stand-alone use. The MATLAB® data files and associated programs efficiently and accurately compute 18 thermodynamic properties, and 16 more if needed, presently of 35 different substances, given the temperature and the specific volume. The vapor and saturated liquid/vapor mixture regions are included for all the substances. The compressed liquid region is included for most of the substances, but not the refrigerants and the metals. In these cases the bulk modulus model (pp. 914-915) is substituted automatically. The package simplifies the writing of equations for dynamic simulation, particularly those based on convection bond graphs. It also is intended to replace the following downloadable files listed in the book and below: R12data.m, R134adata.m, refprop.m, vapphase.m, waterdat.m, propwat.m, steam.m, orifice.m and orificec.m .
The files are listed below, and can be downloaded individually by clicking on the file name. More files may be added at a later date, for example for certain modern refrigerants.
Date entered |
File name |
Function |
|
1. |
Feb. 2010 |
therprop.m |
Called by user to compute properties |
2. |
Feb. 2010 |
vapor1.m |
Called automatically by therprop.m |
3. |
Feb. 2010 |
vapor2.m |
Called automatically by therprop.m |
4. |
Nov. 2007 |
vapor3.m |
Called automatically by therprop.m |
5. |
Nov. 2007 |
vapor4.m |
Called automatically by therprop.m |
6. |
Feb. 2010 |
vapor5.m |
Called automatically by therprop.m |
7. |
Feb. 2010 |
vapor6.m |
Called automatically by therprop.m |
8. |
Feb. 2010 |
vapor7.m |
Called automatically by therprop.m |
9. |
Feb. 2010 |
vapor8.m |
Called automatically by therprop.m |
10. |
Feb. 2007 |
satvapor.m |
Run to get the coefficients E1, E2, . . |
11. |
Feb. 2007 |
pressure.m |
Called by satvapor.m |
12. |
Oct. 2010 |
airmix.m |
Wet air as a mixture of substances |
13. |
Feb. 2010 |
datammonia.m |
Data file for ammonia |
14. |
Feb. 2010 |
datargon.m |
Data file for argon |
15. |
Feb. 2007 |
datbutane.m |
Data file for butane |
16. |
Feb. 2010 |
datcarbondioxide.m |
Data file for carbon dioxide |
17. |
Feb. 2007 |
datcesium.m |
Data file for cesium |
18. |
Feb. 2007 |
datethane.m |
Data file for ethane |
19. |
Feb. 2007 |
datethylene.m |
Data file for ethylene |
20. |
Feb. 2007 |
dathelium.m |
Data file for helium-4 |
21. |
Feb. 2007 |
dathelium2.m |
Automatically called when needed |
22. |
Feb. 2007 |
dathelium3.m |
Automatically called when needed |
23. |
Feb. 2007 |
datheptane.m |
Data file for heptane |
24. |
Feb. 2007 |
dathexane.m |
Data file for hexane |
25. |
Feb. 2007 |
dathydrogen.m |
Data file for hydrogen (para) |
26. |
Feb. 2007 |
datisobutane.m |
Data file for isobutene |
27. |
Feb. 2007 |
datisopentane.m |
Data file for isopentane |
28. |
Feb. 2007 |
datlithium.m |
Data file for lithium |
29. |
Feb. 2007 |
datmercury.m |
Data file for mercury |
30. |
Feb. 2007 |
datmethane.m |
Data file for methane |
31. |
Feb. 2007 |
datneon.m |
Data file for neon |
32. |
Feb. 2010 |
datnitrogen.m |
Data file for nitrogen |
33. |
Feb. 2007 |
datoctane.m |
Data file for octane |
34. |
Feb. 2007 |
datoxygen.m |
Data file for oxygen |
35 |
Feb. 2007 |
datpentane.m |
Data file for pentane |
36. |
Feb. 2007 |
datpotassium.m |
Data file for potassium |
37. |
Feb. 2007 |
datpropane.m |
Data file for propane |
38. |
Feb. 2010 |
datpropylalcohol.m |
Data file for propyl alcohol |
39. |
Feb. 2007 |
datpropylene.m |
Data file for propylene |
40. |
Feb. 2010 |
datR12.m |
Data file for refrigerant R12 |
41. |
Feb. 2010 |
datR13.m |
Data file for refrigerant R13 |
42. |
Feb. 2010 |
datR22.m |
Data file for refrigerant R22 |
43. |
Feb. 2010 |
datR23.m |
Data file for refrigerant R23 |
44. |
Feb. 2010 |
datR134a.m |
Data file for refrigerant R134a |
45. |
Feb. 2010 |
datR502.m |
Data file for refrigerant R502 |
46. |
Feb. 2007 |
dat503.m |
Date file for refrigerant R503 |
47. |
Feb. 2007 |
datrubidium.m |
Data file for rubidium |
48. |
Feb. 2007 |
datsodium.m |
Data file for sodium |
49. |
Feb. 2010 |
datwater.m |
Data file for water |
The Thermodynamics Properties Sub-Package also may be used by itself, without the full Simulation Package. One use is to determine thermodynamic properties without the context of simulation, another is to perform simulation from one’s own set of differential equations. The following downloadable file indicates how to do these things, and also presents more detail regarding the properties that the sub-package determines.
Click here for Explanation and Special Use of the Thermodynamic Properties Sub-Package (revised January 2010)
Click here for Errata for Second Edition
Downloadable files cited in Edition 2
Any of the following MATLAB® files as listed on p. 1018 in the book may be downloaded by clicking on its file name in the table below. Several other files regarding assignable problems are listed in the Instructor's manual.
| Location | page | file name | subject of file |
| Chap. 9 | 665 | hysteresism.m | simulation of hysteresis given h(t) |
| 665 | hysteresis.m | function file called by hysteresism.m | |
| 665 | Langevin | Langevin function (for nonlinear magnetics) | |
| 668 | coilm.m | for simulation of hysteresis given voltage | |
| 668 | coil.m | function file called by coilm.m | |
| 674 | ex9_17m.m | tooth field and force vs. position | |
| 674 | ex9_17de.m | function file called by ex9_17m.m | |
| 674 | force.m | script file to follow ex9_17m.m | |
| 676 | GP9_12m.m | simulation of relay closing | |
| 676 | GP9_12.m | function file called by GP9_12m.m | |
| 684 | ex9_18.m | function file for synchronous motor | |
| 687 | ex9_19.m | function file for induction motor | |
| Chap. 10 | 799 | viscoustube.m | quasi method of characteristics for viscous flow |
| 804 | GP10_9.m | quasi method of charac. for linear elastic solid | |
| Chap. 11 | 903 | ex11_5m.m | air compressor charging tank |
| 903 | ex11_5.m | function file called by ex11_5m.m | |
| 908 | ex11_6.m | coefficients for saturated vapor density | |
| 909 | ex11_6P.m | script file called by ex11_6.m | |
| 911 | refgmst.m | simulation of refrigeration cycle | |
| 911 | refrgde.m | function file called by refgmst.m | |
| 917 | shocktubem.m | simulation of adiabatic tube with refrigerant | |
| 918 | shocktube.m | function file called by shocktubem.m | |
| 922 | condenserm.m | simulation of refrigerant tube w. condensation | |
| 922 | condenser.m | function file called by condenserm.m | |
| 923 | shocktubess.m | equilibrium state vector for Problem 11.18 | |
| 923 | condenserss.m | equilibrium state vector for Problem 11.20 | |
| 928 | GP11_4m.m | simulation of air compressor cycles | |
| 928 | GP11_4.m | function file called by GP11_4m.m | |
| Appen. D | 902 | gas.m | evaluates the properties of an ideal gas |
| 902 | air.m | properties of air as mixture of gases | |
| 902 | gasdata.m | parameters for nitrogen, oxygen and argon | |
| 902 | specheat.m | specific heat of air as mixture of gases | |
| 906 | R12data.m | gives parameters describing refrigerant R12 | |
| 906 | R134adata.m | gives parameters describing refrigerant R134a | |
| 906 | refprop.m | evaluates many properties of refrigerants | |
| 906 | vapphase.m | called by refprop.m | |
| 907 | waterdat.m | parameters defining a model of water | |
| 907 | propwat.m | evaluates the properties of multiphase water | |
| 907 | steam.m | evaluates the properties of water vapor | |
| 912 | orifice.m | flow of a possibly multiphase fluid through orifice |
Upgraded or new MATLAB® or PDF files:
Additional downloadable files are given in the table below; others may be added later. The first, third, fourth, fifth and seventh entries are revised from an earlier listing. "TPP" refers to the Thermodynamic Properties Package.
| Date | type | file name | subject of file |
| Nov. 2007 | upgrade | orificenew.m | Replaces orifice.m and orificec.m for orifice flow - corrected file |
| 2/20/07 | upgrade | refgmstnew.m | Replaces Refgmst.m to use TPP and orificenew.m |
| 2/20/07 | upgrade | refrgdenew.m | Function file called by refrgdenew.m |
| 2/20/07 | upgrade | shocktubemnew.m | Replaces shocktubem.m to use TPP, orificenew.m |
| 2/20/07 | upgrade | shocktubecnew.m | Function file called by shocktubemnew.m |
| 2/20/07 | upgrade | condensermnew.m | Replaces condenserm.m to use TPP, orificenew.m |
| 2/20/07 | upgrade | condensernew.m | Function file called by condensermnew.m |
| 2/20/07 | upgrade | condenserssnew.dat | Replaces condenserss.m; use in problem 11.20 |
| 8/16/06 | new | fannom.m | Computes Fanno line solution for friction tube |
| 8/16/06 | new | fanno.m | Function file called by fannom.m |
| 10/1/06 | new | fig8.m | Function file for Fig. 8 of 2007 paper below |
| 10/1/06 | new | fig9m.m | Script file for Fig. 9 of 2007 paper below |
| 10/1/06 | new | fig9.m | Function file called by fig9m.m |
| 1/1/07 | new | Plenary07.pdf | PowerPoint presentation; see Publications |
Click here for Further Explanation of files dated 8/16/06
Click here for Explanation of files for paper of January 2007
Click here for Further Explanation of files dated 2/20/07
Other Recent Publications:
Brown, Forbes T., “Bond Graph Modeling and Simulation of Thermodynamic Systems,” invited presentation for the plenary session of the 2007 International Conference on Bond Graph Modeling and Simulation, San Diego, CA, a PowerPoint presentation downloadable (see January 1, 2007 in table above) as a pdf file. The abstract is published on pages v and vi of the Proc. of ICBGM 2007.
Brown, Forbes T. “Modeling and Simulation of Ferromagnetic Hysteresis,” Proc. 2007 International Conference on Bond Graph Modeling and Simulation, Ed. F.E. Cellier, J.J. Granda, The Society for Modeling and Simulation International (SCS), Jan. 2007, pp. 129-135. See the files dated 10/1/06 in the table above, and “Explanation of files for paper of January 2007.”
Brown, F.T. "Hybrid Lumped-and Delay-Bond Modeling and Simulation," 2005 International Conference on Bond Graph Modeling and Simulation, Ed. F.E. Cellier, J.J. Granda, The Society for Modeling and Simulation International (SCS), Simulation Series, Vol. 37, No. 1, pp. 67-72.
Brown, F.T. "Kinetic Energy in Convection Bond Graphs," 2003 International Conference on Bond Graph Modeling and Simulation, Ed. F.E. Cellier, J.J. Granda, The Society for Modeling and Simulation International (SCS), Simulation Series, Vol. 35, No. 2, pp. 191-197.
Brown, F.T. "Simulating Distributed-Parameter Multiphase Thermodynamic Systems Using Bond Graphs," Proceedings of IMECE2002, 2002 ASME International Mechanical Engineering Congress and Exposition Symposium on Automated Modeling, November 17-22, 2002, New Orleans, LA.
Brown, F.T. "Non-Iterative Evaluation of Multiphase Thermal Compliances in Bond Graphs," Proc. Instn Mech Engrs Vol 216, Part I: J. Systems and Control Engineering, 2002.
Brown, F.T. Engineering System Dynamics, a Unified Graph-Centered Approach, Marcel Dekker, Inc. (1026 pages), 2001.
Brown, F.T. and Tentarelli, S.C. "Dynamic Behavior of Complex Fluid-Filled Tubing Systems -- Part 2: System Analysis," Journal of Dynamic Systems, Measurement and Control, ASME Transactions, Vol. 123, No. 1, pp. 78-84, 2001.
Brown, F.T. and Tentarelli, S.C. "Dynamic Behavior of Complex Fluid-Filled Tubing Systems -- Part 1: Tubing Analysis," Journal of Dynamic Systems, Measurement and Control, ASME Transactions, Vol. 123, No. 1, pp. 71-77, 2001.
