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