Set PID integrator to saturation value
41 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a PID controller that controls a valve between 0 and 1 (0% and 100%). I have set the output limits in the PID block to 0 (lower limit) and 1 (upper limit) and I have set the anti-windup method to "clamping".
When the PID's output saturates at 1, the integrator stops (as expected). I want to set the integrator's value to 1 when the integration resumes again to avoid larger steps in the controller's output.
I looked at the documentation and found the "back-calculation" method for integrator anti-windup. It looks like exactly what I need, but it does not seem to have any effect? I don't get it. I tried rebuilding it myself by deactivating the controller's output limit, including a saturation block manually, and then have the controller track the saturated signal, but that did not work either.
The only thing that worked was when I included a logic that reset the integrator when the output reached 1, but that does not feel like a good solution. It also creates an algebraic loop.
Does anybody know a solution? Thanks
2 commentaires
Réponses (1)
Sayan
le 15 Sep 2023
I understand from your query that it is required to keep the PID Controller output to 1 when it reaches the saturation limit rather than clamping to 0 to make the tracking faster in next time steps, and the "Anti-Windup" methods are not working for the model. The most probable solution for the query is mentioned below.
- Enable the "Tracking mode". You can do that by going to the "Initialization" tab and finding the checkbox "Enable tracking mode".
- Specify the "Tracking coefficient (Kt)". The inverse of "Kt" determines the time constant of the tracking loop.
- Connect the "TR" port with the output of your plant.
Alternatively, if you are building a "PI" controller manually with an "Inetegrator" block and facing an algebraic loop while resetting the integrator externally, you can use the below steps to remove that.
- Use the Unit Delay block (available in Simulink/Discrete) which provides the output of the previous step.
- Connect the block between the reset signal and the Integrator's "External reset" port.
Further details on "Anti-Windup" control using PID and an integrator can be found in the following MATLAB documentation.
- "Anti-Windup" :https://www.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html
- Integrator: https://www.mathworks.com/help/releases/R2023a/simulink/slref/integrator.html
Hope this helps in answering the query.
0 commentaires
Voir également
Catégories
En savoir plus sur Gain Scheduling dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!