Closed loop control algorithms are used to adjust valve responsiveness within Alicat flow or pressure controllers. Modifying the variables within these algorithms allows the user to control how fast a controller reaches a setpoint as well as control stability.
In this article, we will explain some of the theory behind valve tuning and give tips on tuning your own Alicat device.
When to tune your controller
Before shipping, each controller is tuned for optimal valve performance at the indicated process conditions. For example, if a controller is ordered to flow air at 25 SCCM, then it will be tuned with that in mind. That means if you use your controller for exactly what you configured it for, the valve tuning and therefore control stability should be pretty spot on.
However if process conditions change, for example if you decide to flow hydrogen instead of air or if you modify the inlet/outlet pressure, you may need to retune your device.
Valve tuning using PD/PDF and PD2I control algorithms
There are two control algorithms used to tune Alicat controllers:
PD/PDF tuning for single valve controllers
PD2I tuning for dual valve controllers (PCDs and MCDs)
Note: You can view your selected control loop by going to MENU > CONTROL > PID > LOOP TYPE on the front panel of your Alicat controller.
PD/PDF and PD2I control algorithms are composed of three terms each playing their part to minimize the error between the setpoint and the measured process variable. They are defined as follows:
Proportional (P): The proportional term decreases the error between the setpoint and reading.
Derivative (D): The derivative variable dampens the rate of change of the valve position.
Integral (I): The integral variable takes into account the sum of previous errors.
Note: You can view the current settings for your P, D, and I variables by going to MENU > CONTROL > PID on the front panel of your Alicat controller.
The PD/PDF Algorithm
The PD/PDF algorithm provides a simplified user interface. It only requires the user to work with two variables: P and D. The I control term is handled internally. This substantially cuts the user’s level of difficulty.
There are a couple telltale problems indicating a device in need of valve tuning:
You notice oscillation around the setpoint or the control response is unstable.
Your controller takes too long to get to the setpoint or never achieves the setpoint, but settles to a flow rate or pressure below the setpoint value.
Below are instructions on tuning your device to solve these problems.
PD/PDF tuning video tutorial
Step-by-step instructions
Serial commands and FlowVision
Ensure that your controller is connected serially.
These instructions assume a Unit ID of A. If your controller’s Unit ID is not A, substitute the correct letter of your Unit ID. If your controller is in streaming mode, do not type the leading ‘a’ in the instructions below.
In this tutorial, we will be using the [Unit ID]S# command to give the controller setpoints. In addition, we will assume a 2 SLPM full scale mass flow controller (MC-2SLPM-D). Therefore, our command for a full scale setpoint will be AS2. Likewise, the commands for 1 SLPM or 0.4 SLPM would be AS1 and AS0.4, respectively. Replace the setpoint value with what your setup requires
In this tutorial, will be used to prompt you to send a serial command. (You may also be more familiar seeing this as: or , meaning the same thing).
Set PID loop type to PD/PDF.
There are multiple ways to perform this action. The simplest is from the front panel of your Alicat device.
From the front panel of your device, go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP TYPE. This is the menu map for Alicat’s latest firmware. If you find your menu is different, please consult your manual or one of our application engineers.
Select PD/PDF Control and press SET.
To perform this serially, first read the value of register 85: type AR85.
If the value of register 85 is 0, 16384 or 32768, your controller’s PID loop type is already set to PD/PDF.
If the value of register 85 is 2, 16386 or 32770, your controller’s PID loop type is set to PD2I. Subtract 2 from this value, and then type aw85=[new value].
Set all PID variables.
Record your controller’s existing PID settings.
Read the current P value: type ar21.
Read the current D value: type ar22.
Set the P variable in register 21 to 100: type aw21=100.
Set the D variable in register 22 to 5000: type aw22=5000.
Determine the best P value.
Ensure that your controller is connected to a gas source of the appropriate pressure and flow capacity. Start with a 0 setpoint: type AS0.
Command a 5%, 25%, 50%, and 100% setpoint (AS0.1, AS0.5, AS1, AS2), and observe the flow readings.
If there is no overshoot, add 100 to the P variable in register 21: type AW21=[old value+100]. Start again at step a. Once you observe a small amount of overshoot, continue to step d.
If there is un-damped oscillation, subtract 10 from the P variable in register 21: type AW21=[old value-10]. Repeat this until the oscillations die away after a change in setpoint. If it does not improve after 5 iterations, jump to the section 5 and start increasing the D variable.
Determine the best D value.
Ensure that your controller is still connected as in step 4 and start from a 0 setpoint: type AS0.
Command a 5%, 25%, 50%, and 100% setpoint (AS0.1, AS0.5, AS1, AS2), and observe the flow readings.
If you are experiencing overshoot and oscillations, increase D 1000 at a time: type AW22=[old value+1000]. Start again at step a.
If the flow reading matches your setpoint and readings are stable, continue to the next step.
Validate the final tuning.
To properly balance off speed of response and stability, it may be necessary to repeat steps 4 and 5 above several times.
If you cannot dampen out oscillations through tuning, there may be mechanical interference from other parts of your system.
This can be done through FlowVision SC by entering the new values into the respective boxes on the instrument panel.
Front panel and oscilloscope
Set PID loop type to PD/PDF.
From the front panel of your device, go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP TYPE. This is the menu map for Alicat’s latest firmware. If you find your menu is different, please consult your manual or one of our application engineers.
Select PD/PDF Control and press SET.
Set your PID variables to P=100 and D=5000.
Go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP GAINS. Before you make any changes to your P and D values, be sure to record your controller’s existing settings.
Press P, change your P gain to 100, and press SET
In a similar fashion, change your D gain to 5000 and press SET
Determine the best P value.
Ensure that your controller is connected to a gas source of the appropriate pressure and flow capacity. Start with a 0 setpoint.
Command a 5%, 25%, 50%, and 100% setpoint, and observe the flow readings.
If there is no overshoot, add 100 to the P variable. Start again at step a. Once you observe a small amount of overshoot, continue to step d.
If there is un-damped oscillation, subtract 10 from the P variable. Repeat this until the oscillations die away after a change in setpoint. If it does not improve after 5 iterations, jump to the section 4 and start increasing the D variable.
Determine the best D value.
Ensure that your controller is still connected as in step 4 and start from a 0 setpoint.
Command a 5%, 25%, 50%, and 100% setpoint, and observe the flow readings.
If you are experiencing overshoot and oscillations, increase D 1000 at a time. Start again at step a.
If the flow reading matches your setpoint and readings are stable, continue to the next step.
Validate the final tuning.
To properly balance off speed of response and stability, it may be necessary to repeat steps 3 and 4 above several times.
If you cannot dampen out oscillations through tuning, there may be mechanical interference from other parts of your system.
The PD2I Algorithm
The PD2I algorithm was developed at Alicat Scientific for the express purpose of obtaining the highest possible performance in pressure control applications. It is also applicable to many flow control applications. As it utilizes proprietary predictive functions, this algorithm does not behave like a standard PID routine. Fortunately, PD2I tuning is simple if you follow a few simple guidelines:
Step-by-step instructions
Serial commands and FlowVision
Ensure that your controller is connected serially.
These instructions assume a Unit ID of A. If your controller’s Unit ID is not A, substitute the correct letter of your Unit ID. If your controller is in streaming mode, do not type the leading ‘a’ in the instructions below.
In this tutorial, we will be using the [Unit ID]S# command to give the controller setpoints. In addition, we will assume a 2 SLPM full scale mass flow controller (MC-2SLPM-D). Therefore, our command for a full scale setpoint will be AS2. Likewise, the commands for 1 SLPM or 0.4 SLPM would be AS1 and AS0.4, respectively. Replace the setpoint value with what your setup requires.
In this tutorial, will be used to prompt you to send a serial command. (You may also be more familiar seeing this as: or , meaning the same thing).
Set PID loop type to PD2I.
There are multiple ways to perform this action. The simplest is from the front panel of your Alicat device.
From the front panel of your device, go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP TYPE. This is the menu map for Alicat’s latest firmware. If you find your menu is different, please consult your manual or one of our application engineers.
Select PD2I Control and press SET.
To perform this serially, first read the value of register 85: type AR85.
If the value of register 85 is 0, 16384 or 32768, your controller’s PID loop type is set to PD/PDF. Add 2 to this value, and then type AW85=[new value].
If the value of register 85 is 2, 16386 or 32770, your controller’s PID loop type is already set to PD2I.
Set all PID variables to P=200, D=10, I=100.
Record your controller’s existing PID settings.
Read the current P value: type ar21.
Read the current D value: type ar22.
Read the current I value: type ar23.
Set the P variable in register 21 to 200: type aw21=200.
Set the D variable in register 22 to 10: type aw22=10.
Set the I variable in register 23 to 100: type aw23=100.
Determine the best P value.
Ensure that your controller is connected to a gas source of the appropriate pressure and flow capacity. Start with a 0 setpoint: type AS0.
Command a 25%, 75%, and 100% setpoint (AS0.5, AS1.5, AS2), and observe the flow readings.
If you observe any oscillations, increase P by 100: type AW21=[old value+100]. Start again at step a. If you find that increasing P increases the oscillations, skip this step and move on to step d.
If there is un-damped oscillation, subtract 10 from the P variable in register 21: type AW21=[old value-10]. Repeat this step until the flow rate approaches the setpoint with no overshoot or oscillations. Do not worry about the speed of convergence. At this point, the tuning might look like this.
Determine the best I value.
Ensure that your controller is still connected as in step 4 and start from a 0 setpoint: type AS0.
Command a 25%, 75%, and 100% setpoint (AS0.5, AS1.5, AS2), and observe the flow readings.
To increase the speed of convergence, add 50 to the I variable in register 23: type AW23=[old value+50]. Start again at step a.
If, after increasing I, you observe overshooting and oscillations, return I to the previous value.
If the flow reading matches your setpoint, and converges at a speed you as happy with, continue to the next step.
Determine the best D value.
For nearly every tuning scenario, the optimal D value is 10 and does not require any change. If your current tuning is sufficient, move on to step 7.
Ensure that your controller is still connected as in step 4 and start from a 0 setpoint: type AS0.
Command a 25%, 75%, and 100% setpoint (AS0.5, AS1.5, AS2), and observe the flow readings.
If you observe oscillation around the setpoint, add 10 to the D variable in register 22: type AW22=[old value+10]. Start again at step b. If flow readings are stable, continue to step 7. Do not exceed a value of 50 in the D register. If it looks like you would need to, return to step 4, and start again.
Validate the final tuning.
To properly balance off speed of response and stability, it may be necessary to repeat steps 4, 5 and 6 above several times.
If you cannot dampen out oscillations through tuning, there may be mechanical interference from other parts of your system.
Your final tuning should look something like this.
This can be done through FlowVision SC by entering the new values into the respective boxes on the instrument panel.
Front panel and oscilloscope
Set PID loop type to PD2I.
From the front panel of your device, go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP TYPE. This is the menu map for Alicat’s latest firmware. If you find your menu is different, please consult your manual or one of our application engineers.
Select PD2I Control and press SET.
Set your PID variables to P=200, D=10, I=100.
Go to: MENU > CONTROL > ADV CONTROL > LOOP SETUP > LOOP GAINS. Before you make any changes to your P and D values, be sure to record your controller’s existing settings.
Press P, change your P gain to 200, and press SET.
In a similar fashion, change your D gain to 10, and your I gain to 100.
Determine the best P value.
Ensure that your controller is connected to a gas source of the appropriate pressure and flow capacity. Start with a 0 setpoint.
Command a 25%, 75%, and 100% setpoint and observe the flow readings.
If you observe any oscillations, increase P by 100. Start again at step a. If you find that increasing P increases the oscillations, skip this step and move on to step d.
If there is un-damped oscillation, subtract 10 from the P. Repeat this step until the flow rate approaches the setpoint with no overshoot or oscillations. Do not worry about the speed of convergence. At this point, the tuning might look like this.
Determine the best I value.
Ensure that your is still connected as in step 3 and start from a 0 setpoint.
Command a 25%, 75%, and 100% setpoint, and observe the flow readings.
To increase the speed of convergence, add 50 to the I variable. Start again at step a.
If, after increasing I, you observe overshooting and oscillations, return I to the previous value.
If the flow reading matches your setpoint, and converges at a speed you as happy with, continue to the next step.
Determine the best D value.
For nearly every tuning scenario, the optimal D value is 10 and does not require any change. If your current tuning is sufficient, move on to step 6.
Ensure that your controller is still connected as in step 4 and start from a 0 setpoint.
Command a 25%, 75%, and 100% setpoint, and observe the flow readings.
If you observe oscillation around the setpoint, add 10 to the D variable. Start again at step b. If flow readings are stable, continue to step 6. Do not exceed a value of 50 in the D register. If it looks like you would need to, return to step 3, and start again.
Validate the final tuning.
To properly balance off speed of response and stability, it may be necessary to repeat steps 3, 4 and 5 above several times.
If you cannot dampen out oscillations through tuning, there may be mechanical interference from other parts of your system.
Your final tuning should look something like this.
This site uses cookies to improve your browsing experience. By continuing to use this site, you agree to our Privacy PolicyAccept and Continue
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.