using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Formula
{
///
/// 计算辅助类
///
public class CalcuHelper
{
#region 计算效率
///
/// 计算效率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 功率 kw
/// 密度 kg/m^3
/// 重力加速度 m/s^2
/// 百分数
public static double CalculateE(double q, double h, double p, double ρ, double g)
{
q = q / 3600;
p = p * 1000;
double e = 0;
if (p < 0.1)
return e;
e = ρ * g * q * h / p;
return Math.Round(e * 100, 2);
}
///
/// 计算效率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 功率 kw
/// 百分数
public static double CalculateE(double q, double h, double p)
{
return CalculateE(q, h, p, ConstantParas.WaterDensity, ConstantParas.g);
}
///
/// 计算效率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 功率 kw
/// 密度 kg/m^3
/// 百分数
public static double CalculateE(double q, double h, double p, double ρ)
{
return CalculateE(q, h, p, ρ, ConstantParas.g);
}
#endregion
#region 计算功率
///
/// 计算功率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 效率 百分数
/// 密度kg/m³
/// 重力加速度 m/s²
/// kw
public static double CalculateP(double q, double h, double e, double ρ, double g)
{
q = q / 3600;
e = e / 100;
double p = 0;
if (e < 0.01)
return p;
p = ρ * g * q * h / e;
p = p / 1000;//换算成kw
if (p < 2)
return Math.Round(p, 4);
if (p < 30)
return Math.Round(p, 3);
if (p < 100)
return Math.Round(p, 2);
return Math.Round(p, 1);
}
///
/// 计算功率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 效率 百分数
/// 密度kg/m³
/// kw
public static double CalculateP(double q, double h, double e, double ρ)
{
return CalculateP(q, h, e, ρ, ConstantParas.g);
}
///
/// 计算功率
///
/// 瞬时流量 m³/h
/// 扬程 m
/// 效率 百分数
/// kw
public static double CalculateP(double q, double h, double e)
{
return CalculateP(q, h, e, ConstantParas.WaterDensity, ConstantParas.g);
}
#endregion
#region Mpa<=>m
///
/// Mpa=>m
///
public static double Mpa2M(double mpa)
{
return mpa * ConstantParas.WaterDensity / ConstantParas.g;
}
///
/// m=>Mpa
///
public static double M2Mpa(double m)
{
return m * ConstantParas.g / ConstantParas.WaterDensity;
}
#endregion
#region 计算用电量
///
/// 计算用电量
///
/// 功率kw
/// 时间h
/// kw*h
public static double CalculateD(double p, double t)
{
return p * t;
}
#endregion
#region 计算累积流量
///
/// 计算累积流量
///
/// 瞬时流量m³/h
/// 时间h
/// m³
public static double CalculateQt(double q, double t)
{
return q * t;
}
#endregion
#region 计算能耗
///
/// 计算千吨能耗
///
/// 功率kW
/// 瞬时流量m³/h
/// kW·h/km³
public static double CalculateWP(double p, double q)
{
if (q < 0.1)
return 0;
return p / q * 1000;
}
///
/// 计算单位能耗
///
/// 功率kW
/// 瞬时流量m³/h
/// 扬程m
/// kW·h/km³
public static double CalculateUWP(double p, double q, double h)
{
if (q < 0.1)
return default;
if (h < 0.1)
return default;
return p / q / h * 1000;
}
#endregion
}
}