PI-Controller Screen Object
A PI-Controller is a Screen Object that operates as a self-contained, closed-loop, automatic process control system that can regulate temperature, pressure, flow rate, tank level, etc. It uses an input to read the data from a sensor, and an output for manipulating an actuator or control valve to keep the process variable at a specific set point. Two outputs can be used if a separate actuator is needed for positive and negative corrections. This controller features bump-less transition from manual to automatic modes, bump-less transition when changing the Integral gain, and an anti-windup offset bias for use when large errors or large changes in the set point occur.
Once a PI-Controller is placed on the screen it can be selected by clicking on it with the left mouse button. To move the object, place the cursor over it, hold down the left mouse button and drag the object to the desired position. Resize handles are provided to allow adjustment of the overall size by dragging on them with the mouse in a similar fashion.
To set the properties of a PI-Controller, right-click on the object or select "Properties" in the <Edit> menu while the PI-Controller is selected. The following is a summery of the user defined attributes in the Properties dialog box.
Properties Dialog Box:
Title: Type in the text that will appear at the top of the PI-Controller.
Size: Selects the font size used for the text characters on the screen. Making changes to this attribute will also change the overall size of the PI-Controller respectively.
Color: Selects the font color used for the text characters on the screen.
Object ID Label: Type in a label that will be used for identification by other objects within ModCom when manipulating the PI-Controller, using the sensor data as a variable in another object's function, or when evaluating Conditional statements specific to the sensor's current value.
Sensor Polling Command: To set up the PI-Controller to continuously grab data from a sensor attached to a DAQ Module, type in the command string which should be transmitted to the module in order to read the data. Note, this entry box supports variables.
Send sensor data to this Screen Object: To send the current sensor value to another Screen Object within ModCom, type in the object's ID label here. This object can be a Data Window or one of the other Instrument Gauges for instance.
Dec Point: Use this box to set the number of decimal places that the Kp and Ki gain adjustment controls use. This will also effect the sensitivity of each increment and decrement step change when pressing the adjustment buttons.
Lock Settings: Once the PI-Controller has been tuned adequately, this box can be checked so that the Kp and Ki gain settings are locked in place and can't be accidentally changed by the user.
Sensor Data Conversion:
Multiplier: Type in the multiplication factor which should be applied to the sensor data before it is displayed and used in operation. This can be a whole number as well as a number containing digits to the right of the decimal point.
Offset: Type in the offset value which should be added to or subtracted from the sensor data before it is displayed and used in operation. This can be a whole number as well as a number containing digits to the right of the decimal point. Note, the number of digits to the right of the decimal point will control how many decimal places the sensor data will contain as well as that of the Set Point number. For example, using 0.0 as an offset value will force the sensor data and Set Point number to show the tenths place.
Lookup Table: To convert the sensor data using a lookup table of known substitution values, type in the filename which contains the table. If the full PATH name is not included, the file will be searched for in the current directory as shown in Get File Path. If a multiplier or offset value is being used for this Screen Object, it will be applied to the original data before searching for a match in the lookup table. For a detailed description of the file format and how to create a substitution list, see Lookup Tables. Note, this entry box supports variables.
Math Formula: To convert the sensor data using a mathematical expression, type in a formula here. This formula can contain the four basic arithmetic operators (+, -, /, *), the exponent operator ^ , complex Math Functions (Sine, Cosine, Square Root, etc.), constants with or without a decimal point, and any of the other Variables and Screen Objects available in the project. If this Screen Object is being included in the formula as one of the variables, any multiplier, offset value, or lookup table will be applied to the original data before using it in the formula. If this Screen Object is not included in the formula, the Screen Object will update autonomously based on the formula instead of using the polling command or any data sent to it by another object.
Max Value: Type in the output value which will produce the maximum positive correction of the actuator. For example, if the actuator is a flow controller, this will be the value that causes the flow controller to open to its full amount.
Min Value: Type in the output value which will produce the minimum positive correction of the actuator. For example, if the actuator is a flow controller, this will be the value that causes the flow controller to completely close up.
Append value to these characters when transmitting: Each time the PI-Controller updates and a positive correction is needed, these characters followed by the output value will be transmitted to the DAQ Module controlling the actuator. If a positive correction is not being used, such as using a cooling actuator without a heating actuator, leave this box blank.
Max Value: Type in the output value which will produce the maximum negative correction of the actuator. For example, if the actuator is a flow controller, this will be the value that causes the flow controller to open to its full amount.
Min Value: Type in the output value which will produce the minimum negative correction of the actuator. For example, if the actuator is a flow controller, this will be the value that causes the flow controller to completely close up.
Append value to these characters when transmitting: Each time the PI-Controller updates and a negative correction is needed, these characters followed by the output value will be transmitted to the DAQ Module controlling the actuator. If a negative correction is not being used, such as using a heating actuator without a cooling actuator, leave this box blank.
To set up the PI-Controller for operation, connect a sensor to an analog input channel of a DAQ Module, and an actuator to an analog output channel. If separate actuators are needed for positive and negative corrections, connect each one to its own analog output channel. After setting up the PI-Controller's Properties box, click the green "Run" button at the top of the screen. At this point the Controller will be in manual mode and the "Output" adjustment buttons can be used to raise or lower the driving force of the actuator and manipulate the process variable. Once the process variable shown by the sensor data is at or near its desired level, click on the "Auto" button to switch the PI-Controller into automatic mode. At this point the Controller will automatically maintain the set point level provided that the Kp and Ki gains are adequately set (see Loop Tuning below).
The proportional and integral gain settings must be set (or tuned) for proper operation. First adjust the "Output" adjustment buttons while in manual mode so that the sensor data is at or near its normal level of operation. Assure that both the Kp and Ki gains are set to their minimum level and then place it into automatic mode by clicking on the "Auto" button. Follow the directions below for tuning the Kp and Ki gain elements.
Kp Gain: To set the Kp gain, first increase it until oscillation occurs. This is best done by making an increase and then bumping the Set Point up and then back down again, trying to induce oscillation. If oscillation does not occur, increase the Kp gain further and make the Set Point bump again. Keep repeating this process until oscillation begins and is sustained. Now slowly decrease the Kp gain to the point that oscillation settles down, then reduce this number to one half of this value.
Ki Gain: To set the Ki gain, make a small change to the Set Point and watch how long it takes for the sensor data to come to rest at the new set point level. When first making the change, the sensor data will approach the new set point quickly but will slow down as it gets closer and closer. The Ki gain determines the rate of approach while in this slow down region. If the Ki gain is set too low, it will take too long to eventually come to rest at the new set point. If the Ki gain is set too high, it will overshoot the set point and begin to oscillate. Adjust this for optimum performance.