Find a PID Controller

9 次查看(过去 30 天)
River Rock
River Rock 2012-12-24
回答: mano 2024-8-6
Hi
I want to find a PID Controller for the following process:
Hp(s) = 1 / (s^2 + 1)
or Hp = tf (1, [1 0 1] );
Performance requirements: overshoot < 5%, settling time < 3 sec, steady-state error = 0.
I tried to use pidtool(H) and none of the available pid types meet the performance requirements.
Do you have any suggestion on how to find the optimal controller using Matlab / Simulink ?
Thanks

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2012-12-24
编辑:Azzi Abdelmalek 2012-12-24
Hp=tf (1, [1 0 1] );
[kpid,info] = pidtune(Hp,'pid')
Then simulate your system using tune (in PID block) to find the desired values of kp ki and kd
you will find approximately
kp=83
ki=19
kd=32
  2 个评论
River Rock
River Rock 2012-12-25
Is it possible to set the overshoot to a fixed value and adjust only the settling time? It seems that I cannot lower the overshoot under 10% using pidtool; the manual tuning works though.
Azzi Abdelmalek
Azzi Abdelmalek 2012-12-25
编辑:Azzi Abdelmalek 2012-12-25
You have to do it manualy, adjust the time (lower then expected) then decrease the kp to reduce the overshoot

请先登录,再进行评论。

更多回答(1 个)

mano
mano 2024-8-6
tranfer function using pid controller
c(s)/r(s)=1/s*2+10s+20

Community Treasure Hunt

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

Start Hunting!

Translated by