Diferencia entre revisiones de «Modelo térmico de un edificio (GRUPO 3)»
De MateWiki
(→Introducción y objetivo) |
|||
| Línea 3: | Línea 3: | ||
Vamos a desarrollar un modelo matemático que aproxime el comportamiento de la temperatura en un edificio con unos parámetros de aislamiento definidos y expuesto a una cierta temperatura ambiente exterior. | Vamos a desarrollar un modelo matemático que aproxime el comportamiento de la temperatura en un edificio con unos parámetros de aislamiento definidos y expuesto a una cierta temperatura ambiente exterior. | ||
Para modelizar este suceso utilizaremos la teoría de ecuaciones diferenciales y modelos numéricos resueltos mediante programas de código Matlab (Matlab R2016a y Octave UPM). | Para modelizar este suceso utilizaremos la teoría de ecuaciones diferenciales y modelos numéricos resueltos mediante programas de código Matlab (Matlab R2016a y Octave UPM). | ||
| + | |||
| + | {{matlab|codigo= | ||
| + | clear, close all | ||
| + | %Apartado 2.d | ||
| + | %Introducir 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: '); | ||
| + | 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 (solucion por trapecio) | ||
| + | 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); | ||
| + | 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 | ||
| + | }} | ||
Revisión del 20:17 28 abr 2016
Introducción y objetivo
Vamos a desarrollar un modelo matemático que aproxime el comportamiento de la temperatura en un edificio con unos parámetros de aislamiento definidos y expuesto a una cierta temperatura ambiente exterior. Para modelizar este suceso utilizaremos la teoría de ecuaciones diferenciales y modelos numéricos resueltos mediante programas de código Matlab (Matlab R2016a y Octave UPM).
clear, close all
%Apartado 2.d
%Introducir 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: ');
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 (solucion por trapecio)
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);
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