MATLAB Answers

Tan Edwin

Question on MPC/PID Controller in Simulink

Asked by Tan Edwin
on 29 Apr 2011

I am trying to do a control using either MPC or PID controller but getting some problems in the designing:

Qn: 1) Does MPC provide auto-designing?

2) Must my system be linear for the controller to do auto-tuning? my system is a non-linear ODEs: e.g dx(1)=x(1)*x(2)+k+x(3) dx(2)=2*x(2)-5*x(1) dx(3)= x(3)^2 will the control work?

3) If i need to linearize then how should i do it? any readings to recommend?


1 Answer

Answer by Arkadiy Turevskiy
on 29 Apr 2011
 Accepted answer

Information in your question is not sufficient to determine what problem you are running into exactly, so if the answers do not give you what you are looking for, you need to provide more info.

With that said:

1) Model Predictive Control Toolbox provides the GUI that will help you design the controller. You will need to provide the predictive model, prediction, and control horizon, and specify constraints and weights. After you do all that, the tool will design controller for you.

Here is the link to the doc.

Here is a link to a short video.

The tool also provides tuning adviser for helping you set the weights.

2) What auto-tuning are you referring to? For using the PID Tuner, the system does not have to be linear. When you launch the tuner, it will automatically linearize the model, and use this linearized model for determining PID gains. You provided some equations, but they do not fully describe problem setup - what is the control input, is that k? What are you measuring: all 3 states? Is it a SISO or a MIMO system you are trying to control?

See this page for more information on PID Control with MATLAB and Simulink.

3) You can start by looking at this page: linearization for model analysis and control design.




Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!