_base_components.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import numpy as np
  2. try:
  3. import pymc as pm
  4. except:
  5. pass
  6. from .._model._base import BaseModel
  7. class BaseComponents(BaseModel):
  8. CONSTANT = {
  9. 'T_offset' : 273.15,
  10. 'h_ads' : 2200, # kJ/kg 吸附热(文献中硅胶约为2100–2300 kJ/kg,接近水蒸气冷凝潜热)
  11. 'c_p_air' : 1.05, # kJ/kg·K 空气比热容
  12. 'c_p_v' : 1.84, # kJ/kg·K 水蒸气比热容
  13. 'c_p_water': 4.18, # kJ/kg·K 水比热容(约4.18)
  14. 'rho_air' : 1.184, # kg/m3 取了25度下的空气密度
  15. }
  16. def __init__(self) -> None:
  17. super().__init__()
  18. def get_func_by_engine(engine:str) -> dict:
  19. if engine == 'pymc':
  20. EXP = pm.math.exp
  21. WHERE = pm.math.switch
  22. GT = pm.math.gt
  23. LT = pm.math.lt
  24. else:
  25. EXP = np.exp
  26. WHERE = np.where
  27. GT = np.greater
  28. LT = np.less
  29. return {
  30. 'EXP' : EXP,
  31. 'WHERE' : WHERE,
  32. 'GT' : GT,
  33. 'LT' : LT,
  34. }