UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS DE POSTGRADO COORDINACIÓN DE POSTGRADO EN INGENIERÍA QUÍMICA
MAESTRIA EN INGENIERÍA QUÍMICA
APLICACIÓN DEL MÉTODO POD PARA LA OBTENCIÓN DE UN MODELO REDUCIDO DE TRANSFERENCIA DE CALOR
Trabajo de Grado presentado a la Universidad Simón Bolívar
EVER ALONSO PALACIOS JAIMES
Como requisito parcial para optar al grado académico de
Magíster en Ingeniería Química
Con la asesoría de los Profesores
YAMILET SANCHEZ MONTERO RAUL MANZANILLA
FEBRERO 2012
Universidad Central de Venezuela
iii
Dedico este trabajo a mi madre fallecida Emelina Jaimes, mi padre Carlos Palacios, mi
hermana Yaneth, mi esposa Gloria y mis hijas Adriana y Marcela
iv
AGRADECIMIENTOS
Le hago llegar mis más sinceros agradecimientos a todas aquellas personas que de una
forma u otra posibilitaron que este trabajo se hiciera realidad.
Al profesor Ulises Lacoa fallecido quien me inició en el presente trabajo y a quien
tuve el agrado de conocer.
A mis tutores la profesora Yamilet Sánchez y el profesor Raúl Manzanilla por sus
ideas, su colaboración y empeño en sacar adelante este trabajo.
A la Universidad Simón Bolívar sin su logística no hubiera sido posible realizar los
estudios.
A mi hermana Yaneth y a mi madre fallecida quien con mi padre han sido una guía
en mi vida.
A mi esposa Gloria y a mis hijas Adriana y Marcela por su soporte en todo
momento.
v
UNIVERSIDAD SIMÓN BOLÍVAR
DECANATO DE ESTUDIOS DE POSTGRADO COORDINACIÓN DE POSTGRADO EN INGENIERÍA QUÍMICA
MAESTRIA EN INGENIERÍA QUÍMICA
APLICACIÓN DEL MÉTODO POD PARA LA OBTENCIÓN DE UN MODELO REDUCIDO DE TRANSFERENCIA DE CALOR
Por: Ever Alonso Palacios Jaimes Carnet No. : 07-85869 Tutor: Yamilet Sánchez y Raúl Manzanilla Septiembre 2011
RESUMEN
La ecuación del calor es una importante ecuación diferencial en derivadas parciales, cuya solución con los métodos tradicionales de discretización espacial resulta en un sistema de ecuaciones diferenciales ordinarias de gran escala. La complejidad o el número de ecuaciones que se resuelven en cada paso de tiempo, aumentan con los requerimientos en la exactitud del modelo, es por ello, que se requiere reducir el número de estados o grados de libertad, y así reducir los requerimientos computacionales. De allí, la necesidad de desarrollar técnicas nuevas emergentes con la finalidad de simplificar la representación de la solución del problema. Se propone el uso de las llamadas funciones ortogonales propias (POD por su nombre en inglés “Proper Orthogonal Decomposition”) combinadas con el método de proyección de Galerkin para la obtención, a partir del conjunto original de ecuaciones en derivadas parciales, de representaciones finitas de baja dimensionalidad.
Para la generación de los datos se utiliza la técnica de simulación numérica utilizando el paquete Matlab. Se desarrollan métodos genéricos para reducir la alta dimensión (que resulta al discretizar el sistema de EDPs) a no más de 10 ecuaciones, manteniendo el nivel de precisión, mientras que la simulación se hace más rápida. Esta técnica se aplica al modelo de transferencia de calor por conducción donde la dinámica de la variable temporal y espacial se aproxima con un alto grado de eficiencia.
Palabras Claves: POD, simulación de procesos, transferencia de calor por conducción.
vi
ÍNDICE GENERAL
Pág.
APROBACIÓN DEL JURADO ………………………………………………………......iii DEDICATORIA………………………………………………….………………...……...iv AGRADECIMIENTOS…………………………………………..………………..….........v RESUMEN……………………………………………………..………………….……....vi ÍNDICE GENERAL………………………………………………………………………vii ÍNDICE DE FIGURAS…………………………………………………..........................viii LISTA DE ABREVIATURAS……………………………………..………………...........ix CAPÍTULO I: INTRODUCCIÓN GENERAL ...................................................................... 2
1.1 Planteamiento del Problema………………………………………………………….. 2
1.2 Antecedentes…………………………………………………………………………. 3
1.3 Justificación e Importancia…………………………………………………………... 5
1.4 Objetivos……………………………………………………………………………... 6
1.4.1 Objetivo General............................................................................................... 6
1.4.2 Objetivos Específicos ....................................................................................... 6
1.5 Resumen por Capítulo………………………………………………………………... 7
CAPÍTULO II: DESCRIPCIÓN DEL MODELO DE LA ECUACIÓN DEL CALOR Y MODELOS DISCRETOS ASOCIADOS .............................................................................. 9
2.1 Modelo de la Ecuación del Calor…………………………………………………… 10
2.2 Modelo de la Ecuación del Calor Semi-discreto Espacial…………………………...14
2.2.1 Discretización espacial de la ecuación del calor por el método de diferencias finitas ............................................................................................ 15
2.2.2 Discretización espacial de la ecuación del calor por el método de los elementos finitos ............................................................................................. 18
vii
CAPÍTULO III: DESCRIPCIÓN DEL POD Y SU USO PARA OBTENER EL MODELO REDUCIDO ......................................................................................................................... 26
3.1 Descripción del Método POD………………………………………………………. 26
3.1.1 Funciones de Base del POD ........................................................................... 29
3.1.2 Coeficientes del POD Asociados a las Funciones de Base ............................ 36
3.2 Obtención del Modelo de la Ecuación del Calor Reducido………………………… 37
3.2.1 Obtención del Modelo de la Ecuación del Calor Semi-discreto Reducido .... 38
3.2.2 Obtención del Modelo Empírico de la Ecuación del Calor Reducido ............ 41
3.3 Estimación del Error………………………………………………………………… 42
CAPÍTULO IV: APLICACIÓN DEL POD PARA LA OBTENCIÓN DE UN MODELO REDUCIDO ASOCIADO A UN MODELO DE LA ECUACIÓN DEL CALOR SEMI-DISCRETO ........................................................................................................................... 44
4.1 Modelo de Conducción del Calor en una Dimensión………………………………. 45
4.1.1 Aplicación del POD para la Obtención del Modelo Reducido de la Ecuación del Calor Semi-discreto .................................................................. 45
4.2 Modelo Empírico Reducido………………………………………………………… 54
4.2.1 Aplicación del POD para la Obtención de un Modelo Empírico Reducido de Transferencia de Calor en una Dimensión ................................................. 55
4.3 Influencia de las Condiciones de Frontera en el Modelo Reducido………………... 60
4.4 Aplicación del Método POD para la Obtención del Modelo de la Ecuación del Calor Reducido en dos Dimensiones……………………………………………………… 68
CAPÍTULO V: CONCLUSIONES Y RECOMENDACIONES ......................................... 79
5.1 Conclusiones………………………………………………………………………… 79
5.2 Recomendaciones…………………………………………………………………… 80
REFERENCIAS ................................................................................................................... 82
Anexo A. Requerimientos Matemáticos ............................................................................... 87
A.1 Desviación Estándar .................................................................................................. 87
A.2 Varianza ..................................................................................................................... 88
A.3 Covarianza ................................................................................................................. 88
A.4 Cálculo de la Matriz de Correlación .......................................................................... 89
A.5 Valores y Vectores Propios ....................................................................................... 92
A6. Funciones Ortogonales ............................................................................................. 97
viii
A7. Transformación Karhunen – Loeve ........................................................................... 98
A.7.1 Formulación Descriptiva……………………………………………………. 99
A.7.2 Formulación Matemática…………………………………………………….100
A.8 Método de los Valores Singulares………………………………………………... 104
ANEXO B. Aplicación del POD para el Procesamiento de Imágenes ............................... 109
ANEXO C. Programas en Matlab ...................................................................................... 116
C.1 Programa PODeig ................................................................................................... 116
C.2 Programa PODsvd .................................................................................................. 117
C.3 Programa PDE1DIM ............................................................................................... 119
C.4 Programa En ........................................................................................................... 122
C.5 Programa PODFEM ................................................................................................ 123
C.6 Programa POD_analitica1 ...................................................................................... 126
C.7 Programa Procesam_Imag3 .................................................................................... 131
C.8 Programa Procesam_lenna ...................................................................................... 133
C.10 Programa Cavidadanimacion .................................................................................. 142
C.11 Programa pdeGlobal2 ............................................................................................. 143
ix
INDICE DE FIGURAS
Figura 2. 1 Esquema de discretización espacial de una barra. ....................................................... 14
Figura 2. 2 Esquema de discretización espacial de una barra, para K puntos en la malla. .. 15
Figura 2. 3 Funciones de Base .............................................................................................. 19
Figura 3. 1 Solución para cuando la barra se calienta en el extremo izquierdo. ...................... 27
Figura 3. 2 Patrón principal de la distribución de la temperatura cuando la barra se calienta en el extremo izquierdo. ..................................................................................... 28
Figura 3. 3 Proyección de Galerkin. ...................................................................................................... 40
Figura 4. 1 Solución utilizando MEF con 20 grados de libertad y la solución analítica ...... 47
Figura 4. 2 Solución Analítica y POD 1(1a Función Ortogonal Propia). ................................... 49
Figura 4. 3 Diferentes soluciones obtenidas utilizando: El Método de los Elementos Finitos con 20 nodos, la Solución Analítica y POD 1(Empírico y Galerkin). .. 50
Figura 4. 4 Diferentes soluciones obtenidas utilizando: El Método de los Elementos Finitos con 400 nodos, la Solución Analítica y POD 1(Empírico y Galerkin). ................................................................................................................................ 51
Figura 4. 5 Error Absoluto entre el Modelo Reducido con 1 grado libertad y la solución analítica. Con 20 puntos en la malla. .............................................................................. 52
Figura 4. 6 Error Absoluto entre el Modelo Reducido con 1 grado libertad y la solución analítica. Con 400 puntos en la malla. ........................................................................... 52
Figura 4. 7 Snapshots de temperatura cuando se calienta la barra en el lado izquierdo, en 3D. ............................................................................................................................................ 55
Figura 4. 8 Snapshots de temperatura, cuando se calienta la barra en el lado izquierdo, en 2D. ....................................................................................................................................... 56
x
Figura 4. 9 Espectro de los valores propios de los snapshots. ....................................................... 56
Figura 4. 10 Espectro de los valores propios. Valores propios (n) vs. 1-En .............................. 57
Figura 4. 11 Representación del Modelo, con las primeras Funciones de Base del POD. .... 58
Figura 4. 12 Modelo Reducido y el Modelo Original para un paso de tiempo k=120. .......... 59
Figura 4. 13 Error absoluto en 3D. ........................................................................................................ 60
Figura 4. 14 Solución para cuando la barra se calienta en el extremo izquierdo. .................... 60
Figura 4. 15 Espectro de valores propios. La barra se calienta en el extremo izquierdo ....... 61
Figura 4. 16 Solución con 7 POD, para cuando la barra se calienta en el extremo izquierdo. ................................................................................................................................ 61
Figura 4. 17 Solución para cuando la barra se calienta en el extremo derecho. ....................... 62
Figura 4. 18 Espectro de valores propios. La barra se calienta en el extremo derecho. ......... 62
Figura 4. 19 Solución con 7 POD, para cuando la barra se calienta en el extremo derecho. ................................................................................................................................... 63
Figura 4. 20 Solución para cuando la barra se calienta en el centro. ........................................... 63
Figura 4. 21 Espectro de valores propios. La barra se calienta en el centro.............................. 64
Figura 4. 22 Solución con 8 POD, para cuando la barra se calienta en el centro .................... 64
Figura 4. 23 Solución para cuando la barra se calienta en el extremo izquierdo, en el centro y el extremo derecho. ............................................................................................. 65
Figura 4. 24 Espectro de valores propios para los casos 1, 2 y 3. ................................................ 66
Figura 4. 25 Solución con 8 POD, para los casos 1, 2 y 3. ............................................................. 66
Figura 4. 26 Error absoluto entre modelo original y la solución con 8 POD, para los casos 1, 2 y 3. ........................................................................................................................ 67
Figura 4. 27 Solución utilizando el MEF y POD 8, para diferentes pasos de tiempo ............ 67
Figura 4. 28 Placa sometida a una temperatura constante en un lado y en el lado opuesto rodeado por aire. ................................................................................................................... 69
Figura 4. 29 Malla triangular con 134 y 486 grados de libertad. .................................................. 71
xi
Figura 4. 30 El dominio y la malla triangular para un tiempo de 5 segundos con 101 pasos de tiempo y 1844 grados de libertad. .................................................................. 72
Figura 4. 31 Solución por el método de los elementos finitos. Gráfica en 3D y en 2D. ........ 72
Figura 4. 32 Espectro de valores propios. ........................................................................................... 73
Figura 4. 33 Primero y segundo POD................................................................................................... 75
Figura 4. 34 Tercero y cuarto POD. ...................................................................................................... 75
Figura 4. 35 Quinto POD, a la izquierda y a la derecha, la solución en 5 s. ............................. 76
Figura A. 1 Relación entre la matriz de varianza-covarianza y la matriz de correlación .... 89
Figura A. 2 Transformación de vectores. ............................................................................................ 95
Figura A. 3 Transformación de vectores. ............................................................................................ 96
Figura A. 4 Varianza-covarianza. .......................................................................................................... 99
Figura A. 5 Cambio de coordenadas utilizando la media y proyección de dos componentes principales. ................................................................................................. 102
Figura A. 6 Comparación entre el método POD y ACP. .............................................................. 108
Figura B. 1 Imagen de un Mandril en RGB. (Referencia) 109
Figura B. 2 Imagen de un Mandril en escala de grises. ................................................................. 110
Figura B. 3 Espectro de los valores propios. .................................................................................... 111
Figura B. 4 Procesamiento de la imagen utilizando el metodo POD ........................................ 112
Figura B. 5 Izquierda: imagen original de Lenna en RGB. Derecha: imagen original de Lenna en escala de grises. ................................................................................................ 113
Figura B. 6 Espectro de los valores propios. .................................................................................... 113
Figura B. 7 Resultados del método POD en escala de grises. ..................................................... 114
Figura B. 8 Reconstrucción de la imagen por el método POD en escala de grises. .............. 114
xii
LISTA DE SÍMBOLOS Y ABREVIATURAS
Matriz diagonal con los valores propios formada de la matriz C
λ Valor propio
Matriz con los elementos bases del POD
φ Funciones de base ortogonales
α Vector de coeficientes del POD
nii 1 Conjunto de funciones de base
C Matriz de correlación
T Vector de variables en el cálculo del modelo original
Tn Variable de aproximación del modelo original
Tsnap Conjunto de snapshots
u Vector de variable de entrada
y Vector de salida de interés
z Vector de estado
k Pasos de tiempo
K Número de puntos de la malla
n Número de elementos bases del POD en el modelo reducido
x Localización espacial
κ Conductividad térmica [w/mK]
μ Viscosidad [Ns/m2]
ρ Densidad [kg/m3]
Cp Capacidad calorífica específica [J/kgK]
En Energía, relación de valores propios
DKL Descomposición Karhunen- Loéve
TLI Tiempo lineal invariante
TLV Tiempo lineal variante
xiii
MCP Modelo de control predictivo
SMEM Sistema micro-electro-mecánico
ACP Análisis de componentes principales
EDO Ecuación diferencial ordinarias
EDP Ecuación diferencial parcial
POD Funciones ortogonales propias
DVS Descomposición de valores singulares
MEF Método de los elementos finitos
MOR Modelo de orden reducido
BDS Esquema en diferencias hacia atrás
FDS Esquema en diferencias hacia delante
1 CAPÍTULO I
INTRODUCCIÓN GENERAL
La ecuación del calor es una importante ecuación diferencial en derivadas parciales (EDPs)
de tipo parabólico, que describe la distribución del calor (o variaciones de la temperatura)
en una región en el transcurso del tiempo. Es de una importancia fundamental en
numerosos y diversos campos de la ciencia. Cuando en la ecuación del calor se mantiene la
variable temporal continua y se discretiza la variable espacial, el problema se reduce a un
sistema de ecuaciones diferenciales ordinarias, de dimensión igual al número de nodos
espaciales que tenga el mallado utilizado en la discretización espacial.
Al refinar la malla se obtiene soluciones confiables, pero el precio es un aumento en el
número de grados de libertad, lo que conlleva a tiempos de cómputo mayor y altos
requerimientos de almacenamiento.
En este estudio, se obtendrán modelos de orden reducido, es decir; modelos con un número
menor de ecuaciones que la del modelo original. Los modelos reducidos permiten
representaciones rentables de los sistemas a gran escala, que resultan de la discretización de
las EDPs. Entre los métodos para obtener modelos reducidos está el método de las
funciones ortogonales propias (POD) [1], el de truncamiento balanceado [2] y el de
subespacio de Krylov [3], los cuales se han aplicado en diferentes áreas con éxito.
El modelo reducido es útil, en el caso en donde el proceso físico debe ser simulado
reiteradamente, ya que, proporciona una representación del sistema con una buena
precisión y bajo costo computacional.
2
En particular, el método POD, se aplica principalmente en aquellos sistemas en los que se
tiene un gran número de datos. Los sistemas de transferencia de calor representan un buen
ejemplo de aquellos en los cuales se posee una extensa data que obliga a un alto gasto
computacional, ya que están asociado a sistemas discretos de alta dimensión.
1.1 Planteamiento del Problema Si el modelo original es gobernado por ecuaciones diferenciales parciales, como es el caso
del modelo de la ecuación del calor, la solución numérica de la EDP, será tanto más
precisa, cuanto mayor sea el número de elementos que se utilice para discretizar el dominio.
Consecuentemente, se obtiene un número mayor de ecuaciones que necesitan ser resueltas
simultáneamente en poco tiempo.
El número de ecuaciones que se deben resolver en cada paso de tiempo en la resolución de
un modelo aumenta con los requerimientos en la exactitud. Por lo tanto, se considera
importante el desarrollo de técnicas de reducción, esto es reducir el número de variables de
estado o grados de libertad del modelo.
En base a lo anterior, la motivación del presente trabajo es desarrollar una metodología,
utilizando el método POD para obtener modelos dinámicos de baja dimensión en el caso
particular de la ecuación del calor. Esto es, el desarrollo de un modelo más sencillo, dado
un modelo discretizado de las ecuaciones diferenciales parciales y que cumpla con las
principales características como es: mantener el nivel de precisión, obtener una simulación
más rápida y un número inferior de ecuaciones que el modelo original.
3
1.2 Antecedentes Las funciones ortogonales propias (en inglés, Proper Orthogonal Decomposition, POD), es
un procedimiento usado en varias disciplinas como en mecánica de fluidos [4],
procesamiento de imágenes [5], compresión de datos [6], para la identificación y control en
Ingeniería Química [7], oceanografía [8], en el contexto de turbulencia [9]. El uso del
método POD como una técnica para reducir modelos es reciente y de la revisión
bibliográfica efectuada, no se encontró información relevante de la aplicación del método
POD, en el área de transferencia de calor.
Se presenta a continuación algunas investigaciones realizadas con el método POD, el cual,
junto con otros estudios nos permitirá extraer la metodología que será utilizada para el
presente trabajo.
Para flujos turbulentos existe un modelo matemático que es la ecuación de Navier – Stokes,
el cual, es un conjunto de ecuaciones diferenciales parciales no lineales difíciles de
resolver, excepto con las simulaciones numéricas, que proporcionan aproximaciones útiles.
Existen tres desarrollos que ofrecen nuevas espectativas, los cuales fueron introducidos por
Holmes [10] en 1996. Estos son en primer lugar, el descubrimiento por especialistas de
estructuras coherentes en ciertos flujos turbulentos. En segundo lugar, la idea de los
atractores extraños y otras ideas de la teoría de sistemas dinámicos de dimensión finita, que
pueden desempeñar un papel importante en el análisis de las ecuaciones gobernantes. Y
finalmente, la introducción de la descomposición Karhunen-Loéve o proper orthogonal
decomposition (POD).
En el año 2000 Chatterjee [11], utiliza el método POD para el procesamiento de datos de
alta dimensión, obteniendo descripciones de baja dimensión y capturando muchos
fenómenos de interés.
En la investigación realizada por García [12] en el 2001 en el control de reactores, se aplica
los métodos tradicionales para la solución de sistemas de parámetros distribuidos (SPD),
por el método de los elementos finitos (MEF) y diferencias finitas (MDF), que se basan en
4
esquemas de discretización espacial, aproximando el conjunto original de EDPs por un
conjunto de ecuaciones algebraicas y o ecuaciones en derivadas ordinarias (EDOs),
dependiendo, si las EDPs originales son estáticas o dinámicas. La solución del sistema
resultante, sin embargo, implica gran esfuerzo computacional condicionando así la eficacia
de los algoritmos de optimización dinámica. Dependiendo de la matriz de núcleo R se
consideran dos métodos diferentes: Descomposición espectral donde el núcleo R es una
función Green, asociada con el operador espacial y POD, donde el núcleo R es una matriz
de correlación punto a punto construida a partir de los datos empíricos. Una característica
clave de los sistemas de parámetros distribuidos es su naturaleza disipativas, de forma que
cualquier punto del dominio del sistema evolucionará a un hiperplano de baja dimensión
donde permanecerá, lo que permite la extracción de un invariante dinámico que captura el
comportamiento dinámico del sistema. De esta forma la solución puede aproximarse como
una expansión truncada. Con el fin de valorar la capacidad predictiva del modelo del orden
reducido (reducción del orden se refiere dentro de este contexto, a reducir los grados de
libertad), se utilizó el método de los elementos finitos para la simulación de la dinámica del
reactor y los resultados obtenidos se comparan con los predichos por el modelo de orden
reducido.
En el trabajo realizado por Liang [13] en el año 2003, utiliza el método POD para la
reducción del modelo en los sistemas micro electromecánicos (SMEM). Propone un
modelo basado en red neural y en el análisis de componentes principales (ACP) con el
procedimiento de Galerkin, para la simulación dinámica y el análisis de SMEM no lineales.
En este método no es necesario calcular la matriz de correlación con antelación y utiliza
pocas funciones de la base, ofreciendo ventajas potenciales cuando los datos medidos son
muy grandes.
En el mismo año, Rothmans [14] investiga algunas propiedades básicas del método POD y
utiliza el método en la compresión de datos y la reducción de modelos en ecuaciones
diferenciales ordinarias no lineales. Además, proporciona un análisis del error obtenido al
aproximar la solución de un problema de valor inicial EDO no lineal, mediante un modelo
POD de orden reducido.
También, para el mismo año Caiafa [5], presenta la teoría de “Eigenfaces”, conocida como
análisis de componentes principales o Expansión de Karhunen-Loéve, aplicada a la
5
identificación de ejemplares marinos a través de sus fotografías. El presenta la formulación
matemática que sustenta el método sobre el cual se ha desarrollado el programa. Se
presenta además, un conjunto de resultados experimentales que muestran la efectividad de
la técnica.
En el trabajo realizado en el 2005 por Hinze y Volkwein [15], se estudia los problemas de
control óptimo asociadas a EDPs. Se propone la técnica de modelos reducidos, utilizando el
método de Galerkin, donde el subespacio esta formado por funciones de base que
contienen características de la solución esperada, esto en contraste con la técnica de los
elementos finitos donde los elementos del subespacio no presentan correlación con las
propiedades físicas del sistema. Para estos casos la técnica POD provee un método de
obtención de modelos de bajo orden.
Entre otros estudios realizados con el método POD, se tiene la investigación realizada por
Vasilyev [16] en el 2005, sobre los modelos de orden reducido, como una rama de la teoría
de control, donde estudia la reducción de la complejidad de sistemas dinámicos,
preservando al mismo tiempo, en la medida de lo posible, su comportamiento entrada-
salida. Además, se analizan los dispositivos cuya descripción es a través de EDPs, que por
lo general, consta de un sistema de gran escala, evidentemente redundante para representar
algunas propiedades de interés.
1.3 Justificación e Importancia
El gran avance tecnológico de las últimas décadas ha incrementado la necesidad de simular
numéricamente fenómenos físicos asociados a aplicaciones concretas en: micro-mecánica,
dinámica de fluidos, micro-electrónica, entre otros. Por ejemplo, la continua
miniaturización de los sistemas electrónicos se ha traducido en un espectacular aumento de
la cantidad de calor generado por unidad de volumen, comparable en magnitud a los
encontrados en los reactores nucleares y en la superficie del sol [17]. De allí, que el estudio
del comportamiento térmico se vuelve cada vez más impotante. La mayoría de modelos
6
matemáticos que describen estos fenómenos comparten la característica de que su
dimensión es muy grande. Por lo tanto, es necesario el estudio de herramientas de
computación científicas que permitan simular estos procesos que desembocan en un
sistema dinámico de gran escala. Concretamente, aplicaciones de técnicas de reducción de
modelos que explotan la estructura del problema, permitiendo así, reducción del costo
computacional y del almacenamiento.
1.4 Objetivos Para el presente trabajo se platea como objetivo general y como objetivos específicos los
siguientes:
1.4.1 Objetivo General
Aplicar el método POD para obtener modelos transitorios de baja dimensión relativos a la
ecuación del calor. Esto es, desarrollar un modelo más sencillo, dado un modelo
discretizado de las ecuaciones diferenciales parciales.
1.4.2 Objetivos Específicos
Estudiar y aplicar la técnica del método POD, especialmente en la estrategia
del modelado.
Desarrollar una metodología para la implementación del método POD en la
resolución de EDPs relativas a la ecuación del calor.
7
Proponer un modelo numérico de reducción del orden para transferencia de
calor por conducción empleando el método POD.
Desarrollar los programas en MATLAB, para la simulación del modelo, para
efecto de su validación.
Evaluar la capacidad del método POD para modelar la transferencia de calor
por conducción y comparar los resultados con los obtenidos con el modelo
original.
1.5 Resumen por Capítulo El trabajo se organiza en 5 capítulos y una breve descripción de cada capítulo se da a
continuación:
Capítulo II: En este capítulo se hace una descripción del modelo de
transferencia de calor, así como la del modelo semi-discreto.
Capítulo III: Este capítulo inicia con una descripción del método POD.
Posteriormente, se describe cómo se calcula las funciones de base del POD
utilizando el método de Snapshots. El capítulo concluye con la descripción de
cómo el método POD y la proyección de Galerkin se utiliza para calcular el
modelo reducido en función de los coeficientes del POD.
8
Capítulo IV: En este capítulo se aplica el método POD a modelos basados en
EDP discretizadas por el método de diferencias finitas y de los elementos
finitos. Posteriormente, el modelo de conducción del calor en una dimensión es
reducido, se valida el método con ejemplos detallados y por último se extiende
la aplicación del método POD a conducción del calor en 2 dimensiones, se
muestran los resultados del método con un ejemplo de una placa con una
cavidad.
Capítulo V: Se presentan las conclusiones y recomendaciones para trabajos
futuros.
Finalmente, en el anexo se encuentran algunos conceptos matemáticos útiles para la
comprensión del método POD, se hace una corta descripción del método DKL, DVS, las
diferencias entre el método POD y ACP. Adicionalmente, se presentan los diferentes
programas realizados en Matlab.
9
2 CAPÍTULO II
DESCRIPCIÓN DEL MODELO DE LA ECUACIÓN DEL CALOR Y MODELOS DISCRETOS ASOCIADOS
La forma en que las EDPs se presentan habitualmente en la modelización de fenómenos de
la Ciencia y Tecnología es precisamente la de modelos de evolución o transitorios, en los
que se describe la dinámica a lo largo del tiempo de determinada cantidad o variable
(también a veces denominada estado) [18].
En la teoría clásica de EDP estas se clasifican en tres grandes grupos: elípticas, parabólicas
e hiperbólicas. En el modelo elíptico, la variable tiempo está ausente. Es por eso, que sólo
permite describir estados estacionarios o de equilibrio.
Las ecuaciones parabólicas y las hiperbólicas, representadas respectivamente por la
ecuación del calor y la de ondas, son los modelos clásicos en el contexto de las EDPs de
evolución. Sus características matemáticas son bien distintas, mientras que la ecuación del
calor permite describir fenómenos altamente irreversibles en tiempo en los que la
información se propaga a velocidad infinita, la ecuación de ondas es el prototipo de modelo
de propagación a velocidad finita y completamente reversible en tiempo. Deducciones de
esta y otras propiedades de la ecuación del calor se encuentran en los trabajos realizados
por E. Zuzua [19] del 2007 y se confirma en los ejemplos que se presentan en este trabajo,
donde la distribución de temperatura se alcanza rápidamente.
10
Frecuentemente, los modelos son más sofisticados que una “simple” ecuación aislada. Se
trata a menudo de sistemas acoplados de EDPs en los que es habitual encontrar tanto
componentes parabólicos como hiperbólicos. Por todo ello es natural e importante entender
todos los aspectos matemáticos fundamentales de estas dos piezas claves: la ecuación del
calor y la de ondas. Evidentemente, esto es también cierto desde el punto de vista del
Análisis y del Cálculo Numérico [19].
2.1 Modelo de la Ecuación del Calor
La forma general, de la ecuación de difusión del calor en coordenadas cartesianas en 3D es:
qzT
zyT
yxT
xtTc p
)()()( (2.1)
Esta ecuación, es normalmente conocida como la ecuación del calor, proporciona la
herramienta básica para el análisis de conducción de calor. De su solución se obtiene la
distribución de temperatura ),,,( zyxtT como función del tiempo. La ecuación del calor
establece que en cualquier punto dentro del medio, la rapidez de cambio de la energía
térmica almacenada dentro del volumen debe ser igual a la rapidez de transferencia de
energía por conducción más la rapidez de generación volumétrica de energía térmica ( q ).
A menudo es posible trabajar con versiones simplificadas de la ecuación (2.1). Por ejemplo,
si la conductividad térmica es constante, la ecuación del calor se expresa como
qzT
yT
xT
tT
2
2
2
2
2
21 (2.2)
donde, pc
es la difusividad térmica.
Para sistemas en coordenadas cartesianas, el operador de Laplace es
11
2
2
2
2
2
2
zyx
(2.3)
Luego, la ecuación de calor (2.2) se escribe como:
qTtT
1 (2.4)
Para el caso de la ecuación del calor unidimensional, donde 1,0 q , se tiene la
ecuación:
02
2
TTxT
tT
t (2.5)
Con frecuencia son posibles simplificaciones adicionales de la forma general de la ecuación
del calor. Por ejemplo, si se considera ahora el problema del calor en un dominio acotado
del plano. En esta ocasión, con el objeto de describir completamenete el proceso físico
no basta con tener sólo la ecuación diferencial que rige el proceso, hace falta plantear el
estado inicial y el régimen en la frontera de la región donde tiene lugar el proceso.
Se distinguen tres tipos principales de condiciones de frontera:
Especificar la función en la frontera del dominio. Se conoce como condición tipo
Dirichlet. Por ejemplo, una situación en que la frontera del dominio de trabajo se mantiene
a una temperatura fija T0, las condiciones de frontera T= T0 en , indican que las paredes
del dominio se mantienen a temperatura constante T0.
Especificar la derivada de la función en la frontera del dominio. Se conoce como
condición del tipo Neumann. Corresponde a la existencia de un flujo de calor en la frontera
del dominio de trabajo. En 3RI , este flujo de calor se relaciona con el gradiente de
temperatura, un caso especial de esta condición corresponde a la situación donde es
una superficie perfectamente aislada, o adiabática, y en consecuencia el dominio está
12
completamente aislado de su entorno y por lo tanto, se impondrán condiciones de flujo nulo
y se expresa como:
),0(0
ennT
(2.6)
donde, nT
denota el operador derivada normal y n es el vector normal exterior unitario a
que varía en función de la geometría del dominio al variar el punto ,x se trata de
una derivada direccional, de modo que
nTnT
(2.7)
Especificar la función y su derivada en la frontera del dominio. Se conoce como
condición de tipo Robin (o mixta). Corresponde a la existencia de calentamiento o
enfriamiento por convección en la superficie, que se expresa como
)],0([ tTTHxT
(2.8)
Donde, H es el coeficiente de transporte de calor, característico del material sólido y T es
un valor conocido (dato el problema) de la temperatura ambiente alrededor del sistema.
Si se considera por ejemplo, el sistema en una dimensión espacial con condiciones de
frontera de Dirichlet
.0)()0,(0),(),0(
0,00
0
xxTxTtTtTtT
txTT
I
t
(2.9)
Es conocido [16], que en general en este caso la solución no siempre es fácil de obtener
explícitamente y son diversos los métodos disponibles para su solución. Por lo tanto, es
13
necesario proceder al desarrollo de métodos numéricos para la resolución de la ecuación del
calor en el caso general.
Entre las formas más difundidas para el desarrollo de métodos numéricos para la resolución
de la ecuación del calor, se pueden mencionar:
a) Discretizar simultáneamente las variables de espacio y de tiempo.
De este modo pasamos directamente de la EDP de evolución a un sistema
puramente discreto, es lo que se denomina una discretización completa.
b) Mantener la variable temporal continua y discretizar la variable espacial.
En este caso se trata de una semi-discretización espacial y el problema se reduce a
un sistema de ecuaciones diferenciales ordinarias de dimensión igual al número de
nodos espaciales que tenga el mallado utilizado en la discretización espacial. Estos
métodos se conocen también como métodos de líneas.
c) Mantener la variable espacial continua y discretizar el tiempo. Se trata en este
caso de una semi-discretización temporal. El sistema se reduce a la resolución
iterada, discretamente en tiempo, de ecuaciones de Laplace.
La primera opción puede presentar problemas de estabilidad y convergencia. La tercera
forma presenta inconvenientes similares [19]. En consecuencia, la segunda forma es la más
adecuada a nuestro problema, ya que: cuando se realiza la discretización espacial se
aproxima el conjunto original de EDP por un sistema de EDOs y mediante el uso de
programas comerciales (Matlab, por ejemplo) que están equipados de rutinas de resolución
de sistema de EDOs se pueden obtener con facilidad aproximaciones numéricas de las
soluciones de dicho sistema de EDOs y por consiguiente de la EDP, lo cual supone sin
duda una razón importante para proceder a realizar la semi-discretización espacial.
En este trabajo, se desarrollará el modelo semi-discreto para la ecuación del calor,
utilizando el método de diferencias finitas y el de los elementos finitos, siguiendo una semi-
discretización espacial.
14
2.2 Modelo de la Ecuación del Calor Semi-discreto Espacial
Para el desarrollo de este modelo semi-discreto espacial, se mantendrá la variable temporal
continua y se discretizará la variable espacial, este modelo también es llamado Espacio de
Estado.
Figura 2. 1 Esquema de discretización espacial de una barra.
El sistema en estudio es una barra (ver Fig. 2.1), que se encuentra sometida a un flujo de
calor u(t) bajo la influencia de la distribución espacial h(x) y en uno de sus extremos se
encuentra aislado mientras que en el otro extremo se mantiene a 0° C.
Las consideraciones físicas anteriores conducen a la EDP:
bxaxTxTtTtbTtTtaT
tbxatuxhx
txTt
txTC
I
b
a
p
)()0,(0),(0),(
0,)()(),(),(2
2
(2.10)
donde, es la densidad del material en 3/ mkg , pC es la capacidad calorífica en KkgJ /
y es la conductividad térmica en KmW / , t es el tiempo en s , x es la coordenada
espacial en m y u(t) es la fuente de calor aplicada a la barra en la posición x definida a
X Entrada Calor
a b x
15
través de función de distribución h(x) y en el tiempo t, en 3/ mW . Para una barra metálica
el valor de kmJCp36 /10 y KmW /100
A continuación, se describe el procedimiento para realizar la discretización espacial de la
ecuación del calor por el método de diferencias finitas y de los elementos finitos.
2.2.1 Discretización espacial de la ecuación del calor por el método de diferencias finitas
El método de diferencias finitas se puede formular en varias dimensiones. Para simplificar
su presentación y sin perdida de generalidad, se presentará su desarrollo en el caso de una
viga unidimensional. El caso de dimensiones mayores a uno se desarrolla de forma análoga.
Utilizando la aproximación en diferencias hacia adelante o el esquema Forward (FDS) para
construir una aproximación para la primera derivada, se expresa como:
ii
ii
i xxTT
xT
1
1
(2.11)
Figura 2. 2 Esquema de discretización espacial de una barra, para K+2 puntos en la
malla.
T0 Ti-1 Ti Ti+1 TK+1
X
Entrada Calor
x0 xi-1 xi xi+1 xK+1
16
Geométricamente, la segunda derivada es la pendiente de la línea tangente a la curva que
representa la primera derivada. Utilizando la aproximación en diferencias hacia atrás o el
esquema Backward (BDS), para la aproximación de la segunda derivada, se tiene la
expresión:
ii
ii
i xxxT
xT
xT
1
12
2
(2.12)
Combinado la aproximación FDS (2.11) de la primera derivada y la BDS de la segunda
derivada (2.12), se obtiene la formulación centrada:
)()()()()(
12
1
1111112
2
iiii
iiiiiiiii
i xxxxxxTxxTxxT
xT
(2.13)
Si se considera que los puntos de la malla están igualmente espaciados, con un paso x , la
ecuación anterior se expresa como:
211
2
2 2x
TTTxT iii
i
(2.14)
Para la ecuación (2.10), la semi-discretización de la EDP que representa el modelo del calor
por el método de diferencias finitas conduce al siguiente sistema de EDOs:
)()()2(22
111 tuxhG
xTTTG
dtdT
iiiii
(2.15)
donde, pC
G
1 y
pCG
12 , para una malla con espaciamiento constante Δx.
17
Evaluando (2.15) en cada punto interior ),,1( Kixi de la malla, se obtiene:
)()(2
)()(2
)()(2
)()(2
)()(2
2121
21
121
1221
121
2211
32421
321
2213
22321
221
1212
12221
121
0211
tuxhGTx
GTx
GTx
Gdt
dT
tuxhGTx
GTx
GTx
Gdt
dT
tuxhGTx
GTx
GTx
Gdt
dT
tuxhGTx
GTx
GTx
Gdt
dT
tuxhGTx
GTx
GTx
Gdt
dT
kKKKK
kKKKK
(2.16)
donde, T0 y Tk+1, son dadas por las condiciones de frontera, es decir: aTT 0 y bk TT 1 . Si
T es un vector columna cuya traspuesta es ),,,,( 321 KTTTT luego este conjunto de
ecuaciones puede escribirse en forma matricial, donde
b
a
K T
T
tuxG
xh
xhxh
GBx
GA0
0
)(
)(
)()(
,
21001200
210012
21
2
1
221
(2.17)
Se define T (t) como el vector que contiene la temperatura en cada nodo interior de la malla
en el instante t, la ecuación (2.16), se escribe como:
)()()( tButATdt
tdT
(2.18)
18
Donde A es una matriz tridiagonal de dimensión K×K, con los coeficientes de la
discretización espacial y B es el conjunto de vectores filas de dimensión K×1, con la
posición de los actuadores o fuentes de calor.
La ecuación (2.18), corresponde al sistema dinámico original o de referencia de dimensión
K (donde K es equivalente al número de puntos o nodos internos de la malla).
2.2.2 Discretización espacial de la ecuación del calor por el método de los elementos finitos
Así como en el método de diferencias finitas, el método de los elementos finitos se puede
formular en varias dimensiones. Para simplificar su presentación y sin pérdida de
generalidad, se presentará su desarrollo en el caso de una viga unidimensional como se ha
presentando anteriormente. El caso de dimensiones mayores a uno se desarrolla de forma
análoga y, evidentemente, la visualización de las funciones de base y su manipulación se
vuelve más complicada. Se pretende además obtener el modelo de la ecuación del calor
semidiscreto que tenga la misma forma general, independiente del método de discretización
utilizado y de las condiciones de frontera, para luego utilizar el método POD para obtener
el modelo reducido.
El método de los elementos finitos (MEF) [19], es uno de los métodos más frecuentemente
utilizados en la actualidad, consiste en buscar soluciones aproximadas del problema a
resolver en un espacio de dimensión finita de funciones mediante una formulación
variacional del problema, a partir de la cual se obtiene la proyección de la solución de la
EDP sobre el espacio de dimensión finita considerado, según un criterio de proyección que
está influenciado fuertemente por las características del operador diferencial que define a la
EDP considerada. Esta metodología se aplica en el marco de las ecuaciones de evolución y
en particular en el de la ecuación del calor, objeto de este trabajo.
A continuación se presenta, la utilización del MEF para la obtención del modelo semi-
discreto espacial asociado al problema del calor.
19
Se considera la partición ihaxx iKii
,1
0 , donde 1
Kabh . A cada nodo xi,
,1,,0 Ki se asocia una función base )(xi continua y lineal a trozos sobre [a , b], tal
que )( li x δil , 1,,0 Ki y 1,,0 Kl , siendo δ la delta de Kronecker.
A continuación se muestra una gráfica de la función de base y su derivada.
Figura 2. 3 Funciones de Base
Se considera la ecuación del calor de la forma general:
xxTxT
xgnT
txutxT
txfTtT
N
Dd
)()0,(
en
0yen),(
),0(),(en
0
(2.18)
X0=a X1 X2 X3 Xj-1 Xj Xj+1 XK XK+1=b
hj hj+1
-1/hj+1
1/hj
1 )(2 x
X0=a X1 X2 X3 Xj-1 Xj Xj+1 XK XK+1=b
)(xi
)(xi
)(xj
)(2 x )(xj
20
donde: ,pC f representa una función en , ,,ba du es la condición isotérmica
en la frontera de Dirichlet D , g es el flujo de calor en la frontera de Neumann N , n es el
vector unitario normal saliente en la frontera de Neumann y )(0 xT es la condición inicial.
En el caso unidimensional la condición de frontera du es igual a las condiciones de frontera
aT y bT o aT y bT en a y b , respectivamente, o una combinación conveniente de ellas, que
indican usualmente temperatura constante o flujo de calor en los extremos de la barra.
Se busca aproximaciones de la solución en un espacio de dimensión infinita V, mediante la
formulación variacional o integral. La forma variacional de la ecuación del calor, con las
condiciones de frontera, se obtiene multiplicando la ecuación del calor por la función de
prueba o arbitraria vV e integrando en .
dxfvvdxTvdxtxTdtd
),(
(2.19)
La integración por partes del término ,vdxT
resulta en:
dsvnTvdxTvdxT
(2.20)
Esta identidad es llamada 1a Identidad de Green, en una dimensión se reduce a la famosa
formula de integración por partes.
Utilizando la Identidad de Green en la formulación (2.19) resulta la formulación débil
siguiente:
dsgvdxfvvdxTvdxtxTdtd
N
),( (2.21)
21
Las condiciones no homogéneas de Dirichlet asociadas a la frontera de Dirichlet D , se
incorporan usando la descomposición .DuTw Se homogeniza las condiciones de
Dirichlet, es decir 0w en la frontera D . De este modo la formulación débil con
condiciones de Dirichlet homogéneas, se expresan como:
dxvudsgvdxfvvdxwvdxtxwdtd
D
N
),( (2.22)
La ecuación (2.22), es la ecuación variacional y la solución del problema variacional es
también llamada, la solución débil de la ecuación diferencial del calor.
Para la implementación computacional, el problema de la forma débil (2.22), se proyecta en
un espacio funcional de dimensión finita Vh, donde las funciones wh y vh pertenecen al
espacio de funciones Vh.
dxvudsgvdxfvdxvwdxvtxwdtd
hDhhhhhhh
N
),( (2.23)
El siguiente paso es definir un subespacio K-dimensional donde se determinará la
proyección de la solución débil, luego de introducir las condiciones de frontera. La
ecuación variacional se cumple para K funciones de prueba hj V , para Kj ,,1 que
forma la base, es decir:
dxudsgdxfdxwdxtxwdtd
jDhjjjhjh
N
),( (2.24)
Se aproxima la solución de la ecuación del calor, para algunas bases hV como:
22
M
llDlDh
K
iiih xtutxuxtCtxw
11)()(),()()(),(
(2.25)
donde, Kji ,,1, y ,,,1 Ml M corresponde al número de actuadores, dadas por la
condiciones de frontera del problema.
Se observa que se trata de una función que depende tanto de la variable espacial, como de
la temporal. En el marco de los elementos finitos Cj (t) son los coeficientes de wh. A través
del método Galerkin se obtienen las ecuaciones que gobiernan la dinámica de los
coeficientes Cj(t) de la solución aproximada.
Ahora, reemplazamos la aproximación de la solución Ec. (2.25), en la Ec. (2.24) y se
obtiene un sistema de ecuaciones, de la forma:
Kjpara
dxu
dsgdxftCdxdt
dCdx
M
ljlDl
jjij
K
ii
K
i
iji
N
,...,1
)(
1
11
(2.26)
Utilizando la notación matricial siguiente:
dxBdsgGdxfF
dxRdxMCCC
jlljjjjj
jiijjiijT
K
N
),,( 1
(2.27)
Se reescribe el sistema como:
DBuGFRCdtdCM
(2.28)
23
Conociéndose la solución inicial, se resuelve el problema (2.28), obteniéndose una solución
aproximada de la ecuación del calor como:
M
llDl
K
iiiDhhh xtuxtCuwT
11)()()()(
(2.29)
Para el caso particular, donde, ,0 Dugf tenemos el siguiente modelo:
RCdtdCM
(2.30)
donde, M es la matriz de masa y R es la de rigidez. Los elementos rij de la matriz de rigidez
R son:
dxxxdxxxr j
b
aixj
b
axiij )()()()( ,, (2.31)
Todos estos coeficientes pueden calcularse explícitamente y constituyen en ambos casos
matrices simétricas tridiagonales, con coeficientes constantes a lo largo de las diagonales y
de las sub y super-diagonales. Si la partición es uniforme, a paso constante espacialmente
1
K
abhh j , se obtiene:
Kjhhh
dxh
dxh
xxrjj
x
x j
x
x jjjjj
j
j
j
j
,.121111))(),((1
21
2
1
1
(2.32)
Kjh
dxh
xxrj
x
x jjjjj
j
j
,.211))(),((1
2)1()1(
(2.33)
24
210010
010012
hR
(2.34)
Los elementos de mij de la matriz de masa M son:
dxxxm j
b
aiij )()( (2.35)
De manera más precisa, los elementos de ijm se calculan como:
Kjhhhdx
hxx
dxh
xxm jj
x
x j
jx
x j
jjj
j
j
j
j
,,13
233
)()( 12
1
21
2
2 1
1
(2.36)
Kjhhdx
hxx
m jx
x j
jjj
j
j
,,266
)(2
1
2
2
)1(
(2.37)
3/26/1006/10
06/1006/13/2
hM (2.38)
La discretización de la ecuación del calor, resulta en un sistema de K ecuaciones
diferenciales lineales acopladas de la forma
)0(00)()(
cttcRtcM
Ó
)0(00)()( 1
cttcRMtc
(2.39)
25
Con la condición inicial igual a la función .
La ecuación (2.39), se expresa en la forma general, igual a:
)()()( tButATdt
tdT (2.40)
Donde en este caso la matriz RMA 1 y )(tBu corresponde a los actuadores o señal de
entrada, tal como la temperatura o flujo del calor, dadas por las condiciones de frontera del
problema.
La solución por el método de los elementos finitos se obtiene, a través del programa
PODFEM.m, desarrollado en este trabajo de grado, utilizando el paquete Matlab (ver
Anexo C).
En esta sección, se halló el modelo de referencia de la ecuación del calor sobre un espacio
de aproximación de dimensión K, utilizando el método de diferencias finitas y de los
elementos finitos, donde K es el número de grados de libertad utilizados para la
aproximación de la ecuación de calor. Los modelos de la ecuación del calor semi-discreto
obtenidos se diferencian en los valores que toma la matriz A y B de acuerdo al método de
discretización que se utilice.
26
3 CAPÍTULO III
DESCRIPCIÓN DEL POD Y SU USO PARA OBTENER EL MODELO REDUCIDO
3.1 Descripción del Método POD El método POD fue propuesto en el contexto de turbulencia por Lumley [20] en 1970; en
otras disciplinas se conoce como:
Análisis de Componentes Principales (ACP) [21]
Descomposición del Valor Singular (DVS) [21]
Funciones Ortogonales Empíricas (FOE) [22]
Descomposición Karhunen – Loéve (DKL) [23]
Dentro de las aplicaciones del método POD, entre otras, se mencionan las siguientes:
Reconocimiento de patrones [24].
Procesamiento de imágenes [5].
Compresión de datos [25].
Caracterización de atractores periódicos [26].
Identificación y control en Ingeniería Química [27].
27
Para ilustrar el método POD, se considera como ejemplo una barra en una dimensión de
longitud L=10 cm y se analiza primero, el caso, cuando se supone que la barra se calienta
en el extremo izquierdo y se supone además, que la distribución de temperatura a lo largo
de la barra es inicialmente uniforme, con un valor de 25 °C. Después, la temperatura en el
extremo izquierdo se aumenta a 80 °C y se mantiene a este nivel durante cierto tiempo.
En el modelo numérico, la barra unidimensional se divide en 400 nodos, con un
025,0X cm. El modelo numérico abarca así, 400 ecuaciones que describen la
temperatura en cada punto de la malla, es decir; el modelo de referencia de la ecuación del
calor sobre un espacio de aproximación de dimensión K=400.
En la simulación del fenómeno utilizando el modelo númerico (ver Fig. 3.1), se observa
que la distribución espacial, como la distribución de temperatura depende de un parámetro
(tiempo) y que están mutuamente relacionadas, la información sobre esta interrelación
puede ser extraída, esto es, la distribución de temperatura como resultado de la señal de
excitación en el extremo izquierdo a diferentes intervalos de tiempo, muestra un patrón
principal que se repite.
0
0.05
0.1
0
1
2
20
30
40
50
60
70
80
x(m)
Solución EDPs por Toolbox Matlab
t(s)
T (°C
)
0 0.05 0.120
30
40
50
60
70
80
x(m)
T (°C
)
Figura 3. 1 Solución para cuando la barra se calienta en el extremo izquierdo.
28
El ejemplo muestra que aunque la barra se ha discretizado en un número grande de nodos
en la malla a lo largo del dominio espacial, la dinámica espacial (tal como, la distribución
de temperatura a lo largo de la barra en cada paso de tiempo) muestra cierta regularidad o
cierta tendencia, también llamada patrón (en terminología matemática se denomina como
funciones de base), ver Fig. 3.2.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
30
40
50
60
70
80T°C para t = 2.
x(m)
T°C
POD 1
Figura 3. 2 Patrón principal de la distribución de la temperatura cuando la barra se
calienta en el extremo izquierdo.
El método de funciones ortogonales propias (POD), se basa en los patrones generados por
los datos de la simulación o de experimentos. Estos datos son recogidos por excitaciones
del proceso físico con manipulaciones de variables de proceso (entradas) y las
perturbaciones externas, tales como variaciones de energía a la entrada, composiciones
químicas, flujos y muchas otras. Puesto que los datos varían de distinta manera en función
de ciertas acciones físicas (es raramente al azar), los datos recogidos muestran
generalmente regularidad, esto es, cierto patrón que se repite.
El método POD extrae objetivamente los patrones o funciones de base óptimas de los datos
experimentales o simulados para describir las características de ese conjunto de datos. El
conjunto de las funciones de base es óptimo en la medida que ese número finito de
29
funciones, que son ortogonales en un “cierto sentido”, capture la mayor información o den
la “mejor” representación del sistema, que otros conjuntos de funciones en el mismo
espacio.
El método POD tiene algunas dificultades en la determinación de las funciones de base,
cuando los datos son muy grandes en cantidad. Para solucionar este problema, Sirovich
[21] en 1987, propuso el método de snapshots.
Con base en los snapshots, se obtiene un conjunto de funciones ortogonales que capturan la
mayor parte de la información. El método de snapshots es un procedimiento numérico que
puede ahorrar tiempo en la solución del problema del valor propio, necesario para el POD.
Mas precisamente, la idea del método POD, es separar la variable temporal y espacial de
los datos y expresar la temperatura como la combinación lineal de los coeficientes
temporales j y las funciones de base j espaciales, lo cual hace referencia a la solución
por variables separables de una ecuación diferencial parcial, como la ecuación de calor.
K
jjj xtxtT
1)()(),( (3.1)
donde las K funciones de base j , son ortogonales.
Como se puede apreciar, el desarrollo es parecido al de Fourier, pero sin obligar a priori a
que las funciones sean senos o cosenos, en el método POD la forma de las funciones de
base son las que indique la variabilidad de los datos disponibles.
3.1.1 Funciones de Base del POD
El problema clásico de las funciones ortogonales [22], también conocidas como
autofunciones, surge al intentar resolver un sistema de ecuaciones diferenciales lineales
i
30
sujetas a unas determinadas condiciones de frontera. La solución existe para determinados
valores (valores propios) de un parámetro λ que satisfacen una determinada ecuación:
iiiCoC , (3.2)
C es una matriz con los coeficientes de los operadores lineales del sistema de ecuaciones
diferenciales a resolver, los distintos λ que satisfacen la ecuación (3.2) se les llama valores
propios del sistema y a los i asociados a cada uno de esos λ, vectores propios.
La ecuación anterior también se puede expresar como:
00 ICoIC ii (3.3)
Donde, I es la matriz identidad y NKRI , ),,( 1 N , la matriz diagonal NNRI
tiene los valores propios en la diagonal, ),,( 1 Ndiag .
La matriz C se obtiene a partir del producto de otra matriz por su transpuesta (ver Anexo
A). Se puede demostrar que conduce a que la matriz C sea real y simétrica y en este caso
particular los valores propios gozan de propiedades específicas que sin demostrarlas, se
enuncian a continuación:
Los valores propios de una matriz real simétrica son todos reales.
Dos vectores propios asociados a dos valores propios distintos son ortogonales.
Una matriz real simétrica de dimensiones KK tiene K vectores propios
independientes.
Si la matriz además de simétrica y real es definida positiva, entonces sus valores
propios son todos positivos.
El problema de las funciones propias empíricas debe satisfacer la misma ecuación (3.2). La
diferencia radica en el hecho de que, para el problema clásico, es la física la que nos indica
la forma de la matriz C. En el caso empírico, los coeficientes de la matriz C se extraen de
31
los datos y lo que se intenta es explicar la variabilidad de los mismos con unas pocas
funciones: Los vectores propios o funciones propias.
Estas funciones propias se encuentran aplicando la siguiente condición: que su contribución
a la varianza de los datos (definida como valor cuadrático medio) sea máxima. Esto es, la
primera función propia conserva la mayor parte de la varianza de los datos, la segunda
función propia el mayor de la varianza restante y así sucesivamente, por lo tanto, los
valores propios son ordenados como 021 N , de este modo, es posible
representar un elevado porcentaje de la varianza de los datos con un número muy reducido
de funciones.
Se considera algunas de las propiedades de estas funciones:
Las funciones propias, proporcionan el método más eficiente de comprensión de los
datos. Ningún otro conjunto de funciones ortogonales puede describir los datos de
un modo más eficiente, en el sentido de explicar en los n primeros términos mayor
variabilidad de los datos [23].
Dado que el conjunto de funciones propias temporales y espaciales son ortogonales,
cada asociación )(),( tx ii representa un modo de variabilidad independiente
de cualquier otro de los n-1 restantes.
La representación de funciones propias es el mejor método en el sentido de ajuste de
los datos por mínimos cuadrados. Permite reducir el número de variables y
proporciona un método de eliminar el ruido o parte menos predecible de los datos.
Al tratarse de un conjunto ortogonal de funciones, recuerdan en cierto aspecto al
Análisis de Fourier, pero mientras que este último asume una variación sinusoidal
del conjunto de los datos, las funciones propias no asumen a priori forma alguna de
las funciones propias. Es la propia estructura de los datos la que determina dicha
forma.
Los valores propios son los que proporcionan los pesos de las funciones propias. Nos dan la
cantidad de valor cuadrático medio de los datos (varianza si se ha quitado la media)
asociada a cada función propia.
32
Las funciones de base del POD se obtienen por descomposición en valores propios de la
matriz de correlación. La matriz correlación (ver Anexo A), se construye de los datos de
temperatura en cada punto de la malla para los diferentes pasos de tiempo, como sigue:
TTN
C T1 (3.4)
C es la matriz de correlación y N es el número de pasos de tiempo o instantes de tiempo.
Los datos de temperatura pueden ser obtenidos de los datos experimentales o de la
simulación del modelo matemático, en el presente trabajo se obtienen por medio de la
simulación durante determinados instantes de tiempo.
La solución del problema del valor propio es numéricamente intensiva. Usualmente el
número de snapshots es menor que el número de puntos espaciales (puntos de la malla (K)).
Sirovich [18], propuso el método de snapshot para encontrar las funciones de base del
POD, por la descomposición de la matriz de correlación de NN, donde N es el número de
snapshots o de mediciones de temperatura en instantes temporales, en lugar de utilizar la
matriz de correlación de KK puntos espaciales. Esto permite un ahorro de tiempo y hacer
refinamientos en el dominio espacial en el que se trabaja, sin que esto repercuta en el
tiempo de CPU para el posterior análisis del POD.
Método de snapshots: La noción fundamental del método POD es el snapshots, el cual se
obtiene modelando matemáticamente el fenómeno o de los experimentos. El snapshots es el
vector de temperatura en tiempos instantáneos. Un conjunto de todos los snapshots es una
matriz rectangular de KN, donde K es el número de nodos y N es el número de snapshots.
El concepto de snapshots se ilustra por medio de un ejemplo. Considérese una barra
sometida a una fuente de calor y definida en el dominio espacial Lx ,0 , donde L es la
longitud de la barra. La barra es dividida en 2 nodos y la temperatura T(x, t) se obtiene para
2 pasos de tiempo. Los datos observados de Tsnap en este caso es una matriz de 22 con
33
el número de columnas igual al número de pasos de tiempo y el número de filas igual al
número de nodos. Se supone, que los datos de temperatura son:
),(),(),(),(
))2()1((2212
2111
txTtxTtxTtxT
TTTsnap (3.5)
Los pasos para determinar las funciones de base del POD, por el método de snapshots es el
siguiente:
Construir la matriz de snapshots snapT , de dimensión NK , donde N, es el
número de pasos de tiempo y K, es el número de puntos en la malla.
),(),(),(
),(),(),(),(),(),(
21
22212
12111
NKKK
N
N
snap
txTtxTtxT
txTtxTtxTtxTtxTtxT
T
(3.6)
Construir la matriz de correlación (ver anexo A), basada en los datos de los N
snapshots.
TsnapsnapN TT
NC 1
(3.7)
Realizar una descomposición de valores propios
niC iiiN ,,1 (3.8)
34
n ,,1 , son los vectores propios y n ,,1 , son los n valores más grandes de NC .
Cuanto mayor son los valores propios, más relevante son las funciones de base, por lo
tanto, para la selección de las n funciones de base se lleva a cabo por el control de los n
valores propios más grandes.
Elegir la función de base más energética
Los valores propios de la matriz de correlación, es la medida de la importancia de una
función base del POD.
El objetivo es caracterizar el conjunto de datos, del modo más energético posible, es
decir, se pretende encontrar una base ortogonal Nii 1 de tal modo que los primeros n
elementos de dicha base nos de la mejor descripción de los datos que tenemos, que
cualquier otra base ortogonal, para lo cual es necesario calcular:
%99,99
1
1
N
ii
n
ii
nE
(3.9)
Usualmente se llama energía a la cantidad nE [22], [24] y como criterio se escoge el
valor de nE como 0,9999, que indica el grado de truncamiento de (3.1), es decir,
cuando el modelo reducido capta más del 99,99% de la energía del modelo original.
Este criterio es el que se aplica en el presente trabajo. Existen otros criterios, como el de
Kayser [28], para cuando el valor propio sea mayor a 1 la capacidad de explicar la
varianza total está en el orden del 75,89% o bajo el criterio de Jolliffe [29], para cuando
el valor propio sea mayor a 0,7, la capacidad de explicar la varianza total está en el
orden del 94,89%. Estas referencias se tienen en cuenta a la hora de decidir que tan
eficiente es el nivel de predicción del modelo con las variables transformadas.
35
Calcular las funciones de base del método POD.
Los vectores propios n ,.....1 de NC , corresponden a los n valores propios más
grandes y se combinan linealmente con los valores instantáneos (snapshots) de T de
la siguiente manera,
niTT
x isnapisnap
i ,,11)(
(3.10)
donde nii x 1)(
, es la función de base del POD y 1i .
Por otro lado tenemos:
iiisnapT
snapTTN
1
(3.11)
Multiplicamos la Ec. (3.11) por snapT
isnapiisnapT
snapsnap TTTTN
1
(3.11)
Reenplazamos TsnapsnapN TT
NC 1
y de la Ec. (3.10) iisnapisnap TT en la Ec. (3.11)
iiiN
iisnap
isnapN
isnapiiisnapN
C
TT
C
TTC
(3.12) (3.13) (3.14)
Por lo tanto, iiiNC de modo que i es también un vector propio de CN, con i valor
propio asociado.
36
Observación: Si la dimensión más pequeña de Tsnap es mayor que 310 , entonces el
cálculo de la descomposición de valores propios es numéricamente intensiva. El paquete
Matlab, ofrece la posibilidad de encontrar los n valores propios más grandes en forma
iterativa, en lugar de calcular todos los valores propios. Se utiliza el programa desarrollado
en Matlab para obtener las funciones de base del POD, donde se utiliza la función eig para
calcular los valores propios, ver anexo C, el programa en Matlab PODeig.
3.1.2 Coeficientes del POD Asociados a las Funciones de Base
El cálculo de los coeficientes del POD se realiza mediante la proyección de Galerkin o por
medio de técnicas de identificación de sistemas, y la forma de proceder se explica a
continuación:
Utilizando el método de Galerkin, directamente en el modelo discreto de
conducción de calor.
Utilizando el método de Galerkin en el modelo continuo, los coeficientes se
obtienen, al evaluar el modelo en ecuaciones diferenciales ordinarias (EDOs) que
resultan de la semi-discretización espacial del modelo de la ecuación del calor.
Calculando los coeficientes, sobre la base de técnicas de identificación de
sistemas. La dinámica de )(tT , son consideradas como señal de entrada y el
conjunto de coeficientes ),(ti son tratados como salidas.
En el primer enfoque, se trata de reducir el modelo discreto, mediante la realización de la
proyección de Galerkin del modelo discreto sobre las funciones de base del POD.
37
El segundo enfoque resulta útil, por ejemplo, si se tiene la solución analítica de las
ecuaciones originales o para cuando se mantiene la variable temporal continua y se
discretiza la variable espacial o semi-discretización espacial.
El tercer enfoque se puede considerar como una alternativa, si no hay conocimiento de las
ecuaciones que describen el fenómeno físico y sólo se dispone de la data experimental. La
desventaja de este enfoque es que los coeficientes no se calculan de las ecuaciones
originales que representan el comportamiento físico del sistema.
Se presentará en las próximas secciones, cómo se determina los coeficientes α para el caso
de la ecuación del calor semi-discreto y para el caso cuando no se dispone de las ecuaciones
del modelo matemático. Se obtendrá el modelo reducido en función de los coeficientes del
POD, asociadas a las funciones de base.
3.2 Obtención del Modelo de la Ecuación del Calor Reducido
La aproximación usual para obtener modelos reducidos suele ser la misma para sistemas en
tiempo continuo que para sistemas en tiempo discreto. En este trabajo de obtendrá el
modelo reducido para sistemas en tiempo continuo, ya que en la mayoría de los casos las
conclusiones son extensibles sin excesiva dificultad para el caso de tiempo discreto.
A continuación se mencionan los métodos de reducción de modelos más importantes:
• Técnica de reducción basada en la proyección [1].
• Método de truncamiento balanceado [2].
• Método del subespacio de Krylov [3].
38
En el presente trabajo, para obtener el modelo reducido, se utilizará la técnica de reducción
basado en la proyección o llamada también método de reducción de la función de base.
Se presenta a continuación la metodología para hallar el modelo semi-discreto reducido
para la ecuación del calor, utilizando el método POD.
3.2.1 Obtención del Modelo de la Ecuación del Calor Semi-discreto Reducido
El modelo de la ecuación del calor semi-discreto, resulta de la discretización espacial del
modelo en EDP, el cual se expresa como:
)()()( tButATdt
tdT
(3.15)
Se reemplaza en la ecuación (3.15), la aproximación )()( ttT nn , donde
)(,),(1 xx nn y ,)(,,)()( 1 ttt n luego, aplicamos la proyección
de Galerkin para obtener un modelo dinámico para los coeficientes del POD, como sigue:
Definimos una función residual (error) para la ecuación (3.15), como:
)()()(),( tButATtTTTR (3.16)
Se reemplaza )(tT por la aproximación )(tTn en (3.16) y luego, la proyección del residual
),( nn TTR sobre el espacio formado por las funciones de base se iguala a cero, equivalente a
forzar a que el residual sea ortogonal para un número finito de funciones de base, por lo
tanto se cumple:
39
njTTR jnn ,,10),,( (3.17)
de donde , , es el producto interno o producto escalar de un espacio euclídeo.
De esta manera se obtiene como resultado la siguiente ecuación:
)()()( tButAt Tn
Tnn
Tn (3.18)
y debido a la ortogonalidad de las funciones de base nnTn I , se obtiene:
)()()( tButAt T
nTn (3.19)
El modelo de la ecuación del calor semi-discreto reducido, se obtiene en función de los
coeficientes del POD, como sigue:
)()()()()(
ttTtuBtAt
nn
rr
(3.20)
donde nTnr AA y BB T
nr , con la condición inicial para )(t igual a 0)0( .
Se ha reducido un sistema dinámico (que en general es de dimensión infinita) a un sistema
dinámico de dimensión finita, es decir, la solución pasa por resolver un sistema EDOs. Esta
construcción es la llamada proyección de Galerkin (ver Figura 3.2).
40
Figura 3. 3 Proyección de Galerkin.
Si el espacio es igual, entonces U =φ y el sistema reducido se obtiene a partir de la
proyección de Galerkin, donde la proyección es ortogonal T y si los espacios son
diferentes, el sistema reducido se obtiene a partir de la proyección de Petrov-Galerkin, en
este caso la proyección es oblicua TU .
En el paquete Matlab, se ilustra la solución de las EDOs que resulta de la discretización por
el método de los elementos finitos utilizando la matriz de masa y rigidez. Se resuelve
empleando Runge -Kutta con control sobre el paso temporal utilizando la función ode23.
En el presente trabajo se realiza las respectivas adaptaciones para las aplicaciones a
ejemplos de la ecuación diferencial del calor y que se presentan el próximo capítulo, con
sus respectivos desarrollos de los códigos en Matlab.
Sistema Reducido
0)0(0),,,(
T
T
UtuRU
Sistema Original KRI
0)0(0),,,(
TTtuTTR
Transformación Reducida
)()(1
txT i
n
iin
Sistema Reducido
0)0(0),,,(
tuR
U Proyección
41
3.2.2 Obtención del Modelo Empírico de la Ecuación del Calor Reducido
Para cuando no se tiene el modelo matemático del fenómeno físico y sólo se dispone de los
datos obtenidos experimentalmente, se utiliza la técnica de identificación de sistemas para
obtener los coeficientes α. La técnica de identificación de sistemas es la que se utiliza en el
análisis de componentes principales (ACP), pero realizando una extensión de esta en casos
de modelos dinámicos al considerar el tiempo como una variable espacial más, el cual
corresponde al método POD. Se seguirá el mismo procedimiento que el utilizado por el
método ACP para el procesamiento de imágenes, con las adaptaciones correspondientes
como se mencionó anteriormente para utilizar el método en el contexto de transferencia de
calor.
Los pasos para determinar los coeficientes del método POD por la técnica de identificación
de sistemas son:
Obtener los datos experimentales o simulados de temperatura a tiempos
seleccionados T(x, t), llamados snapshots.
Construir la matriz de snapshots, a través de la siguiente estructura:
),(),(),(
),(),(),(),(),(),(
21
22212
12111
NKKK
N
N
snap
txTtxTtxT
txTtxTtxTtxTtxTtxT
T
(3.21)
Construir la matriz de correlación (ver anexo A), basada en los datos de los N
snapshots.
TsnapsnapN TT
NC 1
(3.22)
42
Realizar una descomposición de valores propios
niC iiiN ,,1 (3.23)
Calcular los coeficientes como:
)()( xTt isnapi (3.24)
donde, las funciones de base φ se obtienen como en la Ec. (3.10).
La expansión de los coeficientes está dada por:
)()()()()()()( 2211 xtxtxttT Tnn
TT (3.25)
Se obtine la reconstrucción de la distribución de temperatura, reemplazando la ecuación
(3.24) en la (3.25):
)()()()()()()( 2211 xxTxxTxxTtT T
nnsnapT
snapT
snap (3.26)
3.3 Estimación del Error
Es inevitable la selección de criterios que nos permitan comparar entre varios estimadores
en la búsqueda del estimador óptimo para un problema determinado. Hasta el presente y
debido a la subjetividad de la elección de los criterios del error, no se ha llegado a un
consenso entre los diversos investigadores del área, existiendo dos grandes líneas que optan
por criterios que minimizan el error absoluto (norma L1) o la estimación del error
43
cuadrático (norma L2). Se analiza los resultados minimizando el error absoluto y el error
cuadrático para el caso de la ecuación del calor en una y dos dimensiones.
El error absoluto promedio e se calcula como:
)()(11
iTiTN
e n
N
i
(3.27)
donde )(iT es la temperatura obtenida experimentalmente o por medio de simulaciones y
)(iTn es la aproximación de la temperatura obtenida para el modelo reducido por la
construcción de las primeras n funciones de base del POD en un paso de tiempo i.
Debido a que los valores propios son los que proporcionan los pesos de las funciones de
base. Nos dan la cantidad de valor cuadrático medio de los datos (varianza si se ha quitado
la media) asociado a cada función de base. Se selecciona las n funciones de base, que
represente un elevado porcentaje de la varianza de los datos y por tanto el error cuadrático
medio es equivalente a los valores propios no tenidos en cuenta [33] y se calcula como:
N
nin
N
iiiTiT
Ne
1
2
1)()()(1
(3.28)
Hay un número infinito de funciones de base ortogonales, el objetivo consiste en
seleccionar un conjunto de estas que nos dé la aproximación óptima. Esta es la proyección
óptima en sentido de los mínimos cuadrados:
N
ni
TN
iiiTiT
Ne
1
2
1)()()(1
(3.29)
44
4 CAPÍTULO IV
APLICACIÓN DEL POD PARA LA OBTENCIÓN DE UN MODELO REDUCIDO ASOCIADO A UN MODELO DE LA
ECUACIÓN DEL CALOR SEMI-DISCRETO Algunos de los programas comerciales (Matlab, por ejemplo) están equipados de rutinas de
resolución de EDO, esto hace que se puedan obtener aproximaciones numéricas y
visualizaciones gráficas de las soluciones de sistemas de EDOs y por consiguiente de las
EDPs, lo cual supone sin duda una razón importante para validar el método POD utilizando
el modelo semi-discreto (continuo en la variable tiempo y realizando la discretización
espacial), ya que la mayoría de las conclusiones son extensibles para otro tipo de modelos.
El escalado o estandarización [34], se conoce como la operación de asignar
numéricamente una serie de pesos a cada variable para que al minimizar los errores de las
proyecciones de cada objeto sobre los componentes tengan el mismo valor estadístico. En
definitiva, se trata de asignar el escalado (cambio de unidades) y el peso de cada variable en
la construcción del modelo. Esta operación afecta indudablemente a la calidad del modelo
obtenido. La estandarización de los datos es a menudo preferible, cuando las variables están
en diferentes unidades o cuando la varianza de las diferentes columnas es importante, como
en este caso. Se puede normalizar los datos, dividiendo cada columna por su desviación
estándar, de esta manera, todas las variables contienen la misma varianza y el mismo peso
estadístico en la correlación.
Por consiguiente, para la obtención del modelo reducido utilizando el método POD, se
realiza el centrado con la media de los datos y el escalado o la normalización, con el
recíproco de la desviación estándar. Posteriormente, la solución normalizada se transforma
para obtener la solución deseada sin normalizar.
45
4.1 Modelo de Conducción del Calor en una Dimensión Con el objetivo de validar la metodología propuesta para obtener modelos reducidos
utilizando el método POD, a continuación se presenta un ejemplo, de una ecuación de tipo
parábolica tomada de la literatura [32], la cual dispone de la solución análitica, que nos
servirá para mostrar las bondades de la técnica POD. Por otra parte, se compara la
aproximación de la solución obtenida utilizando el método de los elementos finitos con el
modelo reducido POD.
4.1.1 Aplicación del POD para la Obtención del Modelo Reducido de la Ecuación del Calor Semi-discreto
Este es un ejemplo que ilustra la solución de la ecuación diferencial parcial del tipo
parabólico (4.1), obtenida por diferentes métodos: la solución analítica, la aproximación de
la solución por el método de los elementos finitos y la aproximación de la solución
utilizando el método POD.
2
22 ),(),(
xtxT
ttxT
(4.1)
Se hallará la solución en el intervalo 10 x , con un valor inicial dado en (4.2) y
condiciones de frontera (4.3).
)sin()0,( xxT
(4.2)
tetXT
tT
),1(
0),0(
(4.3)
46
Se tiene además, la solución analítica expresada por la ecuación (4.4).
)sin(),( xetxT t (4.4)
El programa desarrollado en Matlab POD_FEM_analitica1 (ver anexo C), ilustra la
solución de las EDOs, resultado de la discretización de la EDP (4.1), por el método de los
elementos finitos desde el punto de vista del método de Galerkin, el cual, resulta en la
siguiente ecuación (4.5).
)()()( tButATdt
tdT (4.5)
En este caso, la matriz hh RMA 1 y 0)( tu ya que no hay fuente de calor en este
problema, la matriz de masa Mh, se define en (4.6) y Rh constante o matriz de rigidez en
(4.7).
otrojisih
jisihM ij
016/
3/22
2
(4.6)
otrojisih
jisihRij
01/1
/2
(4.7)
La solución de la ecuación (4.1), por el método de los elementos finitos utilizando 20 nodos
y la solución analítica, se muestra en la Figura 4.1. Se puede apreciar, que se debe refinar la
malla para obtener mejor precisión con el método MEF.
47
0
0.5
1
0
1
2
0
0.2
0.4
0.6
0.8
1
espacio
Solución MEF:20 nodos
tiempo
T
0
0.5
1
0
1
2
0
0.2
0.4
0.6
0.8
1
espacio x
Solución Analítica T= exp(-t)*sin(pi*x).
tiempo t
T
Figura 4. 1 Solución utilizando MEF con 20 grados de libertad y la solución analítica
El método POD, parte de los snapshots (temperaturas en los nodos) obtenidos de la
simulación de la ecuación 4.1, para la cual se utiliza el Toolbox de Matlab para la solución
de EDPs, para posteriormente construir la matriz de correlación de cuya descomposición se
obtiene los vectores propios, necesarios para construir la función de base truncada, como se
describe en secciones anteriores.
Debido a la fuerte correlación de los snapshots, el decaimiento de los valores propios de la
matriz de correlación es rápido, como resultado, sólo las primeras n funciones de base son
necesarias para obtener el modelo reducido. Una vez que las funciones de base son
conocidas, se obtiene la aproximación de la distribución de temperatura con una precisión
aceptable. Ahora, el método POD y la proyección de Galerkin, se utilizan para formular el
sistema de ecuaciones en términos de las nuevas incognitas (coeficientes del POD), para
construir el modelo reducido de la forma:
48
)()()()()(
ttTtuBtAt
nn
rr
(4.8)
donde nTnr AA , BB T
nr , con la condición inicial para )(t igual a
)sin()0( xTn . El conjunto de funciones de base son, ))(,),(),(( 21 xxx nn y
los coeficientes corresponden a ))(,),(),(()( 21 kkkk n .
Se obtiene el modelo reducido utilizando 1 función ortogonal propia (POD 1), que
corresponde al primer valor propio más grande, capturando más del 99,99% de la
información. Por lo tanto, para el modelo reducido, el conjunto de ecuaciones que se
necesitan solucionar, para hallar los coeficientes )(tj con n=1, es:
)()()()()(
kkTkuBkAk
nn
rr
(4.9)
donde, 11 AA T
r y BB Tr 1 , con la condición inicial para )(k es igual a
)sin()0( 1 xT .
El modelo reducido, en función de los coeficientes del POD, es de la forma:
)()( 11 kAk T (4.10)
donde en este caso la matriz hh RMA 1 y u(t)=0, ya que no hay fuentes de calor.
49
Ahora, reemplazamos las funciones de base ))(( 1 x y los coeficientes ))(()( 1 tt , se
calculan resolviendo la ecuación (4.10), para obtener la reconstrucción de la distribución de
temperatura como:
)(),(),( 1 ttxTtxT (4.11)
Figura 4. 2 Solución Analítica y POD 1(1a Función Ortogonal Propia).
En la Figura 4.2, se muestra la aproximación de la solución con el modelo reducido,
utilizando una función ortogonal propia (POD 1), como se observa en dicha Figura, la
representación de la solución con el modelo reducido, es similar a la obtenida con la
solución analítica.
En la Figura 4.3, se compara las diferentes soluciones obtenidas para un tiempo de 2s y 20
nodos en la malla, utilizando el método de los elementos finitos, la solución analítica y el
modelo reducido utilizando el método Galerkin (PODGalerkin 1) y utilizando el modelo
empírico reducido (PODEmpírico 1).
50
Figura 4. 3 Diferentes soluciones obtenidas utilizando: El Método de los Elementos
Finitos con 20 nodos, la Solución Analítica y POD 1(Empírico y Galerkin).
Se observa que el comportamiento del modelo reducido POD 1, es similar, al mostrado con
la solución analítica, para 20 puntos en la malla. Pero si nos acercamos a dos puntos, que se
muestra de la Figura 4.3 inferior, se observa que la aproximación de la temperatura
utilizando el modelo reducido POD-Empírico, es menos precisa que por los otros métodos.
51
Figura 4. 4 Diferentes soluciones obtenidas utilizando: El Método de los Elementos
Finitos con 400 nodos, la Solución Analítica y POD 1(Empírico y Galerkin).
En la figura 4.4 (en la parte inferior de la Figura, se hace un acercamientos de algunos
puntos o nodos), se muestra las diferentes aproximaciones de la temperatura pero utilizando
el método de los elementos finitos con 400 nodos y el modelo reducido obtenido utilizando
una matriz de snapshots de 400x120, donde se aprecia que se obtiene una mayor precisión.
El error entre el modelo original y el modelo reducido, para los 120 snapshots, se define
como [1] :
120
11 )()(
1201
kkTkTe (4.12)
Se obtiene para este ejemplo un error del orden de 310 , como se aprecia en la Figura 4.5.
52
Figura 4. 5 Error Absoluto entre el Modelo Reducido con 1 grado libertad y la
solución analítica. Con 20 puntos en la malla.
Figura 4. 6 Error Absoluto entre el Modelo Reducido con 1 grado libertad y la solución analítica. Con 400 puntos en la malla.
53
Tabla 4.1 Error absoluto para diferentes soluciones utilizando 20 y 400 nodos.
Solución Error(Asociado 20 nodos) Error(Asociado 400 nodos)
MEF-Analítica 8,010-3 4,910-4
PODGalerkin- Analítica 8,010-3 4,910-4
PODEmpírico- Analítica 17,010-3 9,610-4
El modelo reducido (PODGalerkin y PODEmpírico), simula en forma eficiente la dinámica
original, como se muestra en la Fig. 4.5 y Fig. 4.6, con sólo un error absoluto del orden de 310 , cuando se simula con 20 puntos en la malla y un error del orden de 410 cuando se
utiliza 400 puntos en la malla, como se aprecia en la Tabla 4.1. También se observa, un
menor error absoluto, cuando se obtiene el modelo reducido utilizando el método Galerkin,
que al obtener el modelo reducido empírico.
En general, cuando se refina la malla, la aproximación de las soluciones por los diferentes
métodos son similares a la obtenida con la solución analítica, pero con la ventaja del
método POD que utiliza, sólamente una función base o es de dimensión 1120 (1
corresponde a la dimensión espacial y 120 es la dimensión temporal) y para los demás
métodos la dimensión es 400120, (400 corresponde a la dimensión espacial y 120 es la
dimensión temporal).
La solución en cada paso de tiempo se obtiene de la discretización espacial del dominio de
x en 400 nodos, para cada nodo de la malla se aplica la ecuación del calor por lo que el
orden del modelo original es de 400. El modelo de orden reducido (4.10) consta de una
ODE, de ahí que la complejidad sea mucho menor.
54
4.2 Modelo Empírico Reducido
Para la obtención del modelo reducido, se tiene en cuenta los datos generados o simulados
y la ecuación del modelo de transferencia de calor, como se ilustró en los anteriores
ejemplos. Sin embargo, cuando no se tiene el modelo matemático y sólo se dispone de los
datos simulados y/o experimentales, se utiliza la técnica de identificación de sistemas para
reconstruir los datos y hallar el modelo empírico reducido [27]. En estos casos, la técnica
de identificación de sistemas es comúnmente utilizada en el análisis de componentes
principales (ACP) [21]. En nuestro caso, se aplicará a modelos dinámicos considerando el
tiempo como una variable espacial adicional. De esta manera se seguirá el mismo
procedimiento utilizado en el ACP, el cual se muestra en el Anexo B, a través de ejemplos
de procesamiento de imágenes, para posteriormente aplicarlo al sistema de nuestro interés,
es decir, a ejemplos en transferencia del calor, con las correspondientes adaptaciones. A
continuación se presentan los pasos principales para la aplicación del método de ACP
adaptado a modelos dinámicos, el cual representará el modelo POD para la obtención del
modelo empírico reducido de nuestro sistema.
Los pasos para determinar los coeficientes del método POD por la técnica de identificación
de sistemas aplicados a un caso de transferencia de calor se presentó en la sección 3.2.2.
Una vez ya plasmada la metodología a utilizar (sección 3.2.2), se presenta algunos ejemplos
de aplicación del método de POD en el procesamiento de imágenes (Anexo C) y a
continuación, en transferencia de calor.
55
4.2.1 Aplicación del POD para la Obtención de un Modelo Empírico Reducido de Transferencia de Calor en una Dimensión
Con el fin de aplicar el método POD para la obtención del modelo empírico reducido de
transferencia de calor, es necesario proveer de los datos del proceso físico temporales y
espaciales, para lo cual se simula el sistema descrito por la siguiente ecuación.
2
2
xT
tTcp
(4.13)
La simulación del proceso de transferencia de calor en una dimensión, se realizó utilizando
el Toolbox de Matlab con las condición inicial CT 250 y condiciones en la frontera para
x=0, CT 200 y para 0,1,0
nTmx , con un valor de smkCp 4410/ . Los
resultados se obtienen del programa PDE1DIM.m, desarrollado en Matlab (ver anexo C).
En la Figura 4.7, se muestran los snapshots obtenidos de la simulación de la ecuación 4.10,
para cuando se supone que la barra se calienta en el extremo izquierdo. Se utiliza 400
puntos en la malla (nodos), para una barra de longitud igual a 0.1 m y 120 pasos de tiempo
o para 2 s.
00.01
0.020.03
0.040.05
0.060.07
0.080.09
0.1
1
1.5
2
2.5
3
3.5
4
4.5
5
20
40
60
80
100
120
140
160
180
200
Distancia x(m)
solución numérica con 400 puntos en la malla, 120 pasos de tiempo
Tiempo t(s)
Tem
pera
tura
(°C
)
Figura 4. 7 Snapshots de temperatura cuando se calienta la barra en el lado izquierdo, en 3D.
56
En la Figura 4.8, se muestra la distribución de temperatura desde el primer paso de tiempo
con k=1 hasta k=120, la solución obtenida por el MEF corresponde a una matriz de
dimensión 400120 (puntos en la mallapasos de tiempo), el cual se toma como referencia
y nos permitirá comparar los resultados con los obtenidos a través del modelo reducido
POD.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
40
60
80
100
120
140
160
180
200solución numérica con 400 puntos en la malla y 120 pasos de tiempo
Distancia x(m)
Tem
pera
tura
(°C)
valores de k=1,...,120
Figura 4. 8 Snapshots de temperatura, cuando se calienta la barra en el lado izquierdo, en 2D.
0 20 40 60 80 100 12010
-35
10-30
10-25
10-20
10-15
10-10
10-5
100
105
n- valores propios
valor
es pr
opios
espectro de los valores propios de los snapshots
Figura 4. 9 Espectro de los valores propios de los snapshots.
Se muestra el espectro de los valores propios (ver Figura 4.9), resultado de la
descomposición de la matriz de correlación C y en la Figura 4.10, se grafica el logaritmo
57
de 1- nE , con nE , formulada en la ecuación (3.9), en donde, se aprecia mejor los valores
propios no cero. Estas 2 Figuras se utilizan para escoger el valor de n o el grado de
truncamiento para la representación de la distribución de temperatura cuando se supone que
la barra se calienta en el extremo izquierdo, para este caso se toma n=8, que corresponde al
)1log( nE con un valor del orden de 1010 . Entre más cerca sea el valor de nE a 1, mejor
es la aproximación por la función base del POD.
0 5 10 15 20 25 3010
-16
10-14
10-12
10-10
10-8
10-6
10-4
10-2
100
indice - valores propios(n)
1-En
espectro de los valores propios de los snapshots
Figura 4. 10 Espectro de los valores propios. Valores propios (n) vs. 1-En
Se observa el rápido decaimiento de los valores propios en las Figuras 4.9 y 4.10. Esto
indica la baja dimensión que posee para este ejemplo, ya que si la dimensión fuera mayor,
necesariamente tendríamos más funciones de base asociadas a los valores propios mayores.
Usualmente, como ya se mencionó, se considera que la dimensión es aquel valor de n, tal
que 9999,0nE o equivalente a 4101 nE , donde se capta más del 99,99% de la
energía.
Las primeras funciones ortogonales propias están asociadas a los valores propios, por lo
tanto, son las más relevantes, como se puede observar en el porcentaje de los primeros
valores propios (ver Tabla 4.2).
58
Tabla 4.2. Primeros valores propios
# % acum.
1 0,9307030 93,07030 93,07030
2 0,621751 6,21751 99,28780
3 0,0064001 0,64001 99,92780
4 0,0006553 0,06553 99,99340
5 0,0000608 0,00608 99,99940
6 4e-6 0,00051 99,99995
7 4e-7 4e-5 99,99999
8 7e-8 7e-6 99,99999
El porcentaje de valores propios acumulado para las primeras funciones de base (n=8), es
del 99,9999%. El cual nos indica, que con la función base utilizada, se obtiene una buena
representación del modelo original (ver Fig. 4.11).
0 0.05 0.10
50
100
150
200100% original
0 0.05 0.10
50
100
150
200POD 1
0 0.05 0.10
50
100
150
200POD 2
0 0.05 0.10
50
100
150
200POD 3
0 0.05 0.10
50
100
150
200POD 4
0 0.05 0.10
50
100
150
200POD 8
Figura 4. 11 Representación del Modelo, con las primeras Funciones de Base del POD.
59
La solución del modelo original de orden 400 y del modelo reducido de orden 8, se muestra
en la Figura 4.12. Se compara la temperatura para un paso de tiempo de k=120 y se puede
observar que el modelo de orden reducido se aproxima muy bien al modelo original.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
40
60
80
100
120
140
160
180
200solución k=120
Distancia x(m)
Tem
pera
tura
(°C)
original 400 Nodos
reducido POD 8
Figura 4. 12 Modelo Reducido y el Modelo Original para un paso de tiempo k=120.
Para validar del modelo reducido, se obtiene el error absoluto promedio, ecuación (4.14),
entre el modelo de reducido de orden 8 y el modelo original de orden 400, para k= 120
pasos de tiempo.
120
18 )()(
1201
kkTkTe (4.14)
60
00.02
0.040.06
0.080.1
1
2
3
4
50
0.5
1
1.5
2
2.5
3
x 10-3
Distancia x(m)
Error absoluto
Tiempo t(s)
Tem
pera
tura
(°C)
Figura 4. 13 Error absoluto en 3D.
Por lo tanto, el modelo de orden reducido simula en forma eficiente la dinámica original,
con sólo un error absoluto de C0035,0 para t=2s, como se observa en la Figura 4.13.
4.3 Influencia de las Condiciones de Frontera en el Modelo Reducido Se analiza diferentes condiciones de frontera, para el caso de transferencia de calor en una
dimensión, con el fin de estudiar la influencia de estas al generar el modelo reducido. Para
los tres casos que se analizarán, se supone que la barra inicialmente se encuentra a 25 ° C y
posteriormente se calienta a 80 ° C.
0
0.05
0.1
0
1
2
20
30
40
50
60
70
80
x(m)
Solución EDPs por Toolbox Matlab
t(s)
T (°C
)
0 0.05 0.120
30
40
50
60
70
80
x(m)
T (°C
)
Figura 4. 14 Solución para cuando la barra se calienta en el extremo izquierdo.
61
En el primer caso, se supone que la barra se calienta en el extremo izquierdo, manteniendo
el otro extremo aislado, como se aprecia en la Figura 4.14 y al analizar el espectro de los
valores propios (ver Fig. 4.15), nos permite seleccionar las primeras 7 funciones de base,
que corresponde a un modelo reducido (POD 7), con un error absoluto máximo de 310 ,
dichos resultados se observan en la Figura 4.16.
0 5 10 15 2010
-30
10-25
10-20
10-15
10-10
10-5
100
105
Número valores propios
log va
lores
prop
ios
espectro de valores propios de los snapshots
0 5 10 1510
-16
10-14
10-12
10-10
10-8
10-6
10-4
10-2
100
Número valores propios
log 1-
En
Figura 4. 15 Espectro de valores propios. La barra se calienta en el extremo izquierdo
0
0.05
0.1
0
1
2
20
40
60
80
100
x(m)
POD 7
y(m)
T(°C
)
0
0.05
0.1
0
1
2
0
0.5
1
1.5
2
2.5
x 10-3
x(m)
modelo reducido orden5 y Toolbox de Matlab
t(s)
Erro
r
Figura 4. 16 Solución con 7 POD, para cuando la barra se calienta en el extremo
izquierdo.
62
0
0.05
0.1
0
1
2
0
20
40
60
80
x(m)
Solución EDPs por Toolbox Matlab
t(s)
T(°
C)
0 0.05 0.10
10
20
30
40
50
60
70
80
espacioS
oluc
ión
Figura 4. 17 Solución para cuando la barra se calienta en el extremo derecho.
En el segundo caso, se supone que la barra se calienta en el extremo derecho,
permaneciendo el otro extremo aislado, como se muestra en la Figura 4.17. Se obtiene el
modelo reducido utilizando el método POD de orden 7 (POD 7), con un error absoluto
máximo 310 , resultados que se obtienen al hallar los valores propios (ver Fig. 4.18) y la
aproximación de la solución del modelo reducido (POD 7), como se aprecia en las Figuras
4.19.
0 5 10 15 2010
-35
10-30
10-25
10-20
10-15
10-10
10-5
100
105
Número valores propios
log va
lores
prop
ios
espectro de valores propios de los snapshots
0 5 10 1510
-16
10-14
10-12
10-10
10-8
10-6
10-4
10-2
100
Número valores propios
log 1-
En
Figura 4. 18 Espectro de valores propios. La barra se calienta en el extremo derecho.
63
0
0.05
0.1
0
1
2
0
20
40
60
80
x(m)
POD 7
y(m)
T(°C
)
0
0.05
0.1
0
1
2
0
0.5
1
1.5
2
2.5
3
x 10-3
x(m)
modelo reducido POD 7 y Toolbox de Matlab
t(s)
Erro
r
Figura 4. 19 Solución con 7 POD, para cuando la barra se calienta en el extremo derecho.
0
0.05
0.1
0
1
2
20
30
40
50
60
70
80
x(m)
Solución Numérica 400 puntos malla
t(s)
T(°
C)
0 0.05 0.120
30
40
50
60
70
80
x(m)
T(°
C)
Figura 4. 20 Solución para cuando la barra se calienta en el centro.
64
En el tercer caso, se supone que la barra se calienta en el centro, permaneciendo los
extremos aislados, como se observa en la Figura 4.20. Para este caso, se obtiene un modelo
reducido utilizando el método POD de orden 8 (POD 8), con un error absoluto
máximo 310 . En la Figura 4.21 se muestra el espectro de valores propios para este caso y
los resultados del modelo reducido se observan en la Figuras 4.22.
0 5 10 15 2010
-30
10-25
10-20
10-15
10-10
10-5
100
105
Número valores propios
log va
lores
prop
ios
espectro de valores propios de los snapshots
0 5 10 1510
-16
10-14
10-12
10-10
10-8
10-6
10-4
10-2
100
Número valores propios
log 1-
En
Figura 4. 21 Espectro de valores propios. La barra se calienta en el centro.
0
0.05
0.1
0
1
2
20
30
40
50
60
70
80
x(m)
POD 8
t(s)
T(°
C)
0
0.05
0.1
0
1
2
0
0.002
0.004
0.006
0.008
0.01
0.012
espacio
Error absoluto modelo reducido orden1 y Toolbox de Matlab
tiempo
Err
or
Figura 4. 22 Solución con 8 POD, para cuando la barra se calienta en el centro
65
Como el modelo es lineal, se aplica el principio de superposición: la respuesta debido a dos
actuadores es igual a la suma de las respuestas de los actuadores individuales. Por lo tanto,
se analiza el caso cuando los datos de snapshots es la suma de las soluciones de los tres
casos anteriores. Se lleva a cabo el mismo procedimiento para calcular las funciones de
base y el modelo reducido, expuesto en la sección 3.1.1 (método de snapshots), pero para
este caso, la matriz de snapshots es igual a:
321 snapsnapsnapsnap TTTT (4.15)
donde 1snapT , 2snapT , 3snapT corresponde a los snapshots para los casos 1, 2 y 3,
respectivamente. La solución numérica con 400 puntos en la malla para la suma de los tres
casos, se muestra en la Figura 4.23.
0
0.05
0.1
0
10
20
20
30
40
50
60
70
80
espacio
Solución Numérica con 400 puntos malla
tiempo
Solu
ción
0 0.05 0.120
30
40
50
60
70
80
espacio
Solu
ción
Figura 4. 23 Solución para cuando la barra se calienta en el extremo izquierdo, en el centro y el extremo derecho.
66
El modelo reducido, para cuando se supone que la barra se calienta en el extremo izquierdo,
en el centro y en el extremo derecho, es de orden 8 (POD 8) con un error absoluto
máximo 310 .
Para este caso, en las Figuras 4.24 a la 4.27, se muestra: el espectro de los valores, los
resultados del modelo reducido POD 8, el error asociado, así, como la solución del modelo
reducido para diferentes pasos de tiempo.
0 20 40 6010
-60
10-50
10-40
10-30
10-20
10-10
100
1010
Número valores propios
log va
lores p
ropios
espectro de valores propios de los snapshots
0 10 20 30 4010
-16
10-14
10-12
10-10
10-8
10-6
10-4
10-2
100
Número valores propios
log 1-
En
Figura 4. 24 Espectro de valores propios para los casos 1, 2 y 3.
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80original
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80
90POD1
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80
90POD2
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80
90POD3
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80
90POD4
0 0.02 0.04 0.06 0.08 0.120
30
40
50
60
70
80
90POD8
Figura 4. 25 Solución con 8 POD, para los casos 1, 2 y 3.
67
00.02
0.040.06
0.080.1
0
5
10
15
200
0.2
0.4
0.6
0.8
1
x 10-3
Espacio
Error absoluto
Tiempo
Tem
pera
tura
(°C)
Figura 4. 26 Error absoluto entre modelo original y la solución con 8 POD, para los
casos 1, 2 y 3.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
30
40
50
60
70
80paso tiempo,k = 4
espacio
Sol
ució
n
Toolbox de Matlab
POD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
30
40
50
60
70
80paso tiempo,k = 20
espacio
Solu
ció
n
Toolbox de Matlab
POD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
30
40
50
60
70
80paso tiempo,k = 40
espacio
Solu
ció
n
Toolbox de Matlab
POD
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.120
30
40
50
60
70
80paso tiempo,k = 60
espacio
Solu
ció
n
Toolbox de Matlab
POD
Figura 4. 27 Solución utilizando el MEF y POD 8, para diferentes pasos de tiempo
Por lo tanto, si los snapshots se recogen para varias situaciones de proceso, entonces, la
respuesta debido a la excitación de varios actuadores es igual a la suma de la respuesta de
68
los actuadores individuales. Al partir de esta combinación de snapshots, se obtiene un
modelo reducido general para varias de esas situaciones de proceso y si se quiere,
reproducir una situación en particular dentro de ese rango, se utiliza la ecuación del modelo
reducido general y se particulariza una situación específica.
En consecuencia, el orden del modelo reducido es independiente de la condición de
frontera, pero si la excitación del proceso físico en varias localizaciones no es incorporada
en la data de los snapshots, entonces la nueva dinámica espacial no se aproxima por las
funciones de base del POD. El programa en Matlab desarrollado para este ejemplo es
pdeGlobal2 (ver anexo C).
Estos resultados preliminares, contribuye en el campo de desarrollos de modelos
independiente de las condiciones de frontera, por ejemplo útil, para el análisis térmico de
componentes electrónicos, donde se obtiene el modelo por componente para luego realizar
el análisis global del sistema electrónico.
4.4 Aplicación del Método POD para la Obtención del Modelo de la Ecuación del Calor Reducido en dos Dimensiones
A continuación se presenta un ejemplo, de la ecuación del calor en 2D, tomada de la
literatura [33], con el propósito de analizar la influencia de la discretización temporal y el
número de funciones de base utilizadas en la estimación del error del modelo reducido, así
como también el tiempo de CPU.
Se considera en este ejemplo (ver Fig. 4.28), el flujo del calor en una placa de metal con
una cavidad rectangular. Se supone, que la placa se calienta en un lado y el calor fluye
hasta el lado opuesto, que se encuentra rodeado por aire a velocidad constante y el resto de
la placa se encuentra aislada. Las dimensiones para el rectángulo o el contorno de la placa
es, en 5,05,05,05,0 x y para 8,08,08,08,0 y , para la cavidad
69
rectangular, las esquinas tienen coordenadas de ,05,005,005,005,0 x
.4,04,04,04,0 y
Figura 4. 28 Placa sometida a una temperatura constante en un lado y en el lado opuesto rodeado por aire.
Para el problema en estudio, la ecuación del calor, se expresa por la ecuación (4.16) y
describe la difusión del calor en un cuerpo.
0 TTt (4.16)
Las condiciones de frontera se especifican del tal manera que sea la solución del problema
de valor de frontera, con un valor inicial dado en (4.17) y condiciones de frontera, en el
lado izquierdo (4.18) y en lado derecho (4.19). Por último, se desea estudiar la distribución
del calor durante los primeros 5 s.
0)( 0 tT (4.17)
T=1000C Aire
70
Dirichlet)Condición izquierdo( lado elen 100 CT (4.18)
Neumann) (Condiciónlados otros losen 0
Neumann)ndición derecho(Co lado elen 10
nTnT
(4.19)
El problema de conducción del calor transitorio, se implementa en el contexto de los
elementos finitos por el método de Galerkin, el cual resulta en un conjunto de K EDOs de la
forma:
)0(00)()(
cttcRtcM hh
(4.20)
con la condición inicial igual a la función 0 , donde hM y hR equivale a la matriz de
masa y de rigidez respectivamente. Se escribe la ecuación 4.20, en la forma general igual a:
)()()( tuBtTAdt
tdT (4.21)
donde la matriz hh RMA 1 y 0)( tu ya que no hay fuente de calor en este problema.
Los resultados del método POD fueron obtenidos a partir del desarrollo del programa
PODcavidad.m en Matlab y se muestra la animación de la solución, en el archivo de Matlab
Cavidadanimacion.m (ver anexo C).
Se estudia a continuación para este ejemplo los siguientes casos:
71
Del lado izquierdo de la Figura 4.28, se muestra el dominio y la malla triangular para hallar
la aproximación de la solución en un tiempo de 5 segundos, con 11 pasos de tiempo y 134
grados de libertad y del lado derecho de la misma Figura, se va a simular el sistema, para
101 pasos de tiempo y 486 grados de libertad.
-0.5 0 0.5-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
x
y
malla triangular 134 grados de libertad
-0.5 0 0.5-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
x
y
malla triangular 486 grados de libertad
Figura 4. 29 Malla triangular con 134 y 486 grados de libertad.
También se analiza el caso, cuando la discretización espacial se lleva a cabo por el método
de los elementos finitos (MEF) con respecto a una malla triangular y 1844 grados de
libertad, la simulación se realiza para 101 pasos de tiempo o 5 s.
En la figura 4.30, se muestra el dominio y la malla triangular, así como la solución del
modelo original o de referencia por MEF para este sistema. La misma solución se mustra en
la Figura 4.31, en 3D y en 2D.
72
-0.5 0 0.5-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
x
y
malla triangular 1844 grados de libertad
-0.5 0 0.5-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
x
y
100% original tiempo 5 s
85
90
95
100
Figura 4. 30 El dominio y la malla triangular para un tiempo de 5 segundos con 101 pasos de tiempo y 1844 grados de libertad.
-0.5
0
0.5
-1
-0.5
0
0.5
180
85
90
95
100
x
100% original MEF tiempo 5 s
y
T(°
C)
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8100% original MEF tiempo 5 s
x
y
Figura 4. 31 Solución por el método de los elementos finitos. Gráfica en 3D y en 2D.
El número total de funciones de base del método POD es ),,( 18441 , entonces,
la solución está dada por:
101,,1,1844
11
jparaTi
iij
k
iiij (4.22)
El conjunto completo de funciones de base es tan grande como el conjunto original. Sin
embargo, es un lugar común para que la suma de los valores propios de las primeras
funciones de base supere más del 80 % del total de los valores propios de los datos
73
originales.
0 50 100 15010
-35
10-30
10-25
10-20
10-15
10-10
10-5
100
105
Número valores propios
log
valo
res
prop
ios
espectro de valores propios
0 5 10 1510
-15
10-10
10-5
100
Número valores propios
log
1-E
n
espectro de valores propios de los snapshots
Figura 4. 32 Espectro de valores propios.
Al calcular los valores propios de la matriz de correlación (ver Fig. 4.32), se observa que
decaen rápidamente, esto es, los primeros valores propios corresponden a los mayores
valores. Este rápido decaimiento de los valores propios indica una fuerte correlación de los
snapshots, que dá lugar a la reducción de las funciones de base necesarias para describir el
comportamiento del sistema. Por ejemplo, los primeros 6 valores propios representa
aproximadamente el 100% del total (ver Tabla 4.3) y el sexto valor propio es igual a
000000415,06 , por lo tanto, del espectro de valores propios se toma 5 funciones de
base, que corresponde a un error de los valores propios no incluidos [33] de:
000000416,0101
6
ii (4.23)
74
Tabla 4.3. Primeros valores propios
# % acum.
1 0,972541587 97,2541587 97,2541587
2 0,018736715 1,8736715 99,1278303
3 0,008137636 0,8137636 99,9415939
4 0,000485396 0,0485396 99,9901335
5 9,82480e-05 0,0098248 99,9999583
6 4,15210e-07 4,152e-05 99,9999997
El modelo reducido, se obtiene reemplazando )()()( 5 kkTkT con ),,,( 521
y los coeficientes del modelo reducido, se obtienen por medio de la ecuación (4.24), que
corresponden a ))(,),(),(()( 521 kkkk .
)()()( kBukAk Tn
Tn (4.24)
El modelo de orden reducido corresponde a un sistema de 5 EDOs y se obtiene como:
)()()( kuBkAk rr (4.25)
)()( 55 kkT (4.26)
donde 55 AA Tr , BB T
r 5 , con la condición inicial para )(t igual a 0)0( .
75
La obtención del modelo reducido con una función ortogonal propia (POD 1), representa el
97,254% del modelo original y con la segunda función ortogonal propia (POD 2), el
99,127% del modelo original (ver Fig. 4.33).
-0.5
0
0.5
-1
0
1
85
90
95
100
105
x(m)
POD 1
y(m)
T(°C
)
-0.5
0
0.5
-1
0
1
85
90
95
100
105
x(m)
POD 2
y(m)
Figura 4. 33 Primero y segundo POD.
Para el modelo reducido con la tercera función ortogonal propia (POD 3), se representa el
99,941% del modelo original y con la cuarta función ortogonal propia (POD 4), el 99,990%
(ver Fig. 4.34).
-0.5
0
0.5
-1
0
1
80
85
90
95
100
105
x(m)
POD 3
y(m)
T(°C
)
-0.5
0
0.5
-1
0
1
80
85
90
95
100
x(m)
POD 4
y(m)
T(°C
)
Figura 4. 34 Tercero y cuarto POD.
76
Y para el modelo reducido utilizando 5 funciones ortogonales propias (POD 5), el cual,
representa el 99,999% del modelo original, como se muestra en la Figura 4.35. En en lado
derecho de la misma Figura, se grafica la solución del modelo reducido, para un tiempo de
5s en un punto de la malla.
-0.5
0
0.5
-1
0
1
80
85
90
95
100
105
x(m)
POD 5
y(m)
T(°C
)
0 2 4 60
10
20
30
40
50
60
70
80
90
100
t(s)
T(°C
)
Conduc. calor 2D en un punto malla
Figura 4. 35 Quinto POD, a la izquierda y a la derecha, la solución en 5 s.
Tabla 4.4. Tiempo de CPU del Modelo MEF y POD. Error del Modelo Reducido Dimensión : #nodos x pasos de tiempo
Tiempo(s) CPU Modelo (MEF)
Tiempo(s) CPU POD 5
Error Utilizando POD 5
710
Dimensión : #nodos x pasos de tiempo
Tiempo(s) CPU Modelo (MEF)
Tiempo(s) CPU POD 5
Error Utilizando POD 5
510
13411 0,255 0,004 0,709 134101 0,288 0,051 1,807
48611 0,449 0,012 1,091 486101 0,545 0,047 2,284
184411 1,664 0,024 1,267 1844101 1,587 0,110 2,457
717611 9,057 0,050 1,350 7176101 9,185 0,610 2,520
2830411 48,126 0,061 1,482 28304101 49,766 2,832 2,550
77
Cuando se obtiene el modelo reducido utilizando 5 funciones de base, para 11 pasos de
tiempo, el error es del orden de 710 y cuando se utiliza 101 pasos de tiempo es de 510
(ver Tabla 4.4). Por lo tanto, se obtiene mayor precisión, cuando la información del
fenómeno estudiado se incrementa, así como el número de funciones de base utilizadas para
el uso del método POD. Se deduce entonces, que el error del modelo reducido depende del
número de funciones de base y de la discretización del tiempo.
Tabla 4.5. Ahorro en tiempo de CPU utilizando POD5
Dimensión: #nodos pasos de tiempo
Funciones Evaluadas (MEF)
EDPs Evaluadas (MEF)
Sistemas LU Evaluadas ( MEF)
Sistemas lineales Evaluadas (MEF)
Tiempo(s) CPU Modelo (MEF)
Tiempo(s) CPU Modelo POD
% Ahorro Tiempo Utilizando POD
134101 314 1 29 313 0,2915 0,0422 82,16
486101 388 1 35 387 0,5456 0,0475 91,29
1844101 459 1 39 458 1,5874 0,1101 93,06
7176101 538 1 45 538 9,1850 0,6104 93,35
28304101 581 1 48 580 47,660 2,8322 94,31
Cuando se obtiene la aproximación de la solución utilizando el modelo reducido con POD 5
(5 funciones ortogonales propias), que corresponde a una dimensión de 5101 (101 pasos
de tiempo) se necesitaría 2,83 segundos (ver tabla 4.5), mientras que el tiempo de CPU para
hallar la solución original o de referencia por el método de los elementos finitos utilizando
una malla de 28304 nodos o puntos en la malla, esto es para una dimensión de 28304101
(101 pasos de tiempo), es de 49,76 segundos. Por lo tanto, al aplicar el método POD se
tendrá un ahorro en tiempo de CPU del 94,31%.
En la tabla 4.3, se pude apreciar el ahorro en tiempo de CPU para diferentes dimensiones o
mallado, se muestra además el número de procedimientos que se requiere para hallar la
solución utilizando el método de los elementos finitos, mientras con el método POD el
modelo reducido es de una dimensión de 5101, donde 5 corresponde a las funciones
ortogonales propias y 101 a los pasos de tiempo (k).
78
Los resultados confirman la buena aproximación de las propiedades comparados con los
reportados, por ejemplo en [30-33, 34, 35, 36, 37, 38]. Para el ejemplo que se estudia, no se
encontró diferencias significativas entre el modelo original y el modelo reducido. Para la
realización numérica se usa la versión 7.6 de Matlab 2008ª.
79
5 CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
5.1 Conclusiones
Por lo general el principal obstáculo para una rápida simulación por los modelos de EDPs
es la fina discretización del dominio espacial, ya que esto conduce a la resolución de
grandes sistemas lineales algebráicos o de EDOs. En este trabajo, el método de las
funciones ortogonales propias (POD) ha sido propuesto como una técnica de reducción,
para los modelos de gran escala, obtenidos a partir de la discretización de la EDP de la
ecuación del calor.
El método POD se caracteriza por la propiedad de describir la distribución espacial, como
la temperatura, en términos de un conjunto ortogonal de funciones de base. Estas funciones
de base se seleccionan a partir de los datos observados y son óptimas, como se han definido
en secciones anteriores. En los modelos numéricos, el dominio espacial se discretiza en un
elevado número de celdas, mientras que en modelos de POD, las distribución espacial se
describe por las primeras y más relevantes funciones de base.
La dinámica de la variable temporal y espacial se aproxima con un alto grado de eficiencia,
como se demuestra, en los diferentes ejemplos presentados, utilizando pocas funciones de
base del POD (menos del 1% del número de nodos).
80
Debido a que las funciones de base se calculan de la simulación o de las mediciones de las
variables del proceso, la validez del modelo reducido dependerá de la calidad del conjunto
de datos. Si el conjunto de datos es representativo de las variaciones típicas del sistema,
entonces el modelo reducido es válido para las simulaciones en este rango de operación.
Los resultados del error dependen del número de funciones de base del POD escogidas y de
la discretización del tiempo (del paso del tiempo).
Se verificó numéricamente, que cuando se utiliza un mayor conjunto de datos simulados, el
resultado del modelo reducido es muy eficiente comparado con la solución analítica, igual
comportamiento sucede para el caso del método de los elementos finitos cuando se refina la
malla, diferenciándose en que el modelo reducido POD es de una baja dimensión, de menos
de 1% del modelo original.
Este estudio produjo una estrategia para desarrollar MOR, basados en el POD. Se mostró la
validez del MOR para la simulación, la optimización del proceso de transferencia del calor
y en el ahorro en tiempo de CPU, el cual se reduce significativamente. El ahorro en tiempo
de CPU para los casos estudiados, es del 82% al 95%, utilizando el modelo reducido en
lugar del modelo original.
5.2 Recomendaciones
En trabajos futuros es importante validar el modelo en equipos de planta, para describir y
demostrar los beneficios en la utilización de la metodología para la reducción de modelos
propuestos, para la simulación y optimización de procesos.
81
Extender la aplicación del método POD en otros tópicos de transferencia del calor, por
ejemplo convección y a otras disciplinas, como en mecánica de fluidos, por ejemplo en las
ecuaciones de Navier – Stokes, entre otroS.
82
REFERENCIAS
[1] P. Astrid, L. Huisman, W. Weiland, and A.C.P.M. Backx. Reduction and predictive control desing for a computational fluid dynamics model. In Proceedings of the 41 st IEEE Conference on Decision and Control, volume 3, pages 3378 -3383, Las Vegas, December 2002.
[2] K. E. Willcox. Reduced Order Aerodynamics Model for Aeroelastic Control of Turbomachicnes. PhD dissertation, Massachusetts Institute of Technology, Department of Aeronautics and Astronautics, February 2000
[3] B. Lohmann, B. Salimbahrami. Introduction to Krylov Subspace Methods in Model Order Reduction. Institut Fur Automatisierungstechnik, Universitat Bremen, 2000.
[4] A. Deane, I. Kevrekidis, G. Karniadaki and S. Orszag. Low-dimensional models for complex geometry flows: Application to grooved Chanels and circular cylinders. Phys. Fluid A, 3(10), 2337-2354, 1991.
[5] C. Caiafa y A. N. Proto. Desarrollo de un software para la identificación de elefantes
marinos por eigenfaces. Reportes técnicos en ingeniería del software. Vol. 5. Pág. 27-40,
2003.
[6] C. A. Andereck, J. M. Dacies y G. R. Schwartz. Adaptive data comprenssion. Proc.
IEEE, 55:267-77, 1967.
[7] D. H. Gay, W. H. Ray. Identification and control of linear distributed parameter
systems through the use of experimentally determined singular functions. In Proc. IFAC
Symp. Control of Distributed Parameter Systems, Los Angeles, 173-9, 1996.
83
[8] R. W. Preisendorfer. Principal Component Analysis in Meteorology and Oceanography.
Elsevier, Amsterdam, 1988.
[9] G. Berkooz, P. Holmes y J. L. Lumley. The proper orthogonal decomposition in the
analysis of turbulent flows. Annu. Rev. Fluid. Mech., 25:539-575, 1993.
[10] P. Holmes, J. L. Lumley y G. Berkooz. Turbulence, coherent structures, dynamical
systems, and symmetry. Cambridge University Press, 1996.
[11] A. Chatterjee. An introduction to the proper orthogonal decomposition. Department of
Engineering science and Mechanics, Penn State University, University Park, Pennsylvania,
USA, 2000.
[12] M. R. García. Optimización en tiempo real para el control de reactores tubulares no
isotérmicos. Grupo de ingeniería y procesos Eduardo Cabello, 2001.
[13] Y. C. Liang. POD and its application part II: Model reduction for MEMS: dynamical
analysis. Journal of Sound and Vibration, 2003.
[14 ] M. Rothmans y L. R. Pitzold. An new look at POD. Society for Industrial and Applied
Mathematics Philadelphia, PA, USA, 2003.
[15] M. Hinze, S. Volkwein. Proper surrogate model for nonlinear dynamical systems: error estimates and suboptimal control Institut fur Numerische Mathematik, TU Dresden, Germany, 2005.
[16] D. Vasilyev. Linear model order reduction. Model Order Reduction Site at MIT. 17
march, 2005.
[17] Y. Cengel. “Heat transfer: A practical approach”, 2nd Ed, McGraw-Hill, (2003),
932 pags.
84
[18] P. Hr. Petkov, N. D. Christov, M.M. Konstantinov. Computational methods for linear control systems. Prentice – Hall International Ltd, Reino Unido, 1991
[19] E. Zuazua. Métodos Numéricos de resolución de Ecuaciones en Derivadas Parciales. Basque Center for Applied Mathematics (BCAM). Bilbao, España, 2009.
[20] J. L. Lumley. Stochastic tools in turbulence. Academic Press., New York, 1970.
[21] L. I. Smith. A tutorial on principal components analysis. Cornell University, USA, 2002.
[22] J. J. Muñoz Pérez, L. Tejedor. Las funciones empíricas ortogonales y los cambios en el perfil de la playa a corto, a mediano y a largo plazo. Departamento de Física Aplicada. Facultad de Ciencias del Mar, Puerto real (Cádiz), España, 2001.
[23] V. R. Algazi, D. J. Sakrison. On the optimality of the Karhunrn-Loeve Expansion. IEEE Trans. Inform, Theory, 15:319-21, 1969.
[24] L. Sirovich. Turbulence and the dynamics of coherent structures, Parts I-III. Quarterly of Applied Math., XLV (3): 561-82, 1987.
[25] M. Kirby. Geometric Data Analysis an Empirical Approach to Dimensionality Reduction and the Study of Patterns. John Wiley and Sons Inc. New York. 2001.
[26] P. Galán del Sastre. Estudio Numérico del Atractor en Ecuaciones de Navier- Stokes Aplicadas a Modelos de Circulación del Océano. Facultad de Ciencias Matemáticas, Universidad Complutense de Madrid, España, 2004.
[27] O. M. Agudelo. Positive polynomial constraints for POD-based Model Predictive Controllers. IEEE Transactions on Automatic Control, Vol. 54, No. 5. Mayo 2009.
[28] Kaiser, H. F. The application of electronic computers to factor analysis. Educ. Psychol. Meas. Vol. 20. Pp. 141-151.1960. [29] Jolliffe, I. T. Principal Component Analysis. Springer-Verlag. 1986.
85
[30] K. Kunisch, S. Vokwein. Galerkin proper orthogonal decomposition methods for a general equation in fluid dynamics. SIAM Journal on Numerical Analysis, 40:492-515, 2001.
[31] R. E. Skelton. Dynamic systems control, John Wiley, New York, 1988.
[32] MATHWORKS, Inc. Partial Diffrrential Equation Toolbox User’s Guide: For Use With MATLAB. 1997.
[33] S. Volkwein. Proper Orthogonal Decomposition (POD) for Nonlinear Dynamical Systems. Institute for Mathematics and Scientific Computing, University of Graz, Austria, 2005. [34] L. Fortuna, G. Nunnari, A. Gallo. Model order reduction techniques with applications in electrical engineering. Springer – Verlag, 1992.
[35] A. Vargas. Model reduction software in the slicot library, in Applied and Computational Control, Signals, and Circuits, volume 629 of the Kluwer International Series in Engineering and Computer Science, Kluwer Academic Publishers, pp 239-282, 2001.
[36] Y. Niño. Método de los Volúmenes Finitos. Seminario Primavera, Universidad de Chile, 2002.
[37] A. Rosenfeld, A. C. Kak. Digital Picture Processing. Academics Press, New York, 1982.
[38] P. Mathai and B. Shapire. Using model reduction techniques for simulating the heat transfer in electronic systems. University of Maryland, College Park, 2003.
[39] B. T. Tan. Proper orthogonal decomposition extensions and their applications in steady aerodynamics. University of Technology, Vietnam, 2001.
[40] B. B. Bird, W.E. Stewart and E. N. Lightfoot. Transport Phenomena. John Wiley and Sons, New York, 2006.
86
[41] R. H. Perrot. Software for parallel computers. Chapman & Hall, 1992.
[42] S. Houland, K. Willax and J. T Graudahl. MPC for large-scale systems via model reduction and multiparametric quadratic programming, department of Aeronautics and Astronautics, Massachusetts Institute of Technology, Cambridge, USA, 2006.
[43] J. A. Atwell, B. B. King. Proper orthogonal decomposition for reduced Basis feedback controllers for parabolic equations. Mathematical and computer Modeling of Dynamical Systems, 33, 1-19, 2001.
[44] E. Zuzua. Métodos Numéricos de resolución de Ecuaciones en Derivadas Parciales. Departamento de matemáticas Universidad Autonoma, Madrid, España, 2007.
87
Anexo A. Requerimientos Matemáticos
En esta sección se procurará dar las habilidades matemáticas que serán requeridas para
entender el proceso del análisis del método POD [26]. Se incluirá una sección en
estadística, que analiza la distribución de los datos. La otra sección es álgebra de matrices
y se estudia entre otros temas, los valores y vectores propios características importantes de
las matrices que son fundamentales para el POD.
A.1 Desviación Estándar
La desviación estándar, también llamada desviación típica, es una medida de dispersión
usada en estadística que nos dice cuánto tienden a alejarse los valores puntuales del
promedio en una distribución. De hecho, específicamente, la desviación estándar es "el
promedio de la distancia de cada punto respecto del promedio". Se suele representar por
una S o con la letra sigma .
La desviación estándar de un conjunto de datos es una medida de cuánto se desvían los
datos de su media. Esta medida es más estable que el recorrido y toma en consideración el
valor de cada dato.
Como ejemplo, se tienen 3 conjuntos de datos, [0 8 12 20], [8 9 11 12] y [10 10 10 10], con
la misma media igual a [10], pero son totalmente diferentes, su diferencia se debe a la
propagación de la información. Si calculamos la desviación estándar para el primer
conjunto de datos es 8,3266 y para el segundo 1,8257 y así, como se esperaba el primer
grupo, tiene una desviación estándar mucho mayor debido a que los datos están más
88
alejados de la media y para el tercer conjunto la desviación estándar es cero, ya que ningún
valor se aparta de la media. Su fórmula es:
1
))((1
n
xxxxS
n
iii
(A.1)
La media definida como, n
xx
n
ii
1
A.2 Varianza
La varianza es una medida de la desviación del conjunto de datos en torno a la media. De
hecho es casi idéntica a la desviación estándar, la razón por la que se ha introducido la
varianza y la desviación estándar es proporcionar una plataforma sólida para definir la
covarianza.
1
))(()var( 1
n
xxxxx
n
iii
(A.2)
A.3 Covarianza
Las dos medidas, la varianza y la desviación estándar son de una dimensión, sin embargo,
muchos conjuntos de datos tienen más de una dimensión y como el análisis estadístico
considera generalmente si hay cualquier relación entre las dimensiones. La covarianza, es la
medida de cuanto varia de la media, una con respecto a la otra. La covarianza se mide
siempre entre dos dimensiones, si se calcula la covarianza entre una dimensión y consigo
mismo, se consigue la varianza.
89
1
))((),cov( 1
n
yyxxSyx
n
iii
xy (A.3)
El significado de la varianza y la covarianza, se puede observar, considerando dos nubes
de puntos (representadas como en la figura, por elipsoides que las rodean). La varianza es
una medida de la dispersión. Las variables X e Y tienen ambas la misma varianza en el caso
de la elipse y del círculo, pero la covarianza en el círculo es cero y la de la elipse es más o
menos alta, y positiva.
Figura A. 1 Relación entre la matriz de varianza-covarianza y la matriz de
correlación
Si las n variables tienen medidas incompatibles (kg, m, s,...) las varianzas no son
comparables. Entonces se recurre a la matriz de correlación. La correlación es la covarianza
medida para valores estandarizados. De allí que la correlación de una variable consigo
misma da uno; es la varianza de cualquier variable estandarizada.
A.4 Cálculo de la Matriz de Correlación
La matriz de correlación nos explica cómo se encuentran relacionadas cada una de las
variables con otra variable. Su diagonal siempre contendrá el valor de 1. Si tiene un valor 0,
Y
X
90
nos indicará que no tiene ninguna relación con esa variable, por lo menos no lineal; es
decir, pueda que tenga una relación cuadrática o de otro grado. El cálculo de la matriz de
correlación se puede efectuar de dos formas, con los datos originales y con los datos
normalizados:
Cálculo de la matriz de correlación con los datos originales
Con lo cual se aplica la fórmula de cálculo del coeficiente de correlación lineal entre dos
variables (coeficiente de correlación de Pearson):
El coeficiente de correlación entre las variables ax y bx se define como:
ba
ba
xx
xxab SS
Sr (A.4)
donde axS ,
bxS son las desviaciones típicas de las variables ax y bx , respectivamente y
ba xxS es la covarianza de la muestra. La fórmula completa para r, es de la forma:
2
1 11
2
1
1 11
11
111
1
111
1
n
i
n
kbkbi
n
i
n
kakai
n
i
n
kbkbi
n
kakai
ab
xn
xn
xn
xn
xn
xxn
xn
r (A.5)
Los coeficientes están comprendidos siempre en el rango [-1, 1] con los correspondientes
significados matemáticos.
La matriz de correlación se forma entonces ordenando los distintos coeficientes de
correlación en una matriz de filas y columnas de la siguiente forma:
91
pppp
p
p
rrr
rrrrrr
C
11
22221
11211
(A.6)
A priori ya se puede conocer dos cosas de C: que esta será simétrica, ya que baab rr y que
la diagonal principal será todo unos, esto porque 1aar .
Cálculo de la matriz de correlación con los datos normalizados
La otra posibilidad para calcular la matriz de correlación evitándose la fórmula
relativamente complicada, es hallando la matriz de varianza-covarianza para los datos
normalizados.
Se calculan primeramente las estadísticas básicas de cada variable ax , su media y
desviación estándar:
n
iaaia
n
iaia xx
nSyx
nx
1
2
1)(
111 (A.7)
Con esos datos, ya podemos estandarizar las distintas variables (al estandarizar se está
transformando ese conjunto de datos en otro, con media cero y desviación estándar uno).
Pasamos de la variable ax a la az para todos los datos, aplicando la siguiente ecuación:
a
aaiai s
xxz (A.8)
A partir de las variables estandarizadas pzzzz ,,,, 321 , se calculan sus varianzas
(evidentemente dan uno) y las covarianzas entre variables:
n
ibabiaaizz zzzz
nS
ba1
))((1
1 (A.9)
92
Ordenando dichos valores en forma de matriz, se tendrá el cálculo de la matriz de
correlación:
zpzpzzzz
zzzzzz
zzzzzz
SSS
SSSSSS
pp
p
22
2122221
12121
C (A.10)
Una tercera forma de calcular la matriz de correlación es a partir de las variables
estandarizadas y ordenando primeramente dichas variables estandarizadas en forma de
matriz (por ejemplo por filas):
pnmpp
nm
nm
SSS
SSSSSS
21
22221
11211
Z (A.11)
Y efectuar la siguiente operación matricial:
tZZn
C 1 (A.12)
Donde tZ significa la matriz transpuesta. Este resultado corresponderá a la matriz de
correlación que queremos calcular. Se seguirá este último procedimiento en este trabajo
para el cálculo de la matriz de correlación.
A.5 Valores y Vectores Propios
El siguiente paso es calcular los valores y vectores propios de la matriz de correlación. Los
valores y vectores propios son conocidos como, eigenvalores y eigenvectores. Los valores
propios son las raíces del polinomio:
93
0)det( IC (A.13)
I representa la matriz identidad, de las mismas dimensiones que la matriz C. Esta expresión
da como resultado un polinomio cuyas raíces serán los valores propios de C, que se denotan
como i ,,, 21 .
Los vectores propios asociados a esos valores propios, se calcularán sustituyendo los
valores propios en la fórmula:
0)( ii IC (A.14)
Para cada valor propio i , se obtiene una ecuación diferente, y de esta ecuación se obtiene
también un vector propio i diferente y asociado a su respectivo i .
Se pueden multiplicar dos matrices con tal que sean compatibles. Los vectores propios son
un caso especial de esto. Los vectores propios se encuentran solo para matrices cuadradas,
todos los vectores propios de una matriz son perpendiculares u ortogonales. Es importante,
porque es una medida en que se pueden expresar los datos en términos de los vectores
propios perpendiculares en lugar de ser expresados en términos del eje x y del eje y.
Consideremos los siguientes ejemplos:
Ejemplo de un no-vector propio.
511
31
1232
Ejemplo de un vector propio, se escala y se descompone en valores propios.
23
4812
23
1232
iiiCoC ,
94
Ejemplo como se escala un vector propio y como sigue siendo el mismo valor propio.
46
23
2
46
41624
46
1232
En el primer ejemplo, el vector resultante no es múltiplo entero del vector original, mientras
que en el segundo ejemplo, el vector es exactamente 4 veces el vector inicial.
El vector
23
, representa una flecha que apunta desde el origen (0,0), al punto (3,2). Y la
matriz
22
13
se puede considerar como la matriz de transformación. Al multiplicar la
matriz por el vector
23
, la respuesta es otro vector que se transforma desde la posición
original.
Esta es la naturaleza de la transformación que se derivan de los vectores propios. Este
vector y todos los múltiplos de él, será un vector propio de la matriz de transformación. Las
propiedades que tienen estos vectores, es que los vectores propios, sólo se pueden
encontrar para matrices cuadradas. Y no todas las matrices cuadradas tienen vectores
propios. En la Figura A.4, se cambia la escala del vector por una cierta cantidad, sin
cambiar la dirección. Por último todos los vectores propios de una matriz son
perpendiculares u ortogonal, es decir, en ángulo rectos unos con otros. Esto es importante
porque se puede expresar los datos en términos de estos vectores propios ortogonales, en
lugar de expresarlos en términos del eje x y del eje y. Es conveniente estandarizar los
vectores propios, así que se divide, el vector original por su longitud, que para el ejemplo
que estamos tratando resulta en:
95
132133
1323
Los valores propios están estrechamente relacionados con los vectores propios, obsérvese
como en la Figura A.4, la cantidad por la cual el vector original se escala antes de que se
multiplique por la matriz cuadrada es 4 y 4 corresponde al valor propio asociado a ese
vector propio. No importa cuál sea el múltiplo del vector propio que se tome, antes de que
se multiplique por la matriz cuadrada, siempre es 4 veces el vector de escala, como se
muestra en el ejemplo anterior.
Consideremos en este otro ejemplo, los vectores de puntos (0,0), (1,0) y (0,0), (2,1),
podemos representar la transformación como se muestra en la Figura A.2, se observa que el
vector x, gira y se alarga, el giro esta dado por )2/1(tan 1 .
Figura A. 2 Transformación de vectores.
Ahora si consideramos los vectores de puntos )0,0( , )2/1,2/1( y ),0,0(
),2/1,2/1( se observa en la figura A.6, que el vector sólo se hace tres veces más largo.
(1,0)
(0,0)
(2,1)
(0,0)
A
x y
96
El problema de los vectores y valores propios, consiste en encontrar los vectores que no
giran, bajo una transformación. El valor propio nos da el cambio de longitud.
Se busca , tal que iiiAoIA ,
Los valores y vectores propios de la matriz A=
2112
, son
3001
y
2/12/12/12/1 ,
respectivamente y A , corresponde a:
2/32/12/32/1
3001
2/12/12/12/1
2/12/12/12/1
2112
Gráficamente la podemos representar como se muestra en la Figura A.3
Figura A. 3 Transformación de vectores.
Se observa en la Figura A.6, que el primer vector no gira y se mantiene y el segundo vector
no gira, pero se hace tres veces más largo.
2/1*3,2/1*3
2/1,2/1 2/1,2/1
2/1,2/1
(0.0) (0.0)
A
y x
97
A6. Funciones Ortogonales
Dos vectores no cero son ortogonales cuando su producto punto, o producto interno, es
cero. Es muy común imaginar que una función es un vector. En consecuencia podemos
decir que dos funciones distintas son ortogonales cuando su producto interno es cero. En
este caso, se verá que el producto interno de los vectores es una integral definida. El
concepto de funciones ortogonales es fundamental en el presente trabajo.
Los dos conceptos vectoriales de producto interno (punto) y ortogonalidad se pueden
ampliar para abarcar las funciones. Se supone que u y v son vectores en el espacio
tridimensional. El producto interno (u, v) de los vectores, que también se escribe ,vu
posee las propiedades siguientes:
(u, v)= (v, u)
(ku, v)= k(u, v), donde k es un escalar
(u, u)= 0, si u= 0 y (u, u) >0 si u 0
(u + v, w) = (u, w) + (v, w).
Se supone ahora que 1f y 2f son funciones definidas en un intervalo ba, . Como una
integral del producto )()( 21 xfxf definida en el intervalo también posee las propiedades
mencionadas anteriormente, siempre y cuando existan las integrales, podemos enunciar la
siguiente definición:
El producto interno de dos funciones 1f y 2f en un intervalo ba, es el valor que resulta
de:
b
adxxfxfff )()(, 2121 (A.15)
98
Dado que dos vectores u y v son ortogonales cuando su producto interno es cero, definimos
las funciones ortogonales en forma semejante:
Dos funciones 1f y 2f son ortogonales en un intervalo ba, si:
0)(2)(12,1 b
adxxfxfff (A.16)
Un conjunto de funciones de valor real )(),(),( 210 xxx , es ortogonal en un intervalo
ba, si:
.,0)()(),( nmdxxxb
a nmnm (A.17)
La norma, o longitud ,u de un vector u se puede expresar en términos del producto
interno; concretamente, (u, v)= ,2u o bien .),( uuu La norma, o longitud
generalizada, de una función ,n es ;),()( nnn x es decir,
.)()( 2
b
a nn dxxx (A.18)
El número .)()( 22
b
a nn dxxx
Se llama norma cuadrada de .n Si )(xn es un conjunto ortogonal de funciones en el
intervalo y tiene la propiedad que 1)( xn para ,.,.,2,1,0n se dice que )(xn es un
conjunto ortogonal en el intervalo.
A7. Transformación Karhunen – Loeve
También llamada transformación de Hotelling ó Análisis de Componentes Principales y
consiste en definir el número de dimensiones que están presentes en un conjunto de datos y
buscar los coeficientes que especifican la posición de los ejes que apuntan en las
direcciones de máxima variabilidad de los datos. Su origen está en la redundancia que hay
99
muchas veces entre distintas variables. La redundancia son datos, no información. Lo que
se pretende es:
Facilitar el estudio de las relaciones existentes entre las variables.
Facilitar el análisis de la dispersión de las observaciones (poniendo en evidencia
posibles agrupamientos, detectando las variables que son responsables de dicha
dispersión).
A.7.1 Formulación Descriptiva
En un sistema multivariante, la forma de la elipse n-dimensional está definida por la matriz
de varianza-covarianza calculada para la n variable. La varianza es proporcional a la
dispersión de puntos en la dirección paralela al eje de esa variable. La covarianza define la
forma de esa elipse (más o menos afilada). Si las variables no tienen dimensiones
comparables, las varianzas tampoco se pueden comparar. En este caso conviene tomar la
matriz de correlación, ya que el coeficiente de correlación no es sino la covarianza medida
para valores estandarizados (normalizados zi),
s
xxz ii
(A.19)
Por lo tanto, se utilizará si podemos, la matriz de varianza-covarianza y si no, la de
correlación.
Figura A. 4 Varianza-covarianza.
X
Y A
B
100
En la Figura A.4, vemos cómo la dispersión de las variables X e Y permite que efectuando
una transformación que pase de X e Y a A y B, se consigue obtener dos variables nuevas tal
que casi toda la varianza se sitúa en la variable A y muy poca en la B. Además, la
correlación de X e Y era alta, mientras que la de A y B es matemáticamente cero.
A partir de esas matrices, se calculan sus valores y vectores propios. Los valores propios
dan la longitud de los ejes principales del elipsoide n-dimensional. Los vectores propios
apuntan precisamente en las direcciones de esos ejes principales. Además, equivalen a los
coeficientes de regresión en una transformación lineal estándar, siendo las variables a
transformar las variables independientes y las componentes principales, las dependientes.
Las nuevas variables así obtenidas, pierden el sentido físico que pudieran tener las variables
originales.
A.7.2 Formulación Matemática
Sea una serie de datos, en este caso bidimensionales (por ejemplo, una imagen) de la forma:
mnmm
n
n
xxx
xxxxxx
yxf
21
22221
11211
),( (A.20)
Podemos ordenar esa matriz en forma de un vector, bien poniendo una fila tras otra, o bien
por columnas. Lo importante no es tomar uno u otro tipo de ordenación sino que éste sea
consistente con todas las imágenes que vayan a participar en la transformación.
En definitiva se trata de obtener:
),,,,,,(),( 2222111211 nmnn xxxxxxxyxf (A.21)
101
Donde podemos expresar ese vector en función de un sólo subíndice:
),,,(),( 321 nmxxxxXyxf (A.22)
Como tendremos varias imágenes, para diferenciar unas de otras en la notación,
introducimos como subíndice los números '1', '2', '3', etc. para las distintas imágenes.
Nótese que ahora el elemento x11 no representa el valor del píxel de la fila 1, columna 1,
sino que de la imagen 1 es el píxel 1 (ahora es un vector, no una matriz de dos
dimensiones). Así:
)(
)()()(
321
33332313
22322212
11312111
pnmpppp
nm
nm
nm
xxxxX
imagenesptenemossi
xxxxXxxxxXxxxxX
(A.23)
El primer paso consiste en hallar la matriz de correlación de estas variables. El siguiente
paso es calcular los valores y vectores propios de la matriz de correlación calculada. Como
se verá más adelante.
El análisis de componentes principales (ACP), es la forma más simple de un análisis
multivariado basado en vectores propios.
Procedimiento:
Escoger la muestra (datos originales)
Sustracción de la media observada de los datos originales (muestra con media cero).
Para el tratamiento de los datos se realiza el centrado de las variables, se elige como
origen del cual parten las direcciones de máxima variación o componentes. El
102
nuevo origen del espacio de los componentes principales es una translación del
origen en el espacio de las variables hacia el centro de la nube de puntos.
Calcular la matriz de covarianza.
Calcular los vectores propios y los valores propios de la matriz de covarianza: Una
vez obtenidos los vectores propios (perpendiculares entre sí), se dibujan en el plano
sobre la media sustraída de los datos originales. Esto permite extraer líneas que
caracterizan los datos, por ejemplo si son independientes o relacionados.
Escoger los componentes principales: Los vectores propios correspondientes a los
valores propios de mayor tamaño corresponden a las variables con la correlación
más fuerte dentro del conjunto de datos. Se escogen las componentes en orden de
significancia.
Transformación del nuevo conjunto de datos: Se toma el transpuesto de la nueva
matriz armada con los vectores propios seleccionados y se multiplica por la matriz
transpuesta de los datos originales ajustados con la media.
Figura A. 5 Cambio de coordenadas utilizando la media y proyección de dos componentes principales.
1x
3x
2x
2x
3x
1x
103
Básicamente lo que se hace, es transformar los datos, expresados en términos de los
patrones entre ellos, donde los patrones son las líneas que más cercanamente definen las
relaciones entre ellos.
Análisis de componentes principales es un método cuantitativo riguroso, que genera un
nuevo conjunto de variables, llamadas componentes principales. Cada componente
principal es una combinación lineal de las variables originales. Todos los componentes
principales son ortogonales entre sí, así que no hay información redundante. Los principales
componentes forman una base ortogonal para el espacio de los datos.
El primer componente principal es un eje en el espacio. Al proyectar cada observación en
el eje, los valores resultantes constituyen una nueva variable. La varianza de esta variable
es el máximo entre todas las opciones posibles del primer eje.
La segunda componente principal es otro eje en el espacio, perpendicular a la primera. La
proyección de las observaciones sobre este eje genera otra nueva variable. La varianza de
esta variable, es el máximo entre todas las opciones posibles de este segundo eje.
El conjunto completo de componentes principales es tan grande como el conjunto original
de variables. Sin embargo, es un lugar común para la suma de las varianzas de los primeros
componentes principales al superar el 80 % de la varianza total de los datos originales.
En Matlab se utiliza la función princomp, para encontrar los componentes principales. Para
utilizar la función princomp, parte de los datos medidos que se desea analizar. Sin embargo,
si se carece de los datos reales, pero se tiene la covarianza de la muestra o la matriz de
correlación de los datos, se puede utilizar en Matlab la función pcacov, para realizar el
análisis de componentes principales.
104
A.8 Método de los Valores Singulares
De acuerdo a este método podemos obtener una matriz diagonal que incluye los valores
propios de la matriz simétrica, que para nuestro caso es la matriz de correlación y los
vectores singulares correspondientes que forman las columnas de dos matrices ortogonales
U y V esto es:
VUCoUCV T (A.24)
U y V son ortogonales, este procedimiento se conoce como descomposición le los valores singulares.
TVUC (A.25)
La descomposición de valores singulares de una matriz de mn, consiste en una matriz U
de mm, una matriz de mn y una matriz V de nn. En otras palabras U y V son
cuadradas y es del mismo tamaño de C.
En Matlab se dispone de la función svd , para tal fin:
)(CsvdVSU (A.26)
Donde en S, retorna un vector con los valores singulares en orden decreciente, ellos
representan en su sumatoria la varianza total y las matrices unitarias U y V.
Los componentes principales quedan definidos por los vectores propios V, siendo estos
vectores ortogonales. Por ejemplo el producto de los primeros vectores propios deberían ser
cero.
0):,2:2(:),1:1( VV (A.27)
Estos vectores propios definen el nuevo espacio dimensional ortonormal, donde las
variables originales podrán quedar definidas mediante una nueva rotación de estos nuevos
ejes. Por lo tanto, la descomposición de valores singulares es la herramienta adecuada para
el análisis de una asignación de un espacio vectorial en otro espacio vectorial, posiblemente
con una nueva dimensión.
105
Por otro lado, utilizando el método POD o ACP, se pude estimar los valores y vectores
propios y el porcentaje explicado por cada una de las nuevas variables cuando ellas son
rotadas. Para ello podemos utilizar la función de Matlab covpca o la función
princomp.El comando en Matlab tiene la siguiente sintaxis:
)cov(exp Cpcalannedlatentpc
Toma la matriz de covarianza C y retorna los componentes principales en pc , los valores
propios en latent y el porcentaje del total de la varianza en las observaciones explicada por
cada vector propios en lannedexp .
Utilizando la función princomp :
)princomp(C = latent]SCORE,[COEFF,
Retorna en COEFF los componentes principales, en SCORE se tiene la representación de C
en el espacio de componentes principales y en latent retorna los valores propios.
En el presente trabajo, se realiza la descomposición de la matriz de correlación, como se ha
descrito en el método POD (sección 3), pero utilizando la ayuda de las funciones en
Matlab.
Con los programas realizados en Matlab, se procede a hacer el análisis de componentes
principales en ACP o de hallar las funciones de base en POD. Con el fin de conocer los
métodos alternativos parar hacer los cálculos básicos, se parte de las funciones en Matlab
eig , ,svd cov,pca princomp, como se pueden ver en el Anexo C, en los programas
PODeig , PODsvd y los demás programas que utilizan el comando princomp.
106
A.9 Diferencias entre POD y ACP
Tanto el método POD (Descomposición ortogonal propia) como el método ACP (Análisis
de Componentes Principales), son sinónimos de la descomposición de Karhunen – Loeve y
sólo hay unas pocas diferencias conceptuales, sin embargo, hay algunas diferencias en la
puesta en práctica de los métodos (ver Fig. A.6). Ambos métodos solucionan el problema
del valor singular o eigenproblema.
El método POD se aplica usualmente para requerimientos en la resolución de EDPs de
modelos dinámicos, sistemas que involucran la variable espacial y temporal. El método
ACP es independiente del tiempo o se podría utilizar también para modelos en estado
estacionario, donde la solución depende de la dimensión espacial. Esta diferencia se
observa en el conjunto de datos de la matriz de entrada. Para el POD, partimos de la matriz
de snapshots y para el ACP, partimos de la matriz de entradas de las coordenadas
espaciales. ACP se podría utilizar en modelos dinámicos, considerando el tiempo como una
dimensión espacial adicional.
El paso post-descomposición de la solución, para calcular los coeficientes )(ti en POD y
)(Ii en ACP, es diferente:
En el método POD, se retorna o se tiene en cuenta al sistema de EDPs original, para
calcular la dependencia del tiempo de los coeficientes ),(ti usando la descomposición de
la solución y el método Galerkin para convertir el modelo EDPs en un conjunto de EDOs.
El número de EDOs resultante es rny , donde n es el número de variables en EDPs y r es el
rango de las funciones de base empleadas en la reducción del modelo. En la aproximación
basada en ACP, los coeficientes son llamados scores y son solamente determinados por el
conjunto de datos de la matriz de entrada, no tiene en cuenta el modelo original.
107
La validez de las funciones de base del POD, no se ven afectadas por cambios que se hagan
en las condiciones de entrada en el modelo, en cambio en el método ACP, si se afecta ya
que no tiene en cuenta el modelo original.
La ventaja de ACP en comparación de POD, es cuando se desarrolla el modelo en estado
estacionario, esto es, los coeficientes pueden ser obtenidos por manejo de los datos, en
lugar de manejar la ecuación, por lo tanto, desarrollando el modelo basado en los datos
solamente, para la simulación y optimización de procesos.
La influencia del modelo original, no se ve afectada, cuando se parte de datos simulados o
cuando son datos experimentales de modelos de equipos eficientes, pero, si se tienen datos
experimentales con ruido u otras características de la experiencia para la toma de los datos,
si se vería influenciado la utilización de sólo el modelo basado en los datos, como el caso
del método ACP.
108
Figura A. 6 Comparación entre el método POD y ACP.
Descomposición Karhunen -Loeve
Método
Solución
Función del tiempo e Independiente
Snapshots
Descomposición de la Solución
Solución para los Coeficientes
Snaphots
Solución
109
ANEXO B. Aplicación del POD para el Procesamiento de Imágenes
La compresión de imágenes es un área de estudio de mucha relevancia en la actualidad:
bien sea por su almacenamiento (imágenes médicas, almacenamiento de huellas digitales,
firmas, entre otras) o transmisión (televisión, satélites, entre otras), es deseable que las
imágenes estén representadas con el menor número posible de unidades básicas (por
ejemplo: bytes) [8].
El método de reducción del modelo a partir del método POD mostrado en la sección 3.2.2,
el cual se planteó como una extensión de la técnica de identificación de sistemas, se
utilizará en los próximos dos ejemplos. El primero corresponde a la imagen de un mandril
el cual se muestra en la Figura B.1 y el segundo, para el procesamiento de la imagen de
Lenna. Ambos ejemplos, fueron tomados de los archivos de procesamiento de imágenes de
Matlab [30] y representan modelos estáticos. Si bien la metodología propuesta implica la
extensión del método ACP a sistemas dinámicos, lo que se pretende con estos ejemplos es
evidenciar la reducción del modelo original.
Figura B. 1 Imagen de un Mandril en RGB. (Referencia)
110
La imagen de un mandril se encuentra en tres bandas o RGB, que corresponde a la
intensidad del color: rojo (R), verde (G) y azul (B). La imagen original se representa por
una matriz de 480x500 píxeles (ver Fig. B.1), la cual se codifica en una escala de grises que
corresponde a una banda, para su posterior procesamiento A cada punto o píxel (x, y) se le
asigna un valor o nivel de gris (ver Fig. B.2). La cuantificación consiste en una paleta de
256 niveles de gris (donde, 0 indica el color negro y 255 el color blanco). Los resultados
del procesamiento fueron obtenidos a partir del desarrollo del programa
Procesam_Imag3.m (ver Anexo C) en Matlab, y que se muestran en la Figura B.3
Al calcular los valores propios de la matriz de correlación (ver Fig. B.4), se observa que
decaen rápidamente, permitiendo que se obtenga una aproximación de la imagen original a
un orden inferior con un pequeño error. Este rápido decaimiento de los valores propios
indica una fuerte correlación de los snapshots, que dá lugar, a la reducción de las funciones
de base necesarias para describir el comportamiento del sistema.
24
Ejemplo Imágenes (1)
Datos: Imagen de un mandril (480x500 pixels)
codificados en una escala de grises de 0 a 256.
Original 100%
Figura B. 2 Imagen de un Mandril en escala de grises.
111
0 50 100 150 200 250 300 350 400 450 50010
-6
10-5
10-4
10-3
10-2
10-1
100
101
102
Número valores propios
log va
lores
prop
ios
espectro de valores propios de los snapshots
Figura B. 3 Espectro de los valores propios.
A continuación se obtiene una aproximación de la imagen original, con un número de
funciones de base igual a n = 1, 3, 10, 40, 50 (ver Fig. B.4), con este número de funciones
de base (POD 50) se obtiene una reducción de almacenamiento, donde la matriz que
representa a la imagen, es ahora de 480x50 píxeles, en comparación con 480x500 píxeles
de la imagen original. Con el modelo reducido POD 50, se consigue una aproximación del
80% de la imagen original.
Original 100%
1 comp 24.87%
112
3 comp 45.525
10 comp 57 %
40 comp 90%
50 comp 79.00%
Figura B. 4 Procesamiento de la imagen utilizando el metodo POD
Se presenta a continuación un segundo ejemplo del método POD, utilizando la técnica de
identificación de sistemas planteada (ver Fig. B.5), el cual corresponde a la imagen de
Lenna. La imagen se encuentra en tres bandas (rojo, verde y azul (RGB)) y se codifica en
escala de grises que corresponde a una banda. La imagen se representa por una matriz de
512x512 píxeles, de la cual se extrae la media de los datos y se calculan los 512 valores
propios de esta matriz. En la Figura B.6, se observa al igual que en el ejemplo anterior, que
los valores propios decaen rápidamente. En la Figura B.7, se muestran los resultados
iniciales del método POD en el procesamiento de la imagen, a estos resultados se les hace
un postratamiento, para compararlos con la imagen original (ver Fig. B.8). Los resultados
se obtienen del programa Procesam_lenna, desarrollado en Matlab.
113
Figura B. 5 Izquierda: imagen original de Lenna en RGB. Derecha: imagen original de Lenna en escala de grises.
0 200 400 60010
-35
10-30
10-25
10-20
10-15
10-10
10-5
100
105
Número valores propios
log v
alore
s pr
opios
espectro de valores propios de los snapshots
0 50 100 150 20010
-3
10-2
10-1
100
Número valores propios
log 1
-En
Figura B. 6 Espectro de los valores propios.
114
Original POD 1 POD 2
POD 3 POD 30 POD 50
Figura B. 7 Resultados del método POD en escala de grises.
Original gray POD 1
POD 2 POD 30 POD 50
Figura B. 8 Reconstrucción de la imagen por el método POD en escala de grises.
115
Al aplicar el método POD para el procesamiento de la imagen de Lenna (matriz de
512x512 píxeles), se obtiene el modelo reducido utilizando las primeras 30 funciones de
base, esto es una matriz de 512x30, con una aproximación de la imagen original del
93,24%. Cuando se utiliza un modelo reducido con 50 funciones de base, la aproximación
es del 96,56% de la imagen original (ver Fig. 4.13 y 4.14).
Por lo tanto, se obtiene más del 95% de precisión de la imagen original, procesando menos
del 10 % de la información, obteniéndose así, una reducción de almacenamiento y rapidez
en el procesamiento. Útil entre otros casos, para el procesamiento de imágenes, por ejemplo
tomadas de satélites, el cual se cuenta con una alta dimensión de los datos y al utilizar el
método POD, sólo se procesaría menos del 10% de esta información, con una muy buena
precisión.
116
ANEXO C. Programas en Matlab
El Software Matlab posee un módulo para la resolución de Ecuaciones en derivadas
parciales denominado PDE Tool (Partial Differential Equation Tool). Para dicha resolución
PDE Tool utiliza el método de los elementos finitos. En el presente trabajo se hace uso de
él para hallar los snapshots y para comparar y validar los resultados obtenidos por el
método POD.
Algunos de los programas realizados, se tomaron de los ejemplos disponibles en Matlab y
se adaptaron al problema del calor, con el fin de ilustrar el método POD.
C.1 Programa PODeig
function [phi, lam, Xmean, nbases]=PODeig(X,cenergia) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Esta funcion calcula las funciones bases del POD, utilizando % el comando eig % Entradas: % X : (n x nsnap) Matriz de snapshot % n = Numero de estados % nsnap = Numero de snapshots % cenergia : La cantidad de energia del conjunto que se desea calcular % por ejemplo, energia= 99.99 (%) % % Salidas: % phi : (n x nsnap) Matriz que contiene los vectores bases del POD % lam : (nsnap x 1) vector que contiene los valores propios del POD % Xmean : (n x 1) la media del conjunto X % nbases : Numero de vectores bases del POD que se pueden capturar % con la energia provista.
117
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Calcular la media de los snapshots. nsnap = size(X,2); Xmean = sum(X,2)/nsnap; % Obtiene el nuevo conjunto con la media cero. O for i=1:nsnap X1(:,i) = X(:,i)-Xmean; end % Metodo de snapshots % calcular la matriz de correlacion C C = X1'*X1/nsnap; % Calcular las bases del POD [evectorC,evalueC] = eig(C); phi = X1 * evectorC; % Normalizar las bases del POD for i=1:nsnap phi(:,i) = phi(:,i)/norm(phi(:,i),2); end % retorna el vector de valores propios del POD. lam = diag(evalueC); % Reagrupa los valores propios del POD, en orden ascendente. %devuelve los valores propios de izquierda a derecha lam = rot90(lam,2); %Devuelve el vector base con el orden de sus elementos invertidos phi = fliplr(phi);
%Encuentra el numero de vectores bases capturado con el total de la
energia
% total energia tenergia = sum(lam); energia = 0.; nbases = 0; i = 1; while (((energia/tenergia)*100) < cenergia) energia = energia + lam(i); i = i+1; end nbases = i; % plot eigenvalues corresponding to nbasis vectors plot(lam(1:nbases)/tenergia/100,'*') xlabel('Numero de valores propios POD ') ylabel('Energia capturada')
C.2 Programa PODsvd
function [phi, lam, nbases]=PODsvd(X,cenergia) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Esta funcion calcula las funciones bases del POD, utilizando
118
% el comando svd % sustrayendo la media del conjunto de datos % Entradas: % X : (n x nsnap) Matriz de snapshot % n = Numero de estados % nsnap = Numero de snapshots % cenergia: La cantidad de energia del conjunto que se desea calcular h % por ejemplo, energia= 99.9 (%) % % Salidas: % phi : (n x nsnap) Matriz que contiene los vectores bases del POD % lam : (nsnap x 1) vector que contiene los valores propios del POD % Xmean : (n x 1) la media del conjunto X % nbases : Numero de vectores bases del POD. que se pueden capturar % con la energia provista. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Metodo de snapshots % calcular la matriz de correlacion C nsnap = size(X,2); C = X'*X/nsnap; % Calcular las funciones bases del POD % [leftmatrixC,evalueC] = svd(C); phi = X * leftmatrixC; % Normalizar las bases del POD for i=1:nsnap phi(:,i) = phi(:,i)/norm(phi(:,i),2); end % retorna el vector de valores propios del POD. lam = diag(evalueC); %Encuentra el numero de vectores bases capturado con el total de la
energia % % total energia tenergia = sum(lam); energia = 0.; nbases = 0; i = 1; while (((energia/tenergia)*100) < cenergia) energia = energia + lam(i); i = i+1; end nbases = i; % plot eigenvalues corresponding to nbasis vectors plot(lam(1:nbases)/tenergia/100,'*') xlabel('Numero de valores propios POD ') ylabel('Energia capturada')
119
C.3 Programa PDE1DIM
Programa para el cálculo del modelo de conducción del calor en una dimensión.
function [coefs,err,percent_explained, p5]= pde1DIM %PDE1DIM Ejemplo 1 % % Se calcula y se grafica la solución de la EDP % La EDP es % [d*Cp/k].* D_ [u] = D_ [ Du/Dx ] + [0] % Dt Dx % ---- --- ------------- ------------- % c u f(x,t,u,Du/Dx) s(x,t,u,Du/Dx) % % [u] + [0] .* [ Du/Dx ] = [0] % % --- --- ------------------------ --- % p(0,t,u) q(0,t) f(0,t,u,Du/Dx) 0 % % El lado derecho de bc es tomado como T % % [d*Cp/k ] + [1] .* [ Du/Dx ] = [0] % % -------------- --- -------------- --- % p(1,t,u) q(1,t) f(1,t,u,Du/Dx) 0 % m = 0; x = linspace(0,0.1,400); t = linspace(1,5,120); %x = linspace(0,1,20); %t = linspace(0,2,5); sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t); %Primeros componentes de la solución como u. u = sol(:,:,1); % Figura del área de la solución. figure(1);
120
surf(x,t,u); title('solución numérica con 400 puntos en la malla, 120 pasos de tiempo'); xlabel('Distancia x(m)'); ylabel('Tiempo t(s)'); Zlabel('Temperatura (°C)'); %normalizar %desviacion estandar stdr = std(u); temp1=ones(size(u,1),1)*mean(u); temp2=(u-temp1); sr2=temp2./repmat(stdr,120,1); %sr2=(u-ones(size(u,1),1)*mean(u))./repmat(stdr,13,1) %otra forma estandarización sr= zscore(u); figure(2),plot(x,u) title('solución numérica con 400 puntos en la malla y 120 pasos de tiempo') xlabel('Distancia x(m)'); ylabel('Temperatura (°C)'); legend('valores de k=1,...,120'); %procesamiento POD [coefs,scores,variances,t2] = princomp(u); c3 = coefs(1:5,1:3); percent_explained = 100*variances/sum(variances); figure(3) %100% componente srr=scores*coefs'; srm100=srr+temp1; subplot(2,3,1); plot(x,srm100) title('100% original ') p1=sum(percent_explained(1,1)); %1 componente srr=scores(:,1)*coefs(:,1)'; srm=srr+temp1; subplot(2,3,2); plot(x,srm) title('1 componente ') p1=sum(percent_explained(1,1)); %2 componente p2=sum(percent_explained(1:2,1)); srr=scores(:,1:2)*coefs(:,1:2)';
121
ax(3)=subplot(2,3,3); srm=srr+temp1; plot(x,srm) title('2 componente ') %3 componente p3=sum(percent_explained(1:3,1)); srr=scores(:,1:3)*coefs(:,1:3)'; ax(4)=subplot(2,3,4); srm=srr+temp1; plot(x,srm) title('3 componente ') %4 componente p4=sum(percent_explained(1:4,1)); srr=scores(:,1:4)*coefs(:,1:4)'; ax(5)=subplot(2,3,5); srm=srr+temp1; plot(x,srm) title('4 componente ') %5 componente p5=sum(percent_explained(1:5,1)); srr=scores(:,1:5)*coefs(:,1:5)'; ax(6)=subplot(2,3,6); srm=srr+temp1; plot(x,srm) title('5 componente ') figure(4); plot(x,srm100(end,:),'--',x,srm(end,:),'o'); title('solución k=120'); xlabel('Distancia x(m)'); ylabel('Temperatura (°C)'); legend('original-400','reducido-5') % A surface plot is often a good way to study a solution. figure(5); %surf(x,t,abs(u-srm)); err=abs(srm100(end,:)-srm(end,:)); surf(x,t,abs(srm100-srm)); title('Error absoluto'); xlabel('Distancia x(m)'); ylabel('Tiempo t(s)'); Zlabel('Temperatura (°C)'); figure(6); err=abs(srm100(end,:)-srm(end,:));
122
plot(x,abs(srm100(end,:)-srm(end,:))); title('Error absoluto'); xlabel('Distancia x(m)'); ylabel('Temperatura (°C)'); % -------------------------------------------------------------------------- function [c,f,s] = pdex1pde(x,t,u,DuDx) %c=pi^2; c = 1e4; f = DuDx; s = 0; % -------------------------------------------------------------------------- function u0 = pdex1ic(x) %u0=sin(pi*x); u0=-400; %u0 =-400; % -------------------------------------------------------------------------- function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t) pl = ul; ql = 0; %pr = pi * exp(-t); %pr=400 pr=-400; qr = 1; %--------------------------------------------------------------
C.4 Programa En
Programa en Matlab para calcular En ecuación (48) y para graficar el espectro de los valores propios:
p2=0; for i= 1:30 %p=p(i-1,1)+p; p(i,1)=(percent_explained1(i,1))/sum(percent_explained1(1:15,1));
123
%p(i,1)=1-(percent_explained1(i,1))/sum(percent_explained1(1:15,1)); p2=p2+p(i,1); p3(i,1)=abs(1-p2); end figure semilogy(percent_explained1,'o') xlabel('n- valores propios ') ylabel('valores propios') title('espectro de los valores propios de los snapshots') figure semilogy(p3,'o') xlabel('indice - valores propios(n)') ylabel('1-En') title('espectro de los valores propios de los snapshots')
C.5 Programa PODFEM
function PODFEM(N) %Problema nos permite comparar el metodo POD con metodo utilizando %los elementos finitos y resolviendo las EDOs por la funcion ode15s %PODFEM Problema con matriz de masa dependiente del tiempo % La EDP es: % exp(-t)* D_ [u] = D_ [ Du/Dx ] % Dt Dx % ---- --- ------------- -------------
if nargin < 1 N = 19; end %N controla la discretizacion, orden 400 (400 estados) %N=400; N=400; h = pi/(N+1); x=h*(1:N); y0 = sin(h*(1:N)'); tspan = [0; pi]; %Jacobiano constante e = repmat(1/h,N,1); % e=[(1/h) ... (1/h)]; d = repmat(-2/h,N,1); % d=[(-2/h) ... (-2/h)]; % Hallar funcion derivada J = spdiags([e d e], -1:1, N, N); d = repmat(h/6,N,1); % Hallar función matriz de masa M = spdiags([d 4*d d], -1:1, N, N);
124
options = odeset('Mass',@mass,'MStateDep','none', ... 'Jacobian',J);
[t,y] = ode15s(@f,tspan,y0,options);
figure; ax(1)=subplot(1,2,1); surf((1:N)/(N+1),t,y); %set(gca,'ZLim',[0 1]); %view(142.5,30); title('problema de elemento finito MEF '); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución por ODE15S');
ax(2)=subplot(1,2,2); surf((1:N)/(N+1),t,y); %Se cambia la orientacion delos ejes set(gca,'ZLim',[0 1]); view(142.5,30); title('MEF cambio orientacion de ejes '); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel(' solución por ODE15S');
temp1=ones(size(y,1),1)*mean(y); sr= zscore(y); figure ax(3)=subplot(1,2,1); surf((1:N)/(N+1),t,sr); %set(gca,'ZLim',[0 1]); %view(142.5,30); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución');
title('solución MEF normalizada ')
%solucion POD datos de entrada normalizados [coefs,scores,variances,t2] = princomp(sr); ax(4)=subplot(1,2,2); srr1n=scores(:,1)*coefs(:,1)'; surf((1:N)/(N+1),t,srr1n) %set(gca,'ZLim',[0 1]); %view(142.5,30); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución');
title('1 componente Normalizado') %solucion POD datos de entrada sin normalizar [coefs,scores,variances,t2] = princomp(y);
figure
125
ax(5)=subplot(1,2,1); srr=scores*coefs'; surf((1:N)/(N+1),t,srr) set(gca,'ZLim',[0 1]); view(142.5,30); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución'); title('100% componentes ')
ax(6)=subplot(1,2,2); srr1=scores(:,1)*coefs(:,1)'; surf((1:N)/(N+1),t,srr1) set(gca,'ZLim',[0 1]); view(142.5,30); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución'); title('1 componente ')
figure ax(7)=subplot(1,2,1); plot((1:N)/(N+1),abs(srr(end,:)-srr1(end,:))); title('POD orden 1 y modelo original'); xlabel('espacio ( x/\pi'); ylabel('Error')
ax(8)=subplot(1,2,2); surf(x,t,abs(srr-srr1)); title('POD orden 1 y modelo original'); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('Error');
figure %utilizando la funcion princomp,centra los datos por sustracion de la
media %por lo tanto, para comparar con la solucion original es necesario
sumarle la %media a los resultados del metodo POD temp1=ones(size(y,1),1)*mean(y); ny=srr+temp1; surf((1:N)/(N+1),t,ny); set(gca,'ZLim',[0 1]); view(142.5,30); title(' modelo reducido orden 1 pasandolo a modo sin normalizar'); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('solución');
figure plot((1:N)/(N+1),ny(end,:),'--') hold on plot((1:N)/(N+1),y(end,:),'o')
126
xlabel('espacio ( x/\pi )') ylabel('solución ') title('Solución para t=end ') legend('POD ','MEF ') figure surf((1:N)/(N+1),t,abs(ny-y)); title('Error absoluto modelo reducido orden 1 y el modelo MEF'); xlabel('espacio ( x/\pi )'); ylabel('tiempo'); zlabel('Error');
%-------------------------------------------------------------- function yp = f(t,y) % Función derivada. yp = J*y; end %-------------------------------------------------------------- function Mt = mass(t) % Función matriz de masa. Mt = exp(-t)*M; end %-------------------------------------------------------------- end
C.6 Programa POD_analitica1
function [err1,err2,err3,y,coefs,variances,M]=POD_MEF_analitica1(N) %Este es un ejemplo que ilustra los diferentes métodos empleados para la %solución de la ecuación (51): Utilizando la solución analítica, %el Toolbox de Matlab para la solución de EDPs, %el método de elementos finitos y empleando el método POD % % La ecuación EDPs es % % [pi^2] .* D_ [u] = D_ [ Du/Dx ] + [0] % Dt Dx % ---- --- ------------- ------------- % c u f(x,t,u,Du/Dx) s(x,t,u,Du/Dx) % % La solución se halla para un intervalo de 0 <= x <= 1 % y para tiempos t >= 0. % Se tiene la solución analítica u(x,t) = exp(-t)*sin(pi*x). % Las condiciones de borde se especifican del tal manera que sea la % solución del problema de valor de frontera, % con un valor inicial sin(pi*x) y condiciones de borde en lado
izquierdo % u(0,t) = 0.
127
% % [u] + [0] .* [ Du/Dx ] = [0] % % --- --- ------------------------ --- % p(0,t,u) q(0,t) f(0,t,u,Du/Dx) 0 % % y en el lado derecho pi*exp(-t) + Du/Dx(1,t) = 0: % % [ pi*exp(-t) ] + [1] .* [ Du/Dx ] = [0] % % -------------- --- -------------- --- % p(1,t,u) q(1,t) f(1,t,u,Du/Dx) 0 % % Las condiciones anteriores se encuentran en las subfunciones % tomadas de Matlab PDEX1PDE, PDEX1IC, and PDEX1BC. % %Procedimiento empleando método de elementos finitos axis equal if nargin < 1 K = 9; end %K controla la discretización, para malla 20 y refinada con 400 K=400; % cambiar K tambien en la Function dydt m = 0; x = linspace(0,1,K); t1 = linspace(0,2,5);
tspan = [0; pi]; tspan = t1;
y0= sin(pi*x);
% Matriz de masa constante e = repmat(pi/(6*(K+1)),K,1); % h=pi/(N+1); e=(h/6)+zeros(N,1); M = spdiags([e 4*e e], -1:1, K, K); % matriz de masa
options = odeset('Mass',M);
[t,y] = ode23s(@f,tspan,y0,options); %Problema de elementos finitos, solución por ODE23S %figure; ax(1)=subplot(1,2,1); surf(x,t,y); title('Solución MEF:20 nodos'); xlabel('Espacio x'); ylabel('Tiempo t'); zlabel('T');
% procedimiento para hallar la solución EDPs por Toolbox Matlab sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t1); u = sol(:,:,1);
%Solución EDPs por Toolbox Matlab %ax(2)=subplot(1,2,2);
128
%surf(x,t1,u); %title('Solución EDPs por Toolbox Matlab'); %xlabel('espacio'); %ylabel('tiempo'); %zlabel('Solución');
%figure; ax(2)=subplot(1,2,2); %Solución analítica u(x,t) = exp(-t)*sin(pi*x). surf(x,t1,exp(-t1)'*sin(pi*x)); title('Solución Analítica T= exp(-t)*sin(pi*x).'); xlabel('Espacio x'); ylabel('Tiempo t'); zlabel('T');
%solución POD datos de entrada sin normalizar [coefs,scores,variances,t2] = princomp(y); srr=scores*coefs'; %utilizando la función princomp,centra los datos por sustración de la
media %por tanto, para comparar con la solución original es necesario sumarle
la %media a los resultados del metodo POD temp1=ones(size(y,1),1)*mean(y); srr=srr+temp1; figure %axis equal ax(4)=subplot(1,2,1); srr1=scores(:,1)*coefs(:,1)'; srr1=srr1+temp1; surf(x,t1,srr1) xlabel('Espacio x') ylabel('Tiempo t') zlabel('T') title('POD 1:1a Función Propia') %axis equal zlim([0 1]) ax(5)=subplot(1,2,2); %Solución analítica u(x,t) = exp(-t)*sin(pi*x). surf(x,t1,exp(-t1)'*sin(pi*x)); title('Solución analítica = exp(-t)*sin(pi*x).'); xlabel('Espacio x'); ylabel('Tiempo t'); zlabel('T'); %axis equal % se compara la solución utilizando: %el Toolbox de Matlab para la solución de EDPs, %el método de elementos finitos y la solución analítica % %figure; %ax(6)=subplot(1,2,1); %plot(x,u(end,:),'o',x,y(end,:),'*',x,exp(-t1(end))*sin(pi*x)); %title('Solución para t = 2.'); %legend('Toolbox de Matlab','MEF','Analítica',0); %xlabel('espacio'); %ylabel('Solución ');
129
% se compara la solución utilizando: %el Toolbox de Matlab para la solución de EDPs, %el método de elementos finitos, la solución analítica y POD % %Solución analítica sa=exp(-t1)'*sin(pi*x); figure; %ax(6)=subplot(1,2,1); plot(x,y(end,:),'*',x,sa(end,:),x,srr1(end,:),'o'); title('Solución para t = 2.'); legend('MEF 400 nodos','Analítica','POD 1:1a Función Propia',0); xlabel('Espacio x'); ylabel('T');
%Solución POD y FEM para t=end figure %ax(7)=subplot(1,2,1); plot(x,srr1(end,:),'r+') hold on plot(x,y(end,:),'o') xlabel('Espacio x') ylabel('T') title('Solución POD y MEF para t=end ') legend('POD','MEF')
%Solución POD y MEF para t=1 figure plot(x,srr1(1,:),'r+') hold on plot(x,y(1,:),'o') xlabel('Espacio x') ylabel('T') title('Solución POD y MEF para t=1 ') legend('POD','MEF')
figure %ax(8)=subplot(1,2,1); err=mean(abs(sa(end,:)-srr(end,:))); surf(x,t,abs(srr-srr1)); title('Error absoluto entre el modelo reducido y la solución analítica'); xlabel('Espacio x') ylabel('Tiempo t') zlabel('Error')
%Modelo Reducido(MOR) %M=coefs(:,1)*M*coefs(:,1)'; M=coefs(:,1)'*coefs(:,1)*M; options = odeset('Mass',M);
[t,y1] = ode23s(@f,tspan,y0,options); %Problema de elementos finitos, solución por ODE23S figure (10); %ax(1)=subplot(1,2,1); surf(x,t,y1); title('Solución MOR(Asociadas 20 nodos)');
130
xlabel('espacio x'); ylabel('Tiempo t'); zlabel('T'); figure(11); %Solución para t = 2 %ax(6)=subplot(1,2,1); plot(x,y(end,:),'*',x,sa(end,:),x,srr1(end,:),'o',x,y1(end,:),'--'); title('Solución para t = 2.'); legend('MEF 400 nodos','Analítica','PODEmpirico:1a Función Propia',... 'PODGaler:1a Función Propia',0); xlabel('Espacio x'); ylabel('T'); figure(12); %ax(6)=subplot(1,2,1); %Solución para t = 0.5 plot(x,y(end,:),'*',x,sa(end,:),x,srr1(end,:),'o',x,y1(end,:),'--'); title('Solución para t = 0.5.'); legend('MEF 400 nodos','Analítica','PODEmpirico:1a Función Propia',... 'PODGaler:1a Función Propia',0); xlabel('Espacio x'); ylabel('T');
%Error
%ax(8)=subplot(1,2,1); err1=mean(abs(sa(end,:)-y(end,:))); err2=mean(abs(sa(end,:)-y1(end,:))); err3=mean(abs(sa(end,:)-srr1(end,:))); figure surf(x,t,abs(sa-y)); title('Error absoluto MEF y la solución analítica'); xlabel('Espacio x') ylabel('Tiempo t') zlabel('Error') figure surf(x,t,abs(sa-y1)); title('Error absoluto PODGalerkin y la solución analítica'); xlabel('Espacio x') ylabel('Tiempo t') zlabel('Error') figure surf(x,t,abs(sa-srr1)); title('Error absoluto PODEmpirico y la solución analítica'); xlabel('Espacio x') ylabel('Tiempo t') zlabel('Error') % -----------------------------------------------------------------------
---
function [c,f,s] = pdex1pde(x,t,u,DuDx) c = pi^2; f = DuDx; s = 0;
% -----------------------------------------------------------------------
---
131
function u0 = pdex1ic(x) u0 = sin(pi*x);
% -----------------------------------------------------------------------
---
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t) pl = ul; ql = 0; pr = pi * exp(-t); qr = 1;
% ---------------------------------------------------------------------
-- %
function dydt = f(t,y) % Derivada de la función. K controla la discretización K=400; e = repmat((K+1)/pi,K,1); d = repmat(-2*(K+1)/pi,K,1); R = spdiags([e d e], -1:1, K, K); dydt = R * y;
% ---------------------------------------------------------------------
--
C.7 Programa Procesam_Imag3 %Procesam_Imag3 load mandrill figure('color','k') image(X) colormap(map) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels load mandrill figure('color','k') image(X) colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels title('gray')
132
%sr1= zscore(X); %figure %boxplot(sr1,'orientation','horizontal','labels',componentes) %sr1=sr2 se normalizan con diferentes comandos %Se observa la variabilidad de los componentes D y B como se comprueba con %su desviacion estandar %[coefs,scores,variances,t2] = princomp(sr1); %coefs %c3 = coefs(1:5,1:3) %percent_explained = 100*variances/sum(variances); %p_ex=percent_explained(1:10) [coefs,scores,variances,t2] = princomp(X); %coefs c3 = coefs(1:5,1:3); percent_explained = 100*variances/sum(variances); figure %original ax(1)=subplot(2,3,1); srr=scores*coefs'; %figure('color','k') image(srr),title('100% original') colormap(map) %axis off % Remove axis ticks and numbers %axis image % Set aspect ratio to obtain square pixels %1 componente srr=scores(:,1)*coefs(:,1)'; ax(2)=subplot(2,3,2); %figure('color','k') p1=sum(percent_explained(1,1)); image(srr),title('1 componente') colormap(gray) %axis off % Remove axis ticks and numbers %axis image % Set aspect ratio to obtain square pixels %2 componente p2=sum(percent_explained(1:2,1)); srr=scores(:,1:2)*coefs(:,1:2)'; ax(3)=subplot(2,3,3); %figure('color','k') image(srr),title('2 componente') colormap(gray) %axis off % Remove axis ticks and numbers
133
%axis image % Set aspect ratio to obtain square pixels %3 componente p3=sum(percent_explained(1:3,1)); srr=scores(:,1:3)*coefs(:,1:3)'; ax(4)=subplot(2,3,4); %figure('color','k') image(srr),title('3 componente') colormap(gray) %axis off % Remove axis ticks and numbers %axis image % Set aspect ratio to obtain square pixels %4 componente p4=sum(percent_explained(1:4,1)); srr=scores(:,1:4)*coefs(:,1:4)'; ax(5)=subplot(2,3,5); %figure('color','k') image(srr),title('4 componente') colormap(gray) %axis off % Remove axis ticks and numbers %axis image % Set aspect ratio to obtain square pixels %50 componente p50=sum(percent_explained(1:50,1)); srr=scores(:,1:50)*coefs(:,1:50)'; ax(6)=subplot(2,3,6); %figure('color','k') image(srr),title('50 componente') colormap(gray) %axis off % Remove axis ticks and numbers %axis image % Set aspect ratio to obtain square pixels linkaxes(ax,'xy') axis(ax,'image')
C.8 Programa Procesam_lenna
%Procesam_lenna
I=imread('lenna.png'); figure imshow(I) II=imread('len_gray.png');
134
figure ax(20)=subplot(2,3,1); imshow(II);
I1=double(II); ax(21)=subplot(2,3,2); image(I1) colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels title('gray')
[coefs,scores,variances,t2] = princomp(I1); percent_explained = 100*variances/sum(variances); temp1=ones(size(I1,1),1)*mean(I1); srr=scores*coefs'; srr=srr+temp1;
%1 componente srr=scores(:,1)*coefs(:,1)'; srr=srr+temp1; ax(2)=subplot(2,3,3); p1=sum(percent_explained(1,1)); image(srr); title('1 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%2 componente p2=sum(percent_explained(1:2,1)); srr=scores(:,1:2)*coefs(:,1:2)'; srr=srr+temp1; ax(3)=subplot(2,3,4); image(srr); title('2 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%30 componente p30=sum(percent_explained(1:30,1)); srr=scores(:,1:30)*coefs(:,1:30)'; srr=srr+temp1; ax(5)=subplot(2,3,5); image(srr); title('30 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%50 componente p50=sum(percent_explained(1:50,1));
135
srr=scores(:,1:50)*coefs(:,1:50)'; srr=srr+temp1; ax(6)=subplot(2,3,6); image(srr); title('50 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %resultados del POD sin extraer la media figure %original ax(7)=subplot(2,3,1); srr=scores*coefs'; image(srr); title('100% original') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%1 componente srr=scores(:,1)*coefs(:,1)'; ax(8)=subplot(2,3,2); image(srr); title('1 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%2 componente srr=scores(:,1:2)*coefs(:,1:2)'; ax(9)=subplot(2,3,3); image(srr); title('2 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%3 componente srr=scores(:,1:3)*coefs(:,1:3)'; ax(10)=subplot(2,3,4); image(srr); title('3 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%30 componente srr=scores(:,1:30)*coefs(:,1:30)'; ax(11)=subplot(2,3,5); image(srr); title('30 componente') colormap(gray) axis off % Remove axis ticks and numbers
136
axis image % Set aspect ratio to obtain square pixels
%50 componente srr=scores(:,1:50)*coefs(:,1:50)'; ax(12)=subplot(2,3,6); image(srr); title('50 componente') colormap(gray) axis off % Remove axis ticks and numbers axis image % Set aspect ratio to obtain square pixels
%espectro de los valores propios de los snapshots figure ax(13)=subplot(1,2,1); semilogy(percent_explained,'o') xlabel('Número valores propios') ylabel('log valores propios') title(' espectro de valores propios de los snapshots') grid
for i1=1:200 E(i1,1)=sum(percent_explained(1:i1,1)); end ax(14)=subplot(1,2,2); semilogy(1-E/100,'o') xlabel('Número valores propios') ylabel('log 1-En') grid
C.9 Programa PODcavidad
Programa en Matlab, para hallar la solución de la ecuación de conducción del calor en dos dimensiones.
function cavidad1 [p,e,t]=initmesh('geometria'); [p,e,t]=refinemesh('geometria',p,e,t); [p,e,t]=refinemesh('geometria',p,e,t); %[p,e,t]=refinemesh('geometria',p,e,t); %[p,e,t]=refinemesh('geometria',p,e,t); figure (1) pdemesh(p,e,t) tic u=parabolic(0,0:0.05:5,'borde',p,e,t,1,0,0,1);
137
toc figure (2) pdeplot(p,e,t,'xydata',u(:,end),'mesh','off',... 'colormap','jet') xlabel('x') ylabel('y') title('100% original tiempo 5 s') figure (3) pdesurf(p,t,u(:,end)) xlabel('x') ylabel('y') zlabel('T(°C)') title('100% original tiempo 5 s') %proceamiento tic [coefs,scores,variances,t2] = princomp(u); c3 = coefs(1:5,1:3); percent_explained = 100*variances/sum(variances); %100% componente srr=scores*coefs'; toc %subplot(2,3,1); figure (4) pdesurf(p,t,u(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('100% original t(final) ') p1=sum(percent_explained(1,1)); %1 componente srr=scores(:,1)*coefs(:,1)'; %subplot(2,3,2); %figure figure (5) pdesurf(p,t,srr(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('1 componente ') p1=sum(percent_explained(1,1)); %2 componente p2=sum(percent_explained(1:2,1));
138
srr=scores(:,1:2)*coefs(:,1:2)'; %ax(3)=subplot(2,3,3); figure (6) pdesurf(p,t,srr(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('2 componente ') %figure('color','k') %3 componente p3=sum(percent_explained(1:3,1)); srr=scores(:,1:3)*coefs(:,1:3)'; %ax(4)=subplot(2,3,4); figure (7) pdesurf(p,t,srr(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('3 componente ') %4 componente p4=sum(percent_explained(1:4,1)); srr=scores(:,1:4)*coefs(:,1:4)'; %ax(5)=subplot(2,3,5); figure (8) pdesurf(p,t,srr(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('4 componente ') %5 componente p5=sum(percent_explained(1:5,1)); srr=scores(:,1:5)*coefs(:,1:5)'; %ax(6)=subplot(2,3,6); figure (9) pdesurf(p,t,srr(:,end)) xlabel('x(m)') ylabel('y(m)') %zlabel('T(°C)') title('5 componente ')
139
figure (10) ti=0:0.05:5; plot(ti,u); xlabel('t(s)') ylabel('T(°C)') title('Conduc. calor 2D malla') figure plot(ti,u(end,:)) xlabel('t(s)') ylabel('T(°C)') title('Conduc. calor 2D en un punto malla') figure (11) semilogy(percent_explained,'o') xlabel('Número valores propios') ylabel('log valores propios') title(' espectro de los valores propios de los snapshots') grid for i1=1:101 E(i1,1)=sum(percent_explained(1:i1,1)); end figure (12) semilogy(1-E/100,'o') xlabel('Número valores propios') ylabel('log 1-En') title('espectro de los valores propios de los snapshots') grid % %Geometria de la placa metalica function [x,y]=geometria(bs,s) % nbs=8; if nargin==0, x=nbs; return end d=[ 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 0 ];
140
bs1=bs(:)'; if find(bs1<1 | bs1>nbs), error('PDE:geometria:Invalido Bs') end if nargin==1, x=d(:,bs1); return end x=zeros(size(s)); y=zeros(size(s)); [m,n]=size(bs); if m==1 && n==1, bs=bs*ones(size(s)); elseif m~=size(s,1) || n~=size(s,2), error('PDE:geometria:tamañoBs'); end if ~isempty(s), ii=find(bs==1); if length(ii) x(ii)=interp1([d(1,1),d(2,1)],[0.5 0.5],s(ii)); y(ii)=interp1([d(1,1),d(2,1)],[0.80000000000000004 -... 0.80000000000000004],s(ii)); end ii=find(bs==2); if length(ii) x(ii)=interp1([d(1,2),d(2,2)],[0.5 -0.5],s(ii)); y(ii)=interp1([d(1,2),d(2,2)],[-0.80000000000000004 -... 0.80000000000000004],s(ii)); end ii=find(bs==3); if length(ii) x(ii)=interp1([d(1,3),d(2,3)],[0.050000000000000003 ... 0.050000000000000003],s(ii)); y(ii)=interp1([d(1,3),d(2,3)],[0.40000000000000002 ... -0.40000000000000002],s(ii)); end ii=find(bs==4); if length(ii)
141
x(ii)=interp1([d(1,4),d(2,4)],[0.050000000000000003 ... -0.050000000000000003],s(ii)); y(ii)=interp1([d(1,4),d(2,4)],[-0.40000000000000002 ... -0.40000000000000002],s(ii)); end ii=find(bs==5); if length(ii) x(ii)=interp1([d(1,5),d(2,5)],[-0.050000000000000003 ... 0.050000000000000003],s(ii)); y(ii)=interp1([d(1,5),d(2,5)],[0.40000000000000002 ... 0.40000000000000002],s(ii)); end ii=find(bs==6); if length(ii) x(ii)=interp1([d(1,6),d(2,6)],[-0.5 -0.5],s(ii)); y(ii)=interp1([d(1,6),d(2,6)],[-0.80000000000000004 ... 0.80000000000000004],s(ii)); end ii=find(bs==7); if length(ii) x(ii)=interp1([d(1,7),d(2,7)],[-0.5 0.5],s(ii)); y(ii)=interp1([d(1,7),d(2,7)],[0.80000000000000004 ... 0.80000000000000004],s(ii)); end ii=find(bs==8); if length(ii) x(ii)=interp1([d(1,8),d(2,8)],[-0.050000000000000003 ... -0.050000000000000003],s(ii)); y(ii)=interp1([d(1,8),d(2,8)],[-0.40000000000000002 ... 0.40000000000000002],s(ii)); end end % ------------------------------------------------------------------------- %condiciones de borde function [q,g,h,r]=borde(p,e,u,time) bl=[ 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 48 48 48 48 48 1 48 48
142
45 48 48 48 48 3 48 48 49 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 49 49 49 49 49 49 49 49 48 48 48 48 48 49 48 48 0 0 0 0 0 48 0 0 0 0 0 0 0 48 0 0 ]; if any(size(u)) [q,g,h,r]=pdeexpd(p,e,u,time,bl); else [q,g,h,r]=pdeexpd(p,e,time,bl); end
C.10 Programa Cavidadanimacion
Programa en Matlab, que presenta la animación de la solución de la ecuación de conducción del calor en dos dimensiones.
[p,e,t]=initmesh('geometria'); [p,e,t]=refinemesh('geometria',p,e,t); %figure %pdemesh(p,e,t) n=50; tlist=linspace(0,2,n); % list of times u=parabolic(0,tlist,'borde',p,e,t,1,0,0,1); n=50; tlist=linspace(0,0.0001,n); % list of times %tlist=logspace(-2,0.5,20); %uu=hyperbolic(u0,ut0,tlist,'squareb3',p,e,t,1,0,0,1); delta=-0.5:0.05:0.5; [uxy,tn,a2,a3]=tri2grid(p,t,u(:,1),delta,delta); gp=[tn;a2;a3]; umax=max(max(u)); umin=min(min(u)); figure(2) newplot M=moviein(n);
143
for i=1:n, pdeplot(p,e,t,'xydata',u(:,i),'zdata',u(:,i),... 'mesh','off','xygrid','on','gridparam',gp,... 'colormap','jet','zstyle','continuous'); axis([-0.5 0.5 -1 1 umin umax]); caxis([umin umax]); M(:,i)=getframe; end movie(M,5);
C.11 Programa pdeGlobal2 function[x u u1 u2 u3 t p8]= pdeGlobal2 m = 0; Nx=40; Nt=60; x = linspace(0,0.1,Nx); t = linspace(0,2,Nt); sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t); u = sol(:,:,1); figure; x = linspace(0,0.1,40); surf(x,t,u); xlabel('espacio') ylabel('tiempo') zlabel('Solución') %x = linspace(0.1,0,40); hold on u3=u(:,end:-1:1); surf(x,t,u3); xlabel('espacio') ylabel('tiempo') zlabel('Solución') title('Solución Numérica con 400 puntos malla'); hold off figure u4=u(:,end:-1:0.5); surf(x,t,u4); u5=u(:,0.5:1:end); figure
144
surf(x,t,u5); u2=[u4 u5]; figure x = linspace(0,0.1,80); surf(x,t,u2); xlabel('espacio') ylabel('tiempo') zlabel('Solución') title('Solución Numérica con 400 puntos malla'); u1=u; u=[u1 u2 u3]; figure ax(6)=subplot(1,2,1); x = linspace(0,0.1,160); surf(x,t,u); xlabel('espacio') ylabel('tiempo') zlabel('Solución') title('Solución Numérica con 400 puntos malla'); ax(7)=subplot(1,2,2); plot(x,u); xlabel('espacio') ylabel('Solución') %procesamiento POD [coefs,scores,variances,t2] = princomp(u); c3 = coefs(1:5,1:3); percent_explained = 100*variances/sum(variances); figure %100% componente srr=scores*coefs'; temp1=ones(size(u,1),1)*mean(u); srm100=srr+temp1; ax(8)=subplot(2,3,1); plot(x,u) title('original ') p1=sum(percent_explained(1,1)); %1 componente srr=scores(:,1)*coefs(:,1)'; srm=srr+temp1; ax(9)=subplot(2,3,2); plot(x,srm) title('1 componente ') p1=sum(percent_explained(1,1)); %2 componente
145
p2=sum(percent_explained(1:2,1)); srr=scores(:,1:2)*coefs(:,1:2)'; ax(3)=subplot(2,3,3); srm=srr+temp1; plot(x,srm) title('2 componente ') %3 componente p3=sum(percent_explained(1:3,1)); srr=scores(:,1:3)*coefs(:,1:3)'; ax(10)=subplot(2,3,4); srm=srr+temp1; plot(x,srm) title('3 componente ') %4 componente p4=sum(percent_explained(1:4,1)); srr=scores(:,1:4)*coefs(:,1:4)'; ax(11)=subplot(2,3,5); srm=srr+temp1; plot(x,srm) title('4 componente ') %8 componente p8=sum(percent_explained(1:8,1)); srr=scores(:,1:8)*coefs(:,1:8)'; ax(12)=subplot(2,3,6); srm=srr+temp1; plot(x,srm) title('8 componente ') figure plot(x,u(end,:),'--',x,srm(end,:),'o'); title('solución k=120'); xlabel('Distancia x(m)'); ylabel('Temperatura (°C)'); legend('original-400','reducido-8') figure surf(x,t,abs(u-srm)); title('Error absoluto'); xlabel('Espacio'); ylabel('Tiempo'); Zlabel('Temperatura (°C)'); figure; plot(x,abs(u(end,:)-srm(end,:))); title('Error absoluto');
146
xlabel('espacio'); ylabel('Temperatura (°C)'); %espectro de los valores propios de los snapshots figure ax(13)=subplot(1,2,1); semilogy(percent_explained,'o') xlabel('Número valores propios') ylabel('log valores propios') title(' espectro de valores propios de los snapshots') grid for i1=1:Nx E(i1,1)=sum(percent_explained(1:i1,1)); end ax(14)=subplot(1,2,2); semilogy(1-E/100,'o') xlabel('Número valores propios') ylabel('log 1-En') grid % -------------------------------------------------------------------- function [c,f,s] = pdex1pde(x,t,u,DuDx) c = 1e4; f = DuDx; s = 0; % -------------------------------------------------------------------- % Condicion inicial 400 function u0 = pdex1ic(x) u0 =25; % -------------------------------------------------------------------- %Condiciones de borde 0 en x=0 y 400 en x=1 function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t) pl = ul-80; ql = 0; pr=0; qr = 0.1;