Documentation Center

  • Trial Software
  • Product Updates

Sensitivity of Control System to Time Delays

Delays are rarely known accurately, so it is often important to understand how sensitive a control system is to the delay value. Such sensitivity analysis is easily performed using LTI arrays and the InternalDelay property. For example, consider this notched PI control system developed in "PI Control Loop with Dead Time" from the example Analyzing Control Systems with DelaysAnalyzing Control Systems with Delays.

% Create a 3rd-order plant with a PI controller and notch filter.
s = tf('s');
P = exp(-2.6*s)*(s+3)/(s^2+0.3*s+1);
C = 0.06 * (1 + 1/s);
T = feedback(ss(P*C),1)
notch = tf([1 0.2 1],[1 .8 1]);
C = 0.05 * (1 + 1/s);
Tnotch = feedback(ss(P*C*notch),1);

Create five models with delay values ranging from 2.0 to 3.0:

tau = linspace(2,3,5);               % 5 delay values 
Tsens = repsys(Tnotch,[1 1 5]);      % 5 copies of Tnotch 
                                     % for j=1:5
Tsens(:,:,j).InternalDelay = tau(j); % jth delay value 
                                     % -> jth model end 
% Use step to create an envelope plot. 
step(Tsens) 
grid
title('Closed-loop response for 5 delay values between 2.0 and 3.0') 

This plot shows that uncertainty on the delay value has little effect on closed-loop characteristics. Note that while you can change the values of internal delays, you cannot change how many there are because this is part of the model structure. To eliminate some internal delays, set their value to 0 or use pade with order zero:

Tnotch0 = Tnotch; 
Tnotch0.InternalDelay = 0; 
bode(Tnotch,'b',Tnotch0,'r',{1e-2,3}) 
grid, legend('Delay = 2.6','No delay','Location','SouthWest')  

Was this topic helpful?