% conv in Closed-Loop PID Autotuner

3 views (last 30 days)
I investigated the Closed Loop PID Autotuner and how conv % is calculated.
This value is determined solely based on the modulus of the estimated frequency response of the system, with the monitored frequency limited to the target bandwith.
The figure below shows the algorithm used to calculate convergence:
Convergence is the result of dividing between two terms calculated from the modulus of the frequency response. The difference between the current value and the previous sample's value, and its average over 64 samples.
Below is the progress of the parameters during a simulation, when the selected experiment mode is Synestream. It is noteworthy that the estimated frequency response only varies at the target bandwith frequency.
Based on the Simulink structure utilized, it is inevitable that the percentage of conversions will immediately increase and then end the simulation at 100%. The only terms of interest are likely the four instants of time when the frequency response estimate updates, although it is uncertain how informative they may actually be.
Instead % conv seems to be working as expected in open-loop since the perturbations are superimposed. Indeed, I made the tests again with closed-loop in the same conditions, that is with superimposed perturbations, verifying that % conv works ok-ish.
Therefore, the problem appears to be related to the context where we inject perturbations in sequence as % conv pulls only the info regarding the critical frequency.

Accepted Answer

Siddharth Jawahar
Siddharth Jawahar on 12 Jan 2024
Edited: Arkadiy Turevskiy on 12 Jan 2024
Hi Simone,
Thank you very much for posting about this issue. The development team is aware about this for the sinestream signal and are working to fix it in a future release.
The other option would be to use the superposition or the PRBS signal within the block dialog in the tuning experiments. You would not run into this issue.
Thanks,
Sid
P.S. Additional clarification: the issue is that %conv signal is not computed correctly when te excitation signal is a sinestream. You can still use the Closed-Loop PID Autotuner block with sinestream signal, but do not use %conv signal for defining when to stop the experiment - define your own logic for that (for example, be conservative and just specify conservatively long hard-wired time duration).

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!