Вы находитесь на странице: 1из 18

PROCEDIMIENTO EN LA IDENTIFACIN DE MOTOR DC

POR 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 PROTEUS


Figura 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 motor
Como 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

Caractersticas
Resolucin 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 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 nula
Segunda: contiene los datos del voltaje aplicado al motor
Tercera: registra la velocidad en rpm del motor
Cuarta: 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 DATOS
Ejecutamos 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 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 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 preprocesado 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 originales
mydatad: datos procesados
mydatade: datos para identificacin que se cargan a Working Data
mydatadv: 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 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 visualizacin del progreso del entrenamiento
%(en pocas o iteraciones)
red.trainParam.show = 25;
% Nmero mximo de iteraciones de entrenamiento
red.trainParam.epochs = 1000;
% Mnimo 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)=[];
%random 7seg
Tiempo(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

Вам также может понравиться