public Logger FFind_repr_logger(EFavorTest efavor, WaterNetwork waternetwork) { GenListWaterNetworkNode(waternetwork); Logger closest = GenListofLogers(efavor).OrderBy(item => Math.Abs(FNodeAverageElevation - item.elevation)).First(); return(closest); }
public List <Logger> GenListofLogers(EFavorTest DataEfavor) { List <Logger> F_list_of_logger = new List <Logger> { }; F_list_of_logger = DataEfavor.list_of_loggers; foreach (var item in F_list_of_logger) { LoggerSumOfElevation = LoggerSumOfElevation + item.elevation; } LoggerAverageElevation = LoggerSumOfElevation / F_list_of_logger.Count(); return(F_list_of_logger); }
public int GenFAVADOutput(WaterNetwork waternetwork_tk, EFavorTest efavor, BurstCoeffs burstCoeffs) { try { Favad favad2 = new Favad(); double demand = favad2.Get_minDemand(waternetwork_tk); Logger representative = favad2.FFind_repr_logger(efavor, waternetwork_tk); List <FlowMeter> inlets = favad2.FInlet(efavor); List <pair_values_favad> records = new List <pair_values_favad>(); for (int n = 0; n < representative.measured_pressure.Count(); n++) { pair_values_favad pair = new pair_values_favad(); pair.flow = inlets[0].measured_flow[n]; pair.pressure = representative.measured_pressure[n]; records.Add(pair); } //calibration process var last = records.Last(); var previous = records.AsEnumerable().Reverse().Skip(1).FirstOrDefault(); double anzp0 = previous.pressure; double anzp1 = last.pressure; double L0 = previous.flow;; double L1 = last.flow; N1 = (Math.Log(L1 / L0)) / (Math.Log(anzp1 / anzp0)); var B = ((L0 - demand) / Math.Pow(anzp0, 0.5) - (L1 - demand) / Math.Pow(anzp1, 0.5)) / (anzp0 - anzp1); var A = ((L0 - demand) / Math.Pow(anzp0, 0.5)) - B * anzp0; favadcoeff.A = A; favadcoeff.B = B; var text = String.Format("N1 Coefficient: {0}", N1.ToString()); //MessageBox.Show(text); LeakEstimation(N1, records, demand, waternetwork_tk, burstCoeffs, favadcoeff); return(0); } catch (Exception ex) { MessageBox.Show(ex.Message); return(-1); throw; } }
public List <FlowMeter> FInlet(EFavorTest Fefavor) { List <FlowMeter> List_of_inlets_flow = Fefavor.list_of_inlet_flowmeters; return(List_of_inlets_flow); }