Files
envi-code/SourceCode/Code2026/HvacCmd/HDuctHydraulic.h
T
2026-09-28 15:28:50 +08:00

95 lines
3.9 KiB
C++

// THDuctHydraulic.h: interface for the THDuctHydraulic class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(__HDUCTHYDRAULIC_H__)
#define __HDUCTHYDRAULIC_H__
class HDuctHydraulic
{
protected:
double m_dFlux; // 流量(m3/h);范围:>=0
double m_dLength; // 管长(m);范围:>=0
double m_dVel; // 流速(m/s);范围:>=0
double m_dRough; // 内壁粗糙度;范围:>=0
double m_dRe; // 雷诺数;范围:>0
double m_dFricCoef; // 摩擦系数;范围:>=0
double m_dR; // 比摩阻(Pa/m);范围:>0
double m_dFricLoss; // 沿程(摩擦)阻力(Pa);范围:>=0
double m_dLocCoef; // 局部阻力系数;范围:>=0
double m_dOtherLocLoss; // 其它局部阻力(Pa);范围:>=0
double m_dLocLoss; // 局部阻力(Pa) ;范围:>=0
double m_dTotalLoss; // 总阻力(Pa) ;范围:>=0
double m_dTem; // 温度
double m_dDensity; // 密度(kg/m^3);范围:>0
double m_dMoveVis; // 运动黏度(m^2/s);范围:>0
CString m_csPipeName; // 名称
int m_nPipeShape; // 类型(0-圆形,1-矩形)
double m_dHeightStart; // 起点标高(m)
double m_dHeightEnd; // 终点标高(m)
double m_dWidth; // 管宽(mm);范围:>=0
double m_dHeight; // 管高(mm);范围:>=0
double m_dDia; // 直径(mm);范围:>=0
double m_dVelDia; // 流速当量直径(mm);范围:>=0
double m_dFluxDia; // 流量当量直径(mm);范围:>=0
double m_dOutAirDensity; // 外部空气密度(kg/m^3);范围:>0
public:
HDuctHydraulic();
virtual ~HDuctHydraulic();
double GetVel() const; // 获取流速
double GetR() const; // 获取R
double GetFricLoss() const; // 获取沿程阻力
void SetFlux(double dFlux); // 设置流量
void SetShape(BOOL bIsCircle); // 设置形状
void SetDia(double dDia); // 设置管径
void SetWidth(double dWidth); // 设置管宽
void SetHeight(double dHeight); // 设置管高
void SetLength(double dLength); // 设置管长
void SetRough(double dRough); // 设置粗糙度
void SetTemperature(double dTem); // 设置温度
void SetDensity(double dDensity); // 设置密度
void SetMoveVis(double dMoveVis); // 设置运动黏度
// 计算沿程阻力(计算前设置流量,形状,管径,长度,密度,黏度,粗糙度)
void CalFricLoss();
// 根据流量(m^3/h)和管径(mm)计算圆管流速(m/s)
double CalVelocity(double dFlux, double dDia) const;
// 根据流量(m^3/h)、管宽(mm)和管高(mm)计算矩形管流速(m/s)
double CalVelocity(double dFlux, double dWidth, double dHeight) const;
// 根据流速(m/s)、摩擦系数、密度(kg/m^3)和管径(mm)计算比摩阻
double CalR1(double dVelocity, double dFricCoef, double dDensity, double dDia) const;
// 流速(m/s)、流速当量直径(mm)和黏度(m^2/s)计算雷诺数
double CalRe(double dVelocity, double dVelDia, double dMoveVis) const;
// 根据粗糙度(mm)、流速当量直径(mm)和雷诺数计算摩擦系数, 用柯列勃洛克-怀特公式计算
double CalFricCoef(double dRough, double dVelocity, double dRe) const;
// 根据摩擦系数、管径(mm)、管长(m)、密度(kg/m^3)和流速(m/s)计算沿程阻力(Pa)
double CalFricLoss(double dFricCoef, double dDia, double dLength,
double dDensity, double dVelocity) const;
// 根据局部阻力系数、密度(kg/m^3)、流速(m/s)和其它局部阻力(Pa)计算局部阻力(Pa)
double CalLocLoss(double dLocCoef, double dDensity, double dVelocity) const;
// 根据沿程阻力(Pa)、局部阻力(Pa)、起点标高(m)、终点标高(m)、管内密度(kg/m^3)和管外密度(kg/m^3)计算总阻力(Pa)
double CalTotalLoss(double dFricLoss, double dLocLoss, double dStHeight,
double dEndHeight, double dDensity, double dOutAirDensity) const;
// 根据管宽(mm)和管高(mm)计算流速当量直径(mm)
double CalVelDia(double dWidth, double dHeight) const;
// 根据管宽(mm)和管高(mm)计算流量当量直径(mm)
double CalFluxDia(double dWidth, double dHeight) const;
// 根据管径(mm)计算圆形断面积(m2)
double CalSecArea(double dDia) const;
// 根据管宽(mm)和管高(mm)计算矩形断面积(m2)
double CalSecArea(double dWidth, double dHeight) const;
// 根据温度计算密度
double CalDesity(double dTemperature) const;
// 根据温度计算运动黏度
double CalMoveVis(double dTemperature) const;
};
#endif // !defined(__THDUCTHYDRAULIC_H__)