MATLAB Answers

Example of iPID controller in Matlab M.file by Michel Fliess?

19 views (last 30 days)
Nitish Mulye
Nitish Mulye on 1 Mar 2018
Commented: Joaquín López on 21 Sep 2020
Hi everyone, I am a masters student at the university of Disburg-Essen. I want to program an iPID controller as proposed by Michel Fliess in his research paper As I am still new to Matlab I need a little help to get started. Can anyone who has done the iPID agorithm in a matlab mfile please send it to me? It would help me a lot. Thank you.

Sign in to comment.

Answers (2)

Vibhav Gaur
Vibhav Gaur on 10 Mar 2020
Edited: Vibhav Gaur on 10 Mar 2020
I am using the iPID algorithm for my thesis project. To get more familiar with it I practiced with a DC motor model. I've done everything in Simulink, but it should still be helpful in understanding how the implementation works.
I have attached my Simulink model and the initialization script so it should run directly out of the box. The initialization script is pre-computing the trapezoidal integration coefficients from the polynomial. Hope this helps!
Joaquín López
Joaquín López on 21 Sep 2020
Sorry, the image was too big. I attached it again with a smaller size.

Sign in to comment.

John Masse
John Masse on 10 Mar 2020
I don't have the solution for you. But if you want to create an algebraic filter, try making one outside of the loop control. and apply it on a signal (sinusoid) to check your algorithm. ( use a reverse integrator scheme)
in a control loop you can use a simple numerical derivative to compute y' (Euler is your friend)
after it is complicated because there is no rule, but you have to filter something: the estimation of F or the new U* = (y'* -F(est))/alpha , it is necessary for stabilize the closed loop with a small time constant but not too large ( it is the problem of free model).
But you have to know that ipid works "well" on a process without dead time or gap time. if you want to create a drone it is "ok" but the tuning is empirical, for the rest change of method.
the last advice dont use ki and kd because it is in "redondance"( french word) with the recurence equation of your control ( it is my point of view) .
Good luck and think Relaxc ( the last generation control loop process)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!