namespace Yw.Curve { /// /// 泵特性曲线辅助类 /// public class PumpFeatHelper { /// /// 通过 频率 计算流量扬程曲线表达式 /// public static CurveExpress CalcuCurveQhByHz(List pts, eFitType fit, double hz) { if (pts == null || pts.Count < 1) { return default; } var fitPow = FitHelper.GetFitPow(fit); if (pts.Count < fitPow + 1) { return default; } double f_ratio = hz / 50.0; var list = pts.Select(x => new CurvePoint(x.X * f_ratio, x.Y * f_ratio * f_ratio)).ToList(); return FitHelper.BuildCurveExpress(list, fit); } /// /// 通过 频率 计算流量扬程曲线表达式 /// public static CurveExpress CalcuCurveQhByHz(CurveExpress express, double hz, int? pointNumber = null) { if (!pointNumber.HasValue) { pointNumber = Settings.CurveParasHelper.Curve.PointNumber; } var pts = express.GetFitPoints(pointNumber.Value); return CalcuCurveQhByHz(pts, express.FitType, hz); } /// /// 通过 频率 计算流量功率曲线表达式 /// public static CurveExpress CalcuCurveQpByHz(List pts, eFitType fit, double hz) { if (pts == null || pts.Count < 1) { return default; } var fitPow = FitHelper.GetFitPow(fit); if (pts.Count < fitPow + 1) { return default; } double f_ratio = hz / 50.0; var list = pts.Select(x => new CurvePoint(x.X * f_ratio, x.Y * f_ratio * f_ratio * f_ratio)).ToList(); return FitHelper.BuildCurveExpress(list, fit); } /// /// 通过 频率 计算流量功率曲线表达式 /// public static CurveExpress CalcuCurveQpByHz(CurveExpress express, double hz, int? pointNumber = null) { if (!pointNumber.HasValue) { pointNumber = Settings.CurveParasHelper.Curve.PointNumber; } var pts = express.GetFitPoints(pointNumber.Value); return CalcuCurveQpByHz(pts, express.FitType, hz); } } }