Process Control
Introduction
What is Process Control REALLY about? It mostly revolves around the term "process". Usually this means part or all of a process plant, but can be as simple as material movement. The purpose of controlling it is to maximise its performance, not to just to remove variability.
What is performance?
- higher average throughput
- reduction of operator workload (although this is usually a relatively low value)
- improved yield, recovery, or product quality
usually subject to some sensible constraints, e.g.:
- equipment protection (perhaps extending the life as well, but this is a trade-off with other performance measures)
- prevention of spillage or safety issues
How is it different to just "Control"?
- "Control" often applies to highly deterministic (but sometimes discontinuous) systems such as robotics, motion control, vibration control
- less noise, less disturbance, higher-order dynamics, understood non-linearities
- "Process Control" usually involves continuous chemical reactions, mixing, separation, transport, multi-phase flows (solid/liquid/gas)
- more noise, more disturbance, low-order dynamics (apart from deadtime), unknown and variable non-linearities
So, Process Control is:
- mostly modulating control (but hybrid is probably the best description)
- trying to maximise process performance
- conventional and advanced control, real-time optimisation, process fault detection
- measurement systems (including signal filtering as well as soft-sensing and observers where direct measurement of an important variable is not available)
- support aspects including alarm management and controller performance monitoring
and is not:
- purely sequencing control (start/stop logic, motor protection, machine protection trips)
- control system hardware (DCS/PLC, networks, fieldbusses) - these are enablers of Process Control though!
Technique Selection
There are many, many process control techniques and it is important to be aware of (nearly) all of them so that the most appropriate technique can be selected for the specific task at hand. Beware the "hammer and nail" syndrome. However, apart from accumulating lots of experience, how does a process control engineer get the knowledge to select the right tools for the task at hand. Understanding the "library" of individual control techniques is one element, but usually the solution is a combination of techniques, so we also need to know which techniques to apply (together). Some guidelines can help get us started:
/SelectionTable for some PC techniques, including brief descriptions of control techniques and control problems
Open Source Tools for Process Control
Usually a tool like Matlab is used for numerical analysis, modelling and control calculations associated with process control. However, most of this type of work can be done very effectively with open-source software. This applies equally to other disciplines looking for Scientific and Engineering Worktools
SciPy
One of the most popular languages available today is Python, having strong object-oriented and functional-programming features. In conjunction with a set of "toolboxes", Python can take on similar functionality to Matlab. The advantage of using Python as the base language is that when you have sorted out the algorithms, you can then go on to use other Python extensions to build a professional fully-fledged application with extras such as a backend database or GUI. In this respect, Python is a much better base than Matlab, and Python is unrivaled in its array of extension modules which do most of the work to minimise the programming required.
More details on the Python and the extensions allowing Matlab-like capabilities and much more can be found on the SciPy and friends page.
Projects
DynSim - For quick, practical simulations in the process control area, Python is ideal. A library of predefined "blocks" (classes) and a little scripting to tie them together and Voila!
PC_Toolbox - To make working with python and scipy easier for a process control engineer, it would be useful to have a set of prepackaged and more specialised tools and perhaps even a UI. Eventually, this toolbox is expected to aggregate the other Process Control projects here.
OPC_Toolbox - The recent availability of the OpenOPC software with bindings for python has initiated the idea of creating an OPC toolbox for python, that is user tools rather than programmer tools.
LegoMindstorms/StickBalancer - Here's an interesting fun control problem described within this wiki - balancing a stick ("mechanics control" rather than "process control")
Monitor - A system of software for data acquisition (from remote sources), persistent storage, and analysis (both automated and ad hoc manual) of Process Control performance of multiple plant sites
Useful Links
Wikipedia's entry on Process_Control ; also see other related entries:
Control Tutorials for Matlab - very comprehensive set of tutorials covering several control approaches and several control problems - http://www.engin.umich.edu/group/ctm/
Lots of Process Control links on a Chem Eng oriented site (look towards the bottom of the page for Process Control) - http://www.worldcolleges.info/College/Engineering-Notes/chemical-engineering.php
http://www.jashaw.com/ - good basic introduction to conventional control using PID controllers.
http://www.controlguru.com/ - site with lots of process control articles, mostly conventional control.
http://www.onesmartclick.com/engineering/chemical-process-control.html - wide ranging source of info on process control.
http://csd.newcastle.edu.au/book.html - summary (dot point) Control System Design book by Goodwin et al. (pre-release?)
http://www.documentation.frco.com/groups/public/documents/book/cvh99.pdf - Fisher Control Valve Handbook.
Ptolemyis a simulation tool that looks very useful over a broad range of uses where graphical model construction is a must (i.e. PyDSTool isn't suitable - see SciPy) or a rigorous simulation of mixed discrete and continuous system is required. More information can be found at the link.
Download
To Do
- Intro to PC and what these pages are for
- Complete Selection table descriptions
- Categories of PC techniques (e.g. basic, conventional, advanced vs primary, supervisory, optimisation)
- Articles for each PC technique
Process Control code-snippet downloads for SciPy and Ptolemy