Topic: DMD0241

Using the Auto-tune Process


The process of setting the optimal gains for P, I and D to get an ideal response from a control system is called tuning. Any of the terms set incorrectly can cause the process to be unstable, or very slow to control. To help in achieving optimal P, I, and D values the Do-more controller provides an automatic tuning function.

 

During the auto-tune period the controller manipulates the power to the process and measures the rate of change, overshoot and response time of the process. This is based on the Zeigler-Nichols method of calculating controller term values. Once the auto-tune period is completed the P, I and D values are stored in the PID instruction's structure members.

 

The PID View dialog provides an interface to the Autotune dialog which handles the autotune process for the designated loop. Click the Auto-tune... button to open the Auto-Tune dialog.

 

Note: Before running an autotune cycle make sure the process being controlled is relatively stable.

 

 

Process Control Type (PI or PID)

Selects which of the following sets of control variables use in the Autotune cycle:

 

  • PI - only the Gain (P) and Reset (I)
     

  • PID - use Gain (P), Reset (I), and Rate (D)

 


Which Tuning Algorithm (Closed Loop or Open Loop)

Closed Loop -this algorithm imposes a square wave on the output. Each transition of the output occurs when the PV value crosses over/under the SP value. Therefore, the frequency of the limit cycle is roughly proportional to the mass of the process. From the PV response, the auto tune function calculates the gains and the sample time. Specifically, the auto tune function examines the direction of the offset of the PV from the SP then takes control of the control output and induces a full-span step change in the opposite direction. Each time the sign of the error (SP - PV) changes, the output changes full-span in the opposite direction. This proceeds through three full cycles. The auto tune function then computes the Gain according to the Zeigler-Nichols equations for a PI or PID type as specified.

Note:
Before running the closed loop autotune cycle the Process Variable (PV) and Setpoint (SP) values must be no more than 5% of the full scale difference apart.

Note:
If the .PV value fluctuates rapidly, use the First Order Filter (FILTER) instruction or the Deadband option below to stabilize that value.
 

Deadband - the closed-loop auto-tuning algorithm moves the .Output value from 0% to 100% and back as the PID Loop's .PV values crosses the .SP value. Any fluctuation in the analog input used as the .PV value can cause unintended 'crossings'. These fluctuations can be handled by adding a deadband. The deadband value is specified in tenths of a percent of the range of the .PV and .SP values.

The range of values in 0 (no deadband) to 100 (10.0%). The deadband value is also mapped into the system location $PIDTuningDB (DST24).

 

 

Open Loop - this algorithm induces the specified change in the output and observes the responses of the PV at the prescribed interval. Then from the peak change to the PV response, the auto tune function calculates the new tuning constants using the Zeigler-Nichols equations for a PI or PID type as specified.

 

Sample Time: - the intervals at which the .PV value will be sampled to determine the peak change to the PV. The recommended Sample Time is 1/4 of the current PID Loop's .SampleTime value.

Minimum PV Change:
- the minimum size change to the .PV value that is required to signal a successful auto-tune. This value is specified as % of the current .PV value. The field to the right will display the current .PV % value

Output Bump:
- the size of the change to make to the output. This value is specified as % of the current .Output value. The field to the right will display the current .Output % value that it will be set to.

 

Note: The Setpoint (SP) value should be more than 5% of the Process Variable (PV) range away from the actual PV before starting the open loop auto tune process.

 


Click the Start Tuning button to begin the autotune process for the currently selected PID loop.
Note:
Before running an autotune cycle make sure the process that is being controlled is operating within the range of control that is expected..

 

Click the Close button to dismiss the Autotune dialog without running the auto-tune cycle, none of the tuning constants are changed.

 


What Happens After a Successful Auto-tune

Each time the Auto-tune process successfully completes the following things happen:

 

  • the previous values for Gain (P), Reset (I), Rate (D) and the Sample Time are saved in the Recent Tuning History
     

  • the new values for Gain (P), Reset (I), Rate (D) and the Sample Time are written to the Closed Loop Controller's .Gain, .Reset, .Rate and .SampleTime structure members respectively
     

  • the new values are displayed to the Output Window

 


At that point the options located in the Tuning Constants group allow for some additional actions with the new tuning constants.

 

Copy to Clipboard - click this button to copy the Loop Name and the tuning constant results to the Windows clipboard in plain text format. This data can then be pasted into a different Windows application. The following is an example of the data that will be placed on the clipboard::

SimPID

Auto-Tune Completed
Gain  (P):    1.455
Reset (I):    4.718
Rate  (D):    0.786
Sample Time:  110

 

 

Optionally Add PIDINIT Instruction to the Project

Click this button to open the following dialog that can create a new rung of logic containing a Set PID Tuning Constants (PIDINIT) instruction and place that instruction in the project using one of the following options:

 

  • Insert this PIDINIT instruction at the top of $FirstScan System Task - inserts a rung containing a Set PID Tuning Constants (PIDINIT) instruction with these new tuning constants already filled in at the top of the $FirstScan code block.
    Note:
    this option requires that the project be in Edit Mode
     

  • Insert the rung of a $FirstScan (ST0) contact driving this PIDINIT instruction at the top of $Main code block - inserts a rung containing an ST0 contact and a Set PID Tuning Constants (PIDINIT) instruction with these new tuning constants already filled in at the top to the $FirstScan code block.
    Note:
    this option requires that the project be in Edit Mode
     

  • Copy the rung of a $FirstScan (ST0) contact driving this PIDINIT instruction into the Windows Clipboard, so I can paste it where I want - adds a rung containing an ST0 contact and a Set PID Tuning Constants (PIDINIT) instruction with these new tuning constants already filled in to the Windows clipboard. The contents of the clipboard can then be pasted into any code-block in the project.

 

 

Once the Auto-tune cycle has completed, the following dialog will then be displayed that presents four options for setting the PID loop's mode. They are:
 

  • Return Control to the Ladder Program - puts the control of the PID Loop back under control of the ladder logic diagram, that is, if the PID instruction has power-flow the loop will go to Auto. If the PID instruction does not have power-flow, the loop will go to Manual mode.
     

  • Override Loop Mode as Auto - override the ladder logic control of the PID loop and set the loop's mode to Auto. The loop calculation is still being performed.
     

  • Override Loop Mode as Manual - override the ladder logic control of the PID loop and set the loop's mode to Manual. The loop calculation is not performed, the PID View, an HMI, or some other device is assumed to be controlling the loop.
     

  • Recent Tuning History - invokes the Recent Tuning dialog that displays all of the changes that have been made to the Tuning constants during the current editing session, and allows the programmer to roll-back the tuning constants to a previous set.

 

Recent Tuning History

The Do-more controller keeps track of all of the changes made to the Gain (P), Reset (I), Rate (D), and Sample Time values by the following actions:
 

  • each time the Autotune process successfully completes, the new values for the tuning constants will be stored in the recent tuning history
     

  • each time the 'Write to PLC' button on the PID View is used to write new tuning constants, the new values for the tuning constants will be stored in the recent tuning history
     

  • each time Revert operation (described below) is used to roll back to a previous set of values, the vales that are reverted to will be stored in the recent tuning history



    Clicking the Recent Tuning History button will invoke the above dialog for the PID loop. This dialog displays all of the changes made to the tuning constants since the PID View was opened. The Recent Tuning History values are only saved while the PID View dialog is open, as soon as the PID View is closed the Recent Tuning History values will be lost.

    Click the Copy All to Clipboard button to store all of the contents of the Recent Tuning History dialog to the Windows clipboard, which can then be pasted into a separate application (e.g. NotePad).

    Click to highlight one of the entries then click the Revert button to restore the tuning constants in that selection back to the controller.

    Click the Close button to dismiss the dialog.

 


See Also:

 


Related Topics:

 


Copyright © Host Engineering, Inc. ALL RIGHTS RESERVED