I. IDENTIFICACION DE SISTEMAS 1. INTRODUCCION La identificacin del sistema consiste en obtener el modelo matemtico de un sistema a travs de datos experimentales, es conocido como modelado empirico ya que es fundamentalmente experimental. Muchas veces el modelado fsico es restringido debido a que posee un conjunto de parmetros desconocidos, que solo se pueden determinar experimentando en el sistema real. El modelo obtenido a partir de datos experimentales de entrada-salida se conoce como modelo de la caja negra o modela de entrada-salida, el cual no se centra en estudiar el interior del sistema sino su comportamiento respecto al entorno. Identificar un sistema significa encontrar un conjunto de reglas y parmetros asociados que describan un modelo aceptable para el proceso que en l se esta llevando a cabo. 2. PROCESO DE IDENTIFICACION En general el proceso de identificacin de sistemas comprende los siguientes pasos: a. Obtencin de datos de entrada-salida b. Tratamiento previo de los datos capturados c. Eleccin de la estructura del modelo d. Obtencin de los parmetros del modelo e. Validacin del modelo Los pasos se pueden ver en el siguiente diagrama de flujo:
3. METODOS DE IDENTIFICACION Dependiendo del tipo de modelo obtenido se tiene dos mtodos: 3.1. METODOS NO PARAMETRICOS Permite obtener modelos no parametricos del sistema bajo estudio. Alguno de esos mtodos son: anlisis de la respuesta transitoria, anlisis de la respuesta en frecuencia, anlisis de la correlacion, anlisis espectral, anlisis de Fourier, etc. 3.2. METODOS PARAMETRICOS Permite obtener modelos perimtricos, estos mtodos requieren la eleccin de una posible estructura del modelo, de un criterio de ajuste de parmetros, y por ltimo la estimacin de los parmetros que mejor se ajustan el modelo a los datos experimentales. 3.2.1. TIPOS DE MODELOS PARAMETRICOS En general los modelos paramtricos se describen en el dominio discreto, puesto que los datos que sirven de base para la identificacin se obtienen por un mecanismo de muestreo. Para el caso de que se requiera un modelo continuo se puede llevar de un modelo discreto a un continuo. La expresin ms general de un modelo discreto es del tipo: () () () Donde (t) representa la salida respecto a la entrada y w(t) es la salida respecto a las perturbaciones y s(t) es la salida medible del sistema. Cada uno de estos trminos se puede desarrollar de la siguiente forma:
Donde q -1 es el operador retardo, u representa un vector de parmetros, u(t) es la entrada al sistema, e(t) es el ruido de entrada al sistema e y(t) es la salida de inters del sistema(que talvez no coincida la salida del sistema) Tanto G(q-1,q) como H(q-1,q) son cocientes de polinomios del tipo:
y A(q-1,q) un polinomio del tipo: El vector de parmetros q contiene los coeficientes ai , bi , ci , di y fi de las funciones de transferencia anteriores. La estructura genrica de estos modelos es por tanto:
Para elegir la estructura de este tipo de modelos hay que determinar el orden de cada uno de los polinomios anteriores, es decir na, nb, nc, nd, nf y el retardo entre la entrada y la salida nk. Una vez elegidos estos valores, slo queda determinar el vector de coeficientes q (ai, bi, ci, di y fi ) que hacen que el modelo se ajuste a los datos de entrada - salida del sistema real.
En muchos casos, alguno de los polinomios anteriores no se incluye en la descripcin del modelo, dando lugar a los siguientes casos particulares, entre otros:
A continuacin se muestra el diagrama de bloques de cada uno de los modelos anteriores:
II. IDENTIFICACION DE SISTEMAS EN MATLAB 1. INTRODUCCION La herramienta de identificacin de sistema de MATLAB construye modelos matemticos de sistemas dinmicos a partir de datos de entrada y salida de medicin. Proporciona funciones de Matlab, Bloques de Simulink, y una herramienta interactiva para crear y usar modelos de sistemas dinamicos que no son fcilmente modelados a partir de principios o especificaciones bsicas. Tu puedes usar el dominio del tiempo y el dominio de la frecuencia de datos de entrada y salida para identificar la funcin de transferencia de tiempo continuo o tiempo discreto, modelos de procesos, y modelos de espacio de estados. Las versiones del Toolbox de Identificacion de Sistemas de Matlab a partir de la versin 4.0 permite trabajar en dos modos distintos: - Modo comando: Se hace llamadas directamente a las funciones del toolbox de identificacin de sistemas desde la lnea de comandos. - Modo interfaz grafica: El toolbox de indentificacion de sistemas proporciona una interfaz grafica que facilita el trabajo haciendo llamadas a las distintas funciones del toolbox de identificacin a partir de una ventana con distintas opciones y que es muy didctica
2. DATOS DE ENTRADA-SALIDA El proceso de identificacin parte de un conjunto de datos entrada-salida obtenidos experimentalmente a partir de un sistema fsico real que se quiere modelar. Los datos tienen que ser cargados en el Workspace de Matlab, todos las funciones del toolbox de identificacin que requieren los datos de entrada-salida como parmetros deben estar ordenados en una matriz de 2 columnas por N filas, siendo N el numero de muestras registradas. En la primera columna deben estar las salidas y en la segunda las entradas. Ejemplo A1: El toolbox de identificacin proporciona un fichero con datos de entrada-salida que corresponde a un secador de mano con el cual se trabajara.
3. TRATAMIENTO PREVIO DE LOS DATOS El toolbox de identificacin de sistemas proporciona funciones para hacer el tratamiento de los datos y as hacerlos los ms adecuado posible para el proceso de identificacin. Entre ellas existen funciones de filtrado, eliminacin de valores medios, etc.
Ejemplo A2:
4. IDENTIFICACION NO PARAMETRICA Las funciones del toolbox para la identificacin no parametrica son las siguientes:
5. IDENTIFICACION PARAMETRICA 5.1. FUNCIONES PARA LA IDENTIFICACION PARAMETRICA Todas las funciones del toolbox para la identificacin parametrica tienen el siguiente formato: >> th = funcion ([y u], ths) Donde y e u son vectores columna que contienen las muestras de salida y entrada respectivamente, ths es un vector con informacin de la estructura escogida y th es el modelo estimado. Se utilizara una funcin u otra dependiendo del modelo elegido(ARX,ARMX,OE,JB) o el mtodo de ajuste de los parmetros(minimos cuadrados o variables instrumentales). El formato del vector ths es el siguiente: Ths = [na nb nc nd nf nk] Siendo na,nb,nc,nd,nf el numero de los coeficientes de los polinomios A,B,C,D y D de la estructura escogida, y nk el numero de retardos entre la entrada y salida. Todas las funciones devuelven los parmetros en formato codificado, para presentar dichos parmetros en pantalla se puede usar el comando: >> present(th) La siguiente tabla muestra las distintas funciones de identificacin parametrica disponibles en el toolbox de identificacin:
Ejemplo A3: Para el ejemplo del secador de mano, obtenga un modelo que se ajuste a la siguiente estructura: y(t) + a y(t 2T) + a y(t 3T) = b u(t 3T) + b u(t 4T) La ecuacin anterior corresponde a un modelo ARX con dos coeficientes para el polinomio A, dos coeficientes para el polinomio B y 3 retardos entre la entrada y salida. La funcin arx nos ayudara a obtener los coeficientes de los polinomios del modelo ARX: load dryer2 who tam=length(u2); datos_ident=[y2(1:tam/2) u2(1:tam/2)]; % Datos para identificar datos_val=[y2(tam/2+1:tam) u2(tam/2+1:tam)]; % Datos para validar datos_ident=dtrend(datos_ident); th=arx(datos_ident,[2 2 3]); % Funcion para obtener los coeficientes de los polinomios del modelo ARX present(th)
Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t) A(q) = 1 - 1.277 (+-0.01601) q^-1 + 0.3967 (+-0.01465) q^-2 B(q) = 0.06519 (+-0.001617) q^-3 + 0.04518 (+-0.002473) q^-4 Estimated using ARX from data set datos_ident Loss function 0.00167308 and FPE 0.00170006 Sampling interval: 1 Created: 17-Aug-2013 13:02:14 Last modified: 17-Aug-2013 13:02:14
Por tanto, los polinomios A(q-1) y B(q-1) resultantes de la identificacin son los siguientes:
y el modelo paramtrico (ecuacin en diferencias) del sistema discreto con periodo de muestreo igual al utilizado para el registro de datos es el siguiente:
5.2. ELECCION DE LA ESTRUCTURA OPTIMA La eleccin de la estructura del modelo es una de las decisiones mas importantes y difciles que debe tomar el diseador. Si no se tiene ningn conocimiento del sistema que facilite dicha eleccin, se puede recurrir a las distintas funciones del toolbox de identificacin para calcular las funciones de prdidas de las distintas estructuras y escoger aquella que tenga mejor resultado. Las funciones se muestran a continuacin en la siguiente tabla:
Ejemplo A4: Para el sistema del secador de mano obtenga la estructura que mejor ajusta el comportamiento del sistema a un modelo ARX load dryer2 who tam=length(u2); datos_ident=[y2(1:tam/2) u2(1:tam/2)]; % Datos para identificar datos_val=[y2(tam/2+1:tam) u2(tam/2+1:tam)]; % Datos para validar datos_ident=dtrend(datos_ident); datos_val=dtrend(datos_val); nn=struc([1:10],[1:10],[1:10]); % Ingresamos el rango del orden de los polinomios de la estructura elegida v=arxstruc(datos_ident,datos_val,nn); % Ingrasamos los datos de identificacion y de validacion para el calculo de la funcion de perdidas nn=selstruc(v) % Selecciona la estructura que presente menor funcion de perdidas
nn = 10 5 2
5.3. CONVERSION ENTRE MODELOS El toolbox de identificacin proporciona un conjunto de funciones que nos permiten traducir los modelos identificados de un formato a otro, incluye el paso de modelos parametricos a no parametricos y viceversa. Las funciones de conversin se muestran a continuacion:
Ejemplo A5: Convierta el modelo del secador obtenido del ejemplo A3 a una funcin de transferencia en el dominio del tiempo utilizando las funciones de la tabla de conversin de modelos. La conversin del dominio discreto al continuo depende del periodo de muestreo utilizado por tanto se utilizara un periodo de muestreo de 1ms.
load dryer2 who tam=length(u2); datos_ident=[y2(1:tam/2) u2(1:tam/2)]; % Datos para identificar datos_val=[y2(tam/2+1:tam) u2(tam/2+1:tam)]; % Datos para validar datos_ident=dtrend(datos_ident); th=arx(datos_ident,[2 2 3]); % Funcion para obtener los coeficientes de los polinomios del modelo ARX th=sett(th,0.001); % Cambiamos el periodo de muestreo a 1ms present(th) thc=thd2thc(th); [numc,denc]=th2tf(thc); printsys(numc,denc,'s')
Estimated using ARX from data set datos_ident Loss function 0.00167308 and FPE 0.00170006 Sampling interval: 0.001 Created: 17-Aug-2013 16:24:47 Last modified: 17-Aug-2013 16:24:47
num/den =
2.4809 s + 171765.8928 ------------------------------ s^2 + 924.5482 s + 187021.0973
5.4. VALIDACION DE MODELOS
Los mtodos de validacin que proporciona el toolbox de identificacin se basan en la simulacin del modelo obtenido, y la comparacin entre su salida y la respuesta real del sistema. Las funciones disponibles se muestran en la siguiente tabla:
El modelo estimado que mejor ajusta su salida a la respuesta real es el modelo de mayor FIT (FIT: porciento de ajuste definido en el toolbox de identificacin)
Ejemplo A6: Comparar la salida real del sistema con la salida de simulacin del modelo usando para ello los datos de validacin del modelo. Calcule tambin los residuos del modelo.
compare(datos_val,th);
resid(datos_val,th);
6. IDENTIFICACION POR INTERFAZ GRAFICA DE USUARIO Para arrancar la interfaz grafica de usuario es necesario escribir en la ventana de comando el siguiente comando: >> ident Aparece la siguiente ventana:
Con la interfaz grafica del toolbox de identificacin de sistemas se puede realizar el mismo procedimiento para la identificacin de sistemas que se hizo por lnea de comando, solo que en este caso es ms didctico, flexible y rpido de obtener los modelos de sistemas a partir de los datos de entrada-salida.
III. APENDICE A continuacin se muestra un resumen de algunos comandos y funciones tiles para el proceso de identificacin de sistemas. - idplot: Comando para representar grficamente los datos (entrada-salida) para la identificacin del sistema. Sintaxix: idplot([output input])
- save: Almacena una, dos o ms variables del espacio de trabajo en un formato binario en el archivo llamado nombre_archivo.mat. Los datos se pueden recuperar con el comando load.
Sintaxix: save nombre_archivo var1 var2 ...... varN
- load: Comando para leer datos en MATLAB desde un archivo
Sintaxis: load nombre_archivo.mat
- xlsread: Comando para importar datos desde Excel hacia MATLAB Sintaxis: nombre_variable = xlsread(nombre_archivo,punto_inicial:punto_final ) - xlswrite: Comando para exportar datos desde MATLAB hacia Excel Sintaxis: xlswrite(nombre_archivo,nombre_archivo_de_datos)