Find a PID Controller

9 vues (au cours des 30 derniers jours)
River Rock
River Rock le 24 Déc 2012
Réponse apportée : mano le 6 Août 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

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 24 Déc 2012
Modifié(e) : Azzi Abdelmalek le 24 Déc 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 commentaires
River Rock
River Rock le 25 Déc 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 le 25 Déc 2012
Modifié(e) : Azzi Abdelmalek le 25 Déc 2012
You have to do it manualy, adjust the time (lower then expected) then decrease the kp to reduce the overshoot

Connectez-vous pour commenter.

Plus de réponses (1)

mano
mano le 6 Août 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