ningshuxia
2025-04-16 ed113213fc94c3d9886ea08dfddd09d08d9ba7d5
01-api/Service/IStation.Service/07-helper/01-analysis/AnalysisHelper.cs
@@ -11,7 +11,7 @@
        private readonly decimal _frequency_def = 50m;
        private readonly decimal _frequency_min = 25m;
        private readonly decimal _frequency_max = 50m;
        private readonly decimal _frequency_space = 0.2m;//频率间隔
        private readonly decimal _frequency_space = 0.1m;//频率间隔
        private readonly decimal _head_space = 0.1m;//扬程间隔
        private readonly DAL.SQLite.AnalysisPump _dal_analysis_pump = new();
@@ -260,18 +260,36 @@
                    continue;
                }
                var qhHzCurve = hzCurveDict[hz];
                for (decimal j = 1; j >= 0; j -= fre_space)
                if (pump.IsBp)
                {
                    var fre = hz - j;
                    var qh = IStation.Curve.FitHelper.BuildCurveExpress(qhHzCurve);
                    var qp = pump.CurveQP;
                    for (decimal j = 0; j <= 0.9m; j += fre_space)
                    {
                        var fre = hz - j;
                        var qp = Curve.PumpCalculateHelper.CalculateSimilarQP(pump.CurveQP, (double)fre_def, (double)fre);
                        var qh = IStation.Curve.FitHelper.BuildCurveExpress(qhHzCurve);
                        //var qh2 = qh.GetFitPointsByXRange(pump.CurveQP.Min, pump.CurveQP.Max);
                        //var qh3 = IStation.Curve.FitHelper.BuildCurveExpress(qh2);
                        var freItem = new AnaPumpFreItem();
                        freItem.Frequency = (double)fre;
                        freItem.CurveQH = Curve.PumpCalculateHelper.CalculateSimilarQH(qh, (double)hz, (double)fre);
                        freItem.CurveQP = qp;
                        list.Add(freItem);
                    }
                }
                else
                {
                    var qh = IStation.Curve.FitHelper.BuildCurveExpress(qhHzCurve);
                    var qh2 = qh.GetFitPointsByXRange(pump.CurveQP.Min, pump.CurveQP.Max);
                    var qh3 = IStation.Curve.FitHelper.BuildCurveExpress(qh2);
                    var qp = pump.CurveQP;
                    var freItem = new AnaPumpFreItem();
                    freItem.Frequency = (double)fre;
                    freItem.CurveQH = Curve.PumpCalculateHelper.CalculateSimilarQH(qh, (double)hz, (double)fre);
                    freItem.CurveQP = Curve.PumpCalculateHelper.CalculateSimilarQP(qp, (double)fre_def, (double)fre);
                    freItem.Frequency = 50;
                    freItem.CurveQH = qh3;
                    freItem.CurveQP = qp;
                    list.Add(freItem);
                }
            }