Simulink PID autotuning problem

18 views (last 30 days)
Pedja on 13 Apr 2014
Answered: Mudit Verma on 30 Aug 2020
Hi, I have tried simple PID auto tuning function, but I'm getting rather strange result. I have attached mdl file, so You can maybe point to me where I'm doing wrong.
P.S. Sorry if question sounds stupid, I'm a newbie in Matlab/Simulink world

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 16 Apr 2014
There is nothing wrong or strange with your model. You did not provide op_trim1 operating point that your model uses, so I just initialized the integrator in PID block at 6.37 (I can explain how I did this if you want) - basically to get rid of a large initial transient.
Once I did that, and ran the simulation with your PID gains, I got a reasonable response:
Another note: as gravity is somethign that does not change much, you can just add a constant feedforward term to your controller to compensate for it. Then, even if gravity changes a bit as you change locations, PID will do a good job compensating for that:

More Answers (3)

Arkadiy Turevskiy
Arkadiy Turevskiy on 16 Apr 2014
Edited: Arkadiy Turevskiy on 16 Apr 2014
Ok, here is how I got that integrator initial condition.
First I added Trim Output Constraint on the "height" signal. To do that, right click on the signal, and specify Trim Output Constraint, as shown below.
Next, launch Linear Analysis Tool:
Now, we want to trim the model:
Click to specify the trim conditions:
All states should be in steady state:
The output (height) should be at 0:
Click "trim". Tool computes the operating condition op_trim1. Examine it to see the value for Integrator in the PID Controller:
All of this can also be done with a few lines of code:
model = 'Proba_3';
opspec = operspec(model);
opspec.Outputs(1).Known = true;

jashandeep kaur
jashandeep kaur on 11 Mar 2017
may i know how does auto tunning take place?how does controller calculate the desired values of P and I?is there any method or algo?

Mudit Verma
Mudit Verma on 30 Aug 2020
Autotuner not working in my model there is no PId gains showing they are showning 0 and only frequencies are showing in display block
i have attached my model plzz see and give me solution to my prob.

Community Treasure Hunt

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

Start Hunting!

Translated by