lunes, 12 de marzo de 2012

COLECTORES SOLARES

Este es un trabajo guia sobre colectores solares, el cual nos dara la informacion necesaria y los respectivos resultados del mismo.
Recordar que los datos fueorn tomados aleatoriamente pero logicos.


INTRODUCCIÓN

Con este trabajo se pretende analizar un colector solar de placa plana en un cierto tipo de ambiente y características definidas, donde veremos el comportamiento de este mismo, basado en el cambio del flujo másico por unidad de área del colector (G) y la distancia de separación de la tubería que transporta el agua (W).
Los resultados que interpretaremos estarán centrados en el comportamiento del Factor de Eficiencia (F´) y el Factor de Remoción de Calor (Fr).
Todos los demás datos serán examinados cuidadosamente y se definirán ya sea por criterio de diseño o simplemente por cualidades del material.

ANALISIS DE DATOS

1). ANALISIS PROMEDIO DE LA RADIACIÓN SOLAR

Los cálculos serán hechos para el día 29 de Febrero de 2012:
q s,B = (H-Hd)Rb + Hdcos2(B/2) + PrHsen2(B/2)

·         H = 4.5(Kw-h/m2-dia) = 187.5 (w/m2)
Este dato se obtuvo mediante el Mapa de Radiación Solar Global del IDEAM (multianual) para Colombia en el mes de Febrero, Pág. 29 en el PDF.

·         Pr = 0.34 (Para una zona Institucional)

·         δ = 23.45sen(360(284+n)/365), donde n = 31 (días de enero) + 29 (días de febrero)
δ = -8.3°

·         ΦBUCARAMANGA = 7° (Latitud de Bucaramanga en el mundo)

·         σp = 0° (Superficie mirando al sur)

·         ω = 0° (Los cálculos se harán para las 12m)

·         cosθz = senδ senΦ + cos δ cosΦ cosω
θz = 15.3°

·         αs = 90 – θz
αs = 74.7°

·         σs = cosδsenω/cosαs
        σs = 0°

·         B = 30° (Decisión propia)

·         cosθ = cos(σs - σp)cosαssenB + senαscosB
θ = 14.7°

·         ωs = -cos-1(-tanθtanδ)
ωs = -87.8° (La hora de amanecida para un plano no inclinado es a las 5:51am)

·         Ho = (24/π)1353(1+0.034cos(360n/365))(cosθcosδsenωs + (πωs/180)senθsenδ)
Ho = 394.36 (w/m2)

·         H/Ho = Kt
Kt = 0.475

·         Hd/H = 1.39 – 4.027Kt + 5.53Kt2 – 3.018Kt3
Hd = 75.3 (w/m2)
·         ωsB = -cos-1(-tan(θ-B)tanδ)
ωsB = -92.3° (La hora de amanecida para un plano inclinado B grados es a las 6:09am)

·         Rb = (cos(θ – B )cos δsen ωsB + (ωsB π/180)(sen(θ-B)senδ))/( cosθcosδsenωs + (πωs/180)senθsenδ)
Rb= 1.13

q s,B = (H-Hd)Rb + Hdcos2(B/2) + PrHsen2(B/2)

q s,B = 201.32 (w/m2)


2). ANÁLISIS DE LA CUBIERTA Y LA PLACA
El área del colector será de 1m2 para facilitar los cálculos:       Ac = 1m2
La cubierta transparente será de vidrio común y la placa de absorción será de cobre comercial:


 
CUBIERTA (VIDRIO):

INDICE DE REFRACCIÓN:
n1 = 1 (Índice de refracción para el aire)
n2 = 1.5 (Índice de refracción para el vidrio)
θ1 = 14.7° (solución de cálculos del numeral 1)

n1sen θ1 = n2sen θ2
θ2 = 9.73°

REFLECTIVIDAD:
ρI = sen2(θ2 – θ1)/ sen2(θ2 + θ1)                                    ρII = tan2(θ2 – θ1)/ tan2(θ2 + θ1)
ρI = 0.044                                                                             ρII = 0.036

ρ = (ρI + ρII)/2
ρ = 0.0403

TRANSMITIVIDAD:            N (número de cubiertas) = 1

τI = (1- ρI)/(1+(2N-1) ρI                                                    τII = (1- ρII)/(1+(2N-1) ρII
τI = 0.916                                                                            τII = 0.929

τ = (τI + τII)/2
τ = 0.923

PLACA (COBRE):
ac= Absortividad del cobre comercial = 0.27

(τa)EFE = τ*ac/ 1-(1-ac) ρ
(τa)EFE = 0.257

S = q s,B * (τa)EFE

S = 51.74 (w/m2)

3). ANÁLISIS DE LAS RESISTENCIAS TÉRMICAS

Resistencia total superior: Ut

Ut= ((N/(c/Tp)((Tp-Ta)/(N+f)) ^e) ^-1) + ((σ(Tp2+Ta2)(Tp+Tc))/((( εp+0.0059Nhw) ^-1)+((2N+f-1+0.133 εp)/ εc)-N)

f = (1+0.089hw – 0.166hw εp)(1+0.07866N) = 2.7
e = 0.43(1-(100/Tp)) = -0.286
c = 520(1-0.00005B2) = 519.992

N = 1 (una sola cubierta)
Tp = Temperatura de la Placa = 60°C (supuesta)
Tc = Temperatura de la cubierta = 30°C (supuesta)
Ta = Temperatura ambiente = 25°C
Vw = 3.62 (m/s) “para Bucaramanga”
hw = 5.7 + 3.8*Vw = 19.45 (w/m2 °C)
σ = 5.67*10^-8
εp = Emisividad de la placa = emisividad del cobre = 0.07
εc = Emisividad de la cubierta = emisividad del vidrio = 0.8

Ut = 4.483 (w/m2 °C)

Resistencia total inferior: Ub

 
El aislante a utilizar será ESPUMA DE POLIURETANO:
Ka= 0.023 (w/m °C)
Al = 0.962 = 0.9216m2

Ub = Ua + Ulat(Al/Ac)

Ua =Ka/La                                     Ulat = Ka/Ll
Ua = 0.575 (w/m2 °C)                 Ulat = 1.15 (w/m2 °C)

Ub = 1.635 (w/m2 °C)

UL = Ub +U t

UL = 6.118 (w/m2 °C)


4). ANALISIS DE F´ Y Fr con el software EES

CODIGO EES

"DATOS DE ANALISIS DEL TRABAJO"
Tfi=37                                              “supuesta (°C)”
Ta=25                                             “ambiente  (°C)”
Cp=4174                                     “del agua a 310 K(37°C) (J/Kg°C)”
kf=0,628                                      “del agua a 310 K(37°C) (w/m°C)”
kc=401                                        “del cobre  (w/m °C)”
miu=6,95*10^(-4)                        “del agua a 310 K (37°C) (Kg/ms)”
Pr=4,6                                         “del agua a 310 K (37°C)
delta=0,0005                               “espesor de la placa de cobre”
UL=6,118                                    “(w/m2 °C)”
D=0,0254                                    “Diámetro de los tubos 1pulg”
Ac=1                                           “Area del colector”

S=51,74                                      “(w/m2)”
“W=0,18”                                    “Distancia entre los tubos a variar”            
"G=0,2"                                       “Flujo másico por unidad de área del colector”

Re=(4*G)/(pi*D*miu)                                                         “Reynolds”
f=((0,79*ln(Re))-1,64)^(-2)                                                “Petukhof”
x=f/8
y=(Pr^(2/3))-1
Nud=(x*(Re-1000)*Pr)/(1+(12,7*(x^(1/2))*y))                    “Nussel según el diámetro”
Nud=hf*D/kf
(m^2)=UL/(kc*delta)
Qu=Ac*Fr*(S-UL*(Tfi-Ta))                                                 “Calor útil”
Fr=(G*Cp/UL)*(1-exp((-F2*UL)/(G*Cp)))                                   “Factor de remoción de calor”
F2=(1/UL)/(W*((1/((W-D)*F1*UL+D))+(1/(hf*pi*D))))        “Factor de eficiencia”
F1=(tanh(m*((W-D)/2)))/(m*((W-D)/2))                                      “Eficiencia de la aleta”

5). GRÁFICAS Y RESULTADOS

A). W  Vs     (G =0.2(kg/s/m2))

 
B). W  Vs  Fr   (G =0.2(kg/s/m2))

 
C). G  Vs     (W =0.18(m))



D). G  Vs  Fr   (W =0.18(m))



 ESPERO HAYAN DISFRUTADO EL EJEMPLO :D

domingo, 4 de marzo de 2012

CIRCUITOS ELECTRO-NEUMATICOS: POTENCIA FLUIDA

Presentaré dos circuitos mediante el programa AUTOMATION STUDIO 5.0, los cuales manejaran 3 cilindros con diferentes finales de carrera entre otros dispositivos.
Tendremos los cilindros A, B y C donde (+) indica que está estirado y (-) contraido, las especificaciones se daran en el circuito y el orden será: A+ B+ C+ C- B- A-

AUTOMATION STUDIO 5.0:
Aqui les dejo la página para que puedan descargar el tutorial y el mismo software.

http://www.argentinawarez.com/programas-gratis/357323-automation-studio-5-0-a.html


CILINDROS:

Circuito 1: A+ B+ C+ C- B- A- (cilindro C con dos solenoides Y4 y Y5)



Circuito 2: A+ B+ C+ C- B- A- (cilindro C con un solenoide Y4)


Espero haya sido de su agrado :D














CONTROL PID CON LM35 PARA ARDUINO:
ELEMENTO A CONTROLAR: CELDA PELTIER

En nuestras anteriores entradas, hemos aprendido como tomar datos de temperatura y hacer un control ON-OFF, aunque este último no debe usarse debido a su gran rango variable de estabilidad, por esta razón decidimos hacer un control mas continuo utilizando la señal PWM de la ARDUNIO la cual nos controlará la potencia suministrada de la fuente.
Para lograr este control, debemos utilizar un amplificador de señal que será incluido en la conexiones respectivas.
El programa que utilizaremos para graficar los datos se llama STAMPPLOTO PRO V3.9, aqui dejo el link para que lo puedan descargar:

http://www.parallax.com/tabid/441/Default.aspx

Aqui tambien está el manual del STAMPPLOT:

http://www.selmaware.com/downloads/StampPlot_v39_primer.pdf


Materiales:

  • 2 transistores NPN 2n222
  • 1 Mosfet IRFZ44N
  • 1 Resistencia de 100 Ω
  • 1 Resistencia de 100 KΩ
  • 2 Resistencia de 220 KΩ

Transistor NPN 2n222:

Mosfet IRFZ44M:

Conexiones:

Código:

///////////CONTROL PID//////////////////////

//Variables del Smooting
const int numReadings = 20;
int readings[numReadings];     
int index = 0;                  
int total = 0;                 
float Tprom = 0;               

float chaloTEM= A2; //Puerto analogico de lectura del sensor

float TempR; // Temperatura actual leída
int setpoint = 17 ; // Temperatura deseada "set point"
float error_actual = 0; // Variables de ERROR
float error_anterior = 0;
float t_muestreo = 1000; //Tiempo de muestreo [ms]

//=====Constantes del control PID ================
float Kpe = 40; // Constante Proporcional
float Kie = 0.00005; //Constante de Sumatoria
float Kde = 0.7; //Constante Derivativa del Sistema
float PID = 0; //Señal
//Recordar que las constantes deben ser halladas previamente según el comportamiento del sistema en lazo abierto

//=====Variables de cálculo=====================
float prop = 0;
float inte = 0;
float deri = 0;
float acum = 0;
float area = 0;
float Ts = 0;//Tiempo de Muestreo


void setup()
{
Serial.begin(9600);
   pinMode(7, OUTPUT); // salida de la señal PWM
  for (int thisReading = 0; thisReading < numReadings; thisReading++)
    readings[thisReading] = 0; //For para cantidad de datos promedios del smooting      
}
void loop()
{
//Operaciòn del smooting
  total= total - readings[index];        
  // lectura del sensor
  readings[index] = analogRead(chaloTEM);
  // suma la lectura al total:
  total= total + readings[index];      
  // avance a la siguiente posiciòn en el conteo
  index = index + 1;                   

  // si estamos al final del conteo...
  if (index >= numReadings)             
    // ...vuelva al principio
    index = 0;                          
        
Tprom= ( 5.0 * total * 100.0) / (1023.0 * numReadings);//se pasa de voltaje a temperature y se divide en el numero de lecturas que se quiere promediar
if (setpoint <= Tprom) //=======CELDA ON
 {
   //Serial.print(" Celda ON ");
   //Tiempo de muestreo en segundos:
   Ts = t_muestreo/1000;
   // Tomo la lectura del sensor
   TempR = Tprom; // Consigno el valor leido en esta variable 
   // Conversión lineal de la señal de entrada a temperatura en grados centígrados :
   error_actual = Tprom - setpoint ; //cálculo de error = Tdeseada -Tactual
   //error -> proporcional
   prop = error_actual*Kpe; // Error Proporcional=Kp*errror
   //error -> integral
   area = error_actual+error_anterior; // error sumatoria
   area = area*Ts;
   area = area*0.5;
   acum = acum+area;

   inte = acum*Kie;
   inte = constrain(inte, -110, 110); //filtro anti-windup, para evitar saturación del actuador
   //error -> derivada
   deri = error_actual-error_anterior;
   deri = deri*Kde;
   //PID-->>
   PID = prop + inte + deri;
   PID = constrain(PID, 0, 255); //restricción de la acción de control a rangos admisibles de PWM.
  //Almacenamiento del error actual
  error_anterior = error_actual;
  if(error_actual<1)
  {

  PID = PID;
  //condición primaria
  }
 
  digitalWrite(7,PID);
  //imprimo los valores deseados
  Serial.print(Tprom);
  Serial.print(",");
  Serial.println(PID);
  Serial.print(" ERROR (+) = ");
  Serial.println(error_actual);
  Serial.println(" ");
 }
 else //==CELDA APAGADA
 {
  //Serial.print(" Celda OFF ");
 
  PID = PID ;
  digitalWrite(7,PID);
  Serial.print(Tprom);
  Serial.print(",");
  //Serial.print(" PID = ");
  Serial.println(PID);
  Serial.print(" ERROR (-) = ");
  Serial.println(error_actual);
  Serial.println(" ");
  }
  delay(t_muestreo);

}

Recordar: El smooting en un programa ejemplo del arduino que nos enseña como promediar los datos tomados por el sensor análogamente. Si este no se aplica, los datos del sensor serán muy retirados (28.5 , 29.8 , 27.5 , ect) mientras que con el los datos serán mas cercanos (28.5 , 28.7 , 28.9 , ect).

Gráfica deseada:

Gráfica Obtenida:





Espero haya sido de su agrado el trabajo hecho :D










sábado, 3 de marzo de 2012

CONTROL ON-OFF DE TEMPERATURA CON EL SENSOR LM35 PARA ARDUINO:
ELEMENTO DE CONTROL: CELDA PELTIER

En nuestro anterior entrada hemos aprendido como sensar la temperatura, ahora aprenderemos a crear un control ON-OFF alrededor de una temperatura límite o "set point". El elemento a controlar será una CELDA PELTIER.

Celda Peltier:


Grafica deseada:

Conexiones:

Relé Shenle JQC:

Código:


int Set_P=23 ;
float Rango=1 ;
float Temp;
int pintemperatura = 2 ;
float Lim_inf = Set_P - Rango ;
float Lim_sup = Set_P + Rango ;
int senal_celda;
void setup (void)
{
Serial.begin (9600);
pinMode(12,OUTPUT);
}
void loop ()
{
Temp=(5.0*analogRead(pintemperatura)*100.0/1024.0);
   if (Temp<Lim_inf)
{
  digitalWrite(12,HIGH);
  }
if (Temp>Lim_sup)
{
  digitalWrite(12,LOW);
  }
else if (Lim_inf < Temp < Lim_sup)
{
 digitalWrite (pintemperatura,senal_celda);  
 }
Serial.print("Temperatura(Celsius)=");Serial.println(Temp);
delay (1000);
}

Explicaremos el código línea por línea, así que tendremos en cuenta que hay 32 de ellas empezando desde la palabra Int.

Línea 1: Temperatura de control, identificada como entero.
Línea 2: Rango de la temperatura de control, identificado como decimal con entero.
Línea 3: Variable real para guardar la temperatura leída por el sensor.
Línea 4: Pin escogido para captar el valor analógico de la temperatura.
Línea 5: Límite inferior de la temperatura de control, como número real.


Línea 6: Límite inferior de la temperatura de control, como número real.
Línea 7: Señal ON-OFF de la celda para ser guardada.
Línea 11: Pin escogido como salida controlada.
Línea 13: Función para repetir indefinidamente el programa.
Línea 15: 5 = Valor analógico de tensión.
Analog read = lectura analógica de tensión.
100.0= Resolución de lectura en microsegundos.
1024.0 = 210, valor binario de 10 dígitos binarios.
Línea 17: Condicional para el rango menor.
Línea 19: Respuesta al condicional en el pin 12.
Línea 21: Condicional para el rango mayor.
Línea 23: Respuesta al condicional en el pin 12.
Línea 25: Condicional para el rango entre la temperatura máxima y mínima.
Línea 27: Indicamos que el valor a tomar es el mismo anterior a este.
Línea 29: Imprimimos el valor de la temperatura.
Línea 31: Demoramos 1s la siguiente toma de datos.


Espero hayan entendido muy bien el proceso :D.....









SENSO DE TEMPERATURA CON LM35 EN ARDUINO

Conexion básica para sensar temperatura utilizando un sensor LM35 (termistor) mediante el programa ARDUINO.
Si no tienen el programa aqui esta la pagina oficial para que descarguen el ARDUINO que deseen, recuerden que las series anteriores al "21" no manejan ARDUINO UNO ni MEGA, todas las series siguientes a la "21" lo manejan perfectamente.

http://arduino.cc/hu/Main/Software

Cuando se instala el ARDUINO y se conecta el cable USB notaremos que los datos no se cargan o simplemente este bota errores varios de lectura y esto ocurre porque los drivers no estan instalados, por esta razón les dejo un video en youtube para que aprendan a instalar los drivers, sea cual sea la serie ARDUINO:

http://www.youtube.com/watch?v=BQArZvGSax8

Ya teniendo todas las herramientas necesarias podemos empezar a leer temperatura.

LM35:

Conexion Basica:

Código:


float pinTemperatura = 2;
float tempValor ;
void setup()
{
Serial.begin(9600);
}
void loop()
{
tempValor = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;
Serial.print("Temperatura (Celsius) = ");Serial.println(tempValor);
delay (1000);
}

Explicaremos el código línea por línea, así que tendremos en cuenta que hay 15 de ellas empezando desde la palabra float.

Línea 1: Utilizaremos el pin 2 y le pondremos un nombre de lectura entera incluida decimal.
Línea 2: Variable entera+decimal donde guardaremos la temperatura.
Línea 5: Iniciamos el puerto serie para poder monitorizar.
Línea 7: Función para repetir el contenido indefinidamente.
Línea 9: Transformación de la lectura analógica de tensión en temperatura.

5 = Valor analógico de tensión.
Analog read = lectura analógica de tensión.
100.0= Resolución de lectura en microsegundos.
1024.0 = 210, valor binario de 10 dígitos binarios.

Línea 12: Imprimir el valor del puerto serie donde podremos monitorizarlo.
Línea 14: Espera de 1s para cada lectura de temperatura.


Espero haya sido de su agrado este sencillo ejercicio :D