How can I Switch between PID and MPC ?

20 views (last 30 days)
HI. Is that possible to design a controller in which the operator can manually switch between MPC and PID ? In the design below the problem is when we switch from MPC to PID, the MPC receives feedbacks which are not correspondent to MPC signals and it makes the MPC state estimator to estimate totally wrong estate of the model. Consequently it is not possible to switch back to MPC because it is running on a wrong state. So the question is how can I change last move values of the MPC to be equal to PID signals during run time when switching to PID so that the estate estimator does not get lost . Or if there is any other design that can solve this problem.

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 29 Oct 2018
Hi there,
Yes, you can definitely switch between different controllers. We call this feature "bumpless transfer". In your MPC controller you need to check the option in block dialog to use "external manipulated variable". This is explained here .
You also need to ensure bumpless transfer for when you switch from MPC to PID controller. If you use Simulink PID Controller block, you do that by using tracking mode feature, as explained here .
Finally, here is a link to our webinar where we designed both PID and MPC controllers for a robot arm and compared them by switching between them and comparing performance.
Hope this helps.
Arkadiy

More Answers (0)

Community Treasure Hunt

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

Start Hunting!