Está en la página 1de 18

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.

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

ARCHIVO CIRCUITO PROTEUS

Figura 1. Diagrama esquemático Tarjeta de adquisición de datos.

 

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 motor

Como 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).

http://dynamoelectronics.com/index2.php?

Disponible

en:

option=com_virtuemart&page=shop.view_images&product_id=31&image_id=56&Itemid

=58&pop=1

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

Características

Resolución 100 ciclos por vuelta en un canal ó 400 pulsos en cuadratura

Voltaje 5Vdc Canales 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 los datos.

almacenamiento de

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

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

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

Figura 3. Interfaz. Panel frontal

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

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

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

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.

Figura 5. Diagrama de bloques para conversión de los datos Luego de haber realizado la adecuación

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 5. Diagrama de bloques para conversión de los datos Luego de haber realizado la adecuación

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 5. Diagrama de bloques para conversión de los datos Luego de haber realizado la adecuación

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.

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

PROCESAMIENTO DE LOS DATOS PARA IDENTIFICACIÓN Luego de tomar y almacenar los datos mediante el programa

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 nula Segunda: contiene

Figura 9. Documento Excel con los datos cargados

Posee cuatro columnas. Primera: es nula Segunda: contiene los datos del voltaje aplicado al motor Tercera: registra la velocidad en rpm del motor Cuarta: 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.

Figura 10. Selección de datos para importar a Matlab Al finalizar el seleccionado de los datos

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 10. Selección de datos para importar a Matlab Al finalizar el seleccionado de los datos

Figura 11. Vectores cargados desde Excel

3. GRAFICA DE LOS DATOS

Ejecutamos 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')

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

xlabel( 'TIEMPO [S]' ) ylabel( 'VELOCIDAD [RPM]' ) Figura 12. Graficas de los datos importados a

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

xlabel( 'TIEMPO [S]' ) ylabel( 'VELOCIDAD [RPM]' ) Figura 12. Graficas de los datos importados a
 

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

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

Figura 13. Panel frontal System Identifiaction Tool

1. IMPORTAR LOS DATOS AL IDENT:

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

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 14. Importar datos Al desplegar la pestaña Figura 14, de import data , seleccionamos la

Figura 15. Import Data Ingresamos el nombre de los vectores de datos de entrada y salida del sistema a identificar previamente cargados al workspace y especificamos el periodo de muestreo En 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 14. Importar datos Al desplegar la pestaña Figura 14, de import data , seleccionamos la

Figura 16. Panel frontal datos cargados mydata

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.

2. SELECCIÓN DE DATOS PARA IDENTIFICAR Y PARA VALIDAR Se da click en el menú desplegable

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.

Figura 18. Datos de identificación, validación y procesados mydata: datos originales mydatad: datos procesados mydatade: datos

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

mydata: datos originales mydatad: datos procesados mydatade: datos para identificación que se cargan a Working Data mydatadv: 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 18. Datos de identificación, validación y procesados mydata: datos originales mydatad: datos procesados mydatade: datos

Figura 19. Estimación de modelos

Figura 20. Ventana de selección de estructuras En la Figura 20, se pueden ver las diferentes

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 20. Ventana de selección de estructuras En la Figura 20, se pueden ver las diferentes

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

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.

la correlación de los datos, la respuesta del trasciente, respuesta en frecuencia, los polos y ceros

Figura 22. Análisis con Model views

la correlación de los datos, la respuesta del trasciente, respuesta en frecuencia, los polos y ceros

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.

la correlación de los datos, la respuesta del trasciente, respuesta en frecuencia, los polos y ceros

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

X = [OUT(2:N-1); OUT(1:N-2);IN(2:N-1);IN(1:N-2)];

% Se establece el vector de salida deseada

Yd = [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 entrenamiento

red.trainParam.epochs = 1000;

% Mínimo error objetivo

red.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 red

n=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)=[];

Tiempo(2349)=[];

%random 7seg

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.

Ajuste del entrenamiento de la red

Ajuste del entrenamiento de la red Figura 24. Ajuste del modelo de la red neuronal y

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].

Ajuste del entrenamiento de la red Figura 24. Ajuste del modelo de la red neuronal y

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

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.

Al corre la simulación del conjunto anterior se puede ver la respuesta del modelo neuronal a

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