Clear Filters
Clear Filters

PID Tuner couldn't find a stabilizing controller

42 views (last 30 days)
The PID block in the attached Simulink file stabilizes the plant (the plant is defined in the call back). However, the PID Tuner failed to find a stabilizing controller through the Tune button in the PID block. Why? How can I sepcify the initial controller for the PID tuner?
  1 Comment
Matt Rich
Matt Rich on 14 Jul 2022
The controller in the attached model only appears to stabilize the plant for 20 seconds. If you run the model for 200 seconds, you will see that it does not stabilize the plant.

Sign in to comment.

Answers (1)

Arkadiy Turevskiy
Arkadiy Turevskiy on 12 Jan 2024
Your sysr system is somewhat tricky - several unstable poles.
PID Tuner tries to come up with a guess/estimate for response time/bandwidth to use, but does not always come up with something that creates a stable design.
In that case I recommend changing the value of response time/bandwidth to see if you can come up with a stable reponse.
I was able to do it in about 2 mins.
Here is what i did:
pidTuner(sysr); % launch pidTuner app
You can also do it from Smulink as you have been doing.
I changed controller type to PIDF (gives you more tuning knobs than a PI).
PID Tuner shows desired response time of 12240, which is obviously very long.
Try to change response time to something more reasonable (guess):
I tried response time of 1 sec, that did not come up with stable design. Tried making it slower - 10 secs, 100 secs- no stable response.
Then tried decreasing the response time. 0.1 secs - still unstable, but at 0.01 secs I got a stable design. It seems that I can keep increasing how fast I want it to be and pidTuner is able to produce a stable design. The question is then what sort of controller effort signals are reasonable - something for you to decide.




Community Treasure Hunt

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

Start Hunting!