Ultimas Noticias:

aire acondicionado | ventilación | calefacción | cursos

domingo, 29 de mayo de 2016

El retraso y el amortiguamiento en programación Free Pascal (FPC)

Hola. Gracias por su lectura. Lo que abordaremos aquí, es un aspecto del cálculo de la conducción térmica mediante el lenguaje de programación Pascal. Me alegra tener frente a la ventana del navegador a Usted, que como otros y me incluyo, hacen del balance térmico su recreación. Ya sea que Usted esté en un ambiente educativo haciendo el papel que le tocara, si estudiante si profesor/ra, sea que Usted esté en un ambiente laboral, o tenga la simple y amena curiosidad.

El retraso (retardo) junto al el amortiguamiento, como expuse en otra ocasión (http://cidejpf.blogspot.com.ar/2009/05/pfjintercambios-termicos-ii.html), representa el comportamiento que tiene una pared (o techo) respecto a la propagación a través de ella de la onda energética de calor, que se mide en Joule/segundo [W].
El calor es un proceso que se engendra por una diferencia de temperatura y existe gracia al binomio t1 y t2, solamente. Recuerde siempre que si tiene una constante de un material como podría ser su calor específico con sus unidades:[j/Kg °C] o [j/Kg K]; la temperatura [°C] o [K] significa en realidad [Δ°C] o [ΔK] o sea una variación y no una simple escala. Y es lógico pues no hay procesos de intercambio de calor sin variación de temperatura. No sé por qué caracoles no se emplea [ΔK] a secas.
En síntesis diremos que una variación sinusoidal durante el día de la temperatura en la superficie exterior de una pared, manteniendo la superficie interior de la edificación expuesta a una temperatura constante del ambiente (constante por el uso de un termostato del equipo de climatización), engendra una transferencia de energía térmica en forma de un flujo u onda de calor sinusoidal, que tendrá un retraso, un intervalo de tiempo para pasar la pared; además esta onda tendrá un amortiguamiento, una reducción de su valor respecto a una pared que no tuviese inercia térmica.
Podemos diseñar paredes de tal suerte, que, retrasen 8 a 12 Hs, consiguiendo de esta manera que durante la noche emerja de la superficie interior de la pared la energía térmica que tuvo su origen durante el día. Y luego se invierte el ciclo, la superficie interior de la pared empieza a enfriarse durante el día porque durante la noche la temperatura exterior fue menor que la temperatura media.
Cuando queremos calcular o entender el trabajo que realizan los programas para resolución de Balance Térmico, podemos echar mano de una «Hoja de cálculo» de la suite ofimática que tengamos disponible, podemos servirnos de una calculadora científica, podemos realizar los cálculos a mano con lápiz y papel, y podemos también realizar nuestro propio software.
Un programa que resuelva la transmisión térmica de una pared debe conocer:
  • Coordenadas del lugar geográfico y dirección cardinal de la superficie externa.
  • Material.
  • A, b Dimensión: largo [m] y ancho [m].
  • X, espesor de la pared [m].
  • λ, Conducción térmica [W/m K] que depende del material.
  • ρ, Densidad [Kg/m3] que depende del material.
  • C Calor especifico [j/Kg ΔK] que depende del material.
  • T tiempo en segundos del periodo 1/T de la onda de calor. Ejemplo: variación de 24 Hs.
  • Text Temperatura exterior [°C] en función del tiempo, modelada con una función trigonométrica sinusoidal. Depende del lugar geográfico y la fecha.
  • Tint Temperatura interior [°C] del ambiente.
  • Coeficiente de absorción luminosa que depende del color de la superficie externa.
  • Datos de la intensidad luminosa solar [W/m2] en el tiempo. Depende de la ubicación geográfica y la orientación cardinal de la pared. Modelada con una función trigonométrica sinusoidal. Depende del lugar geográfico y de la fecha
  • Velocidad media del viento [m/s] en la superficie exterior.
  • Velocidad media del aire [m/s] en el interior (movimiento generado por las rejas para inyección de aire, por ejemplo).


Como puedes observar, en este listado que está incompleto, la complejidad para abordar tantos detalles pueden llegar a marear.
Pero la consigna en cualquier problema arduo es: «Divide y triunfarás». En efecto, podemos centrarnos en un aspecto del problema y resolverlo.
En este caso crearemos una unidad en Pascal que contenga las funciones a manera de biblioteca que nos hagan falta para resolver casos particulares, dejando para desarrollo posterior otra unidad que resuelva en conjunto.
Este artículo trae a colación al Retardo y al Amortiguamiento de la onda de calor. La expresión:
Amortiguamiento = exp – (sqrt (pi*λ*ρ*C/T)*X/λ)
Retraso = (T/2)*sqrt (λ*ρ*C/pi*T)*X/λ
De estas ecuaciones encontramos que ambas tienen los mismos cinco parámetros, propiedades, variables, que es lo que debe conocer ambas ecuaciones para ser resueltas.
Podemos programar desde «el vamos» con Objetos, preguntando: ¿Qué conoce la pared? ¿Qué puede hacer?
Lo que conoce nos remite al listado inacabado que expuse, y lo que puede hacer en retrasar y amortiguar el flujo de energía térmica, por ejemplo.
Para ejemplificar he optado por dividir el problema en dos partes. Una parte, la visual, Programada Orientado a Objeto (OOP). La otra, la de este artículo, programado a base de procedimientos o funciones o estructurado.
Sobre la base de esta Unidad Pascal, podrás ir agregando funciones o procedimientos que llamaras en otra Unidad Pascal invocando a esta por medio de una cláusula «uses».
A continuación os dejo el listado parcial de la Unidad al estilo Free Pascal:


{Unidad Perteneciente a CI de PFJ,
Catamarca, Argentina, año 2008
Abstracto: La Unidad «CIBalanceTermico»tiene la finalidad de coleccionar funciones que se usan en termodinámica para hacer balance térmico.
Author: Pablo Félix Jiménez
Bibliografía: La Energía Solar En La Edificación, Ch. Chauliaguet, ETA S.A.1978}


unit CIBalanceTermico;


interface
{Amortiguamiento :=exp -(sqrt(pi*condu*densi*C/T)*X/Condu)}
function Amort(const X,Condu,Densi,C,T:Real):Real;


{ Retraso:=(T/2)*sqrt(condu*densi*C/pi*T )*X/Condu }
function Retra(const X,Condu,Densi,C,T:Real):Real;
// …................ etc. …..........................


implementation
function Amort(const X,Condu,Densi,C,T:Real):Real;
begin
Result:= exp (-1*sqrt((pi*condu*densi*C)/T)*(X/Condu));
end;


function Retra(const X,Condu,Densi,C,T:Real):Real;
begin
Result:= (T/2)*sqrt((condu*densi*C)/(pi*T) )*(X/Condu );
end;
// …................ etc. …..........................
end.


Bien, una vez editada y guardada la unidad CIBalanceTermico.pas obtendremos un archivo inanimado, un libro perdido en alguna u quizás la última de las últimas de las estanterías de una arrumbada biblioteca. Para que tenga vida este menjunje de piezas, hace falta programar un entorno visual donde interactuar.
En una futura entrega, os dejaré, un programa que sirve para probar estas dos funciones de la Unidad. Y de paso nos deja una pista de lo que podría ser el inicio de un software de balance térmico.
Por último, si te interesa el Pascal, te recomiendo el Free Pascal (FPC), o el poderoso Lazarus que es su IDE.
Quizás repita el mismo ejemplo usando Java con el IDE de Eclipce o Nedbeans, eso sí, con menos palabras.
Atte.
PFJ.

Etiquetas: Práctica, retardo, amortiguamiento, FPC, Free Pascal, Lazarus, Programación Pascal, conducción, Programación, software, Unit  

Entradas populares

Páginas Amarillas



Aire Acondicionado:


Conductos para Aire Acondicionado o Ventilación:
Carlos Saravia, Argentina, Tucumán - Tel (0381) 427-9103

Filtros de Aire:
Casiba S.A. , Filtros de Aire y Areas Limpias - Argentina

Liofilización:
INVAP

Refrigeración:
TOTALINE , Argentina

Rejas, Difusores:
ritrac , Accesorios para Aire Acondicionado - Argentina


Viajes:

Si no has encontrado lo que buscabas, prueba el buscador

Etiquetas

Redes sociales del autor