¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace IStation |
| | | { |
| | | /// <summary> |
| | | /// æ²çº¿è®¡ç®è¾
å©ç±» |
| | | /// </summary> |
| | | public class CurveCalcuHelper |
| | | { |
| | | public const double g = 9.81;//éåå é度 m/s² |
| | | public const double WaterDensity = 1000; //æ°´çå¯åº¦ g/L kg/m³ |
| | | public const double OtherPressCoeff = 4 * 1000 / Math.PI / 3.6;//å
¶ä»ååç³»æ° nsx ScadaAnalyç¨,20020504 |
| | | |
| | | #region è®¡ç®æç |
| | | |
| | | /// <summary> |
| | | /// è®¡ç®æç |
| | | /// </summary> |
| | | /// <param name="q"> ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h"> æ¬ç¨ m</param> |
| | | /// <param name="p"> åç kw</param> |
| | | /// <param name="Ï"> å¯åº¦ kg/m^3</param> |
| | | /// <param name="g"> éåå é度 m/s^2</param> |
| | | /// <returns>ç¾åæ°</returns> |
| | | 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); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è®¡ç®æç |
| | | /// </summary> |
| | | /// <param name="q"> ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h"> æ¬ç¨ m</param> |
| | | /// <param name="p"> åç kw</param> |
| | | /// <returns>ç¾åæ°</returns> |
| | | public static double CalculateE(double q, double h, double p) |
| | | { |
| | | return CalculateE(q, h, p, WaterDensity, g); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è®¡ç®æç |
| | | /// </summary> |
| | | /// <param name="q"> ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h"> æ¬ç¨ m</param> |
| | | /// <param name="p"> åç kw</param> |
| | | /// <param name="Ï"> å¯åº¦ kg/m^3</param> |
| | | /// <returns>ç¾åæ°</returns> |
| | | public static double CalculateE(double q, double h, double p, double Ï) |
| | | { |
| | | return CalculateE(q, h, p, Ï, g); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 计ç®åç |
| | | |
| | | /// <summary> |
| | | /// 计ç®åç |
| | | /// </summary> |
| | | /// <param name="q">ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h">æ¬ç¨ m</param> |
| | | /// <param name="e">æç ç¾åæ°</param> |
| | | /// <param name="Ï">å¯åº¦kg/m³</param> |
| | | /// <param name="g">éåå é度 m/s²</param> |
| | | /// <returns>kw</returns> |
| | | 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); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计ç®åç |
| | | /// </summary> |
| | | /// <param name="q">ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h">æ¬ç¨ m</param> |
| | | /// <param name="e">æç ç¾åæ°</param> |
| | | /// <param name="Ï">å¯åº¦kg/m³</param> |
| | | /// <returns>kw</returns> |
| | | public static double CalculateP(double q, double h, double e, double Ï) |
| | | { |
| | | return CalculateP(q, h, e, Ï, g); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计ç®åç |
| | | /// </summary> |
| | | /// <param name="q">ç¬æ¶æµé m³/h</param> |
| | | /// <param name="h">æ¬ç¨ m</param> |
| | | /// <param name="e">æç ç¾åæ°</param> |
| | | /// <returns>kw</returns> |
| | | public static double CalculateP(double q, double h, double e) |
| | | { |
| | | return CalculateP(q, h, e, WaterDensity, g); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region Mpa<=>m |
| | | |
| | | /// <summary> |
| | | /// Mpa=>m |
| | | /// </summary> |
| | | public static double Mpa2M(double mpa) |
| | | { |
| | | return mpa * WaterDensity / g; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// m=>Mpa |
| | | /// </summary> |
| | | public static double M2Mpa(double m) |
| | | { |
| | | return m * g / WaterDensity; |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 计ç®ç¨çµé |
| | | |
| | | /// <summary> |
| | | /// 计ç®ç¨çµé |
| | | /// </summary> |
| | | /// <param name="p">åçkw</param> |
| | | /// <param name="t">æ¶é´h</param> |
| | | /// <returns>kw*h</returns> |
| | | public static double CalculateD(double p, double t) |
| | | { |
| | | return p * t; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 计ç®ç´¯ç§¯æµé |
| | | |
| | | /// <summary> |
| | | /// 计ç®ç´¯ç§¯æµé |
| | | /// </summary> |
| | | /// <param name="q">ç¬æ¶æµém³/h</param> |
| | | /// <param name="t">æ¶é´h</param> |
| | | /// <returns>m³</returns> |
| | | public static double CalculateQt(double q, double t) |
| | | { |
| | | return q * t; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 计ç®è½è |
| | | |
| | | /// <summary> |
| | | /// 计ç®åå¨è½è |
| | | /// </summary> |
| | | /// <param name="p">åçkW</param> |
| | | /// <param name="q">ç¬æ¶æµém³/h</param> |
| | | /// <returns>kW·h/km³</returns> |
| | | public static double CalculateWP(double p, double q) |
| | | { |
| | | if (q < 0.1) |
| | | return 0; |
| | | return p / q * 1000; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 计ç®åä½è½è |
| | | /// </summary> |
| | | /// <param name="p">åçkW</param> |
| | | /// <param name="q">ç¬æ¶æµém³/h</param> |
| | | /// <param name="h">æ¬ç¨m</param> |
| | | /// <returns>kW·h/km³</returns> |
| | | 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 |
| | | |
| | | #region 计ç®å
¶ä»åå nsx 20220504 |
| | | /// <summary> |
| | | /// 计ç®å
¶ä»åå |
| | | /// </summary> |
| | | /// <param name="q">æµé m³/h </param> |
| | | /// <param name="inletPipeDia">è¿å£ç®¡å¾ mm </param> |
| | | /// <param name="outletPipeDia">åºå£ç®¡å¾ mm </param> |
| | | /// <param name="inletElevation">è¿å£æ é« mm </param> |
| | | /// <param name="oulteElevation">åºå£æ é« mm </param> |
| | | /// <returns></returns> |
| | | public static double CalculateOtherPress(double? q, double? inletPipeDia, double? outletPipeDia, double? inletElevation, double? oulteElevation) |
| | | { |
| | | if (q == null || q.Value < 0.05) |
| | | { |
| | | if (oulteElevation == null || inletElevation == null) |
| | | return 0; |
| | | return oulteElevation.Value - inletElevation.Value; |
| | | } |
| | | |
| | | double flow = q.Value; |
| | | double inPipeV = 0; |
| | | if (inletPipeDia != null && inletPipeDia.Value > 0.1) |
| | | { |
| | | // æµéè®¡ç® pipeD =mm,pumpFlow=m3/p |
| | | inPipeV = OtherPressCoeff * flow / inletPipeDia.Value / inletPipeDia.Value; |
| | | } |
| | | |
| | | double outPipeV = 0; |
| | | if (outletPipeDia != null && outletPipeDia.Value > 0.1) |
| | | { |
| | | // æµéè®¡ç® rPipeD =mm,rPumpFlow=m3/p |
| | | outPipeV = OtherPressCoeff * flow / outletPipeDia.Value / outletPipeDia.Value; |
| | | } |
| | | |
| | | double differV = (outPipeV * outPipeV - inPipeV * inPipeV) / g / 2.0; |
| | | |
| | | if (oulteElevation == null || inletElevation == null) |
| | | return differV; |
| | | |
| | | return differV + oulteElevation.Value - inletElevation.Value; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 计ç®50Hzæ¶çå¼ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®é¢çè®¡ç® 50hzæµé |
| | | /// </summary> |
| | | /// <param name="q">ç¬æ¶æµé m³/h</param> |
| | | /// <param name="hz">é¢ç kw</param> |
| | | /// <returns></returns> |
| | | public static double Calculate50QByHz(double q, double hz) |
| | | { |
| | | if (hz < 10 || hz > 49.9) |
| | | return q; |
| | | double f_ratio = 50 / hz; |
| | | |
| | | return q * f_ratio; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®é¢çè®¡ç® 50hzæ¬ç¨ |
| | | /// </summary> |
| | | /// <param name="h">æ¬ç¨ m</param> |
| | | /// <param name="hz">é¢ç kw</param> |
| | | /// <returns></returns> |
| | | public static double Calculate50HByHz(double h, double hz) |
| | | { |
| | | if (hz < 10 || hz > 49.9) |
| | | return h; |
| | | double f_ratio = 50 / hz; |
| | | return h * f_ratio * f_ratio; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®é¢çè®¡ç® 50hzåç |
| | | /// </summary> |
| | | /// <param name="p">åç kw</param> |
| | | /// <param name="hz">é¢ç kw</param> |
| | | /// <returns></returns> |
| | | public static double CalculatePByHz(double p, double hz) |
| | | { |
| | | if (hz < 10 || hz > 49.9) |
| | | return p; |
| | | double f_ratio = 50 / hz; |
| | | return p * f_ratio * f_ratio * f_ratio; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | } |