Iterative Learning Control (ILC) is used for improving the transient response in systems that perform repetitively. ILC tries to improve the response by adjusting the input to the plant based on the error observed in the previous iteration.
A conventional controller can be written as follows:
where shows the number of iterations, denotes time, is the input to the controller, and is the error between the desired and the actual goal. It can be seen that the error from time has been used to make an output from the controller, and the output is being used at time . The controller can be simply a constant gain such as:
The ILC controller, on the other hand, uses the error in time to make inputs at time . This can be possible only through iteration. So that the error at time was observed from the previous iteration, and will affect the next iteration, .
again with a simple controller we can have:
See an example in the next post.