Professional Documents
Culture Documents
TRABALHO DE GRADUAO
Orientador.:
Prof. Dr. Antnio Augusto Torres Maia
Belo Horizonte
Escola de Engenharia da UFMG
2013
Abstract: Solar simulations provide a method for the study of solar energy
systems. The use of these simulations allows control over the variables of the
process, reducing the dependence on the local climate. It also makes possible to
repeat several experiments under similar conditions, and tests under uncommon
conditions. The development of these simulations requires a long-term (e.g. 20
years) meteorological data or data obtained from a reduced database and a set of
empirical models. The majority of data available is given for the radiation on a
horizontal plane. However, most applications use inclined surfaces for the
absorption of radiation. For the appropriate use of this data for the simulation of
radiation several correlations were developed to estimate the radiation on a tilted
surface based on the radiation on a horizontal surface. Most correlations, however,
have been developed using data from temperate climates and present
discrepancies when used in tropical climates. In this work, it was developed a
software to estimate the hourly radiation received by a inclined surface for the city
of Belo Horizonte, Brazil. A meteorological data for the period of 2003 to 2012 was
used. For the calculation of the radiation on a tilted surface correlations for tropical
climate found in the literature were used. The software generates a list with values
of hourly and daily radiation for every day of the year and allows the generation of
data for different surface orientations. It was observed that the use of design years
presented results closer to measured values then typical meteorological years and
that the equations for diffuse radiation have similar quality, being the model
proposed by Oliveira et al.(2002) the model with smaller error for the city of Belo
Horizonte
ii
SUMRIO
Sumrio .............................................................................................................................................................. iii
1 Introduo .................................................................................................................................................... 1
2 Reviso bibliogrfica: ............................................................................................................................... 3
2.1 Demanda energtica brasileira ........................................................................................................ 3
2.2 Energia Solar ...................................................................................................................................... 3
2.2.1 Radiao Solar ........................................................................................................................... 4
2.2.2 Geometria da Radiao Solar Direta ....................................................................................... 6
2.2.3 Energia Solar Disponvel ........................................................................................................... 9
2.3 Sistema solar de aquecimento de gua ....................................................................................... 16
2.4 Simulador solar ................................................................................................................................ 16
3 Metodologia ............................................................................................................................................... 18
3.1 Adaptao dos dados de entrada ..................................................................................................... 18
3.2 Obteno do ano tpico ...................................................................................................................... 19
3.3 Desenvolvimento da verso inicial do software .............................................................................. 21
3.4 Escolha do modelo para clculo da radiao difusa ..................................................................... 21
4 Resultados e discusso ......................................................................................................................... 24
5 Concluso .................................................................................................................................................. 30
6 Sugestes para Trabalhos Futuros ..................................................................................................... 30
7 Referncias Bibliogrficas ..................................................................................................................... 30
8 Apndice Algoritmo em MATLAB ..................................................................................................... 33
iii
iv
1 INTRODUO
H no mundo hoje uma tendncia de mudana da matriz energtica para fontes
de energia renovveis, dentre elas as energias elica e solar. De acordo com a
Agncia Nacional de Energia Eltrica (ANEEL) a capacidade instalada das
principais fontes renovveis de energia aumentou entre 20 % e 60 %, dentre estas
a energia solar uma das que apresenta maior crescimento. A figura abaixo
ilustra a taxa de crescimento mdia das principais fontes classificadas como
outras fontes na gerao de energia eltrica:
FIGURA 1
2 REVISO BIBLIOGRFICA:
2.1 DEMANDA ENERGTICA BRASILEIRA
De acordo com projeo elaborada pela EPE (Ministrio de Minas e Energia,
2011), h uma forte tendncia de aumento do consumo de energia eltrica em
todos os setores de consumo, conforme tabela apresentada abaixo:
Tabela 1
Consumo de Eletricidade na rede (GWh)
Variao (% por ano)
Ano
Residencial
Industrial
Comercial
Outros
Total
2010-2015
4,8
4,6
6,2
3,7
4,8
2015-2020
4,2
4,3
5,8
3,7
4,5
2010-2020
4,5
4,4
6,0
3,7
4,6
O Atlas de Energia Eltrica do Brasil (ANEEL, 2008) apresenta ainda uma taxa
de aumento da capacidade de energia por aquecimento solar de gua de cerca de
20 % ao ano e por painis fotovoltaicos de 60 % ao ano. Ainda de acordo com o
Atlas de Energia Eltrica do Brasil o uso desta energia por aquecimento de gua
aplicvel em vrios setores, como na indstria em processos de aquecimento e/ou
pr-aquecimento em caso de temperaturas elevadas, como no residencial para o
aquecimento da gua para banho. H tambm a tendncia de uso da energia
solar para gerao conjunta de calor e eletricidade e de produo exclusiva de
eletricidade.
2.2 ENERGIA SOLAR
O uso da energia solar pode ser feito na forma de energia trmica ou energia
eltrica. Existem diversas aplicaes da energia solar trmica, dentre elas
destacam-se o uso em sistemas de aquecimento de gua para banho,
aquecimento de edifcios, piscinas, entre outros. No segundo caso so usadas
clulas fotovoltaicas, geralmente compostas por silcio, ou um sistema
heliotrmico para a produo de energia eltrica. O sistema fotovoltaico
transforma a energia solar diretamente em energia eltrica enquanto o sistema
heliotrmico utiliza a energia primeiramente para aquecimento de um fluido de
trabalho que ento utilizado para gerao de energia eltrica.
(1 + 0,033 cos (
365
))
(2.1)
(2.1)
Onde,
360
= ( 1) 365
(2.2)
(2.3)
Onde calculado pela equao 2.2. A diferena entre a hora solar e a hora
padro dada pela seguinte equao:
= 4( ) +
(2.4)
(2.5)
(2.5)
(2.6)
Deve-se ter em mente que deve estar entre o ngulo horrio de pr-do-sol s e
o ngulo horrio de nascer-do-sol (igual a s). O ngulo horrio de pr-do-sol
pode ser obtido pela seguinte equao:
cos = tan tan
E o nmero de horas de sol N:
=
2
15
1 ( tan tan )
(2.7)
(2.8)
= cos
(2.9)
= (1 + 0,033 cos
360
365
(2.10)
123600
(1 + 0,033 cos
360
365
(2 1 )
180
sin sin ]
(2.11)
Esta equao tambm pode ser usada para diferentes intervalos de tempo,
bastando o uso de valores apropriados para os limites de integrao 1 e 2. A
integrao da equao 2.10 entre o horrio de nascer e pr-do-sol (-s s)
resulta na radiao solar extraterrestre diria em uma superfcie horizontal 4:
=
243600
(1 + 0,033 cos
360
365
180
sin sin )
(2.12)
(2.13)
9
(2.14)
(2.15)
10
24
( + cos )
cos cos
sin
cos
180
(2.16a)
Onde,
= 0,409 + 0,5016 sin( 60)
(2.16b)
(2.16c)
(2.17)
a1
a2
a3
a4
a5
a6
a7
a8
Segunda faixa de kT
-0,249
1,557
-1,84
0,177
0,35 kT 0,75
1,02
-0,248
1,45
-1,67
0,147
0,3 kT 0,78
0,915
1,135
-0,9422
-0,3878
0,18
0,225 kT 0,775
0,995
-0,081
0,724
2,738
-8,32
4,96
0,19
0,21 kT 0,76
0,9995
-0,05
-2,4156
1,4926
0,78
0 kT 0,8
0,987
0,94
0,937
-5,01
3,32
0,177
0,1 kT 0,8
-0,09
0,951
-0,1640
4,388
-16,638
12,336
0,165
0,22 kT 0,8
0,97
0,8
-3,0
-3,1
5,2
0,17
0,17 kT 0,75
, 0,15
,0,15 < 0,7
, > 0,7
(2.18)
12
, 0,2
,0,2 < 0,7
, > 0,7
(2.19)
(2.20)
1+e5,0+8,6
= { +1
1
, < <
, =
, =
(2.21)
1
1+ 5.38+6,63 +0,006 0,007 +1,75 +1,31
(2.22)
13
(2.23a)
Onde,
= (sin sin cos sin cos sin cos )
(2 1 )
180
(2 1 )
180
(2.23b)
(2.23c)
14
(2.24)
(1+cos )
(1cos )
(2.25)
(2.26)
= + (
1cos
) + (
(2.27)
15
= ( + ) + (1 ) (
) [1 + sin3 ( 3 )] + (
1cos
2
(2.28)
17
3 METODOLOGIA
O processo de desenvolvimento do software pode ser dividido em trs partes.
Primeiramente deve-se escolher o conjunto de dados anuais que melhor descreva
o comportamento da radiao solar em superfcie horizontal na regio de estudo,
neste caso a cidade de Belo Horizonte. O segundo passo consiste na escolha do
melhor modelo para a obteno das fraes de radiao difusa e direta em uma
superfcie horizontal baseado nos dados obtidos no passo anterior. Ento, de
posse dos valores de radiao difusa e direta deve-se escolher um modelo para
tratamento da parcela difusa desta radiao para que se possa obter o valor da
radiao em uma superfcie inclinada.
Ento, os valores da radiao solar global extraterrestre diria e horria
foram obtidos com base na teoria apresentada nas sees 2.2.1 e 2.2.2, j que
estes valores so normalmente usados como valores de referncia do mximo
valor possvel.
3.1 ADAPTAO DOS DADOS DE ENTRADA
Os dados experimentais usados neste trabalho foram fornecidos pelo Instituto
Nacional de Pesquisas Espaciais (INPE) para o perodo de 2000 a 2012. Os
dados fornecidos apresentam valores de radiao solar global horizontal
acumulada ao longo de cada 3 horas, zerando no final de cada intervalo, e valores
de temperatura ambiente mdia neste mesmo perodo. Neste estudo os valores
faltantes foram sinalizados atribuindo-se a eles o valor de -999. Alm disso, uma
rotina em MATLAB, setData.m, foi desenvolvida para adaptar os dados de
entrada para o uso no software de clculo de no intervalo de anos desejado pelo
usurio, considerando que os anos devem pertencer base de dados. Esta rotina
altera a data e o formato da hora para os dados fornecidos para a meia noite, que
na base de dados, utilizando 24 h ao invs de 0 h, para facilitar o uso da base de
dados pelo programa. Esta rotina ento salva os valores adaptados em um
arquivo em formato txt e, alm deste arquivo, tambm salva um segundo txt com
os valores de e temperatura mdia para cada ano do intervalo estipulado pelo
usurio, para cada dia do ano. A Figura 8 mostra a funo criada para ajuste dos
dados de entrada, setData.m.
18
setData.m
Parmetros da funo: anos
inicial e final do intervalo
desejado
Ajuste dos dados e sinalizao de
dados invlidos
i = ano inicial
Sim
i > ano final?
No
Clculo dos valores de
radiao e temperatura dirios
para o ano i
Salva os valores
obtidos para o ano i
Salva os
valores dirios
para todo o
intervalo em
um s arquivo
Fim
i=i+1
designYear.m
Parmetros: base de dados com radiao
solar diria, ano inicial e ano final do intervalo
i = ano inicial
Sim
i > ano
final?
No
Clculo das
mdias mensais
para o ano i
i=i+1
Seleo do i-simo
ms de projeto
i=i+1
Fim
Figura 9 Fluxograma da funo de gerao do ano de projeto, designYear.m
20
21
calcRad.m
Parmetros de entrada: matriz com os valore s de
radiao acumulada
Clculo das propriedades geomtricas
Clculos da radiao diria e horria
extraterrestre
i=1
i>nmero de
modelos?
Sim
No
Clculo de e para o
modelo i ao longo de cada
dia da matriz de entrada
Clculo de
utilizando o
modelo HDKR e
de
i=i+1
Fim
Figura 10 Fluxograma da funo para comparao dos modelos de
A partir da base de dados do projeto SWERA foram obtidos valores mdios
e de radiao solar diria em
mensais da radiao solar diria horizontal global
superfcie com inclinao igual latitude
, . Para a escolha do modelo para
clculo de , foram realizados clculos de
, para todos os meses do ano e
para cada modelo apresentado na seo 2.2.3 utilizando como entrada os valores
obtidos pelo projeto SWERA para a regio de Belo Horizonte. Somente um
de
modelo para tratamento da direo da radiao difusa, o modelo HDKR, foi
utilizado para permitir melhor visualizao do desempenho de cada modelo de .
O modelo HDKR foi escolhido nesta etapa por sua simplicidade e por tratar de
todas as parcelas de . Os valores obtidos sero comparados com os valores de
22
23
4 RESULTADOS E DISCUSSO
Inicialmente os valores de fornecidos pelo INPE para a cidade de Belo
Horizonte foram utilizados como valores de entrada para a gerao do ano de
projeto pela funo designYear.m. A seguir mostrada a comparao dos anos
tpicos com alguns anos da base de dados medidos pelo INPE, que foram usados
como referncia para a seleo do conjunto de dados apropriado para a
simulao:
24
25
26
27
21
20
19
18
17
0
5
10
15
20
25
30
35
40
45
50
16
15
14
13
12
10
11
12
Ms
20
18
16
14
12
10
10
11
12
Ms
29
5 CONCLUSO
Neste trabalho foi desenvolvido um software para estimar a radiao solar em
superfcies inclinadas, utilizando valores de radiao solar global horizontal para a
regio de Belo Horizonte como dados de entrada. O software foi desenvolvido de
forma a possibilitar o clculo para outras configuraes geomtricas e facilitar a
repetio da metodologia utilizada para outras regies. Foi observado que o uso
de um ano de projeto apresenta melhor estimativa da radiao do que o ano
meteorolgico tpico fornecido pelo SWERA, ainda que o primeiro utilize uma base
de dados consideravelmente menor. Foi observado tambm que a maioria dos
modelos de radiao difusa apresenta bons resultados, sendo que o modelo
proposto por Oliveira et al. (2002) apresentou resultados mais prximos dos
valores usados como referncia neste trabalho.
6 SUGESTES PARA TRABALHOS FUTUROS
Algumas sugestes de trabalhos futuros incluem a aplicao da metodologia
aqui desenvolvida a outras regies, utilizao dos dados gerados pelo software
para simular a energia recebida pela gua em um coletor solar trmico e o
desenvolvimento de equaes de e baseadas na regio de Belo Horizonte.
7 REFERNCIAS BIBLIOGRFICAS
(1) AGNCIA NACIONAL DE ENERGIA ELTRICA (ANEEL). Atlas de Energia
Eltrica do Brasil. 3 Ed. Braslia, 2008.
30
(14) HAWLADER, M.N.A. Diffuse, global and extraterrestrial solar radiation for
Singapore. Ambient Energy. 1984.
(15) HAY, J.E.; DAVIES, J.A. Calculation of the solar radiation incident on an
inclined surface. Proceedings of the First Canadian Solar Radiation Data
Workshop. 1980
(16) JACOVIDES, C.P.; TYMVIOS, F.F.; ASSIMAKOPOULOS, V.D.;
KALTSOUNIDES, N.A. Comparative study of various correlations in estimating
hourly diffuse fraction of global solar radiation. Renewable Energy. 2006
(17) KLUCHER, T.M. Evaluating models to predict insolation on tilted surfaces.
Solar Energy. 1979.
(18) LAM, J.C.; LI, D.H.W. Correlation between global solar radiation and its
direct and diffuse components. Building and Environment. 1996.
(19) OLIVEIRA, A.P.; ESCOBEDO, J.F; MACHADO, A.J.; AND SOARES, J.
Correlation models of diffuse solar radiation applied to the city of Sao Paulo,
Brazil. Applied Energy. 2002.
(20) ORGILL, J.F.; HOLLANDS, K.G.T., Correlation equation for hourly diffuse
radiation on a horizontal surface, Solar Energy. 1977.
(21) REINDL, D.T.; BECKMAN, W.A.; DUFFIE, J.A. Diffuse fraction correlations.
Solar Energy. 1990.
(22) MIGUEL, A.; BILBAO, J.; AGUIAR, R.; KAMBEZIDIS, H.; NEGRO, E.
Diffuse solar irradiation model evaluation in the north Mediterranean belt area.
Solar Energy. 2001.
(23) KARATASOU, S.; SANTAMOURIS, M.; GEROS, V. Analysis of
experimental data on diffuse solar radiation in Athens. International Journal
Sustainable Energy. 2003.
(24) MONDEL J.D.; YOHANIS Y.G.; NORTON B. Solar radiation modeling for
the simulation of photovoltaic systems. Renewable Energy. 2008.
32
Funo bissexto.m
Funo setData.m
function setData(anoInicial,anoFinal)
%=======================================================================%
% funo setData: Ajusta os dados para a computao, comea a partir dos%
%
dados iniciais (arquivo .txt com os dados de 2004-2012)%
%
seta os dados no intervalo de anos dado
%
% Entradas: anoInicial = ano inicial do intervalo
%
%
anoFinal
= ano final do intervalo
%
% Sada:
salva arquivos .txt com os valores no formato desejado
%
%=======================================================================%
nome = strcat('BH-2000-2012trat.txt');
dados = load(nome);
for j=1:size(dados,1)
if ( dados(j,4)==0 )
dados(j,4)=24;
anterior
%
%
%
%
34
if bissexto(dados(j,3))
dados(j,1) = 29;
else
dados(j,1) = 28;
end
otherwise
error('mes invalido');
end
else
dados(j,1) = dados(j,1)-1;
end
end
end
dadosAcumT = [];
for i=anoInicial:anoFinal
temp = dados(dados(:,3)==i,:);
% booleano para saber se ano bissexto
bool = bissexto(i);
% inicializao da nova matriz de dados com tamanho igual ao nmero de
% dias do ano (lembrando que pode ser que existam linhas em branco no fim
% devido a alguns dias do ano no terem dados para anlise
if(bool)
dadosAcum = zeros(366,size(temp,2)-1);
else
dadosAcum = zeros(365,size(temp,2)-1);
end
dadosAcum(:,3) = i;
for j=1:size(dadosAcum,1)
[dadosAcum(j,1) dadosAcum(j,2)] = dia2data_vet(j,i);
% inicializa os valores do dia e do ms a
% partir do dia do ano
dadosAcum(j,4) = sum( temp(temp(:,1)==dadosAcum(j,1) & ...
temp(:,2)==dadosAcum(j,2) ,5) );
% Calcula a radiao diria total somando os
% valores acumulados de 3 em 3 horas.
dadosAcum(j,5) = mean( temp(temp(:,1)==dadosAcum(j,1) & ...
temp(:,2)==dadosAcum(j,2) ,6) );
35
dadosAcum(j,4) = -999;
%
end
end
%
nome_temp = strcat('dados',num2str(i),'.txt');
save(nome_temp,'temp','-ascii');
%
%
% salva os dados
% tratados de cada
% ano
end
nome = strcat('DadosAcumT',num2str(anoInicial),'',num2str(anoFinal),'RadTemp.txt');
save(nome,'dadosAcumT','-ascii');
- Funo meanMet.m
function mean = meanMet(dados)
%=======================================================================%
% Funo meanMet: calcula o valor mdia de certo parmetro meteorolgico%
%
desconsiderando os valores em falta(detecta pelo valor%
%
de -999 )
%
%=======================================================================%
% inicializao das variaveis sum e n, a primeira
% receber a soma de todos os valores vlidos e a
% segunda o nmero de valores vlidos
sum = 0;
n = 0;
%
for i=1:length(dados)
if(dados(i)<0)
continue;
end
sum = sum + dados(i);
n = n + 1;
end
% Clculo da mdia
mean = sum/n;
36
- Funo designYear.m
function [dYear medMensal] = designYear(dados,anoInicial,anoFinal)
%=======================================================================%
% Funo designYear retorna o ano de projeto baseado no mtodo
%
% apresentado por Klein (1976)
%
%
%
%=======================================================================%
% inicializao da matriz meanValues
meanValues = zeros(12*(anoFinal-anoInicial+1),size(dados,2)-1);
for i=anoInicial:anoFinal
for j = 1:12
dadoMensal = dados( dados(:,2)==j & dados(:,3)==i, 4:5);
% Para cada ms a matriz meanValues
% recebe o ms e ano de referncia e
% os respectivos valores de radiao
% acumulada mdia e temperatura
mdia
meanValues(12*(i-anoInicial)+j,1)
meanValues(12*(i-anoInicial)+j,2)
meanValues(12*(i-anoInicial)+j,3)
meanValues(12*(i-anoInicial)+j,4)
=
=
=
=
j;
i;
meanMet(dadoMensal(:,1));
meanMet(dadoMensal(:,2));
end
end
% Clculo das mdias para cada ms (
% mdia dos meses de janeiro, etc )
meanMonths = zeros (12,size(dados,2)-3);
for i = 1:12
aux = meanValues(meanValues(:,1)==i,:);
meanMonths(i,1) = i;
for j = 2:size(aux,2)-1
meanMonths(i,j) = meanMet(aux(:,j+1));% para cada ms armazenado
end
% em aux calcula os valores
end
% mdios para cada propriedade
% vriavel para
% do ano de
projeto
for i = 1:12
% Para cada ms encontra
temp = meanValues(meanValues(:,1)==i,:);% o ms que mais se aproxima
% da mdia mensal da
37
%
%
%
%
%
%
radiao e, no caso
de empate no valor de
radiao escolhe-se o
que apresenta
temperatura mdia
mais prxima
error1 = 1000;
error2 = 1000;
for j = 1:length(temp)
end
end
medMensal = aux;
if bissexto(aux(2,2))
dYear = zeros(366,size(aux,2));
else
dYear = zeros(365,size(aux,2));
end
for i = 1:size(dYear,1)
[dYear(i,1) dYear(i,2)] = dia2data_vet(i,aux(2,2));
dYear(i,3) = medMensal(medMensal(:,1)==dYear(i,2),2);
dYear(i,4) = dados(dados(:,1)==dYear(i,1) & dados(:,2)==dYear(i,2)...
& dados(:,3)==aux(dYear(i,2),2),4);
dYear(i,5) = dados(dados(:,1)==dYear(i,1) & dados(:,2)==dYear(i,2)...
& dados(:,3)==aux(dYear(i,2),2),5);
end
% adio dos dias mdios
% para a matriz de mdias mensais
38
- Funo data2dia.m
function total=data2dia(dia,mes,ano)
%=======================================================================%
% funo data2dia: retorna o total de dias passados at determinada data%
%
de determinado ano.
%
% entrada: dia
= dia do ms
%
%
ms
= ms
%
%
ano
= ano para casos de ano bissexto
%
% sada:
total = dia no ano
%
%=======================================================================%
% inicializao da variavel total
total = 0;
% adio do valor do dia ao total
total = total + dia;
% loop de adio de dias de acordo com o ms at o ms anterior ao dado
for m=1:(mes-1)
switch m
case {1 3 5 7 8 10}
% meses com 31 dias
total = total + 31;
case {4 6 9 11}
% meses com 30 dias
total = total + 30;
case {2}
% no caso de fevereiro verifica se ano bissexto
if bissexto(ano)
% e atribui valor de acordo com esse dado
total = total + 29;
else
total = total + 28;
end
case {12}
total = total;
otherwise % caso de entrada de nmero invalido para o ms
mes %error('invalid number');
end
end
- Funo data2dia_vet.m
function total=data2dia_vet(dia,mes,ano)
%=======================================================================%
% funo: data2dia_vet retorna um vetor com o total de dias passados at%
%
as datas de entrada
%
% entrada: dia
= vetor com dias do ms
%
%
ms
= ms a que os dias do vetor dia se referem
%
%
ano
= ano em questo para correes no caso de ano bissexto%
% sada:
total = dia no ano (ex. 02/02 o 33 dia do ano)
%
%=======================================================================%
% inicializao do vetor com os dias do ano
total = zeros(size(dia),1);
39
% loop que passa cada linha dos vetores de entrada na funo data2dia
% que retorna o valor do dia no ano para cada linha.
for i=1:length(dia)
total(i)=data2dia(dia(i),mes(i),ano(i));
end
- Funo calcRad.m
function [H H_t H_o I I_d I_b I_t theta_z theta] = calcRad(dadosAcum)
tic
%=======================================================================%
% Funo calRad: calcula os valores da radiao extraterrestre H_o, K_t %
% Entrada: dadosAcum
%=======================================================================%
% CONSTANTES:
% Constante Solar
G_sc = 1367;
% [W/m], Duffie (2006)
% NGULOS DE ENTRADA:
% Longitude local:
% usada conveno de oeste positivo sugerida por Duffie
% (2006), longitude = [0, 360]
lon_loc = 43.826; % SWERA
% Latitude local:
lat = -19.888;
% BH
%
%
r_d(:,i)=pi/24*(cosd(omega) - cosd(omega_s))./...
(sind(omega_s)-pi*omega_s/180.*cosd(omega_s));
r_d(r_d(:,i)<0,i) = 0;
end
41
0.273
0.15
0.177
0.147
0.18
0.19
0.78
0.177
42
12.336 0.165
5.2
0.17
0.672
-0.474
0
0
coefficients
0
I_d = zeros(size(I,1),size(I,2),size(models,1));
PsiC = 0;
for i = 1:size(models,1)
% cada iterao calcula os valores de I_d
para o i-simo modelo
for j=1:size(I,1)
for k=1:size(I,2)
if i<=10
if ( k_t(j,k) <= models(i,9) )
I_d(j,k,i) = I(j,k)*(models(i,1) +
models(i,2)*k_t(j,k));
elseif ( k_t(j,k) > models(i,9) && k_t(j,k) <=
models(i,10) )
if i == 10
I_d(j,k,i) = I(j,k)*(models(i,3) +
models(i,4)*k_t(j,k) + models(i,5)*k_t(j,k)^2 ...
+models(i,6)*k_t(j,k)^3);
else
I_d(j,k,i) = I(j,k)*(models(i,3) +
models(i,4)*k_t(j,k) + models(i,5)*k_t(j,k)^2 ...
+models(i,6)*k_t(j,k)^3 +
models(i,7)*k_t(j,k)^4);
end
elseif ( k_t(j,k) > models(i,10) )
if i == 10
I_d(j,k,i) = I(j,k)*(models(i,7) +
models(i,8)*k_t(j,k));
else
I_d(j,k,i) = I(j,k)*models(i,8);
end
end
elseif i == 11
I_d(j,k,i) = I(j,k)*( 1 / (1 +
exp(models(i,1)+models(i,2)*k_t(j,k) )));
elseif i == 12
omega = (7.5 + (k-8)*15);
AST = 12 + omega/15;
alpha_s = 90 acosd(cosd(delta(j))*cosd(lat).*cosd(omega)+sind(delta(j))*sind(lat)); %
= 90 - theta_z (the zenith angle)
if ((omega > -omega_s(j)) && (omega < omega_s(j)))
43
if k==1
PsiC = k_t(j,k+1);
elseif k == size(I,2)
PsiC = k_t(j,k-1);
else
PsiC = (k_t(j,k+1)+k_t(j,k-1))/2;
end
elseif (omega < -omega_s(j) && omega+15>-omega_s(j))
PsiC = k_t(j,k+1);
elseif (omega > omega_s(j) && omega-15 < omega_s(j))
PsiC = k_t(j,k-1);
end
I_d(j,k,i) = I(j,k)*( 1 / (1 +
exp(models(i,1)+models(i,2)*k_t(j,k)+models(i,3)*AST+models(i,4)*alpha_s+
models(i,5)*K_t(j)+models(i,6)*PsiC)));
end
end
end
end
% ngulo de incidncia
theta = zeros(size(I,1),size(I,2));
theta_z = zeros(size(I,1),size(I,2));
R_b = zeros(size(I,1),size(I,2));
for i=1:maxDiv
omega = 7.5 + (i-1)*15;
theta_z(:,maxDiv + i) = acosd(cosd(delta)*cosd(lat).*cosd(omega)...
+ sind(delta)*sind(lat));
theta_z(:,maxDiv + 1 - i) = acosd(cosd(delta)*cosd(lat).*cosd(omega)...
+ sind(delta)*sind(lat));
if ( beta==0 ) % equao para superfcies horizontais
theta = theta_z;
else
% equao geral de theta
theta(:,maxDiv + i) = acosd(sind(delta)*sind(lat)*cosd(beta)...
- sind(delta)*cosd(lat)*sind(beta)*cosd(gama)...
+ cosd(delta)*cosd(lat)*cosd(beta).*cosd(omega)...
+
cosd(delta)*sind(lat)*sind(beta)*cosd(gama).*cosd(omega)...
+ cosd(delta)*sind(beta)*sind(gama).*sind(omega));
theta(:,maxDiv + 1 - i) =
acosd(sind(delta)*sind(lat)*cosd(beta)...
- sind(delta)*cosd(lat)*sind(beta)*cosd(gama)...
+ cosd(delta)*cosd(lat)*cosd(beta).*cosd(-omega)...
+ cosd(delta)*sind(lat)*sind(beta)*cosd(gama).*cosd(omega)...
+ cosd(delta)*sind(beta)*sind(gama).*sind(-omega));
end
for j=1:size(omega_s)
if (omega < -omega_s(j) && omega + 15>-omega_s(j)) || (omega >
omega_s(j) && omega-15<omega_s(j))
44
a = (sind(delta)*sind(lat)*cosd(beta)sind(delta)*cosd(lat)*sind(beta)*cosd(gama))...
*(pi/180*((omega+7.5)-(omega-7.5)))...
+(cosd(delta)*cosd(lat)*cosd(beta)+cosd(delta)*sind(lat)*sind
(beta)*cosd(gama))...
*(pi/180*(sind(omega+7.5)-sind(omega-7.5)))...
-(cosd(delta)*sind(beta)*sind(gama))*(cosd(omega+7.5)cosd(omega-7.5));
b = (cosd(lat)*cosd(delta))*(sind(omega+7.5)-sind(omega7.5))...
+pi/180*((omega+7.5)-(omega-7.5))*(sind(lat)*sind(delta));
R_b(:,maxDiv + i) = a./b;
a = (sind(delta)*sind(lat)*cosd(beta)sind(delta)*cosd(lat)*sind(beta)*cosd(gama))...
*(pi/180*((-omega+7.5)-(-omega-7.5)))...
+(cosd(delta)*cosd(lat)*cosd(beta)+cosd(delta)*sind(lat)*sind
(beta)*cosd(gama))...
*(pi/180*(sind(-omega+7.5)-sind(-omega-7.5)))...
-(cosd(delta)*sind(beta)*sind(gama))*(cosd(-omega+7.5)-cosd(omega-7.5));
b = (cosd(lat)*cosd(delta))*(sind(-omega+7.5)-sind(-omega7.5))...
+pi/180*((-omega+7.5)-(-omega-7.5))*(sind(lat)*sind(delta));
R_b(:,maxDiv + 1 - i) = a./b;
else
R_b(:,maxDiv + i) =
cosd(theta(:,maxDiv+i))./cosd(theta_z(:,maxDiv+i));
R_b(:,maxDiv + 1 - i) =cosd(theta(:,maxDiv+1i))./cosd(theta_z(:,maxDiv+1-i));
end
end
end
% RADIAO HORRIA DIRETA
I_b = zeros(size(I,1),size(I,2),size(models,1));
for i = 1:size(models,1)
for j = 1:size(I,1)
if (sum((I_d(j,:,i)<0)>0))
I_d(j,:,i) = -999*ones(1,size(I,2),1);
I_b(j,:,i) = I_d(j,:,i);
else
I_b(j,:,i) = I(j,:) - I_d(j,:,i);
end
end
end
45
46