Proyecto (informe final). Grupo ISS Pontificia Universidad Católica de Chile Departamento de Ingeniería Mecánica y Metalúrgica Horas utilizadas en el informe: 18 Izquierdo R-T, Matías ID: 53
[email protected]
Saavedra, Diego ID:55
[email protected]
Resumen Resumen — El presente trabajo muestra los resultados de modelar un motor de corriente continua en lazo abierto, para luego cerrar el lazo mediante distintas combinaciones de control proporcional, integral y derivativo. Se s imuló la respuesta y esta fue comparada con los resultados reales. Se concluye que el modelo de la planta discrepa del comportamiento real en su respuesta transiente, y que al cerrar el lazo el error de aproximar la planta en lazo abierto se magnifica. Palabras clave clave — Motor, Control, Control, PID, Arduino.
Subercaseaux Pérez, Maximiliano ID:60
[email protected]
() = () = () +(+) +)+(+)
[8] De lo anterior vemos que el modelo de la función de transferencia G(s) es de orden 2, lo que indica que puede modelarse siguiendo la ecuación general
() = ++
[9] El esquema general del funcionamiento de la planta (motor) se ilustra a continuación. continuación.
I. TEORÍA Y MODELO DEL SISTEMA FÍSICO A. Modelación del sitema físico
El modelo matemático de un motor de corriente continua se obtiene a partir de las ecuaciones mecánicas y eléctricas que qu e se listan a continuación:
̈ ̇ = =− ̇
[1] [2]
T: Torque de salida del motor. J: Momento de inercia del motor. b: Constante del motor. motor. L: Inductancia de la armadura. R: Resistencia eléctrica de la armadura K: Constante del motor V: Voltaje suministrado al motor
Figura 1. Esquema del comportamiento del motor (planta) ante una entrada de voltaje en escalón.
B. Identificación de la planta y experimentos experimentos en lazo abierto.
El motor con el que se trabajó corresponde a un motor DC común en aplicaciones de robótica. Se puede buscar en la web con el siguiente nombre: “30:1 Metal Gearmotor 37Dx68L mm with 64 CPR Encoder”.
El experimento consistió en tomar los datos de la respuesta de la velocidad angular del motor a un voltaje de 100 PWM (3V). Los datos se resumen en el siguiente gráfico:
Además, el torque en un motor de corriente continua está dado por:
=
[3]
Donde ia corresponde a la corriente de armadura. Juntando [3] y [1], tenemos
= = ̈ ̇
[4]
Aplicando transformada de Laplace a [2] y [4], tenemos:
( () = ( )()+((()) ( ) = (() ( () = () − () ()
[5]
[6] Reemplazando [5] en [6] se puede despejar la razón entre la posición angular del rotor y al voltaje aplicado, que corresponde a la función de transferencia de la planta en cuestión:
() = () = () +(+) +)+(+)
[7] Si queremos obtener la velocidad angular, basta con derivar la expresión anterior, lo que en el dominio de Laplace sería equivalente a dividir por S . Luego:
Figura 2. Respuesta experimental de la planta ante un escalón de 100 PWM.
A continuación, se utilizó el paquete de control que se ofrece en el entorno de programación Jupyter para para encontrar una planta de segundo orden que tuviera una respuesta similar a la encontrada experimentalmente. Luego de algunas iteraciones se llegó a los parámetros necesarios de la ecuación [9]
= 65 ; = 8 ; = 1,63
Con lo que la planta puede ser modelada mediante la función de transferencia
() =1,63 +···+
[10]
La siguiente figura muestra el resultado de modelar la planta con los parámetros anteriores
Figura 5. Esquema del lazo cerrado (control).
A. Consideraciones: Encoders del motor
Se debe tener en cuenta que los encoders del motor poseen una resolución de 64 conteos (o “pulsos”) por vuelta. Además, Figura 3. Respuesta real v/s respuesta simulada. Entrada: escalón de 100PWM.
Para corroborar que efectivamente se puede modelar la planta como una función de transferencia como la encontrada en la ecuación [9], es necesario mostrar linealidad e invarianza en el tiempo de la planta real. La figura (LA SIGUIENTE) consiste en la aplicación de la mitad del voltaje a la planta (50PWM) en intervalos de 5 segundos.
Figura 4. Aplicación de escalón de 50 PWM a la planta en intervalos de tiempo.
De aquí podemos observar que, al aplicarle la mitad de la entrada a la planta, la salida es aproximadamente la mitad (80 rpm en vez de 163 rpm). También se puede observar visualmente que la respuesta es la misma independientemente del tiempo en el que sea aplicada la entrada (i.e, la salida es la misma, sin importar el momento en el que se aplica el voltaje). Con esto se puede concluir linealidad e invarianza en el tiempo para la planta, lo que permite la modelación de esta como una función de transferencia LTI de orden 2. II. CONTROLADOR PID La segunda experiencia de laboratorio consistió en controlar el motor para que cumpla ciertos requerimientos al aplicarle una entrada en escalón de 360 grados (1 vuelta). Para esto se modificó la función de transferencia: Como la ecuación [9] nos entrega la velocidad (medida en rpm) del motor, entonces, integrando en el dominio de Laplace, se llega a la ecuación [7]. La figura siguiente ilustra el esquema de funcionamiento de la planta en lazo cerrado, controlada mediante PID.
el motor posee una reducción de 30:1, por lo que la cantidad real de pulsos por vuelta que entregan los encoders del motor es de 64x30=1920 pulsos/vuelta.
Lo anterior quiere decir que, para pasar de RPM a pulsos/segundo es necesario hacer la siguiente conversión:
= /
[11]
B. Respuesta de la planta en lazo abierto
Se analizó la planta en lazo abierto, para compararla con la respuesta real obtenida.
Figura 6. Respuesta en lazo abierto. Real v/s simulada. Entrada: Escalón 100 PWM.
La figura anterior muestra visualmente que existe una diferencia considerable entre la respuesta simulada y la real, por lo que se iteró cambiando levemente los parámetros de la función encontrada en la primera experiencia de laboratorio. Los nuevos parámetros obtenidos son
= 70 ; = 7 ; = 1,63
Figura 7. Respuesta en lazo abierto. Escalón de 100PWM. Segunda iteración.
Se aprecia en la figura anterior que se ha encontrado un modelo que se ajusta mucho mejor a la respuesta real en lazo abierto que la propuesta en la primera experiencia de laboratorio. Con esto tenemos entonces que la nueva función de transferencia se puede modelar como
() =1,63 +···+
[12]
C. Instrucciones del laboratorio
La experiencia pedía 4 tipos de control distintos que, en lo posible, cumplieran con los siguientes requerimientos: - Error permanente (ep) < 2 % Sobreoscilación (Mp) < 15 % - Tiempo de respuesta (Tr) < 500 ms - Tiempo de establecimiento (Ts) < 2 s Los 4 tipos de control a utilizar fueron: - Control P - Control PI - Control PD - Control PID D. Implementación de los controladores 1) Definición de variables Mediante el comando float se
los sensores da un valor más uniforme a la variable e_d. Luego se actualizan las variables d1, d2, d3, d4 d4=d3; d3=d2; d2=d1; d1=error; b) Tercera modificación: Prevención ante cambios abruptos de referencia
En caso de existir un cambio de referencia, el error se puede hacer muy grande, con lo que la variable d lo hace también. De ocurrir esto se generarían inestabilidades al existir cambios en la referencia. Esto se soluciona no considerando la variable error en el cálculo de d cuando existen estos cambios. if (ref=ref_anterior) {d=kd·(error-e_d)/dt} else {d=kd · -ed/dt ref_anterior=ref}
Finalmente, se le da velocidad al motor, según la suma de las 3 variables PID (según corresponda el caso) motorout=p+i+d; md.setM1speed(motorout);
definieron las variables de
código: kp (ganancia proporcional) ki (ganancia integrativa), kd (ganancia derivativa), ref (referencia de valor 1920), error_acumulado (suma de errores para implementar control integral) e_d (error que se utilizará para implementar el control derivativo) d1, d2, d3, d4 (variables que se utilizarán para filtrar la señal) 2) Control proporcional
La implementación de este control es simple. Definiendo una variable float p=kp·error; se genera un valor proporcional al error, e que realimenta la planta. 3) Control integral Se define float i=ki·error_acumulado·dt; La variable error_acumulado guarda error en el tiempo, haciendo que el factor i se haga cada vez más grande. a) Primera modificación: Limitar el efecto de la integral
III. COMPARACIÓN EXPERIMENTAL En esta sección se muestran los resultados obtenidos con las distintas configuraciones de control exhibidas en la sección anterior. A. Control P
La implementación del control proporcional consistió en iterar con la ganancia hasta que se obtuvo un Kp de 0.6. Los resultados obtenidos fueron: - ep = 0.68 % - Mp = 16.6 % - Tr = 231 ms - Ts = 610 ms De lo que se desprende que no fue posible cumplir con el requerimiento de sobreoscilación. El siguiente gráfico muestra las respuestas real y simulada del sistema realimentado con el control proporcional.
Con esto logramos que el factor i no crezca infinitamente, poniendo una cota a su valor: if (error_acumulado>=1000) {error_acumulado=1000;} if (error_acumulado<=-1000) {error_acumulado=-1000;} 4) Control derivativo float d; d=kd·(error-e_d)/dt Con esto se le da valor a la derivativa del control. Aquí, e_d guarda el valor del
parte error
anterior captado por los sensores. a) Segunda modificación: Filtrar el ruido de los sensores. e_d=(d1+d2+d3+d4)/4; Se toma el promedio de los
últimos 4 errores captados por los sensores. Filtrar el ruido de
Figura 8. Respuesta real v/s simulada. Control P.
Se puede ver que la respuesta simulada es notoriamente peor que la real, teniendo, por ejemplo, una sobreoscilación de casi 50%, y un tiempo de establecimiento de 2 segundos. En la siguiente sección se hará un análisis más detallado de lo que ocurre.
B. Control PI
Similar al procedimiento del control proporcional, en esta instancia se iteró buscando ganancias Kp y Ki que cumplieran las condiciones. Los resultados fueron: Kp = 0.2 Ki = 0.01 ep = 1.15 % Mp = 17.6 % Tr = 264 ms Ts = 700 ms
Figura 10. Respuesta real v/s simulada. Control PD
D. Control PID
Figura 9. Respuesta real v/s simulada. Control PI.
La figura 9 muestra una discrepancia: Si se comparan los resultados experimentales entre el control P y el PI se ve que, si bien el control PI cumple con 3 de las 4 condiciones, la respuesta empeora obteniendo sobreoscilación, error permanente y tiempo de establecimiento peores que los obtenidos con el control proporcional.
Los resultados que se obtuvieron con esta configuración fueron: - Kp = 0.5 - Ki = 0.02 - Kd = 0.02 - ep = 0.63 % - Mp = 0 % - Tr = 340 ms - Ts = 470 ms Se observa que se cumplen todas las condiciones necesarias. Comparando con la configuración PD el desempeño es peor. De aquí podemos observar que en los dos casos en los que se incluyó el control integral en la realimentación, el desempeño empeoró.
La simulación del control PI tiene un desempeño notoriamente mejor que el control P, disminuyendo la sobreoscilación casi a la mitad. La discrepancia entre los resultados experimentales y los simulados pueden deberse a que la primera modificación (limitación del efecto de la integral) no fue suficiente para mejorar la perfomance del control; por el contrario, lo empeoró. Se podría haber aumentado el límite de efecto de esta. C. Control PD
Figura 11. Respuesta real v/s simulada. Control PID.
Los resultados de implementar esta configuración fueron: -
Kp = 0.95
-
Kd = 0.02
-
ep = 0.42%
-
Mp = 0 %
-
Tr = 249 ms
-
Ts = 340 ms
Se puede ver que se cumple con todos los requerimientos. notar que ahora la sobreoscilación es de 0%, algo que no fue logrado con el control P ni PI.
IV. A NÁLISIS DE RESULTADOS En la sección III se pudo apreciar visualmente que las simulaciones para cada tipo de control no se ajustan a la realidad. El análisis se enfocó en el control proporcional, por su mayor simplicidad para sacar conclusiones. Se obtuvo el lugar geométrico de las raíces para la planta (ver figura 12), variando la ganancia Kp hasta 0.6 (valor de la ganancia en el caso del control proporcional). Para un Kp = 0.6 los polos se ubican en -975 + 0j y – 2 ± 12j.
Figura 12. LGR del modelo actual de la p lanta. Se pueden apreciar dos de los tres polos que posee debido al zoom que se hizo para visualizer de mejor manera el sector de interés.
Por otro lado, se encontró la ubicación real de los polos del sistema analizando la respuesta real del control proporcional y con las siguientes ecuaciones:
= √ ln() +ln() = .
[13] [14]
Reemplazando con los valores de sobreoscilación y tiempo de establecimiento obtenidos para el control proporcional se obtienen
Figura 14. LGR del modelo de la planta con parámetros cambiados.
Se puede ver en la figura anterior que el nuevo lugar de las raíces encontrado contiene a los polos deseados. Sin embargo, para Kp=0.6 los polos se encuentran aproximadamente en – 7 ± 20j, mientras que para un Kp = 0.3 los polos se encuentran en el lugar deseado (o lo que es lo mismo, dividir por 2 la ganancia de la planta y luego realimentar con un Kp = 0.6). Las siguientes figuras muestran la comparación entre la nueva respuesta simulada y la respuesta real. Se puede notar que con esta nueva planta y un Kp = 0.3 la respuesta es muy similar, sin embargo, para un Kp=0.6 (que es la ganancia correcta) la respuesta del transiente sigue siendo muy distinta.
≅ 0.49 ; ≅15.2
Con estos valores se obtienen dos polos complejos conjugados, cuyas ubicaciones están en – 7.5 ± 13.3j
Figura 15. Respuesta del nuevo modelo a un control proporcional. Comparación con resultado experimental.
Figura 13. LGR del modelo de la planta y polos de la respuesta real.
La figura anterior muestra que los polos de la planta simulada no pasan por los polos de la respuesta real (los que están marcados por una estrella en la imagen); por lo que se concluye que no se puede llegar a simular una respuesta similar a la real sólo variando la ganancia; por lo que el problema se encuentra en la identificación de la planta. Se iteró para distintos valores de ç y w n hasta encontrar unos que hicieran pasar el lugar de las raíces de la planta simulada por los polos deseados, llegando a los valores
≅ 2 ; ≅ 60
Figura 16. Respuesta real v/s simulada con nuevos parámetros y ganancia reducida a la mitad.
V. CONCLUSIONES Se encontró una aproximación para la planta que representaba la respuesta en lazo abierto para una entrada de voltaje y una salida en rpm. Al integrar la planta en el dominio
de Laplace, se notó que la modelación no había sido certera, por lo que se corrigieron sus parámetros en una segunda iteración.
un Kp = 0.6. Sabemos que esto no es posible de hacer, puesto que cambiar la ganancia de la planta tiene efecto en su respuesta en lazo abierto, la cual pasaría a ser distinta.
En la segunda experiencia de laboratorio se diseñaron cuatro tipos de controles, combinando proporcional, integral y derivativo. El control PD resultó ser el control con mejor perfomance, seguido del PID.
Finalmente se notó que, al aproximar la planta en lazo abierto mediante un modelo, se genera un error que puede ser despreciable para esa aplicación, pero al realimentar la planta dicho error se magnifica.
Las simulaciones de la planta en lazo cerrado no fueron capaces de simular la realidad, teniendo una respuesta transiente muy distinta a la real. Este resultado fue discutido usando la herramienta del Lugar Geométrico de las Raíces (LGR) mediante el cual se encontraron los polos de la planta real. Lo más cerca que se estuvo de modelar el control proporcional de forma que su comportamiento fuera similar al real, fue buscando valores de ç y w n mediante LGR y utilizando un Kp = 0.3, o lo que es lo mismo, reduciendo la ganancia de la planta a la mitad y realimentando la planta con
VI. R EFERENCIAS [1] Pololu: Robotics and electronics. 30:1 Metal Gearmotor 37Dx68L mm with 64 CPR Encoder. Revisado por última vez el 13/06/2018 en https://www.pololu.com/product/2823 [2] Troni, G. Apuntes de clase Control de Sistemas Mecánicos. Pontificia Universidad Católica de Chile. [3] Python Control Sistems Library: System gain and dynamics. Revisado por última vez el 13/06/2018 en http://pythoncontrol.readthedocs.io/en/latest/matlab.html#system-gain-anddynamics