/// <summary> /// Моделирование работы скважины с идеальным ВШН и подбор реальных ВШН соответствующего идеальному. Возвращает список подобранных насосов. /// </summary> /// <param name="eps">Точность с которой будет расчитываться забойное давление (безразмерная)</param> /// <param name="dynamicH">Динамический уровень пластовой жидкости, отсчитывается от входа в насос (м)</param> /// <param name="CatalogPcp">Каталог ВШН</param> /// <param name="bottomholePressure">Забойное давление (МПа)</param> /// <param name="gasRate">Дебит газа (тыс.м3/сут)</param> /// <param name="waterRate">Дебит жидкости (м3/сут)</param> /// <param name="nglRate">Дебит газового конденсата (т/сут)</param> /// <returns></returns> public List <SettingForPCP> ModelingPCP(double eps, double dynamicH, List <ProgressiveCavityPump> CatalogPcp, out double bottomholePressure, out double gasRate, out double waterRate, out double nglRate) { gasRate = ModelingPump(eps, dynamicH, out bottomholePressure, out waterRate, out nglRate); List <SettingForPCP> chosenPumps = new List <SettingForPCP>(); double head = Pump.CalcNeededHeadHeight(bottomholePressure, WellheadPressure, Tubing.Depth, WaterFluid); chosenPumps = ProgressiveCavityPump.ChosePCP(Tubing.TubingDiameter, waterRate, head, CatalogPcp); return(chosenPumps); }
/// <summary> /// Моделирование работы скважины с идеальным ЭЦН и подбор реальных ЭЦН соответствующих идеальному. Возвращает список подобранных насосов. /// </summary> /// <param name="eps">Точность с которой будет расчитываться забойное давление (безразмерная)</param> /// <param name="dynamicH">Динамический уровень пластовой жидкости, отсчитывается от входа в насос (м)</param> /// <param name="CatalogEsp">Каталог ЭЦН</param> /// <param name="bottomholePressure">Забойное давление (МПа)</param> /// <param name="gasRate">Дебит газа (тыс.м3/сут)</param> /// <param name="waterRate">Дебит жидкости (м3/сут)</param> /// <param name="nglRate">Дебит газового конденсата (т/сут)</param> /// <returns></returns> public List <SettingForESP> ModelingESP(double eps, double dynamicH, List <ElectricSubmersiblePump> CatalogEsp, out double bottomholePressure, out double gasRate, out double waterRate, out double nglRate) { gasRate = ModelingPump(eps, dynamicH, out bottomholePressure, out waterRate, out nglRate); List <SettingForESP> chosenPumps = new List <SettingForESP>(); double head = Pump.CalcNeededHeadHeight(bottomholePressure, WellheadPressure, Tubing.Depth, WaterFluid); chosenPumps = ElectricSubmersiblePump.ChoseESP(Tubing.TubingDiameter, waterRate, head, CatalogEsp); return(chosenPumps); }