Manual+Identificación

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.

description

OBTENCION FUNCION DE TRANSFERENCIA

Transcript of Manual+Identificación

PROCEDIMIENTO EN LA IDENTIFACIN DE MOTOR DCPOR TRES METODOS: RESPUESTA AL STEP (VAN DER GRINTEN), METODOS PARAMTRICOS Y REDES NEURONALES

Recopilacin y seleccin de informacin.Se realiz el estudio de toda la informacin relacionada con el proyecto de investigacin que tiene su base en la caracterizacin de sistemas dinmicos, la cual permiti un conocimiento amplio sobre los diferentes mtodos de identificacin como son los mtodos paramtricos, ARMAX, ARX, OE, BJ, y las Redes Neuronales Artificiales para identificacin.

As mismo se escogi el software de apoyo existente (Labview y Matlab) para la obtencin de los datos de entrada, salida, la determinacin y validacin de los modelos generados.

Diseo del sistema de adquisicin de datos

El sistema de adquisicin de datos fue desarrollado con un microcontrolador PIC18F2550 de Microchip el cual cuenta con un mdulo USB para transmisin de informacin 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 esquemtico Tarjeta de adquisicin de datos.

Descripcin del programa del pic utilizado en la identificacin (diagrama de bloques)

Descripcin de la comunicacin por usb (velocidad, trama, etc)

Medida de la velocidad del motorComo sensor se utiliz el QME01 que es un encoder incremental en cuadratura que tiene una resolucin de 100ppv por canal y se puede hacer lectura en cuadratura de 400 pulsos por vuelta, el voltaje de alimentacin 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

CaractersticasResolucin 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 direccin de giro y por esto traen dos canales desfasados 90 entre s. Para esta aplicacin no se necesita conocer la direccin de giro del motor, pero podemos aprovechar los dos canales para conectarlos a un circuito lgico que ser capaz de multiplicar por 2 4 los pulsos por revolucin que entrega el encoder.

Desarrollo del programa en Labview para la visualizacin y almacenamiento de los datos.

Una vez se realiz el diseo de la tarjeta de adquisicin se procede a la programacin en Labview de la interfaz para la visualizacin y almacenamiento de los datos. En el software desarrollado se pueden observar la entrada y salida del sistema, tambin se muestra el tiempo de adquisicin de los datos el cual es necesario para la determinacin del periodo de muestreo de la seal. Posee al opcin de guardar los datos en un archivo .lvm

Figura 3. Interfaz. Panel frontal

Figura 4. Librera USB Labview (picusb.vi)

Los datos recibidos en el programa no corresponden a las magnitudes fsicas 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.

Figura 5. Diagrama de bloques para conversin de los datos Luego de haber realizado la adecuacin 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 medicin

Por ltimo y ms 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 identificacin del mismo.

PROCESAMIENTO DE LOS DATOS PARA IDENTIFICACIN

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 extensin .lvm>> Nuevo documento de Excel >> Seleccionamos archivo>> abrir archivo .lvm de la ubicacin 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:

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 adquisicin 2. CARGAR ARCHIVO DE EXCEL A MATLAB: la funcin utilizada en Matlab es xlsread, y tiene la siguiente sintaxis:

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

La funcin retorna dos vectores tipo columna con los datos seleccionados de la hoja de Excel.

Al ejecutar la lnea de cdigo 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.

Figura 10. Seleccin 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 cdigo

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')xlabel('TIEMPO [S]')ylabel('VELOCIDAD [RPM]')

Figura 12. Graficas de los datos importados a Matlab

4. IDENTIFICACIN DEL MODELO.

Para la identificacin de modelo matemtico de un sistema existen varios mtodos de los cuales algunos se a citarn a continuacin y se explicarn los pasos a seguir para una correcta obtencin del modelo.

MTODO DE VAN DER GRINTEN

Imagen de la grfica 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 funcin de transferencia correspondiente y as obtener el modelo.

IDENTIFICACIN 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:

Figura 14. Importar datos

Al desplegar la pestaa 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 seccin 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

2. SELECCIN 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. Separacin datos de identificacin y validacin Quick start

Con la funcin Quick start, figura 17, lo que realiza el programa es realizar un pre-procesado de los datos as como la separacin de los datos que se utilizaran en la identificacin y la validacin 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 identificacin y los de validacin.

Figura 18. Datos de identificacin, validacin y procesados

mydata: datos originalesmydatad: datos procesadosmydatade: datos para identificacin que se cargan a Working Datamydatadv: datos de validacin que se cargan a Validation Data

3. ESTIMACIN DE MODELOS MTODO PARAMTRICOS

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

Figura 19. Estimacin de modelos

Figura 20. Ventana de seleccin de estructuras

En la Figura 20, se pueden ver las diferentes estructuras de estimacin paramtrica ARX, ARMAX, OE, BJ se elige el orden del regresor para escoger [na nb nc nf nk ] segn 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 anlisis de la respuesta del modelo a los datos de validacin para ver el porcentaje de ajuste, nos permite ver los residuos para observar la correlacin de los datos, la respuesta del trasciente, respuesta en frecuencia, los polos y ceros del sistema. Ejemplo seleccionando Model output, Figura 22.

Figura 22. Anlisis con Model views

Despus de seleccionar el modelo que mejor se ajuste al sistema se procede a exportar la funcin de transferencia al workspace para que pueda ser utilizada sin problemas en el diseo de los sistemas de control, para realizar esta accin 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

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 funcin 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

IDENTIFICACIN POR REDES NEURONALES ARTIFICIALES

Cuando una estructura lineal no es suficiente para lograr una buena identificacin de un sistema se recurre al uso de RNA, debido a su capacidad de ser aproximadores universales. Para que los datos obtenidos en la experimentacin sean usados para entrenar una RNA, deber construirse el vector de entradas en forma de un vector regresor '(t) = [y(t1)...y(tn), u(td...u(tdm)]^T.

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

Cdigo para la identificacin por redes neuronales se muestra a continuacin, el cual genera un bloque en simulink para su respectiva validacin. Figura 25.

%Identificacin 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 identificacin.%La otra mitad se usar para la validacin.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)];% 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 visualizacin del progreso del entrenamiento %(en pocas o iteraciones)red.trainParam.show = 25;% Nmero mximo de iteraciones de entrenamientored.trainParam.epochs = 1000;% Mnimo 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 validacin 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 nmero de retardos indicados en el regresor.

Ajuste del entrenamiento de la red

Figura 24. Ajuste del modelo de la red neuronal y evolucin del error

En la figura 25 se muestra un sistema de validacin para el motor DC de la identificacin con redes neuronales, regresor [2 2 1].

Figura 25. Diagrama de validacin para la RNA del modelo

Al corre la simulacin del conjunto anterior se puede ver la respuesta del modelo neuronal a los datos de validacin previamente separados. Figura 26.

Figura 26. Respuesta del modelo de la RNA a los datos de validacin

ECUACION FINAL DEL MODELO POR REDES NEURONALES

Si el modelo no se ajusta a los datos de validacin es necesario Cambiar el regresor Aumentar o disminuir el nmero de neuronas Cambiar la estructura del modelo