
    s*g                     >    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	            6C:\grfgraph\atual\cag\calculotermica\cargastermicos.pycalcular_densidade_arr      sl    
  
BA	BAA q8|
C ba1q5k*
*C !c'?L    c                 x   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      }||||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_totalcarga_latente_totalcarga_iluminacaocarga_equipamentos)
npzeroscalor_sensivel_pessoanumero_pessoascalor_latente_pessoataxa_iluminacao	area_pisodissipacao_equipamentosarrayround)	termicos	horas_diar   r   r   r   carga_sensivel_pessoascarga_latente_pessoasdissipacao_equipamentos_horarias	            r   !calcular_cargas_termicas_ambienter'      sF    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 !52,0	 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-   F   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   N   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   V   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>   _   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   k   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%##
!r   