| | |
| | | /// <summary> |
| | | /// 局部水头损失 |
| | | /// </summary> |
| | | public double MinorHeadLoss |
| | | { |
| | | get |
| | | { |
| | | return StartHead - EndHead; |
| | | } |
| | | } |
| | | public double MinorHeadLoss { get; set; } = 0; |
| | | |
| | | |
| | | public double Distance { get; set; } |
| | | } |
| | |
| | | length += p.Length; |
| | | |
| | | } |
| | | |
| | | nodeEnd.Distance = length; |
| | | chartNodes.Add(nodeEnd); |
| | | |
| | | for (int i=0;i<links.Count;i++) |
| | |
| | | //根据p.diameter和p.flow计算流速 |
| | | double velocity = dictLinks[ p.Id].Flow/ (Math.PI * Math.Pow(p.Diameter / 2, 2)); |
| | | //根据流速计算局部水头损失 |
| | | double minorloss1 = p.StartMinorloss* Math.Pow(velocity, 2) / 2 / 9.81; |
| | | double minorloss2 = p.EndMinorloss * Math.Pow(velocity, 2) / 2 / 9.81; |
| | | double minorloss1 = dictLinks[p.Id].StartMinorLoss; |
| | | double minorloss2 = dictLinks[p.Id].EndMinorLoss; |
| | | |
| | | |
| | | if (i < links.Count - 1) |
| | | { |
| | | |
| | | chartNodes[i].EndHead = chartNodes[i].Head - minorloss1; |
| | | chartNodes[i].MinorHeadLoss += minorloss1; |
| | | chartNodes[i + 1].StartHead = chartNodes[i+1].Head + minorloss2; |
| | | chartNodes[i + 1].MinorHeadLoss += minorloss2; |
| | | |
| | | chartNodes[i + 1].StartHead = chartNodes[i].EndHead - minorloss2; |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | chartNodes[i].EndHead = chartNodes[i].Head - minorloss1; |
| | | chartNodes[i].MinorHeadLoss += minorloss1; |
| | | } |
| | | |
| | | } |