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 /// 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 } }