lixiaojun
2025-02-25 8c62d3406148982206225f266b77443bb7a0a101
Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0
已修改3个文件
52 ■■■■■ 文件已修改
Hydro/Yw.EPAnet.Calcu.Core/03-calcu/00-core/NetworkCalcuExtensions.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.Hydro.Core/ParseHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Hydro/Yw.EPAnet.Calcu.Core/03-calcu/00-core/NetworkCalcuExtensions.cs
@@ -134,12 +134,14 @@
                    {
                        double minorloss1 = p.StartMinorLossCoeff * Math.Pow(calcuLink.Velocity, 2) / 2 / 9.81;
                        double minorloss2 = p.EndMinorLossCoeff * Math.Pow(calcuLink.Velocity, 2) / 2 / 9.81;
                        double minorloss = p.MinorLossCoeff * Math.Pow(calcuLink.Velocity, 2) / 2 / 9.81;
                        //calcuLink.HeadLoss -= minorloss1 + minorloss2;
                        calcuLink.StartMinorLoss = minorloss1;
                        calcuLink.EndMinorLoss = minorloss2;
                        double minorloss = p.MinorLossCoeff * Math.Pow(calcuLink.Velocity, 2) / 2 / 9.81;
                        calcuLink.HeadLoss -= minorloss1 + minorloss2;
                        calcuLink.MinorLoss = minorloss;
                        calcuLink.FrictionLoss = calcuLink.HeadLoss - minorloss;
                        var sign = (calcuLink.HeadLoss >= 0 ? 1 : -1);
                        calcuLink.FrictionLoss =   sign* (Math.Abs(calcuLink.HeadLoss) - Math.Abs (minorloss + minorloss1 + minorloss2));
                        //if (nodedict[p.StartNode.Id] is Elbow)
                        {
                            nodeResultDict[p.StartNode.Id].MinorLoss += minorloss1;
Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs
@@ -113,18 +113,15 @@
            {
                if (link is Pipe p)
                {
                    var cStartnode = (dictLinks[link.Id].Flow > 0 ? link.StartNode : link.EndNode) as Node;
                    var cEndnode = (dictLinks[link.Id].Flow > 0 ? link.EndNode : link.StartNode) as Node;
                    var endNodeMinorlossCoff = p.EndMinorLossCoeff;
                    var startNodeMinorlossCoff = p.StartMinorLossCoeff;
                    //根据p.diameter和p.flow计算流速
                    double velocity = dictLinks[p.Id].Flow / (Math.PI * Math.Pow(p.Diameter / 2, 2));
                    var calcLink = dictLinks[link.Id];
                    var cStartnode = (calcLink.Flow > 0 ? link.StartNode : link.EndNode) as Node;
                    var cEndnode = (calcLink.Flow > 0 ? link.EndNode : link.StartNode) as Node;
                    var flow = Math.Abs(dictLinks[p.Id].Flow);
                    if (p.StartMinorLossCoeff != 0)
                    if (calcLink.StartMinorLoss!=0)
                    {
                        //根据流速计算局部水头损失
                        double headminorloss1 = p.StartMinorLossCoeff * Math.Pow(velocity, 2) / 2 / 9.81;
                        double headminorloss1 = calcLink.StartMinorLoss;
                        double energypower = GetEnergyPowerByQH(flow, headminorloss1);
                        var Id = cStartnode.Id;
                        if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>());
@@ -151,10 +148,12 @@
                        points.Add(point);
                    }
                    if (p.EndMinorLossCoeff != 0)
                    if (calcLink.EndMinorLoss != 0)
                    {
                        //根据流速计算局部水头损失
                        double headminorloss2 = p.EndMinorLossCoeff * Math.Pow(velocity, 2) / 2 / 9.81;
                        double headminorloss2 = calcLink.EndMinorLoss;
                        double energypower = GetEnergyPowerByQH(flow, headminorloss2);
                        var Id = cEndnode.Id;
                        if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>());
@@ -180,29 +179,11 @@
                        points.Add(point);
                    }
                    double pipeheadminorloss = 0;
                    if (p.MinorLossCoeff != 0)
                    {
                        //根据流速计算局部水头损失
                        pipeheadminorloss = p.MinorLossCoeff * Math.Pow(velocity, 2) / 2 / 9.81;
                        double energypower = GetEnergyPowerByQH(flow, pipeheadminorloss);
                        var Id = p.Id;
                        if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>());
                        var energypoint = new EnergyPoint
                        {
                            Id = Id,
                            EnergyType = eEnergyType.MinorLoss,
                            EnergyPower = energypower,
                        };
                        result.LossEnergy[Id].Add(energypoint);
                        result.MinorLossTotalEnerge += energypower;
                        points.Add(energypoint);
                    }
                    //var pipeheadminorloss =calcLink.StartMinorLoss + calcLink.EndMinorLoss;
                    {
                        double headlossFriction = Math.Abs(dictLinks[p.Id].HeadLoss) - pipeheadminorloss;
                        double headlossFriction = Math.Abs(dictLinks[p.Id].HeadLoss);// Math.Abs(dictLinks[p.Id].HeadLoss) - pipeheadminorloss;
                        double energypower = GetEnergyPowerByQH(flow, headlossFriction);
                        var Id = p.Id;
                        if (!result.LossEnergy.ContainsKey(Id)) result.LossEnergy.Add(Id, new List<EnergyPoint>());
Hydro/Yw.Hydro.Core/ParseHelper.cs
@@ -322,6 +322,7 @@
                    pipeModel.Diameter = pipe.Diameter;
                    pipeModel.Roughness = pipe.Roughness;
                    pipeModel.MinorLossCoeff = 0;
                    netWork.Pipes.Add(pipeModel);
                }
            }