LABORATORIO DE INGENIERÍA DE CONTROL ELECTRÓNICO
Enviado por monti95 • 21 de Abril de 2019 • Práctica o problema • 2.149 Palabras (9 Páginas) • 73 Visitas
[pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12][pic 13][pic 14][pic 15][pic 16][pic 17][pic 18][pic 19][pic 20][pic 21][pic 22][pic 23][pic 24][pic 25]
GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL
CURSO 2016-2017
LABORATORIO DE INGENIERÍA DE CONTROL ELECTRÓNICO
ENTREGABLE 1:
MODELADO, IDENTIFICACIÓN Y CONTROL PID DE UN SISTEMA MECATRÓNICO
ÍNDICE
- Modelado e identificación de la planta mecatrónica…pág 3
- 1.a. Identificación de no linealidades……………………pág 3
- 1.b. Modelo en zona lineal e identificación
paramétrica…………………………………………………………pág 7
- Control de velocidad………………………………………………..pág 9
- 2.a. Control PI………………………………………………………pág 9
- 2.b. Control anti-windup………………………………………pág 9
- Control de posición………………………………………………….pág 9
- 3. Control de posición………………………………………….pág 9
En este documento se detalla el trabajo realizado y las respuestas a las cuestiones del entregable 1 del laboratorio de Ingeniería de Control Electrónico. En cada una de las cuestiones se presentan, describen y justifican los resultados obtenidos.
1. Modelado e identificación de la planta mecatrónica
En este primer apartado de modelado e identificación de la planta mecatrónica empleada en el laboratorio, se realiza un estudio para determinar las características de nuestra planta en particular, para ello necesitamos identificar las no linealidades y obtener el modelo lineal de la planta. El objetivo es conseguir un modelo en Matlab de nuestra planta que nos servirá de base para realizar las posteriores etapas del estudio.
A partir del prototipo mecatrónico del laboratorio, empleando la herramienta Matlab/Simulink y la tarjeta electrónica de control (mini-DK2), se realizan las tareas que se verán a continuación.
[pic 26]
Dispositivos empleados en el puesto de laboratorio
1.a. Identificación de no linealidades
En este apartado se va a crear un proyecto en Simulink para generar una señal de referencia que introduciremos en la entrada de nuestra planta. La señal de salida que obtenemos del motor nos va a permitir identificar las no linealidades que andamos buscando de la planta mecatrónica.
El proyecto que hemos creado en Simulink es el siguiente (Generacion_referencia.slx):
[pic 27]
El bloque “Signal Builder” es el encargado de construir la señal de referencia, “Quantizer” es un cuantificador con valor 1 para trabajar solamente con valores enteros y “To File” va a generar un fichero de nombre referencia.mat que va a contener los valores que le mandaremos a la planta (El archivo Vectores_XY_referencia.m contiene los vectores de tiempo y amplitud para generar la señal).
La señal que tenemos que crear es la siguiente:
[pic 28]
Una vez que ya tenemos creada la señal de referencia, la introducimos en el proyecto KEIL, ejecutamos el sistema para enviarla al motor y recogemos los valores de la señal de salida resultante con el programa TeraTerm (archivo datos.txt).
Cargamos estos datos en Matlab y representamos la señal de salida en rojo superpuesta con la señal de entrada en azul para ver las diferencias entre ambas (para ello ejecutamos el archivo Datosmotor.m).
[pic 29]
A partir de estos datos obtenidos en la planta física empleando para ello un periodo de muestreo Ts=5 ms, los comparamos con la señal de entrada referencia y podemos identificar las no linealidades (retardo, zona muerta, saturación, cuantificación de entrada y cuantificación de salida):
- Retardo: diferencia entre entrada y salida en cuanto a respuesta en el tiempo.
Vamos a observar primero el retardo que presenta en la subida.
[pic 30] [pic 31]
Retardo de subida = 3.005 s – 2.995 s = 0.010 s = 10 ms = 2Ts.
Para calcular el retardo de bajada realizamos el mismo proceso, de manera que obtenemos que el retardo de subida y el retardo de bajada son iguales y de valor 10 milisegundos, es decir, dos veces el periodo de muestreo.
- Zona muerta (Dead Zone): rango de valores de entrada para los cuales no se produce salida.
Este rango tiene un valor mínimo y un valor máximo que los encontramos en el primer pico de la señal de salida, observamos en que instante de tiempo se produce este pico, nos vamos a la señal de referencia y observamos el valor de ésta 10 ms antes (2Ts antes debido al retardo. Si el pico se produce en el instante de tiempo “t”, el valor de la señal referencia que produce esa salida corresponde al instante “t – 2Ts”).
De esta forma obtenemos el límite superior en +20 (referencia en t=21.61 – 2Ts) y límite inferior en -20 (referencia en t=7.705 – 2Ts), por tanto, el rango [-20, +20] de la señal de referencia es una zona muerta, es decir, no se produce salida (salida nula) y el motor permanecerá en reposo.
- Saturación (Saturation): valor máximo y mínimo de la señal de salida.
La mini-DK2 opera con un rango de valores entre -255 y 255, por tanto, saturará para entradas superiores a estos valores.
Analizamos las zonas donde la señal empieza a saturar, tomamos el valor de tiempo en el que se produce la saturación, nos vamos a la señal de referencia y vemos el valor de ésta 10 ms antes (aquí también hay que quitar el tiempo de retardo). De esta manera, obtenemos que la señal va a saturar a partir de +256 y -254, un rango valores cercanos a los esperados.
- Cuantificación de entrada (Input Quantizer)
Como solo queremos números enteros en la señal de entrada, el valor del cuantificador de entrada será 1.
- Cuantificación de salida (Output Quantizer)
Viene determinado por la siguiente expresión:
[pic 32]
Tenemos que el número de polos magnéticos del motor PD4266 es 19, 4 cuentas por cada pulso del encoder magnético, un periodo de muestreo de 5 ms y un factor de reducción de 14 en la reductora.
Por lo tanto, para conseguir una rpm/vuelta (variación PK=1) necesitamos un cuantificador de salida de valor:
...