Elegir ganancia para obtener la respuesta deseada del sistema

2

Tengo que elegir una ganancia para que la respuesta al escalón se ajuste a un par de criterios. Los criterios son:

  • Exceso máximo del 20%

  • Tiempo de establecimiento entre 0,8 y 1,3 s

  • Tiempo de subida entre 0,8s y 1,1s

Al principio intenté averiguar la ubicación deseada del poste. Utilicé las siguientes ecuaciones

  • Overshoot: cos (arctan (y / (-x)) = 0.45595 (usado Mp = e ^ (- pi * zeta / sqrt (1-zeta ^ 2)) para averiguar la relación de amortiguamiento mínima 0.45595)

  • Tiempo de establecimiento: x = -4.89 y x = -3.556 (se utiliza ln (0.02) / ts para encontrar la parte real requerida)

  • Tiempo de subida: (pi + y / x) / y = 1.1 y (pi + y / x) / y = 0.8

La superposición del área entre esas curvas sería la ubicación deseada del polo que se ve así.

Ahora,eldiagramadebloquesseveasí

Suubicaciónderaízseveasí(superpuestaconeláreadelpolodeseada)

Comopuedever,ningunagananciasatisfaríalosrequisitos.Bueno,podemosmodificarKxunpocoytambiénagregarpartesderivadaseintegrales.

  • Kx=Kp+Kd*s+Ki/s(sesuponequeKxdebeverseasí,esunrequisito)

LoquehicefueagregarunpocodeKdparaqueellugardelaraízatravieseeláreadelpolodeseada,luegoelegiríaunpuntoenellugardelaraízparaobtenerlagananciarequerida.(ElegíKp=1yKd=0.135paratrazarellugardelaraíz)

Por lo tanto, la ganancia total debería ser

  • Kx = 5.29 * (1 + 0.135 * s)

¿verdad? Bueno, no funciona. Usé stepinfo () para obtener la respuesta del sistema

    RiseTime: 0.3907
SettlingTime: 0.5625
 SettlingMin: 0.9084
 SettlingMax: 1.0152
   Overshoot: 1.5246
  Undershoot: 0
        Peak: 1.0152
    PeakTime: 0.8490

que está en WAY off. El tiempo de subida ni siquiera está cerca de la respuesta deseada y tampoco lo es el tiempo de establecimiento. ¿Qué hice mal?

Este es mi código en Matlab

s = tf('s')
gain = 5.29;
Kp = 1;
Kd = 0.135;
Ki = 0;
Kx = parallel(tf(Kp, 1), parallel(tf([Kd, 0], 1), tf(Ki, [1, 0])))
p = 5/(s+5) * 1/s
pk = Kx * p;
h = 1;
figure(1)
rlocus(pk)
figure(2)
t = feedback(gain*pk, h);
step(t)
stepinfo(t)
    
pregunta neophoenix

0 respuestas

Lea otras preguntas en las etiquetas