In our previous blog we discussed about the integration of modelling and simulation software in the curriculum of High Schools and Universities.
Another very interesting point covered in the paper of the professors from Rowan University is the fact that many (small) companies use self-made macros or programs to solve problems that are readily solved with commercial simulators, simply because they cannot afford the software. This does not mean, of course, that process simulation software is “a tool that graduating chemical engineers should not be familiar with.”
The problem with this self-made or programmed models is that they are normally very difficult to maintain, since they are programs which have been written by individuals. Therefore, it is not uncommon that companies do not allow their engineers to write software. Actually, computer programming (in languages such as FORTRAN, C, or PASCAL) is not a vital skill for chemical engineers in industry anymore.
The chemical engineering community thus may have a use for teaching tools and techniques that challenge students to think logically and develop algorithms without necessarily taking the time to learn a full programming language.
A closely related problem is that, even with commercial simulators there always seems to be an issue with maintainability of models (also in big companies). Especially when models become large and/or highly “custom made”.
Let me sketch a typical scenario (that I have seen several times). A company “hires” a graduate student to make a model for them, because they have no time, no money and/or not enough expertise to do it themselves. The student works on the model for months and does a lot of custom programming. After the student finishes his work, the model typically goes “in the closet” for a few months/years, because nobody has time to do something with it. After a long period, the model could actually be useful, but no one at the company knows how to work with it and no one seems to even get it running. So, they wisely decide to hire another student, who does not completely understand what the previous student has done and therefore decides to start from scratch and redo the entire job….
Not very efficient of course, but, unfortunately quite commonplace.
In my opinion the root of the problem is caused by the fact that there are basically two ways of making models nowadays:
- The “Unit oriented” or “flow sheeting” approach. Hardly any programming is required. The user just drags some predefined units on a flow sheet, connects them and configures some parameters. Quite convenient for most users, but very inflexible (sometimes nearly impossible) when deviations from standard equipment are needed. And, as discussed in our previous blog, users sometimes simply don’t know what they are actually doing.
- The “Equation oriented” approach. Nearly everything needs to be programmed out. This is very flexible, but typically also a very tedious job. Much (programming) experience and a lot of patience is required to get a model up and running.
I think a large part of the maintainability issues can be resolved by introducing a “new” approach: The “Equation and system based” approach, which typically is a combination of the best of the two previously mentioned approaches. Without going into details I would state that such a methodology offers a lot of flexibility, but also provides insight in the process that is being investigated. Although this methodology has a learning curve, I have noticed that students/engineers who have mastered it are able to solve problems quicker. Also the generated models tend to be a lot easier to transfer to others, without the need for extra documentation.
What tips do you have to improve maintainability of process models?
I invite to post your experiences, insights and/or suggestions in the comment box below, such that we can all learn something from it.
To your success!