From 1e387f457092df846ec04e2c6792b83244aae04e Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期六, 07 十二月 2024 12:09:23 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs | 76 +++++++++++++++++++++++++++---------- 1 files changed, 55 insertions(+), 21 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs index 883999a..e283041 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkEnergyAnalyseExtensions.cs @@ -27,26 +27,6 @@ return false; }).ToList(); - //璁$畻杩欎簺鑺傜偣鐨勫娍鑳斤紝鍔胯兘璁$畻鍏紡涓猴細鍔胯兘=闇�姘撮噺*鑺傜偣姘村ご - - foreach (var node in negativeDemandNodes) - { - if (node is Node n) - { - double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head); - var energyPoint = new EnergyPoint - { - Id = n.Id, - EnergyType = eEnergyType.Input, - EnergyPower = energyInW, - - }; - points.Add(energyPoint); - result.InputEnergy.Add(n.Id,new List<EnergyPoint> { energyPoint }); - result.InputTotalEnerge += energyInW; - } - } - //鎵惧埌绠$綉涓渶姘撮噺涓烘鐨勮妭鐐� var positiveDemandNodes = network.GetAllNodes().Where(n => { @@ -57,13 +37,67 @@ return false; }).ToList(); + double minElev = 99999999; + + List<Node> DemandNodes=new List<Node>(); + DemandNodes.AddRange(negativeDemandNodes); + DemandNodes.AddRange(positiveDemandNodes); + foreach (var node in DemandNodes) + { + if (node is Junction n) + { + if (n.Elev < minElev) + { + minElev = n.Elev; + } + } + else if (node is Tank t) + { + if (t.PoolElev < minElev) + { + minElev = t.PoolElev; + } + } + else if (node is Reservoir r) + { + var elev = r.PoolElev == null ? 0 : (double)r.PoolElev; + if (elev < minElev) + { + minElev = elev; + } + } + } + + + + + + //璁$畻杩欎簺鑺傜偣鐨勫娍鑳斤紝鍔胯兘璁$畻鍏紡涓猴細鍔胯兘=闇�姘撮噺*鑺傜偣姘村ご + + foreach (var node in negativeDemandNodes) + { + if (node is Node n) + { + double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head- minElev); + var energyPoint = new EnergyPoint + { + Id = n.Id, + EnergyType = eEnergyType.Input, + EnergyPower = energyInW, + + }; + points.Add(energyPoint); + result.InputEnergy.Add(n.Id, new List<EnergyPoint> { energyPoint }); + result.InputTotalEnerge += energyInW; + } + } foreach (var node in positiveDemandNodes) { if (node is Node n) { - double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head); + double energyInW = GetEnergyPowerByQH(Math.Abs(dictNodes[n.Id].Demand), dictNodes[n.Id].Head- minElev); var energyPoint = new EnergyPoint { Id = n.Id, -- Gitblit v1.9.3