In graduate school I studied computational fluid dynamics (C.F.D) as part of an aerospace engineering degree. Understandably I was quite excited when my professional assignment was developing a throttle body model for GM’s hardware in the loop system (HIL). Making several assumptions and ignoring the boundary layer conditions I efficiently implemented a 2-d version of the Navier-Stokes equation:
The model accurately predicted the intake manifold pressure within 0.01% of the measured pressure at a time step of 0.002 seconds. It used 45% of the HILs processing power (this was in 1995)
Plants in the Field
In the end, I derived a transfer function that modeled the system with 1% accuracy at the same time step using less than 1% of the processor. That experience, and many since, have caused me to consider the question “what do you need from your plant model?” I have developed 4 basic questions I ask myself and my customers.
What is the required accuracy?
What is the required accuracy? In my example above the plant model was connected to a ECU through a 7 bit A/D. The pressure range was from 1.2 ATM to 0.5 ATM, meaning a resolution of 532 mmHg / 128 = 4.15 mmHg was the best the sensor could do. Therefore from the controllers perspective, anything better than that was not required. However, the plant model required an accuracy of 0.1 mmHg to maintain stability; a factor of 41 times greater accuracy than required.
There is a second component to accuracy, which is accuracy at the edge points. A simple polynomial equation could be used to accurately model the throttle body during steady state operation; however during transitions that polynomials accuracy was no better than 10%.
Another example is an engine torque model. A simple table lookup will provide the engine output torque over the nominal operating range of 800 ~ 5000 rpm. However, engines do operate outside of that range; the fidelity with which you model those conditions is dependent on what you are validating within your system.
What are my resources?
There are two resources for computations, memory and calculation time (FLOPS for example). In the example above the accuracy was much greater than required so we considered alternative methods.
The proposed alternative was a 2-D lookup table using two points of past data. The calculations for the table look up took roughly half the FLOPS of the transfer function and the accuracy was in line with the requirements (1 mmHg). However, the amount of memory required for the table was approximately 10 times larger than the transfer function(1).
In the end the much higher memory requirements prompted the selection to the transfer function as the solution.
Do you require multiple versions of the plant?
So far in this post, I have talked about targeting a HIL system. However, it is often the case that a plant may need to be modeled for multiple domains.(2). In that case developing interfaces to the plant that can be used across multiple environments is an important. It is now common practice to embed model variants within a closed system to select which version of the plant is required depending
How much do you know about the plant?
The last question to ask in developing a plant model is what is known about the actual plant to enable validation of the plant model. In some cases, where the physical plant does not yet exist first principal modeling must be done.Even in that, it is often possible to design part of the model based on previous similar plants. This can be done through the parameterization of the plant model.
(1) In this example, the table data would have only been used by a single function. If the same table data could have been used across multiple functions then a different decision may have been made.
(2) In a happy ending to my Navier-Stokes model was eventually used as part of another project