namespace Yw.Epanet
|
{
|
/// <summary>
|
/// 计算辅助类
|
/// </summary>
|
public class CalcuHelper
|
{
|
|
/// <summary>
|
/// 计算流速 m/s
|
/// </summary>
|
/// <param name="flow">流量m³/h</param>
|
/// <param name="diameter">直径 mm</param>
|
/// <returns>流速 m/s</returns>
|
public static double CalcuVelocity(double flow, double diameter)
|
{
|
if (diameter <= 0)
|
{
|
return default;
|
}
|
|
// 单位转换
|
var q = flow / 3600;// m³/h → m³/s
|
var d = diameter / 1000; // mm → m
|
// 计算横截面积
|
var a = Math.PI * Math.Pow(d, 2) / 4;
|
// 计算流速 (m/s)
|
double velocity = q / a;
|
return velocity;
|
}
|
|
/// <summary>
|
/// 计算局部损失
|
/// </summary>
|
/// <param name="k">损失系数</param>
|
/// <param name="velocity">流速m/s</param>
|
/// <returns>局部损失 m</returns>
|
public static double CalcuMinorLoss(double k, double velocity)
|
{
|
return k * Math.Pow(Math.Abs(velocity), 2) / (2 * ConstParas.g);
|
}
|
|
/// <summary>
|
/// 计算能量
|
/// </summary>
|
/// <param name="flow">流量 m³/h</param>
|
/// <param name="head">水头 m</param>
|
/// <returns>能量 w</returns>
|
public static double CalcuEnergy(double flow, double head)
|
{
|
var energy = Math.Abs(flow * head);
|
energy = energy * ConstParas.WaterDensity * ConstParas.g / 3600;
|
return energy;
|
}
|
|
|
|
}
|
}
|