Find a PID Controller

9 Ansichten (letzte 30 Tage)
River Rock
River Rock am 24 Dez. 2012
Beantwortet: mano am 6 Aug. 2024
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

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 24 Dez. 2012
Bearbeitet: Azzi Abdelmalek am 24 Dez. 2012
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 Kommentare
River Rock
River Rock am 25 Dez. 2012
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 am 25 Dez. 2012
Bearbeitet: Azzi Abdelmalek am 25 Dez. 2012
You have to do it manualy, adjust the time (lower then expected) then decrease the kp to reduce the overshoot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

mano
mano am 6 Aug. 2024
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