Cálculo de la declinación solar en TCL

Buenas y santas,

la declinación solar es el angulo formado por el vector tierra-sol y el plano del ecuador. Este ángulo varía a lo largo del año debido al movimiento de traslación de la tierra alrededor del sol.

Con ayuda de las ecuaciones descritas en el documento:
“Estimación horaria de la irradiancia solar total extraterrestre”
Edson Plasencia , Lidio Matos , Adolfo Posadas, Carlos Cabrera

he creado una pequeña herramienta tcl que permite calcular la declinación por los cuatro métodos descritos en el trabajo mencionado.


######################################
# Herramienta de calculo de la declinacion solar
#
# Entradas:
# * Punto de estudio. Coordenadas de Entrada
# Estacion de medida de radiacion
# que el EREN tiene en La Robla
# Salidas:
# * Resultado del análisis
# Declinacion Solar - Declinacion.txt
#
#
# Edición: 1 Revision: 0
# Fecha: 29/01/2010
# Autor: Mario CASTRO DE LERA
#
#

###########################
# Declaracion de constantes
global Pi degtorad radtodeg factor
set Pi 3.14159264
set degtorad [expr (1 / 57.295779513082320876798154814105)]
set radtodeg 57.295779513082320876798154814105
set factor [expr 2 * $Pi / 365]

##########################
# Argumentos de entrada

# Ejemplo : Latitud de la estacion de medida
# de radiacion que el EREN tiene en La Robla
set Latitud 42.812

#########################################
# CALCULO DE LA DECLINACION POR DIFERENTES METODOS
#########################################
#
# Calculo de la declinacion por el metodo de Spencer (1971)
#

proc declinacion_spencer {d} {
global Pi degtorad radtodeg factor

set Beta [expr $d * $factor]

set declinacion_spencer($d) [expr $radtodeg * (0.0006918 - (0.399912 * cos($Beta))+ (0.070257 * sin($Beta)) - (0.006758 * cos(2*$Beta)) + (0.000907 * sin(2*$Beta)) - (0.002697 * cos(3*$Beta)) + (0.00148 * sin(3*$Beta)))]
return $declinacion_spencer($d)

}

#########################################
#
# Calculo de la declinacion por el metodo de Perrin de Brichanbaut (1975)
#

proc declinacion_brichanbaut {d} {
global Pi degtorad radtodeg factor

set angulo_brichanbaut($d) [expr $factor * ($d - 82)]
set declinacion_brichanbaut($d) [expr $radtodeg * asin(0.4 * sin($angulo_brichanbaut($d)))]
return $declinacion_brichanbaut($d)

}

#########################################
#
# Calculo de la declinacion por el metodo de Cooper (1969)
#

proc declinacion_cooper {d} {
global Pi degtorad radtodeg factor

set angulo_cooper($d) [expr $factor * (285 + $d)]
set declinacion_cooper($d) [expr 23.45 * sin($angulo_cooper($d))]

return $declinacion_cooper($d)

}

#########################################
#
# Calculo de la declinacion por el metodo de Garcia (1994)
#

proc declinacion_garcia {d} {
global Pi degtorad radtodeg factor

set angulo_garcia($d) [expr $factor * (9 + $d)]
set declinacion_garcia($d) [expr -23.45 * cos($angulo_garcia($d))]

return $declinacion_garcia($d)

}

#########################################
#
# Calculo de la declinacion para todas los dias del año
# por los 4 diferentes metodos
#

set Out_declinacion [open ./Declinacion.txt w]

puts $Out_declinacion "Spencer\tBrichanbaut\tCooper\tGarcia"

for {set d 1} {$d < 365} {incr d} {

set declinacion1($d) [declinacion_spencer $d]

set declinacion2($d) [declinacion_brichanbaut $d]

set declinacion3($d) [declinacion_cooper $d]

set declinacion4($d) [declinacion_garcia $d]

puts $Out_declinacion "$declinacion1($d)\t$declinacion2($d)\t$declinacion3($d)\t$declinacion4($d)"

}

close $Out_declinacion

El resultado, registrado en el archivo Declinacion.txt que se crea en el mismo directorio, presenta en cuatro columnas los valores de la declinación solar para cada día del año, empezando por el 1 de enero y terminando 365 días más tarde.

Un saludo.

Anuncios

Un pensamiento en “Cálculo de la declinación solar en TCL

  1. Pingback: Utilizando el editor Textpad para programar en TCL « McLera

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s