Diferencia entre revisiones de «Modelo térmico de un edificio (GRUPO 3)»
(→D) |
(→D) |
||
| Línea 195: | Línea 195: | ||
==C== | ==C== | ||
==D== | ==D== | ||
| − | [[Archivo: | + | [[Archivo:2.d.jpg|marco|derecha|Variación de la temperatura con el tiempo para distintos pasos]] |
{{matlab|codigo= | {{matlab|codigo= | ||
clear, close all | clear, close all | ||
Revisión del 17:47 3 may 2016
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Modelo térmico de un edificio. Grupo 3 |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2015-16 |
| Autores | Javier Blanco Villarroel,
Javier Colorado Martínez, Alberto Garcés Rodríguez, Álvaro Llera Fernández, Antonio Pérez Mata |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
El objetivo del trabajo es formular un modelo matemático que describa el comportamiento de la temperatura en el interior de un edificio en el lapso de 24h en función de la temperatura exterior, del calor que se genera dentro del edificio y del sistema de calefacción y aire acondicionado. Se trata de responder a estas tres preguntas:
¿Cuánto tarda en cambiar considerablemente la temperatura del edificio?
¿Cómo varía la temperatura del edificio durante la primavera y el otoño, cuando no se emplea el aire acondicionado o calefacción?
¿Cómo varia la temperatura del edificio durante el verano, cuando se utiliza aire acondicionado, o en invierno, cuando se emplea calefacción?
Para modelizar este suceso utilizaremos la teoría de ecuaciones diferenciales y modelos numéricos resueltos mediante el programa MatLab.
Contenido
1 Introducción y modelización
Dentro de un edificio existen multitud de parámetros que regulan la temperatura interior, por ejemplo, dependiendo del tipo de paredes, cubierta y forjados que lo compongan, podrá tener una mayor transmitancia térmica y quedar más expuesto a la temperatura exterior. Además hay que tener en cuenta que el calor se puede transmitir por conducción, convección y radiación.
El número, tamaño y calidad de ventanas también influye, ya que representan los puentes térmicos que hacen más o menos vulnerable al edificio.
Las personas y las máquinas también influyen en la temperatura interior, ya que generan calor que transmiten al interior del edificio, de tal manera que según el manual de instalaciones de calefacción por agua caliente de Franco Martín Sánchez alrededor de tres personas generan el mismo calor que un radiador. Evidentemente, los calefactores, radiadores y máquinas de aire acondicionado varían la temperatura interior y son usados para mantener una temperatura ideal que permita a las personas hacer las actividades para las que está diseñado el edificio.
De tal manera que para simplificar todas estas variables se tomará el edificio como un bloque donde todos sus paramentos tendrán la misma capacidad de transmisión de calor (k), el calor producido por las personas, máquinas y calefacción no será definido por zonas puntuales de fuentes o sumideros, sino que serán funciones que tendrán la misma densidad en todos los puntos del edificio; quedando un modelo así:
Funciones y parámetros que participan en la temperatura:
- [math]T(t)=[/math] Temperatura interior del edificio en un instante [math]t[/math]. [Medido en ºC].
- [math]H(t)=[/math] Calor producido por personas y elementos del edificio. "(Expresados en términos de energía por unidad de tiempo que multiplicado por la capacidad calorífica del edificio da temperaturas por unidad de tiempo)"
- [math]U(t)=[/math] Calentamiento producido por la calefacción. "(Expresados en términos de energía por unidad de tiempo que multiplicado por la capacidad calorífica del edificio da temperaturas por unidad de tiempo)"
- [math]M(t)=[/math] Temperatura exterior. "(Medido en ºC)"
- [math]k=[/math] Constante que depende de las propiedades del edificio. "(Expresado en unidades de grados de cambio de temperatura por energía calorífica)"
- [math]t_0=\frac{1}{k}=[/math] Constante del tiempo del edificio, correspondiente con el instante inicial. "(Expresado en horas)"
En nuestro caso particular estudiaremos la evolución de la temperatura en un lapso de 24h, para ello definiremos la variable [math]T(t)[/math] que representa la temperatura en el interior del edificio en un instante t. Como se puede observar T será una función dependiente únicamente del tiempo ya que consideramos el interior del edificio como un único habitáculo en el cuál la temperatura es igual para todo el espacio.
Para deducir la ecuación diferencial que gobierna el comportamiento de la temperatura, aceptaremos como válidas dos hipótesis:
- Aceptaremos como válida y extrapolable a nuestro problema la ley de transmisión del calor de Fourier, que afirma que la conducción de calor entre dos cuerpos es proporcional a la diferencia de temperatura de ambos para una cierta constante [math]k[/math] de proporcionalidad.
[math]\frac{dT_1}{dt}=k(T_1-T_2)[/math]
- Consideraremos la temperatura [math]T(t)[/math] igual para todo el interior del edificio.
Con estas hipótesis como premisas deduciremos la ecuación diferencial que rige la temperatura [math]T(t)[/math] en base a que la variación de grados centígrados es igual a los grados centígrados que aumentan menos los que disminuyen. El problema de Cauchy que modela el fenómeno es, por tanto:
\begin{equation*} \begin{cases} T'(t)=\Delta(ºC)=k·(M(t)-T(t))+H(t)±U(t);\hspace{1cm} t≥0 \\ T(0)=t_0 \end{cases} \end{equation*}
2 Tiempo de variación significativa de [math]T(t)[/math]
La primera pregunta que se nos plantea es cuánto tarda en variar considerablemente la temperatura del edificio. Para ello, vamos a resolver numéricamente la ecuación diferencial planteada anteriormente utilizando el método de Euler implícito con un paso h=0.01. La dificultad de usar un método de este tipo reside en que la variable que queremos calcular no aparece de manera explícita en la ecuación, por lo que hay que despejarla manualmente para introducirla en el algoritmo.
Para despejarla, tendremos en cuenta que al final del día (que coincide con el inicio del día, al ser períodos de 24h) la temperatura exterior permanece a [math]M_0[/math] grados; que la razón de calentamiento adicional [math](H_0)[/math] es 0 grados, al igual que la razón de calefacción [math](U_0)[/math]; y que la temperatura en el interior del edificio a medianoche es [math]t_0[/math] grados.
Es decir, la ecuación diferencial quedaría como:
\begin{equation*} \begin{cases} T'(t)=\Delta(ºC)=k(M(t)-T(t))+0+0 \\ T(0)=t_0 \end{cases} \end{equation*}
Ecuación diferencial definitiva:
\begin{equation*} \begin{cases} T'(t)=\Delta(ºC)=k(M(t)-T(t))\\ T(0)=t_0 \end{cases} \end{equation*}
Que tiene como solución de la ecuación la función:
[math]T(t)=(T_0-M_0)·e^{-k·t}+M_0[/math]
En este apartado hemos tomado una temperatura exterior [math]M(t)[/math] constante e igual a 8°C, una constante térmica del edificio igual a 3 y una temperatura inicial a las 00:00h de 14°C. Usando Euler implícito como indica el enunciado, quedaría un bucle:
\begin{equation*} \begin{cases} T_{n+1}=T_n+h·f(t_{n+1},T{n+1})\\ T(0)=t_0 \end{cases} \end{equation*}
- [math]T_{n+1}=T_n+h·f(t_{n+1},T{n+1}) = T_n+h·f·[k·(M_0-T_1)] \Longrightarrow[/math]
- [math]T_{n+1}=T_n+h·[\frac{1}{3}·(8-T_{n+1})]=T_n+h·[\frac{8}{3}-\frac{1}{3} T_{n+1}]=T_n+\frac{8}{3}h-\frac{1}{3}h·T_{n+1}\Longrightarrow[/math]
- [math]T_{n+1}=T_n+\frac{8}{3}h-\frac{1}{3}h·T_{n+1} \Longrightarrow T_{n+1}+\frac{1}{3}h·T_{n+1}=T_n+\frac{8}{3}h\Longrightarrow[/math]
- [math]T_{n+1}·(1+\frac{1}{3}h)=T_n+\frac{8}{3}h⟹\boxed{(T_{n+1}=\frac{(T_n+\frac{8}{3}h)}{(1+\frac{1}{3}h)})}[/math]
A continuación, resolvemos el problema numérico en Matlab con los datos anteriormente expuestos:
% CAMBIO CONSIDERABLE DE LA TEMPERATURA DEL EDIFICIO
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all, clc, close all
% Ecuación diferencial: T'(t)=1/3*(M0-T(t));
% Solución exacta T(t)=(T0-M0)*exp(-1/3*t)+M0;
% DATOS DE PARTIDA:
t0=0; tN=24; % Intervalo de tiempo.
k=1/3; % Cte de tiempo del edificio: t=1/k=3
M0=input('Valor inicial de la temperatura exterior: ');
T0=input('Valor inicial de la temperatura interior: ');
% DISCRETIZACIÓN DE LA VARIABLE INDEPENDIENTE "t":
h=input('Introduzca el tamaño de paso h: ');
N=round((tN-t0)/h); % Número de subintervalos.
t=linspace(t0,tN,N+1); % Vector de tiempo.
%--------------------------------------------------------------------------
% SOLUCIÓN EXACTA:
Tex=(T0-M0)*exp(-1/3*t)+M0; % Función solución exacta (solución analítica).
% CÁLCULO NUMÉRICO: Método de Euler Implícito (Backward Euler Method).
T=zeros(size(t)); % Matriz "vacía" de la solución numérica.
T(1)=T0;
for i=1:N % Inicio del bucle.
T(i+1)=(T(i)+8*h/3)/(1+h/3);
end
% ¡Cuidado! Si no hay valor de "T" ó "t" en la EDO, escribir "0*T" ó "0*t".
%--------------------------------------------------------------------------
% GRÁFICAS:
hold on
subplot(1,3,1) % Primera gráfica.
plot(t,Tex,'r') % Gráfica de la solución exacta (solución analítica).
xlabel('Time'); ylabel('Temperature')
title('Temperature variation')
legend('Exact Ecuation')
subplot(1,3,2) % Segunda gráfica.
plot(t,T,'b') % Gráfica de la solución aproximada (solución númerica).
xlabel('Time'), ylabel('Temperature')
title('Temperature variation')
legend('Backward Euler Method')
subplot(1,3,3) % Tercera gráfica.
plot(t,Tex,'r',t,T,'b') % Gráfica de comparación de métodos.
xlabel('Time'); ylabel('Temperature')
title('Comparation between methods')
legend('Exact Ecuation','Backward Euler Method','Location','best')
hold off
%--------------------------------------------------------------------------
% ESTUDIO DE LOS ERRORES:
format long; % Todos los decimales.
err=abs(Tex-T); % Cálculo del error en valor absoluto.
maxi= max(err); % Máximo error obtenido.
fprintf('El error máximo es %7.10f\n',maxi)
pos=1:1:length(t); % Vector posición (mismo tamaño que el vector "t").
% Tabla recopilación de soluciones y errores:
disp('No=0, Sí=1')
quieres=input('Quieres la tabla? ')
if quieres==1
Tabl=[pos', t',T',Tex',err']
else
Tabl=[pos', t',T',Tex',err'];
end
El error máximo obtenido con el método numérico es [math]0.0036736935ºC[/math]
3 Variación de la temperatura interior [math]T(t)[/math] sin calefacción ni aire acondicionado [math](U(t)=0)[/math]
3.1 A
Solución a la segunda pregunta: En este apartado, el calor producido por personas y elementos del edificio [math]H(t)[/math] se mantiene constante siendo igual a [math]H_0[/math]. No hay calefacción, por lo que [math]U(t)[/math] es igual a cero y la temperatura exterior varía de forma senoidal con un período de 24 horas de la manera: [math]M(t)=M_0-B·cos(ϖ·t)[/math] Es decir:
- [math]T(t)=[/math] Temperatura interior del edificio.
- [math]H(t)=[/math] Calor producido por personas y elementos del edificio[math]=H_0[/math]
- [math]U(t)=[/math] Calentamiento producido por la calefacción[math]=0[/math]
- [math]M(t)=[/math] Temperatura exterior[math]=M_0-B·cos(ϖ·t)=M_0-B·cos(\frac{π}{12·t})[/math]
- [math]k=[/math] Constante que depende de las propiedades del edificio.
- [math]t_0=\frac{1}{k}=[/math] Constante del tiempo del edificio.
3.2 B
3.3 C
3.4 D
clear, close all
%Introducimos los datos del problema
t0=0;
tN=24;
T0=13;
disp('introduce los pasos que desees tomar en forma de vector')
h=input('introduzca longitud de paso: ');
% Creamos un bucle que nos representa la solución para cada uno de los valores de h
for i=1:length(h)
h2=h(i);
%discretizamos la variable independiente
t=t0:h2:tN;
f=inline('1/3*(7-5*cos((pi/12)*t)-T)+3','t','T');
figure(i)
hold on
%definimos la función que modeliza la temperatura exterior
Text=7-5*cos((pi/12)*t);
subplot(2,1,1)
plot(t,Text,'b')
%generamos el vector TE que es el que contendra la solucion por Euler
TE=zeros(1,length(t));
%Euler
TE(1)=T0;
for j=1:length(t)-1;
TE(j+1)=TE(j)+h2*f(t(j),TE(j));
end
plot(t,TE,'r')
k=h(i);
%El título variará en función del paso que se utilice en cada iteración
title(['Método de Euler con paso ' num2str(k) ''])
xlabel('horas')
ylabel('ºC')
hold off
%metodo de Runge-Kutta
subplot(2,1,2)
plot(t,Text,'b')
TRK=zeros(1,length(t));
TRK(1)=T0;
for j=1:length(t)-1
K1=f(t(j),TRK(j));
K2=f(t(j)+h2/2,TRK(j)+(h2/2)*K1);
K3=f(t(j)+h2/2,TRK(j)+(h2/2)+K2);
K4=f(t(j)+h2,TRK(j)+h2*K3);
TRK(j+1)=TRK(j)+(h2/6)*(K1+2*K2+2*K3+K4);
end
plot(t,TRK,'r')
title(['Método de Runge Kutta orden 4 con paso ' num2str(k) ''])
xlabel('horas')
ylabel('ºC')
hold off
end

