Engineering:Ziegler–Nichols method

From HandWiki
Short description: Method of tuning a PID controller
Main page: PID controller

The Ziegler–Nichols tuning method is a heuristic method of tuning a PID controller. It was developed by John G. Ziegler and Nathaniel B. Nichols. It is performed by setting the I (integral) and D (derivative) gains to zero. The "P" (proportional) gain, [math]\displaystyle{ K_p }[/math] is then increased (from zero) until it reaches the ultimate gain [math]\displaystyle{ K_u }[/math], at which the output of the control loop has stable and consistent oscillations. [math]\displaystyle{ K_u }[/math] and the oscillation period [math]\displaystyle{ T_u }[/math] are then used to set the P, I, and D gains depending on the type of controller used and behaviour desired:

Ziegler–Nichols method[1]
Control Type [math]\displaystyle{ K_p }[/math] [math]\displaystyle{ T_i }[/math] [math]\displaystyle{ T_d }[/math] [math]\displaystyle{ K_i }[/math] [math]\displaystyle{ K_d }[/math]
P [math]\displaystyle{ 0.5 K_u }[/math]
PI [math]\displaystyle{ 0.45 K_u }[/math] [math]\displaystyle{ 0.8{\overline 3} T_u }[/math] [math]\displaystyle{ 0.54 K_u/T_u }[/math]
PD [math]\displaystyle{ 0.8 K_u }[/math] [math]\displaystyle{ 0.125 T_u }[/math] [math]\displaystyle{ 0.10 K_u T_u }[/math]
classic PID[2] [math]\displaystyle{ 0.6 K_u }[/math] [math]\displaystyle{ 0.5 T_u }[/math] [math]\displaystyle{ 0.125 T_u }[/math] [math]\displaystyle{ 1.2 K_u/T_u }[/math] [math]\displaystyle{ 0.075 K_u T_u }[/math]
Pessen Integral Rule[2] [math]\displaystyle{ 0.7 K_u }[/math] [math]\displaystyle{ 0.4 T_u }[/math] [math]\displaystyle{ 0.15 T_u }[/math] [math]\displaystyle{ 1.75 K_u/T_u }[/math] [math]\displaystyle{ 0.105 K_u T_u }[/math]
some overshoot[2] [math]\displaystyle{ 0.3{\overline 3} K_u }[/math] [math]\displaystyle{ 0.50 T_u }[/math] [math]\displaystyle{ 0.3{\overline 3} T_u }[/math] [math]\displaystyle{ 0.6{\overline 6} K_u/T_u }[/math] [math]\displaystyle{ 0.1{\overline 1} K_u T_u }[/math]
no overshoot[2] [math]\displaystyle{ 0.20 K_u }[/math] [math]\displaystyle{ 0.50 T_u }[/math] [math]\displaystyle{ 0.3{\overline 3} T_u }[/math] [math]\displaystyle{ 0.40 K_u/T_u }[/math] [math]\displaystyle{ 0.06{\overline 6} K_u T_u }[/math]

The ultimate gain [math]\displaystyle{ (K_u) }[/math] is defined as 1/M, where M = the amplitude ratio, [math]\displaystyle{ K_i = K_p/T_i }[/math] and [math]\displaystyle{ K_d = K_p T_d }[/math].

These 3 parameters are used to establish the correction [math]\displaystyle{ u(t) }[/math] from the error [math]\displaystyle{ e(t) }[/math] via the equation:

[math]\displaystyle{ u(t) = K_p \left( e(t) + \frac{1}{T_i} \int_0^t e(\tau) \, d\tau + T_d \frac{de(t)}{dt} \right) }[/math]

which has the following transfer function relationship between error and controller output:

[math]\displaystyle{ u(s) = K_p \left( 1 + \frac{1}{T_is} + T_ds \right)e(s) = K_p \left( \frac{T_dT_is^2 + T_is + 1}{T_is} \right)e(s) }[/math]

Evaluation

The Ziegler–Nichols tuning (represented by the 'Classic PID' equations in the table above) creates a "quarter wave decay". This is an acceptable result for some purposes, but not optimal for all applications.

This tuning rule is meant to give PID loops best disturbance rejection.[2]

It yields an aggressive gain and overshoot[2] – some applications wish to instead minimize or eliminate overshoot, and for these this method is inappropriate. In this case, the equations from the row labelled 'no overshoot' can be used to compute appropriate controller gains.

References


External links