PID controller in simulink

14 次查看(过去 30 天)
Hi everyone! I am working on PID controller. I am having a model in simulink which I have uploaded at The gains of PID are: kp=1,Kd=1,ki=1.Saturation block has limits equal to -30 & +30. The state-space model has A=[0 1 0 0; 0 3.5 -106.5 0.37;0 0 0 1;0 0.21 -6.3 1.59]; B=[0 0;48.06 46664; 0 0; 340.18 47.7]; C=[1 0 1 0]; D=[0 0] and initial condition equal to 0. The system should converge at 20 as input is 20. But the problem is firstly its not converging and secondly the input of PID which is error signal appears as it is; as output with no modification. Need urgent help?
  4 个评论
Gul Rukh Khan
Gul Rukh Khan 2016-9-21
Dear Azizi brother, I have one question, I want to Tune my Simulink Model with PID, but I tried a lot to tune but failed badly. If you kind send your email address, I will send the model, and after Tuned kindly send back to me on this email: Please, just send me an email with your good name AZIZI and obliged. with Many Thanks
Gul Rukh Khan



Beenish Mazhar
Beenish Mazhar 2012-9-8
The problem can be sorted out if we use Ziegler-Nichols Tuning of PID controller.
  1 个评论
Walter Roberson
Walter Roberson 2012-9-9
Azzi commented "the answer expected was the value of PID parameters Kp Ti and Td"


更多回答(2 个)

Ryan G
Ryan G 2012-9-7
编辑:Ryan G 2012-9-7
I looked at the root locus with the PID and I don't believe this will be enough to adequately stabilize this system. Just for kicks I tried utilizing looptune to stabilize the system and was successful in finding a 4th order TF that would do it. Since I know nothing of your system other than the SS matrices it may or may not make any sense.
If you replace the PID with a Transfer fcn block this should stabilize the system:
num = [-1.19566835199456 0.150677296783384 -4.87470249290078 -5.9378741332245 -3.64167152790914e-05];
den = [1 32.4776016633891 994.732763803663 6558.83645377611 0.0401083722778298];
The resulting controller doesn't do a particularly good job but your system may not be easy to stabilize anyway.
What is the 2nd input and why don't you use it?
  3 个评论
Beenish Mazhar
Beenish Mazhar 2012-9-7
编辑:Beenish Mazhar 2012-9-7
ok sir I will work on it. Thank you for your guidance.


Azzi Abdelmalek
Azzi Abdelmalek 2012-9-7
编辑:Azzi Abdelmalek 2012-9-7
eig(A) shows that your system is unstable (positive real(poles)in your system)
ans =
2.5582 + 2.3191i
2.5582 - 2.3191i
and if your output is not converging that means your PID parametes are not quite choosen
  5 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2012-9-7
编辑:Azzi Abdelmalek 2012-9-9
I guess, since your system is 4rth order and unstable, it's difficult to be stabilized with a PID, maybe you should look for another controller




Community Treasure Hunt

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

Start Hunting!

Translated by