s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · web...

22
PROCEDIMIENTO EN LA IDENTIFACIÓN DE MOTOR DC POR TRES METODOS: RESPUESTA AL STEP (VAN DER GRINTEN), METODOS PARAMÉTRICOS Y REDES NEURONALES Recopilación y selección de información. Se realizó el estudio de toda la información relacionada con el proyecto de investigación que tiene su base en la caracterización de sistemas dinámicos, la cual permitió un conocimiento amplio sobre los diferentes métodos de identificación como son los métodos paramétricos, ARMAX, ARX, OE, BJ, y las Redes Neuronales Artificiales para identificación. Así mismo se escogió el software de apoyo existente (Labview y Matlab) para la obtención de los datos de entrada, salida, la determinación y validación de los modelos generados. Diseño del sistema de adquisición de datos El sistema de adquisición de datos fue desarrollado con un microcontrolador PIC18F2550 de Microchip el cual cuenta con un módulo USB para transmisión de información y se utilizó para enviar los datos de entrada y salida del sistema hacia el computador para su respectivo procesamiento.

Upload: tranbao

Post on 01-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

PROCEDIMIENTO EN LA IDENTIFACIÓN DE MOTOR DCPOR TRES METODOS: RESPUESTA AL STEP (VAN DER GRINTEN), METODOS

PARAMÉTRICOS Y REDES NEURONALES

Recopilación y selección de información.

Se realizó el estudio de toda la información relacionada con el proyecto de investigación que tiene su base en la caracterización de sistemas dinámicos, la cual permitió un conocimiento amplio sobre los diferentes métodos de identificación como son los métodos paramétricos, ARMAX, ARX, OE, BJ, y las Redes Neuronales Artificiales para identificación.

Así mismo se escogió el software de apoyo existente (Labview y Matlab) para la obtención de los datos de entrada, salida, la determinación y validación de los modelos generados.

Diseño del sistema de adquisición de datos

El sistema de adquisición de datos fue desarrollado con un microcontrolador PIC18F2550 de Microchip el cual cuenta con un módulo USB para transmisión de información y se utilizó para enviar los datos de entrada y salida del sistema hacia el computador para su respectivo procesamiento.

ARCHIVO CIRCUITO PROTEUSFigura 1. Diagrama esquemático Tarjeta de adquisición de datos.

Page 2: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Descripción del programa del pic utilizado en la identificación (diagrama de bloques)

Descripción de la comunicación por usb (velocidad, trama, etc)

Medida de la velocidad del motorComo sensor se utilizó el QME–01 que es un encoder incremental en cuadratura que tiene una resolución de 100ppv por canal y se puede hacer lectura en cuadratura de 400 pulsos por vuelta, el voltaje de alimentación son 5Vdc.

Figura 2. Encoder incremental. (Imagen). Disponible en: http://dynamoelectronics.com/index2.php?option=com_virtuemart&page=shop.view_images&product_id=31&image_id=56&Itemid=58&pop=1

CaracterísticasResolución 100 ciclos por vuelta en un canal ó 400 pulsos en cuadratura Voltaje 5VdcCanales Canal A y Canal B

Normalmente este tipo de encoders se utilizan en aplicaciones en donde se necesita conocer la velocidad y la dirección de giro y por esto traen dos canales desfasados 90º entre sí. Para esta aplicación no se necesita conocer la dirección de giro del motor, pero podemos aprovechar los dos canales para conectarlos a un circuito lógico que será capaz de multiplicar por 2 ó 4 los pulsos por revolución que entrega el encoder.

Desarrollo del programa en Labview para la visualización y almacenamiento de los datos.

Una vez se realizó el diseño de la tarjeta de adquisición se procede a la programación en Labview de la interfaz para la visualización y almacenamiento de los datos. En el software desarrollado se pueden observar la entrada y salida del sistema, también se muestra el tiempo de adquisición de los datos el cual es necesario para la

Page 3: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

determinación del periodo de muestreo de la señal. Posee al opción de guardar los datos en un archivo .lvm

Figura 3. Interfaz. Panel frontal

Figura 4. Librería USB Labview (picusb.vi)

Los datos recibidos en el programa no corresponden a las magnitudes físicas que necesitamos (voltaje y rpm), por lo tanto se debe realizar una serie de operaciones con el fin de hallar los valores reales de las variables.

Este proceso se realiza en la Figura 5.

Page 4: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 5. Diagrama de bloques para conversión de los datos

Luego de haber realizado la adecuación de los datos, estos son graficados e indicados por el diagrama de bloques de la Figura 6.

Figura 6. Diagrama de bloques para graficas de la medición

Por último y más importante bloque tenemos en la Figura 7 el encargado del almacenamiento de los datos, el VI encargado es el Write to measurement, este genera un archivo .lvm

Figura 7. Diagrama de bloques de almacenamiento

En el archivo generado se almacenan los datos de voltaje en el motor, rpm y tiempo, necesarios para la identificación del mismo.

Page 5: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

PROCESAMIENTO DE LOS DATOS PARA IDENTIFICACIÓN

Luego de tomar y almacenar los datos mediante el programa en Labview, obtenemos un archivo .lvm que necesitamos llevar a Matlab para su procesamiento. Pasos. 1. IMPORTAR ARCHIVO .LVM A EXCEL, este procedimiento se hace necesario ya que directamente desde Matlab no se puede acceder a documentos de extensión .lvm>> Nuevo documento de Excel >> Seleccionamos archivo>> abrir archivo .lvm de la ubicación donde se almaceno desde Labview, se inicia el asistente Figura 8, para cargar archivos, seguimos las instrucciones y damos finalizar

Figura 8. Asistente de Excel para importar archivos de texto

Al finalizar el asistente el libro de Excel debe verse de la siguiente forma:

Page 6: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 9. Documento Excel con los datos cargados

Posee cuatro columnas. Primera: es nulaSegunda: contiene los datos del voltaje aplicado al motorTercera: registra la velocidad en rpm del motorCuarta: el tiempo de adquisición 2. CARGAR ARCHIVO DE EXCEL A MATLAB: la función utilizada en Matlab es xlsread, y tiene la siguiente sintaxis:

[datos columna Excel ,texto columna excel ]=xlsread('nombre archivo.xlsx',-1)

La función retorna dos vectores tipo columna con los datos seleccionados de la hoja de Excel.

Al ejecutar la línea de código en Matlab, esta abre la hoja de datos de Excel y pide que se seleccione la columna a importar al workspace, como se muestra Figura 10.

Page 7: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 10. Selección de datos para importar a Matlab Al finalizar el seleccionado de los datos pulsamos “ok” y repetimos el procedimiento para las columnas restantes. En el workspace se cargaran los vectores como se muestra Figura 11.

Figura 11. Vectores cargados desde Excel

3. GRAFICA DE LOS DATOSEjecutamos el siguiente código

subplot(1,2,1)plot(tiempo_prueba_step_70V,entrada_prueba_step_70V)title('ENTRADA STEP 70 VOLTIOS')xlabel('TIEMPO [S]')ylabel('VOLTAJE [V]')subplot(1,2,2)plot(tiempo_prueba_step_70V,salida_prueba_step_70V)title('SALIDA RPM')

Page 8: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

xlabel('TIEMPO [S]')ylabel('VELOCIDAD [RPM]')

Figura 12. Graficas de los datos importados a Matlab

4. IDENTIFICACIÓN DEL MODELO.

Para la identificación de modelo matemático de un sistema existen varios métodos de los cuales algunos se a citarán a continuación y se explicarán los pasos a seguir para una correcta obtención del modelo.

MÉTODO DE VAN DER GRINTEN

Page 9: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Imagen de la gráfica que utilizó para calcular las constantes del modelo de van der grinten de este motor

Utilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las constantes necesarias para reemplazarlas en la función de transferencia correspondiente y así obtener el modelo.

IDENTIFICACIÓN USANDO EL TOOLBOX (System Identification Tool)Para acceder al panel frontal Figura 13. Se ejecuta en Matlab el comando >>ident

Figura 13. Panel frontal System Identifiaction Tool

1. IMPORTAR LOS DATOS AL IDENT:

Page 10: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 14. Importar datos

Al desplegar la pestaña Figura 14, de import data, seleccionamos la que nos indica Time domain data y nos abre la ventana Figura 15.

Figura 15. Import DataIngresamos el nombre de los vectores de datos de entrada y salida del sistema a identificar previamente cargados al workspace y especificamos el periodo de muestreoEn la casilla Sampling interval de la sección Data information, procedemos a dar import, figura 15.

Nos debe quedar el panel frontal del indent como se muestra en la figura 16

Figura 16. Panel frontal datos cargados mydata

Page 11: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

2. SELECCIÓN DE DATOS PARA IDENTIFICAR Y PARA VALIDAR

Se da click en el menú desplegable Operations >> Prepocess >> Quick start como se ilustra Figura 17.

Figura 17. Separación datos de identificación y validación Quick start

Con la función Quick start, figura 17, lo que realiza el programa es realizar un pre-procesado de los datos así como la separación de los datos que se utilizaran en la identificación y la validación de los modelos.

La casilla mydata son los datos originales al dar click en Quick start deben aparecer tres grupos de datos adicionales Figura 18, los procesados, los de identificación y los de validación.

Page 12: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 18. Datos de identificación, validación y procesados

mydata: datos originalesmydatad: datos procesadosmydatade: datos para identificación que se cargan a Working Datamydatadv: datos de validación que se cargan a Validation Data

3. ESTIMACIÓN DE MODELOS MÉTODO PARAMÉTRICOS

Desplegamos el menú de Estimate >> Linear parametric models y como se ve en la figura 19.

Figura 19. Estimación de modelos

Page 13: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Figura 20. Ventana de selección de estructuras

En la Figura 20, se pueden ver las diferentes estructuras de estimación paramétrica ARX, ARMAX, OE, BJ… se elige el orden del regresor para escoger [na nb nc nf nk ] según sea la estructura

Al estimar un modelo este se almacena en la parte derecha del panel import models como se muestra Figura 21.

Figura 21. Modelos estimados almacenados

En Model view se puede hacer una análisis de la respuesta del modelo a los datos de validación para ver el porcentaje de ajuste, nos permite ver los residuos para observar

Page 14: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

la correlación de los datos, la respuesta del trasciente, respuesta en frecuencia, los polos y ceros del sistema. Ejemplo seleccionando Model output, Figura 22.

Figura 22. Análisis con Model views

Después de seleccionar el modelo que mejor se ajuste al sistema se procede a exportar la función de transferencia al workspace para que pueda ser utilizada sin problemas en el diseño de los sistemas de control, para realizar esta acción basta con dar click sostenido sobre un modelo de la parte derecha del panel frontal del ident, se arrastra hasta el recuadro en el centro del panel que dice To Workspace. Figura 23.

Figura 23. Exportar modelo al Workspace

Page 15: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Luego de esto en Matlab es necesario ejecutar el siguiente comando:

FZ=tf(arx211) %donde arx211 nombre del modelo que se exportó del ident

Y esta nos retorna la función de transferencia en “Z”

>> FZ=tf(arx211) Transfer function from input "u1" to output "y1"

1.459 z-----------------------z^2 - 0.9969 z + 0.0216 Sampling time: 0.0253

IDENTIFICACIÓN POR REDES NEURONALES ARTIFICIALES

Cuando una estructura lineal no es suficiente para lograr una buena identificación de un sistema se recurre al uso de RNA, debido a su capacidad de ser aproximadores universales. Para que los datos obtenidos en la experimentación sean usados para entrenar una RNA, deberá construirse el vector de entradas en forma de un vector regresor '(t) = [y(t−1)...y(t−n), u(t−d...u(t−d−m)]^T.

Usando los datos obtenidos de la etapa de experimentación se tiene un script que permite entrenar una RNA para que identifique el motor DC. Basándonos en un conocimiento a priori del sistema, catalogado como uno segundo orden, se creó un regresor con una estructura [2 2 1]. (López, A. Campo, O. Univalle)

Código para la identificación por redes neuronales se muestra a continuación, el cual genera un bloque en simulink para su respectiva validación. Figura 25.

%Identificación del Motor usando%REDES NEURONALES ARTIFICIALES (RNA) IN =entrada_prueba_random_7seg';OUT =salida_prueba_random_7seg'; % Se trasponen los vectores de entrada %y salida y se toma la mitad% de los datos para hacer la identificación.%La otra mitad se usará para la validación.N = (length(IN)+1)/2;ValIn=IN(N+1:end);ValOut=OUT(N+1:end);IN=IN(1:N);OUT=OUT(1:N);%Se crea un regresor 2 2 1, dos retardo de %entrada dos retardo de salida ya que el sistema es de segundo ordenX = [OUT(2:N-1); OUT(1:N-2);IN(2:N-1);IN(1:N-2)];

Page 16: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

% Se establece el vector de salida deseadaYd = [OUT(3:N)];% Se crea la red con 5 neuronas en la capa oculta y 1% neurona en la capa de salida.red = newff(minmax(X),[5 1],{'tansig','purelin'},'trainlm');% Frecuencia de visualización del progreso del entrenamiento %(en épocas o iteraciones)red.trainParam.show = 25;% Número máximo de iteraciones de entrenamientored.trainParam.epochs = 1000;% Mínimo error objetivored.trainParam.goal = 1e-3;red = init(red);% Se entrena la red y se almacenan los datos del% entrenamiento,% la salida de la red y el error[red,tr,Y,E]=train(red,X,Yd);% Se visualiza el error absoluto y se comparan % la salida real con% la salida de la redn=N-1;Xval=[ValOut(1:n-1);ValIn(1:n-1)];Yval=[ValOut(2:n); sim(red,Xval)];% Xval=[ValOut(2:n-1); ValOut(1:n-2);ValIn(2:n-1);ValIn(1:n-2)];% Yval=[ValOut(3:n); sim(red,Xval)];figure,subplot(2,1,1),plot(E),legend('Error')subplot(2,1,2),plot(Yval'),legend('Y','Yestimado')% Se genera el objeto 'red' como un bloque para ser% usado en Simulink. En este caso el tiempo de muestreo% equivale al numero de datos por muestra es decir 0.017.% Tiempo=0:0.0253:29.7275; % Tiempo(1176)=[];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Tiempo=0:0.0253:59.4297; Tiempo(2350)=[]; %random 7segTiempo(2349)=[]; EntradaReal=[Tiempo' ValIn'];SalidaReal=[Tiempo' ValOut'];gensim(red,1);

El bloque que se genera Figura 25. Contiene la red neuronal con los pesos y bias del entrenamiento, en este caso para lograr realizar la validación del modelo es necesario agregar al bloque dos retardo de salida y dos de entrada que corresponde al regresor utilizado [2 2 1], si fuese necesario utilizar un regresor de orden mayor solo se deben agregar a la entrada y a la salida el número de retardos indicados en el regresor.

Page 17: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Ajuste del entrenamiento de la red

Figura 24. Ajuste del modelo de la red neuronal y evolución del error

En la figura 25 se muestra un sistema de validación para el motor DC de la identificación con redes neuronales, regresor [2 2 1].

Figura 25. Diagrama de validación para la RNA del modelo

Page 18: s09e85a3b31fd5e07.jimcontent.coms09e85a3b31fd5e07.jimcontent.com/download/version... · Web viewUtilizando la respuesta del sistema al paso de 70 voltios calculamos cada una de las

Al corre la simulación del conjunto anterior se puede ver la respuesta del modelo neuronal a los datos de validación previamente separados. Figura 26.

Figura 26. Respuesta del modelo de la RNA a los datos de validación

ECUACION FINAL DEL MODELO POR REDES NEURONALES

Si el modelo no se ajusta a los datos de validación es necesario Cambiar el regresor Aumentar o disminuir el número de neuronas Cambiar la estructura del modelo