// 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__)