You are on page 1of 14

CONTROL DIGITAL

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
CARRERA DE:
INGENIERÍA ELECTRONICA, AUTOMATIZACIÓN Y CONTROL.

Ing. Rodolfo Gordillo

DEBER N°4

INTEGRANTES:
Carlos Mora
Alex Pachacama
Israel Rojas

FECHA DE PRESENTACIÓN:
16 de enero del 2018

1

Introducción Se pretende revisar las técnicas de diseño de un controlador digital basadas en el método de ubicación de polos. Las funciones de transferencia del motor y del PID están determinadas respectivamente por: Se desea ubicar los polos dominantes de lazo del sistema de manera que el índice de amortiguamiento ζ=0. tanto por emulación del controlador analógico como en forma digital directa. Como polo auxiliar se selecciona un valor de α=1300.8 y la frecuencia natural no amortiguada ωn = 800 rad/s.1. Para ello deberá utilizar las funciones de aproximación que correspondan. Se deberá verificar el funcionamiento del controlador y finalmente realizar el algoritmo de software que realiza digitalmente el controlador. y resolver la ecuación Diofantina en el dominio que corresponda. Utilizando la ecuación diofantina obtenemos: Δ(𝑠) = (𝑠 − 𝑠1 )(𝑠 − 𝑠2 ) Δ(𝑠) = 𝑠 2 + 2 ⋅ 𝜀 ⋅ 𝜔𝑛 𝑠 + 𝜔𝑛 2 Considerando 𝜀 ⋅ 𝜔𝑛 se tiene: Δ(𝑠) = 𝑠 2 + 1280 𝑠 + 640000 Se coloca el polo auxiliar para igualar obtener un tercer polo y cumplir con la ecuación de diofantina al lado izquierdo para mantener estabilidad 𝛼 = −1300 Δ(𝑠) = 𝑠 3 + 2580 𝑠 2 + 2304000 𝑠 + 832000000 Δ1 = 𝐴𝑅 + 𝐵𝑆 Δ1 = 𝑠(𝑠 + 60)(𝑠 + 600) + 360000(𝑠 ⋅ 𝑘𝑝 + 𝑘𝑖 +𝑘𝑑 ⋅ 𝑠 2 ) 2 . 2. Descripción del problema: Se desea controlar digitalmente la velocidad de un micro-servo motor G(s) mediante un controlador PID en su forma paralela. Diseñe el controlador PID en tiempo continuo por ubicación de polos. 1.

Δ1 = 𝑠 3 + (660 + 360000 ⋅ 𝑘𝑑 )𝑠 2 + (36000 + 360000 𝑘𝑝 )𝑠 + 360000 𝑘𝑖 Considerando las ecuaciones.11 Reemplazando los valores obtenemos el controlador: 0.0053 𝑠 2 + 6.0053 6. 3 . 𝑠3 ∶ 1=1 𝑠2: 660 + 360000 𝑘𝑑 = 2530 𝑘𝑑 = 0.3 𝑠 + 2311.[0 1 0]) step(feedback(gs*cs.3 𝑠 + 2311.0053 s^2 + 6.3 𝑠 0 : 360000 𝑘𝑖 = 832000000 𝑘𝑖 = 2311.11].0053 𝑠1 : 36000 + 360000 𝑘𝑝 = 2304000 𝑘𝑝 = 6.[1 660 36000]).3 𝑘𝑖 = 2311.3 s + 2311 ------------------------- s Continuous-time transfer function.11 360000 𝑔(𝑠) = ∗ 𝑠 (𝑠 + 60)(𝑠 + 600) Se comprueba los resultados del controlador analógico usando Matlab: function controlador_analogico close all gs=tf(360000.1)) cs = 0.11 𝐶(𝑠) = 𝑠 Calculamos la función en lazo abierto 0.3 2311. cs=tf([0.11 Obtenemos: 𝑘𝑑 = 0.0053 𝑘𝑝 = 6.0053 𝑠 2 + 6.

Ubicación de polos 2.00625[𝑠] 𝜔n 𝜀 Por lo tanto para lazo cerrado el tiempo de establecimiento se encuentra entre: 𝑇𝑠 𝑇𝑠 <𝑇< 75 15 Es decir 0. en lazo cerrado: 4 𝑇𝑠 = = 0. Realice un estudio de selección del periodo de muestreo en base al criterio del tiempo de establecimiento y la frecuencia de cruce de ganancia en lazo abierto.00625[𝑠] 0. Figura 1.00625[𝑠] <𝑇< 75 15 Se obtiene que el rango de T se encuentra entre: 4 . En la selección considere además que el hardware donde programará el controlador tiene una frecuencia máxima de adquisición de 5 kHz Para obtener el periodo de muestreo T Analizamos tiempo de establecimiento Ts.

11 360000 𝑔(𝑠) = ∗ 𝑠 (𝑠 + 60)(𝑠 + 600) En Matlab con la ayuda del comando margin se obtiene los siguientes resultados: gs=tf([1920 2268000 832000000].[1 660 36000 0]) margin(gs) gs = 1920 s^2 + 2. 0.000083 < 𝑇 < 0.268e06 s + 8. Diagrama de bode 5 .0053 𝑠 2 + 6. Figura 2.32e08 ------------------------------- s^3 + 660 s^2 + 36000 s Continuous-time transfer function.3 𝑠 + 2311.000417 No se puede escoger este rango por la limitaciones de Hardware 5kHz A continuación la selección del periodo de muestreo en base al criterio de la frecuencia de cruce de ganancia en lazo abierto 0.

𝑘𝑖 𝐶(𝑠) = 𝑘𝑑 ∗ 𝑠 + 𝑘𝑝 + 𝑠 2311.9788 ∗ 103 [ ]) < 𝜔 𝑇 < 80 (1.00004 No se puede escoger este rango por la limitaciones de Hardware 5kHz Considerando que en ambos casos no se puede seleccionar el período de muestreo por las limitaciones del hardware se considera un tiempo de muestreo de 0. se puede observar el diagrama de bode de la función de transferencia en lazo abierto.0053𝑠 + 63 + 𝑠 Acción Integral Euler Adelanto: 𝑧−1 𝑠= 𝑇 Acción Derivativa Euler Atraso: 6 .9788 ∗ 103 [ ] 𝑠 Entonces se encuentra el rango de la frecuencia de muestreo 𝜔 𝑇 40𝜔𝑐𝑔 < 𝜔 𝑇 < 80𝜔𝑐𝑔 𝑟𝑎𝑑 𝑟𝑎𝑑 40 (1.11 𝐶(𝑠) = 0.9788 ∗ 103 [ ]) 𝑠 𝑠 𝑟𝑎𝑑 𝑟𝑎𝑑 79152 [ ] < 𝜔 𝑇 < 158304 [ ] 𝑠 𝑠 Transformando a periodo de muestreo se tiene 0. donde se muestra el dato de la frecuencia de cruce de ganancia 𝑟𝑎𝑑 𝜔𝑐𝑔 = 1.0002 [s] 3.000079 < 𝑇 < 0. Implemente digitalmente el controlador del numeral 1 considerando el periodo de muestreo de (2) Utilice la aproximación de Euler en adelanto para la acción integral y Euler atraso para la acción derivativa en la digitalización del controlador.En la figura 2.

5-> 𝑆2 = 26.5 𝐶(𝑧) = (𝑧 − 1)(𝑧) f=5*10^3.8𝑧 + 26.8 𝑇 𝑘𝑑 𝑆2 : 𝑧 0 : -> 𝑆0 = 89. 𝑧−1 𝑠= 𝑇𝑧 𝑧−1 2311.T) step(feedback(gz*cz.0053 ∗ ( ) + 63 + 𝑇𝑧 𝑧−1 𝑇 𝑘𝑑 ∗ 𝑧 2 − 2 ∗ 𝑘𝑑 ∗ 𝑧 + 𝑘𝑑 + 𝑘𝑝 ∗ 𝑇 ∗ 𝑧 2 − 𝑘𝑝 ∗ 𝑇 ∗ 𝑧 + 𝑘𝑖 ∗ 𝑇 2 ∗ 𝑧 𝐶(𝑧) = 𝑇 ∗ 𝑧2 − 𝑇 ∗ 𝑧 𝑘𝑑 ∗ 𝑧 2 2 ∗ 𝑘𝑑 ∗ 𝑧 𝑘𝑑 − + 𝑇 + 𝑘𝑝 ∗ 𝑧 2 − 𝑘𝑝 ∗ 𝑧 + 𝑘𝑖 ∗ 𝑇 ∗ 𝑧 𝐶(𝑧) = 𝑇 𝑇 𝑧2 − 𝑧 𝑘𝑑 𝑆0 : 𝑧 2 : + 𝑘𝑝 -> 𝑆0 = 32. gz = 7 .T) gz=c2d(gs.11 𝐶(𝑧) = 0.8 z + 26.5 ------------------------ z^2 .8 -58.8 26.5 𝑇 𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2 𝐶(𝑧) = (𝑧 − 1)(𝑧 − 𝑟) 32.5].z Sample time: 0.0002 seconds Discrete-time transfer function.58.1)) hold on cz = 32.8 𝑇 2∗𝑘𝑑 𝑆1 : 𝑧1 : − − 𝑘𝑝 + 𝑘𝑖 ∗ 𝑇 -> 𝑆1 = −58.8 z^2 . T=1/f.[1 -1 0].8𝑧 2 − 58. cz=tf([32.

De ser necesario un polo observador adicional considérelo como incógnita para que el sistema de ecuaciones sea consistente.006596 ---------------------- z^2 .0002 seconds Discrete-time transfer function. Comparación Controlador Analógico y Digital 4. 𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2 𝐶(𝑧) = (𝑧 − 1)(𝑧 − 𝑟) Forma directa 8 .1. diseñe ahora en forma directa. 0. Figura 3.8763 Sample time: 0.875 z + 0. De acuerdo a la forma digital del controlador del ítem anterior.006893 z + 0.

f m 𝑆0 u 𝑧 −1 g 1 𝑆1 𝑧 −1 𝑆2 h Figura 4. Forma directa Aplicando ZOH: 360000 𝐺(𝑠) = (𝑠 + 60)(𝑠 + 600) 𝐺(𝑠) 𝐺(𝑧) = (1 − 𝑧 −1 )𝑧 { } 𝑠 𝑧 − 1 𝐺(𝑠) 𝐺(𝑧) = 𝑧{ } 𝑧 𝑠 360000 𝑧−1 (𝑠 + 60)(𝑠 + 600) ∗𝑧{ } 𝑧 𝑠 Aplicando fracciones parciales 360000 𝐴 𝐵 𝐶 = + + (𝑠 + 60)(𝑠 + 600) ∗ 𝑠 𝑠 𝑠 + 60 𝑠 + 600 𝐴𝑠 2 + 660𝐴𝑠 + 36000𝐴 + 𝐵𝑠 2 + 600𝐵𝑠 + 𝐶𝑠 2 + 60𝐶𝑠 De donde se obtiene el siguiente sistema de ecuaciones: 9 .

8𝑧 + 26.8𝑧 2 − 58.1 𝐶 = 1.1 Aplicando en la ecuación original tenemos: 𝑧−1 1 1 1 ∗ 𝑧 {10 ∗ − 11.5 𝐶(𝑧) = (𝑧 − 1)(𝑧) 𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2 𝐶(𝑧) = (𝑧 − 1)(𝑧 − 𝑟) ∆𝑍 = 𝐴𝑅 + 𝐵𝑆 ∆𝑍 = (𝑧 − 1)(𝑧 − 𝑟)(𝑧 2 + 𝑎1 𝑧 + 𝑎2 ) + (𝑆0 𝑧 2 + 𝑆1 𝑧 + 𝑆2 )(𝑏1 𝑧 + 𝑏2 ) 10 .1 ∗ −60𝑇 + 1.1 ∗ ) 𝑧 𝑧−1 𝑧−𝑒 𝑧 − 𝑒 −600𝑇 Donde 0. 𝑠2: 𝐴 + 𝐵 + 𝐶 = 0 𝑠1 : 660𝐴 + 600𝐵 + 60𝐶 = 0 𝑠 0 : 3600𝐴 + 600𝐵 + 60𝐶 = 0 Obteniendo: 𝐴 = 10 𝐵 = −11.1 ∗ + 1.875𝑧 + 0.006596 𝐺(𝑧) = 𝑧 2 − 1.1 ∗ } 𝑧 𝑠 𝑠 + 60 𝑠 + 600 Aplicando la transformada Z 𝑧−1 𝑧 𝑧 𝑧 ∗ (10 ∗ − 11.006893𝑧 + 0.8763 𝑏1 𝑧 + 𝑏2 𝐺(𝑧) = 𝑧 2 + 𝑎1 𝑧 + 𝑎2 32.

Considerando que se requiere un polo observador adicional ya que solo se tiene ∆𝑍 para tres polos ∆𝑍 = (𝑧 3 + 𝑝1 𝑧 2 + 𝑝2 𝑧 + 𝑝3 )(𝑧 + 𝑥) Considerando |𝑥| < 1 ∆𝑍 = (𝑧 4 + (𝑥 + 𝑝1 )𝑧 3 + (𝑝1𝑥 + 𝑝2 )𝑧 2 + (𝑝2 𝑥 + 𝑝3 )𝑧 + 𝑝3 𝑥 𝑧4: 1=1 𝑧3: 𝑥 + 𝑝1 = 𝑟 − 1 + 𝑎1 + 𝑏1 𝑠0 2 𝑧 : 𝑝1 𝑥 + 𝑝2 = −𝑟 + 𝑎1 (𝑟 − 1) + 𝑎2 + 𝑏2 𝑠0 + 𝑏1 𝑠1 𝑧1 : 𝑝2 𝑥 + 𝑝3 = −𝑎1 𝑟 + 𝑎2 (𝑟 − 1) + 𝑏1 𝑠2 + 𝑏2 𝑠1 𝑧0: 𝑝3 𝑥 = −𝑎2 𝑟 + 𝑏2 𝑠2 Con estos valores se realiza la matriz de diseño 𝑏1 0 0 1 𝑠0 𝑥 + 𝑝1 − 𝑎1 + 1 𝑏 𝑏1 0 𝑎1 − 1 𝑠1 𝑝 𝑥 + 𝑝2 − 𝑎2 + 𝑎1 [ 2 ]. Programe y compare el performance de los controladores de (3) y (4) en relación al seguimiento a referencia y rechazo a las perturbaciones. 𝑠2 . 𝑠3 . Considerando la función filtrod 11 . 𝑎1 . 𝑏2 Se obtiene: 𝑥 = −0.[𝑠 ] = [ 1 ] 0 𝑏2 𝑏1 𝑎2 − 𝑎1 2 𝑝3 + 𝑝2 𝑥 + 𝑎2 0 0 𝑏2 −𝑎2 0 𝑝3 𝑥 Como se conoce los valores de 𝑠0 .11 5.21 𝑝3 = −1.2591 𝑝2 = 2. 𝑏1 .99 𝑝1 = −1. 𝑎2 . 𝑠1 . Utilice tiempos de simulación de acuerdo a las características del problema.

T=1/f. if t==0 f=e. u=s0*f+s1*g+s2*h. s1=-58. Simulink sin perturbación 12 . s2=26. y=x(1). g=f. s0=32. h=g.8. end Se programa el simulink de acuerdo a la siguiente figura Figura 5. sp=x(2). r=0. h=0.Código MATLAB function u=filtrod(x). f=5*10^3. end if t>0 f=e+(1-r)*g+r*h.5. %set ponint t=x(3).8. global g h. %clock e=sp-y. g=f. u=s0*f.

Respuesta del controlador sin perturbación Figura 7.Figura 6. Simulink sin perturbación 13 .

aunque esta respuesta no siempre sea optima. Figura 8. Un controlador PID permite que la respuesta de un sistema pueda llegar a tener un error nulo. Respuesta del controlador con perturbación Conclusiones: Los controladores PID permiten mejorar la respuesta de un sistema. 14 .