95 lines
4.4 KiB
C++
95 lines
4.4 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__)
|