Comparing the Different Methods: Which Type of Controller Should I Use?
When simulating a Controller, you need to decide which Controller method you wish to use. In order to make this decision, you first must think about exactly what kind of control system you are trying to represent. That is, what is the actual control process are trying to simulate?
In some cases, one of the methods may closely match the actual physical process that you are trying to simulate. For example:
-
You are simulating a reservoir or tank that has a pump that is positioned at a particular elevation such that it turns on when the water level reaches one level and off when it reaches a different level. This is exactly what a Deadband Controller is meant to represent, so choosing that method will be straightforward. Similarly, if you were simulating a thermostat, you would use a Deadband Controller.
In many cases, however, you are not necessarily trying to explicitly represent the control process in a detailed way. Instead, your goal is to represent the overall effect of the actions that are taking place in order to control the system. That is, what you want to do is represent the “lumped effect” of the various actions taken by the system’s operator. In such a case, you may be saying that you simply want to assume the the system will be controlled so that it smoothly approaches and subsequently closely tracks the target (by adjusting the controller output appropriately). You then want to select a method that accomplishes that.
Note that the Deadband Controller does not adjust flows in a continuous manner (the flow is either 0 or the Flow Capacity, and changes abruptly when the process variable hits the top or bottom of the deadband). As such, there will always be some oscillations involved when using it. The other two Controller types, however, continuously adjust flows and these are the ones that you would often use to try to simulate the “lumped effects” that result in a system that smoothly approaches and subsequently closely tracks a target. In general, selecting the method (and the inputs) will likely require some experimentation while you are building the model, since the performance of any given method is highly dependent on the characteristics of the process you are modeling. But several generalizations and comparisons can be made.
For systems in which the various uncontrolled inflows and outflows are relatively constant (e.g., they may be “noisy” but can be described using a mean value), any of the methods will perform well. In the example below, we compare three types of Outflow Controllers: Proportional, PID, and Proportional with a time variable bias Bias (i.e., the Bias defined as a forecast of the uncontrolled inflows). There is a “noisy” uncontrolled inflow into a pond and the Outflow Controller is attempting to adjust the outflow such that the elevation in the pond stays near the target (3000 m3). The model uses a 1 day timestep A discrete interval of time used in dynamic simulations..
As can be seen all three Controllers perform relatively well (and the behavior would improve with a smaller timestep).
Here is the same model in which the target changes during the simulation:
Again, all three Controllers perform well.
Note: A Deadband Controller would also perform well in both of these cases, but would tend to have many more oscillations in order to track the target closely (i.e., if the deadband was small).
For systems in which the uncontrolled inflows and outflows are NOT relatively constant (e.g., they follow a trend of some sort), a Proportional Controller defined using a constant Bias performs poorly, but a Proportional Controller with a time variable Bias (i.e., the Bias defined as a forecast of the uncontrolled inflows) and a PID Controller perform quite well:
Note: A Deadband Controller would also perform well in this case, but would require a high Flow Capacity that would result in a very large number of oscillations as the inflow increased.
Finally, let’s consider a more complex case. In this model, there is an uncontrolled inflow that starts at about 50 m3/day, increases for a period of 10 days to about 100 m3/day, and then falls to 20 m3/day. An Outflow Controller attempts to control the outflow to maintain the target volume. However, the Controller has a Flow Capacity of only 75 m3/day (so that for the 10 days that the uncontrolled inflow is high, the Controller cannot bring the volume down and it continues to increase). After those 10 days of high inflows, the inflow rate decreases and the Controller can regain control:
As can be seen, after the high inflow rate drops, all the Controllers quickly fall back toward the target (the speed of the drop is limited by the Flow Capacity). The PID Controller overshoots and then gradually returns toward the target (the overshoot is due to the integral term). The Proportional Controller does not overshoot as much, but becomes “stuck” at a level below the target. The Proportional Controller with a time variable Bias is the only one that performs well.
Note: A Deadband Controller would also perform well in this case, but would oscillate frequently, particularly after the inflow dropped to a low level.
The example model above which compares the various methods (CompareControllers.gsm) can be found in the General Examples/Controllers folder in your GoldSim directory (accessed by selecting File | Open Example... from the main menu).
Based on these examples, the performance of the various methods can be summarized as follows:
Deadband Controller: This method is very flexible and will perform well under all conditions. However, by defintion, the process variable will oscillate around the target, and under certain conditions, these oscillations could be very frequent. Of course, in some cases, the Deadband Controller may closely match the actual physical process that you are trying to simulate (e.g., a thermostat). If you are trying to closely simulate such a process, the Deadband Controller is the obvious choice.
Proportional Controller: For systems in which the various uncontrolled inflows and outflows are relatively constant (e.g., they may be “noisy” but can be described using a mean value), the Proportional Controller will perform well. For systems in which the uncontrolled inflows and outflows are NOT relatively constant (e.g., they follow a trend of some sort), a Proportional Controller will perform poorly.
PID Controller: PID Controllers perform quite well under many conditions, including for systems in which the uncontrolled inflows and outflows are not relatively constant and follow a trend. Note, however, that a PID Controller has four “tuning parameters, and tuning the PID Controller may therefore require a bit of effort. It is also worth noting that in cases where you are temporarily unable to fully control the process variable (e.g., if uncontrolled inflows were temporarily greater than the Flow Capacity for an Outflow Controller), the PID Controller can overshoot the target after regaining control and it may take some time to approach the target again.
Proportional Controller with a Variable Bias (i.e., the Bias defined as a forecast of the uncontrolled inflows and outflows): This method is the most powerful and performs well under most conditions. This is not surprising, as the Controller is using more information (beyond just the value of the process variable) to control the output. Note, however, that in a complex model, collecting all of the uncontrolled inflows and outflows (in order to create the forecast to use as the Bias) could require a bit of effort.
Finally, it is important to point out that the examples here are quite simple in that we have a single Controller, in this case controlling the outflow from a pond based on the volume in that pond. In many cases, you may have multiple Controllers and multiple process variables (e.g., ponds), and the Controller output (i.e., the outflow from or inflow to one pond) may be a controlled by the volume in a different pond. As a result, for complex systems such as thes, it will likely take some experimentation to determine the best Controller method to use.
- Basic Controller Inputs
- Browser View of a Controller
- Comparing the Different Methods: Which Type of Controller Should I Use?
- Constraints on the Output of Controllers
- Controlling a Process Using Multiple Controllers
- Defining a Deadband Controller
- Defining a Proportional Controller
- Defining a Proportional Integral Derivative (PID) Controller
- Defining a Target that Represents an Upper or Lower Limit
- Turning a Controller On and Off
- Understanding Controllers
- Using a Proxy for the Process Variable When Defining a Controller
- Using Controller Elements