
    ch@                     >    d dl Zd Zd Zd	dZd	dZd	dZd Zd
dZy)    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).
    r   gfffffr@g9vz?i͋ gq@g:#@ )	altitudeT0Lp0RgT_hp_hdensidade_ars	            =/var/www/html/cagpublico/cag/calculotermica/cargastermicos.pycalcular_densidade_arr      sl    
  
BA	BAA q8|
C ba1q5k*
*C !c'?L    c                    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'      ss    I88I.((9-xx	*), &;;h>U>UU$99H<S<SS 0083E3EEE '/&F&F#"(($C#Dy#PQQ 25EEHZZZ00 88$8!<((#6:xx 0!4"4a8XX&<a@HH%:A> !5 42,0"8!6 r   c                 H    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   s1     i*4 "*;)<y)H I$$r   c                 B    | |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 hh'89'DE""r   c                 D    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   [   s6     !>iU^ _9..Zcd7:QQ""r   c                 V    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                 v    |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  r9   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_exteriorrH   p   sr     tJ #;=U"UY]!] *'>'E$cdd WXX !#??*LOiiMr   )r   )i	  )	numpyr   r   r'   r-   r2   r7   r>   rH   r   r   r   <module>rJ      s,    4,\%##
!r   