Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }