Tuesday, July 17, 2018

PID Controller in GoldSim

Posted by 

The proportional-integral-derivative (PID) controller is a useful feedback control mechanism commonly used in industrial applications such as furnace temperature control, pH neutralization, and flow control. These systems commonly require that their state be monitored continuously and controls adjusted based on error from a setpoint or target. As seen in the schematic below, the controller makes a change to a process then a sensor is used to provide feedback to the input of the controller.

This type of control can also be used for controlling inflows and/or outflows from a storage facility like a lake or water tank. This blog post describes the application of the PID controller in 2 different GoldSim models: a detailed process flow model with a cylindrical tank and an environmental system with a large water supply reservoir. This logic is found to work well in both cases even though they .

The PID controller continuously calculates the error value taken as the difference between some setpoint (or target value) and the current output value of the process being controlled. The error value is used to calculate 3 different outputs: proportional, integral, and derivative outputs. These make up the components of the PID controller. Each output is further adjusted using some gain constants or factors that can be adjusted to tune the controller for your specific application.

In the first model, we have a cylindrical water tank that is delivering water to an independent water demand. To supplement water supply, a controller operates to feed water into the tank in order to maintain a desired water level in the tank. You can tune the model by adjusting these gain constants in the dashboard and visualize the outputs directly using embedded charts (new to GoldSim 12.1). To see this in action, you can download and run the model found in our library here.

The benefit of having the 3 different outputs of proportional, integral, and derivative is that you can balance the response to adjust for noise in the system and also maintain better control in steady state. The integral output will keep track of cumulative error in the system and therefore make adjustments in the long run that make up for previous error states. What this means is that if the system has been below the target consistently in the past, then the integral output will cause the system to adjust by allowing it to float above the target until the cumulative error is "made up". 

In order to show how the PID controller is not just limited to detailed industrial applications with small time steps, I used the same logic in a model that simulates a much larger reservoir with an independent inflow. In this case, we use the controller to manage discharges from the reservoir based on a moving water level setpoint over the course of a year. In this model, the time step is 1 day. This model is based on our library model called Reservoir Discharge Controlled by Status. This was modified by replacing the Status element with the PID logic. The model is run for multiple Monte Carlo realizations. The mean statistic chart is shown below.
Here is a chart showing the results of a single realization:

As seen in the charts above, the target volume is not constant. The PID controller will attempt to make dam releases in order to keep the reservoir volume as close to the target as possible. 

In conclusion, the PID controller can be very useful in many applications that require control of inflows and/or outflows from a reservoir. It can also be used for applications that involve systems unrelated to water management like controlling temperature or neutralization of pH. If you would like to see a copy of the second model mentioned above, please contact us.



No comments:

Post a Comment