
    <6g@                     @    d dl Zd Zd ZddZddZddZd Zdd
ZdS )    Nc                 d    | d} d}d}d}d}d}||| z  z
  }|||z  |||z  z  z  z  }|||z  z  }|S )u   
    Calcula a densidade do ar com base na altitude usando a fórmula barométrica.
    altitude em metros. Se altitude for None, assume 0 metros (nível do mar).
    Nr   gfffffr@g9vz?i͋ gq@g:#@ )	altitudeT0Lp0RgT_hp_hdensidade_ars	            2/var/www/html/cag/calculotermica/cargastermicos.pycalcular_densidade_arr      sl    
  
BA	BAA q8|
C ba1q5k*
*C !c'?L    c                 z   d}t          j        |          }t          j        |          }t          j        |          }t          j        |          }| j        | j        z  }| j        | j        z  }|| j        | j        z  z  }| j        }|t          j        |g|z            z  }|||z   |z   z  }||z  }t          j	        |d          }t          j	        |d          }t          j	        |d          }t          j	        |d          }t          j	        |d          }t          j	        |d          }|||||||dS )u   
    Calcula as cargas térmicas do ambiente com base nos dados fornecidos.
    Utiliza a área do piso para ajustar a carga térmica de iluminação e outras fontes.
          )carga_sensivel_totalr   carga_latente_totalcarga_iluminacaocarga_equipamentoscarga_sensivel_pessoascarga_latente_pessoas)
npzeroscalor_sensivel_pessoanumero_pessoascalor_latente_pessoataxa_iluminacao	area_pisodissipacao_equipamentosarrayround)	termicos	horas_diar   r   r   r   r   r   dissipacao_equipamentos_horarias	            r   !calcular_cargas_termicas_ambienter'      sn    I8I..(9--x	**),, &;h>UU$9H<SS 083EEE '/&F#"($C#Dy#PQQQ 25EEHZZZ00 8$8!<<(#6::x 0!44"4a88X&<a@@H%:A>> !5 42,0"8!6  r   r   c                 F    d| z  |z  }t          j        |g|z            }|S )ub   
    Calcula a vazão de ar externo devido à infiltração, constante para cada hora do dia.
    g      ?r   r"   )r    
pe_direitor%   vazao_infiltracaovazao_horaria_infiltracaos        r   calcular_vazao_ar_infiltracaor-   K   s2     i*4 "*;)<y)H I I$$r   c                 @    | |z  }t          j        |g|z            }|S )u`   
    Calcula a vazão de ar externo devido à renovação, constante para cada hora do dia.
    r)   )r   taxa_renovacaor%   vazao_renovacaovazao_horaria_renovacaos        r   calcular_vazao_ar_renovacaor2   S   s,     %~5O h'89'DEE""r   c                 T    t          | ||          }t          |||          }||z   }|S )uc   
    Calcula a vazão total de ar externo (infiltração + renovação) para cada hora do dia.
    )r-   r2   )r    r*   r   r/   r%   vazao_infiltracao_horariavazao_renovacao_horariavazao_total_ar_exteriors           r    calcular_vazao_total_ar_exteriorr7   [   s<     !>iU^ _ _9..Zcdd7:QQ""r   c                 T    t          | j                  }d}||z  |z  ||z
  z  dz  }|S )uv   
    Calcula o calor sensível devido à vazão de ar exterior em cada hora do dia, com o resultado em W (watts).
    i    )r   r   )r$   temperaturas_externastemperatura_internar6   r   capacidade_calorifica_arcalor_sensivels          r   #calcular_calor_sensivel_ar_exteriorr>   d   sK     )):;;L# #%==@WW,/BBDGKLNr   	  c                     |dz  }||z
  dz  }||dz  }nt          d          | t          d          | |z  |z  |z  }|S )u1  
    Calcula o calor latente devido à vazão de ar exterior em cada hora do dia, com o resultado em W (watts).
    
    Parâmetros:
    - densidade_ar: Densidade do ar (kg/m³), ajustada para a altitude do projeto.
    - vazao_total_ar_exterior: Vazão total de ar exterior (m³/h).
    - umidade_absoluta_externa: Umidade específica externa (g/kg).
    - umidade_absoluta_interna: Umidade específica interna (g/kg).
    - hlv: Calor latente de vaporização da água (kJ/kg), com valor padrão de 2440 kJ/kg.
    
    Retorna:
    - Calor latente (W).
    i  Nr9   uH   A vazão total de ar exterior é None e não pode ser usada no cálculo.u<   A densidade do ar é None e não pode ser usada no cálculo.)
ValueError)	r   r6   umidade_absoluta_externaumidade_absoluta_internahlv
hlv_joulesumidade_absoluta_diferencavazao_total_ar_exterior_m3_scalor_latentes	            r   "calcular_calor_latente_ar_exteriorrI   p   s{     tJ #;=U"UY]!] *'>'E$$cddd WXXX !#??*LOiiMr   )r   )r?   )	numpyr   r   r'   r-   r2   r7   r>   rI   r   r   r   <module>rK      s         4, , ,\% % % %# # # ## # # #
 
 
! ! ! ! ! !r   