简体   繁体   中英

Implementation of Iterative Learning Control in Matlab/Simulink

I am working on the development of an Iterative Learning Controller for a simple transfer function.

迭代

The iterations are controlled by the external matlab loop. But the error e(k) (k is trial number) is not updating ... as the trials increases. Please detect the error I've commited.

Thanks and Regards.

You might have solved the problem. But as the question is still open, I would like to add something here.

First of all, you might want to check the usage of "memory" block. "The Memory block holds and delays its input by one major integration time step." The reason why the error wasn't updating is that the output of your plant produced was the same in each iteration(you defined external loop). The memory block only delayed one step of your U(K), not the whole iteration.

You might want to store the error of each iteration to workspace, and use it for the next iteration.

The memory should be a vector with a lenght of the single iteration. Not just single value. Delay block can store multiple past samples. This guy did probably what you were looking for: https://github.com/arthurrichards77/iterative-learning-control

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM