Time-delay root-locus GUI

Repetitive control analysis

Theory

This example shows how repetitive control analysis can be used for repetitive control method. Repetitive control method uses time-delay to enable a system to track periodic reference signals or to suppress periodic disturbances. It is based on Internal model principle, meaning that the controller must include the same poles as the reference signal’s transfer function for system to achieve zero steady-state error.
The reference signal can be represented as sum of sine and cosine functions with fundamental frequency \(\omega_\mathrm{0}\) and its harmonics. Signal with many higher harmonics requires controller of higher order. This can by bypassed by the introduction of time-delay and it's infinite poles.

Signal in form of: \[r(t) = a_\mathrm{0} + \sum_{k=1}^{K} a_\mathrm{k} \sin(k \omega_\mathrm{0} t) + \sum_{l=1}^{L} b_\mathrm{l} \cos(l \omega_\mathrm{0} t) \] requieres controller with poles at: \[ s_\mathrm{p,s} = \pm k \omega_\mathrm{0} i, \quad \forall k = 1,\dots,K \text{ such that } a_\mathrm{k} \neq 0, \] \[ s_\mathrm{p,c} = \pm l \omega_\mathrm{0} i, \quad \forall l = 1,\dots,L \text{ such that } b_\mathrm{l} \neq 0, \] \[ s_\mathrm{p,0} = 0 \quad \text{if } a_\mathrm{0} \neq 0\] This leads to controller in form of: \[ K(s) = \frac{K}{1 - e^{- \frac{2 \pi}{\omega_\mathrm{0}} s}} \]

tdrlocus example

Assuming simple first order system: \[ H_\mathrm{1}(s) = \frac{1}{s+3} \] and reference periodic signal with fundamental frequancy \( \omega_\mathrm{0} = 1 \) rad/s, the controller can be designed as: \[ K_\mathrm{1}(s) = \frac{4}{1 - e^{- 2 \pi s}} \] Such system can be called as:

reg = [-5, 2, 0, 20];
num = "1";
den = "s+3";
tdrlocus(reg, num, den);
The controller can be add via "Add controller" button. After inserting:
4
1-exp(-6.28*s)

to the numerator and denominator field, click on "Add" button. The system will be updated and the controller will be added to the system.
You may change the controller within the GUI, by selecting "Add controller" function and clicking "Change" after the controller selection. Try it for repetitive ontroller with low-pass filter with cutoff frequency \(\omega_\mathrm{c} = 1\) rad/s:
s + 10
0.1*s + 1 - exp(-6.28*s)
You can also change the system directly in the GUI. Try clicking the leftmost function in the toolbar and selecting system with transfer function \(H_\mathrm{2}(s) = \frac{4}{s^2 + s + 4}\):
4
s^2 + s + 4

For such system, with previously mentioned controllers, system becomes unstable, but changing the controller to:
11*s+10-(0.5*s+5)*exp(-6.28*s)
0.1*s+1-exp(-6.28*s)

introduces chain of open-loop zeros that stabilizes the system.