10 January 2025 1 3K Report

Hello.

I recently started studying MPC and am implementing DMPC.

My working environment is MATLAB, and I am writing the code without using any external tools except the linear algebra toolbox.

Ultimately, I want to use DMPC for robot joint torque control.

I am using the textbook called Model Predictive Control System Design and Implementation Using MATLAB_Wang.

My control object is a DC motor, and I am using an incremental model.

The control input is used as the following formula.

h=(R*eye(Nc,Nc)+Phi'*Phi*Q);

f=-Q*(Phi_R*r1(kk)-Phi_F*Xf);

DeltaU = -inv(h) * f;

Currently, the simulation was performed when the sampling time was 1000ms (1Hz), 100ms(10Hz), and 10ms(100Hz).

However, in my case, when I create a discrete model with a sampling time of 1ms (1KHz) and do a simulation, tracking does not occur in any case.

I do not know the cause of this. As far as I know, a sampling time of 1ms should be secured for torque control, but this is not achieved in MPC simulation.

(This condition is difficult to achieve in an actual system, but I want to achieve it because I am proceeding with a simulation.)

When I looked up the paper, they said that they successfully performed it with 1ms in a system such as a robot arm.

This means that I missed something, but I do not know the cause.

Could you please give me your valuable opinion?

In addition, if the simulation loop is set to 1ms and the control input update cycle by MPC is 10ms, can I maintain the previous MPC control input until the update occurs?

I think it is a zero hold.

The graphs presented in several papers show the same result as this, but I am not sure because there is no mention of it, so I am asking a question.

More s. J Kim's questions See All
Similar questions and discussions