When to use the Zeigler-Nichols
Tuning rules work well when the controller required is analog, system is linear, monotonic and a response that is dominated by a single-pole exponential “lag”.
Actual plants are unlikely to have a perfect first-order lag characteristic. Higher-order poles will introduce an extra phase shift, phase shift matters a lot to loop stability. You can’t depend upon the single “lag” pole to match both the amplitude roll-off and phase shift accurately.
So the ZN model presumes an additional fictional phase adjustment that does not distort the assumed magnitude roll-off. At the stability margin there is a 180 degree phase shift around the feedback loop which is the Nyquist’s stability criteria. A first order lag can contribute no more than 90 degrees of that phase shift.
To summarize, then, the Ziegler-Nichols rule assumes that the system has a transfer function of the following form:
= (Ke^-sT)/ (a+s)
The model matches the system response at frequencies 0 and at the stability limit.
How do you measure response parameters?
Given the magnitude and phase open-loop response curves of the plant, you can fit the assumed model in the following manner.
- The ratio of output level to input level at low frequencies determines the gain parameter K of the model.
- Observe the frequency F0 at which the phase passes through -pi radians (-180 degrees). The inverse of this frequency is the period of the oscillation, T0.
- Observe the plant gain Kc that occurs at the critical oscillation frequency Fu. The inverse of this is the gain marginK0.
Example:
The given transfer function is:
Gp = 1/s(s+11.6+5.8i)(s+11.6-5.8i)
Zeigler-Nichols Compensation
MATLAB CODE
num=1;
den=conv([1 0],conv([1 11.6+5.8i],[1 11.6-5.8i]));
figure
rlocus(num,den) %frequency response of the system
T0=(2*pi)/13; % Measuring the period T0 at the stability limit
Kp0=3900; % Measuring the gain margin Kp0 for loop stability
Ti=0.5*T0; % Calculating the tuning parameters
Td=0.125*T0;
kp=0.6*Kp0;
ki=kp/Ti;
kd=kp*Td;
numgc=kp*[Td*Ti Ti 1]; %Numerator of PID transfer function
dengc=[Ti 0]; %denominator of PID transfer function
gc=tf(numgc,dengc); % PID controller’s transfer function
gp=tf(num,den);
gf=gc*gp;
t=gf/(1+gf); %Closed loop transfer function
figure
step(t)
Root Locus
No comments:
Post a Comment