MPC Controller giving nice performance during designing but fails on testing
3 views (last 30 days)
I'm a researcher at a university and is working on controlling the movement of a 7 DOF robotic manipulator through an MPC controller. For starter I'm using a very basic plant model of Kuka iiwa14 manipulator. The thing i'm trying to achieve is, provide 7 joint angle trajectories and use MPC controller to generate joint torques to drive the dynamic model of the manipulator.
I'm using the MPC designer toolbox in MATLAB 2019a. In the designer, everything is working fine, that is the plant is easily linearized, weights are set, and depending on few other settings the output response shown by the designer for sinusoidal input to 7 manipulated variables is quite fine. Till this pont there is no problem.
The problem arises when I use the designed controller to drive the manipulator. Even though I'm providing the same sinusoidal inputs as the joint angle tranjectories that were used by the MPC designer, but the manipulator is not generating a stable or acceptable output.
Kindly someone help me out here because I'm stuck at this thing for more than a week now.
Emmanouil Tzorakoleftherakis on 7 Jun 2021
It sounds to me that the issue is with the linearized model. When you are exporting the controller from MPC Designer, you are effectively trying to control the entire nonlinear system. But the MPC controller in the app has only been tested against the lineazired model. If you deviate much from the OP used for linearization, the MPC prediction model will not be good enough to provide good performance. For cases like this you may consider using either adaptive MPC or nonlinear MPC.