Story Transcript
Control de un servomotor con respuesta subamortiguada
Objetivo: Implementar el control digital de la posición angular del servomotor CI-23004.
Antecedentes y descripción del servo
Para este laboratorio se cuenta con varias plantas de servo motor de posición angular las cuales cuentan internamente con un motor de CD con caja reductora que ha sido realimentado negativamente para obtener una planta subamortiguada, muy diferente al clásico servo de posición con respuesta integral. En la figura 1 se muestra una fotografía del servo, en la que puede observarse en la parte superior izquierda el conector para las señales (1); al centro la masa del servo con la escala graduada en grados en su parte superior (2) y la aguja señaladora para fines de verificación de la posición (3) y en la parte inferior derecha se encuentra el diagrama electrónico interno (4); el cual también se reproduce en la figura 2 para su mejor visualización.
1 3 4
2
Figura 1: Fotografía del servo de posición angular CI-23004
1
Figura 2: Diagrama electrónico del servo CI-23004 El servo cuenta con un potenciómetro acoplado al eje de salida de la caja reductora y alimentado con ± 2V, el cual sirve para realimentar internamente la posición y para poder medirla externamente, ya que se encuentra en el grupo de señales del conector. En condiciones normales, al ubicar 180° debajo de la aguja indicadora, la tensión medida en la salida POT será de 0V. El valor de ganancia del potenciómetro es de 90°/V. El servo también cuenta con un interruptor que desconecta el motor de la tierra y permite girar la masa del servo sin dificultad, como por ejemplo para poder obtener la característica estática del sensor de posición (potenciómetro) girando lentamente la masa entre los límites, mientras se toma nota de las tensiones en la salida POT para cada ángulo. La figura 3 muestra una característica típica obtenida por el método descrito. 2.5 2 1.5 Tensión (V)
1 y = ‐0.0115x + 2.1056
0.5 0 ‐0.5
0
50
100
150
200
250
300
350
400
‐1 ‐1.5 ‐2 Posición angular (°)
Figura 3: Ejemplo de caracterización del potenciómetro de realimentación 2
El movimiento de la masa del servo con el interruptor cerrado (motor energizado) es algo que no se debe intentar; pues la realimentación del servo se opondrá a cualquier movimiento forzado manualmente y eventualmente la masa se deslizará del eje de salida de la caja reductora y por ende del potenciómetro, con lo cual tendremos el problema de que las indicaciones en grados y el valor de tensión del potenciómetro se correrán y en la posición 180° no se obtendrán 0V. Si el servo en su posesión tiene el problema antes indicado, deberá calibrarlo de nuevo con ayuda de una llave allen, con la que se debe aflojar el tornillo prisionero de la masa del servo, ubicar 0V a 180° y luego apretar firmemente el prisionero.
Obtención del modelo empírico para el servo
Para obtener el modelo del servo realimentado se realiza un experimento en el cual se estimula la entrada SERVO con una señal rectangular, unipolar en este ejemplo; pero, puede ser bipolar; y se registran simultáneamente con un osciloscopio digital las tensiones de excitación y de posición (POT). Los datos son extraidos del osciloscopio, típicamente escritos como archivo CSV en una memoria USB; para luego ser procesados en Matlab. Note en el diagrama electrónico de la figura 2, que la impedancia de la entrada SERVO es de 100kΩ y que ésta podría cargar la salida de una etapa anterior con impedancia de salida alta. Para evitar este potencial problema se recomienda el uso de un amplificador separador con salida de baja impedancia para acoplar el controlador a la entrada SERVO. Posición angular ante un estímulo rectangular Posición Entrada
0.1
Amplitud [V]
0.08
0.06
0.04
0.02
0
-0.02 0.5
1
1.5 Tiempo [s]
2
2.5
3
Figura 4: Gráficas del experimento realizado para obtener el modelo 3
En la figura 4 se muestran las señales capturadas y puede observarse el comportamiento subamortiguado del servo (sobrepaso de la señal de posición) y el error de estado estacionario. Luego del procesamiento de las señales en Matlab, se obtiene el modelo G(s) [V/V] que nos muestra que el sistema es de orden 2 y tipo 0, con una ganancia estática ligeramente mayor a 1 y que claramente corresponde con los resultados de las gráficas experimentales. 1280.11 38.23 1219
Descripción del problema Como el servo tiene una respuesta subamortiguada y además presenta error de estado estacionario; se desea corregir estas dos características indeseables con un control digital realizado en una placa de desarrollo que utiliza lógica programable. La estructura del control se muestra en la figura 5.
+
‐
Figura 5: Esquema del control mostrando la instrumentación analógica típica En la figura 5 se observan los valores típicos de las señales del sistema y los 2 acondicionadores de señal y las funciones que éstos deben realizar que son: 1) Cambio de nivel y de escala de las señales de bipolar ± 2V a unipolar de 0 a 3.3V y viceversa, puede ser otro rango dependiendo de la placa de desarrollo a utilizar; 2) Filtrado pasa bajas de la señal de posición, para limitar en banda la señal antes de muestrearla, CAS1; y filtrado pasa bajas del PWM de salida, para recuperar el valor de la componente de CD modulada en la señal de PWM, CAS2. En la figura 6 se muestra la característica estática requerida para el CAS1. Para el CAS 2 simplemente invertir los ejes de entrada y salida.
4
En el esquema de control sugerido se utiliza PWM para la salida de control debido a la falta de un DAC en la placa de desarrollo. Los resultados para las constantes del PID utilizadas al final de este documento están basados en el uso de un PWM a 10KHz y de un filtro pasa bajas de segundo orden como el mostrado en la figura 7 con constantes de tiempo de aproximadamente 0.22ms. Si se utiliza un DAC, los valores de las constantes del PID eventualmente podrían cambiar debido que no es necesario utilizar la función pasa bajas del CAS2.
y = Salida del acondicionador de señal 4 3.5 3 2.5 2 1.5 1 0.5 0 ‐2
‐1.5
‐1
‐0.5
0
0.5
1
1.5
2
‐0.5 ‐1
x = Entrada desde el sensor de posición Figura 6: Característica de transferencia estática del acondicionador de entrada CAS1
Figura 7: Filtro pasa bajas para la señal del PWM
5
Requisitos del control para el sistema final
De los requisitos de control especificados en la tabla 1 y de la ecuación para el modelo del sistema servomotor se infiere que para corregir el error de estado estacionario hay que aumentar el tipo de sistema a 1. Esto implica el uso de un integrador en el control. Para corregir el sobreimpulso se requerirá el uso de un compensador de adelanto en la forma PD. De todo lo anterior se desprende que la estructura del regulador a utilizar debe ser PID. Tabla 1: Requisitos para el control digital del servo de posición angular CI-23004 Parámetro
Sobrepaso [%]
Valor requerido
0
Tiempo de estabilización [s] menor o igual 0.4
Error de estado estacionario [%] 0
Para probar la implementación realizada, el servo controlado digitalmente será sometido a cambios en forma escalón en la entrada de referencia mostrada en la figura 5. No deben excederse los límites de 20° y de 340°, marcados en la placa de la masa del servo; ya que no existe garantía de que el potenciómetro entregue valores adecuados en ese rango y además cerca del punto de 0° existe una discontinuidad en la salida POT, que cambia abruptamente entre los valores de ± 2V.
Derivación de las ecuaciones del regulador PID e implementación digital
Uno de los reguladores más conocidos y que se encuentran implementados en prácticamente todos los sistemas de control comerciales, analógicos y digitales, es el llamado regulador PID. La ecuación típica, en el dominio del tiempo, que se encuentra en cualquier libro de Control Automático, para un regulador PID es:
Con : e(t) Kp Ki Kd
: señal de error (r(t)-y(t)), : Ganancia proporcional, : Ganancia integral, : Ganancia derivativa,
donde puede observarse la razón por la que se llama PID; ya que la ecuación tiene tres términos sumados: el primero es el término directamente proporcional (P) al error; el segundo es el término proporcional a la integral (I) del error y el tercero es el término proporcional a la derivada (D) del error. En la figura 8 se muestra la estructura de la implementación paralelo clásica del PID.
6
Figura 8: Implementación clásica en paralelo del regulador PID en el dominio del tiempo Derivación de las funciones de transferencia en z para el regulador PID
La ecuación, en el dominio de Laplace, para el regulador PID es:
Con: E(s) : Transformada de Laplace del error N : Constante del filtro derivativo donde se ha agregado un término de filtro
para que el término correspondiente a la
derivada sea realizable (propio) ya que originalmente es impropio ( n < q). Transformando al dominio Z, la ecuación del PID obtenemos: 1 –1
1 Con: E(z) : Transformada Z del error Ts : Periodo de muestreo
En la ecuación para el PID(z), la integral ha sido aproximada por el método numérico llamado backward Euler y la derivada ha sido aproximada por el método forward Euler. Como se mencionó antes, el regulador PID se implementa usualmente en forma paralela separando los tres términos así: 7
1 1 –1 La variante I_PD del regulador PID
Cuando la entrada de referencia será sometida a cambios abruptos en forma de escalón, la implementación clásica del PID se cambia a la forma I_PD; en la cual solamente el término integral, que reacciona lentamente, se encuentra en el camino directo de la señal de error; en cambio los términos proporcional y derivativo, que reaccionan muy rápido ante los escalones y con salidas potencialmente excesivas y que pueden llevar el regulador a saturación son colocados en el lazo de realimentación. La estructura del I_PD se muestra en la figura 9, y esta es la implementación que se recomienda para este problema. Con este cambio de la estructura, las ecuaciones para la parte proporcional y derivativa se modifican a esta forma, ya que solamente actúan sobre la realimentación:
1 –1 Con : Y(z) : Señal de realimentación (salida del sistema)
Figura 9: Estructura de la implementación I_PD en el dominio del tiempo
8
Resolviendo el problema de control planteado, con un regulador con estructura I_PD y utilizando un periodo de muestreo de 5ms, adecuado para este problema según las especificaciones recibidas (Ts tS2% /40), se obtienen las constantes buscadas para el regulador y que se muestran en la tabla 2. Tabla 2: Constantes del regulador I_PD y del sistema en tiempo discreto. Parámetro Ts [s] 0.005 Valor
Kp [V/V] 36/256
Ki [1/s] 175/16
Kd [s] 3/512
N [1/s] 200
Sustituyendo los valores conocidos para el sistema y las constantes encontradas para el control en las ecuaciones del I_PD obtenemos: 36 256 0.005 3 200 512
175 16
7 128
1
1 200 0.005
1 75 64
1
1
Implementación digital de las ecuaciones de diferencia del regulador
Para poder implementar en un regulador digital las funciones de transferencia en z encontradas para el regulador I_PD se deben transformar primero al dominio del tiempo discreto, a ecuaciones de diferencias, las cuales si pueden ser realizadas en un computador digital. 36 256 7 128
1
75 64
1
La consigna de una buena implementación digital de un regulador es ejecutar lo más rápido posible el cálculo completo del regulador, idealmente en una décima parte del periodo de muestreo, en este caso en 500s. Asumiendo que nuestro computador digital no es lo suficientemente rápido para ejecutar las ecuaciones de diferencias en punto flotante en ese tiempo; se recomienda una implementación en punto fijo. Considerando que el ancho de palabra del computador a utilizar es de 8 bits debemos escalar nuestras constantes por 256, (28). Ahora se comprenderá por qué se han mantenido las constantes en forma de fracciones hasta este momento.
9
Las ecuaciones escaladas y listas para ser implementadas en un computador de 8 bits en punto fijo finalmente son las siguientes: 36 14
1
300
1
Si, para generalizar, llamamos a las constantes del regulador I_PD con los nombres KP, KI y KD; tenemos: 1 1 La ecuación completa del I_PD, tomando en cuenta los signos del sumador mostrado en la figura 9 es:
Figura 10: Algoritmo en C para implementar el I_PD en punto fijo con una máquina de 8 bits 10
Resultados de la implementación digital del I_PD para el control del servo
Finalmente los resultados de la implementación se muestran en la figura 11. Para obtener este oscilograma se ha aplicado una entrada de referencia en forma de escalón desde 0V hasta +1V, que corresponden a la posición angular 180° y a la posición angular de 90° respectivamente.
Figura 11: Respuesta del servo de posición ante una entrada de referencia escalón desde 180° hacia 90° En la figura 11 puede observarse que se cumplen los objetivos dinámicos y estáticos planteados. El resultado final no tiene error de estado estacionario ni sobreimpulso y el tiempo de asentamiento del 2% es de unos 180ms para un recorrido de 90°, (¼ del recorrido total). La señal ENTRADA no tiene una amplitud de 1V debido a que no es la verdadera señal aplicada a la entrada del control; sino, que se trata de una salida digital, libre de rebotes, especialmente producida para sincronizar el disparo del osciloscopio.
11
Figura 12: Tiempo de ejecución del algoritmo En el oscilograma la figura 12 puede observarse que el algoritmo completo del I_PD se ejecuta, en el computador digital utilizado, en aproximadamente 14, tiempo mucho menor que el presupuesto de tiempo de 500 requerido. La forma de onda se ha producido al encender la salida PULSE al inicio de cada interrupción del reloj de 5ms, al iniciar el procesamiento del algoritmo I_PD, y apagándola al completar el algoritmo; con lo que se produce una forma de onda rectangular que se repite cada 5ms y tiene un tiempo en alto de 14s. EIS/eis 2014
12