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?
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.