СПОСОБ И УСТРОЙСТВО КАЛИБРОВКИ КОНТРОЛЛЕРОВ ШТАНГОВЫХ НАСОСОВ ДЛЯ ИСПОЛЬЗОВАНИЯ В СКВАЖИНАХ
METHOD AND APPARATUS FOR CALIBRATING ROD PUMP CONTROLLERS FOR USE IN WELLS

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
[0001] Настоящее изобретение относится, в общем, к контроллерам и, более конкретно, к способам и устройствам калибровки контроллеров для использования в скважинах.
УРОВЕНЬ ТЕХНИКИ
[0002] Станки-качалки используются для приведения в движение скважинных насосов, которые качают нефть из нефтяной скважины. В некоторых случаях, собираются данные для генерирования динамограмм, которые помогают определить характеристики станков-качалок и связанных с ними компонентов. Для обеспечения точности сгенерированных динамограмм, собранные данные должны быть точными.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0003] ФИГ. 1 иллюстрирует известный станок-качалку.
[0004] ФИГ. 2 иллюстрирует станок-качалку, содержащий типичное устройство, используемое для калибровки станка-качалки в соответствии с идеями настоящего изобретения.
[0005] ФИГ. 3 иллюстрирует пример ссылочной таблицы, сгенерированной в ходе типичного процесса калибровки в соответствии с идеями настоящего изобретения.
[0006] ФИГ. 4 иллюстрирует пример поверхностной динамограммы, которая может быть сгенерирована в соответствии с идеями настоящего изобретения.
[0007] ФИГ. 5 иллюстрирует пример динамограммы насоса, которая может быть сгенерирована в соответствии с идеями настоящего изобретения.
[0008] ФИГ. 6 и 7 представляют собой блок-схемы, представляющие примеры способов, которые могут быть использованы для реализации примера устройства на ФИГ. 2.
[0009] ФИГ. 8 иллюстрирует процессорную платформу для реализации способов на ФИГ. 6 и 7 и/или устройства на ФИГ. 2.
[0010] Фигуры представлены не в масштабе. Везде, где это возможно, на всех чертежах и в сопровождающих письменных описаниях будут использоваться одинаковые ссылочные номера для одинаковых или подобных частей.
ПОДРОБНОЕ ОПИСАНИЕ  ИЗОБРЕТЕНИЯ
[001] Примеры, описанные в данном документе, относятся к примерам контроллеров штанговых насосов и связанных с ними способов точной идентификации позиции устьевого сальникового штока станка-качалки в течение хода соответствующего насоса. Данные, полученные с помощью примеров, раскрытых в данном документе, могут быть использованы для определения скорости устьевого сальникового штока, ускорения устьевого сальникового штока и/или для генерирования динамограммы штангового насоса или поверхностной динамограммы, динамограммы насоса и т. п.
[002] Чтобы обеспечить возможность точного определения позиции устьевого сальникового штока в ходе обычной и/или непрерывной эксплуатации, в некоторых описанных примерах, типичный процесс калибровки выполняется прежде начала обычной и/или непрерывной эксплуатации станка-качалки. В некоторых примерах процесс калибровки включает мониторинг позиции устьевого сальникового штока, позиции кривошипа и углового положения вала двигателя, используемого для перемещения устьевого сальникового штока. На основе этого мониторинга, устанавливается взаимосвязь и/или корреляция между позициями. После того, как станок-качалка откалиброван, сравнительно точное положение устьевого сальникового штока по всему его ходу и/или циклу может быть определено посредством мониторинга поворотов двигателя и/или вала и кривошипа в сочетании с данными калибровки.
[003] В отличие от некоторых известных примеров, описанные в данном документе примеры повышают точность определения позиции устьевого сальникового штока, наряду с этим сокращая срок и трудозатраты, связанные с конфигурацией. Конкретнее, некоторые известные контроллеры штанговых насосов включают трудоемкую конфигурацию, для которой специалист должен точно определить величину смещения хода поршня насоса, которая может быть различной для каждого станка-качалки. Величина смещения хода поршня насоса может быть определена между сигналом сброса позиции и признаком того, что устьевой сальниковый шток достиг верхней или нижней точки хода. Сигнал сброса позиции может указывать, что кривошип достиг конкретной позиции.
[004] Положение устьевого сальникового штока по всему его ходу, в сочетании с другими параметрами (например, нагрузка на сальниковый шток, давление на сальниковый шток) может быть использовано для генерирования соответствующих динамограмм. В результате, неточности в величине смещения хода поршня насоса могут приводить к ошибкам или неточностям в сгенерированной динамограмме(ах). В отличие от известных примеров, в которых требуются специалисты для определения величины смещения хода поршня насоса и размеров каждого узла станка-качалки, в примерах, описанных в данном документе, величины смещения хода поршня насоса определяются автоматически, и эти значения включаются в процесс точного определения позиции устьевого сальникового штока без привлечения специалиста.
[005] ФИГ. 1 иллюстрирует известный, сбалансированный кривошипом станок-качалку и/ или станок-качалку 100, который может быть использован для добычи нефти из нефтяной скважины 102. Станок-качалка 100 содержит основание 104, стойку станка-качалки 106 и балансир 108. Балансир 108 может быть использован для возвратно-поступательного движения устьевого сальникового штока 110 относительно нефтяной скважины 102 посредством подвески 112.
[006] Станок-качалка 100 содержит мотор или двигатель 114, который приводит в движение ременную передачу 116 для вращения редуктора 118 и, в свою очередь, вращает кривошип 120 и противовес 121. Шатун 122 установлен между кривошипом 120 и балансиром 108 таким образом, что поворот кривошипа 120 перемещает шатун 122 и балансир 108. Когда балансир 108 вращается вокруг оси вращения и/или опорного подшипника балансира 124, балансир 108 двигает балансир штангового насоса 126 и устьевой сальниковый шток 110.
[007] Чтобы определить момент, в который кривошип 120 завершает цикл и/или проходит конкретное угловое положение, первый датчик 128 установлен поблизости от кривошипа 120. Чтобы определять и/или отслеживать число оборотов двигателя 114, второй датчик 130 установлен поблизости от двигателя 114. В примере, проиллюстрированном на ФИГ. 1, соединения (например, ременная передача 116, редуктор 118 и т. п.) между двигателем 114 и кривошипом 120 должны быть жесткими. Следовательно, предполагается, что предварительно заданное число оборотов двигателя 114 будет определяться для одного поворота кривошипа 120.
[008] Данные, полученные от первого датчика 128 и от второго датчика 130, могут быть использованы для определения позиции кривошипа 120 как функции времени для каждого хода станка-качалки 100. Дополнительно к этому или альтернативно, на основе измерений станка-качалки 100, может быть рассчитан конкретный четырёхзвенный механизм станка-качалки, который соотносит позицию кривошипа 120 с позицией устьевого сальникового штока 110 по всему ходу станка-качалки 100. Измерения станка-качалки 100 относятся конкретно к станку-качалке 100. Таким образом, для расчета четырёхзвенного механизма, приходится осуществлять продолжительную процедуру ручного измерения компонентов станка-качалки 100. Тем не менее, ручное измерение компонентов станка-качалки 100 представляет собой дорогостоящее мероприятие, подверженное ошибкам.
[009] В процессе эксплуатации, устьевой сальниковый шток 110 достигает своих крайних положений (например, верхнее положение, нижнее положение) при различных углах кривошипа 120, зависящих от параметров станка-качалки 100. Для более точного определения взаимосвязи между кривошипом 120 и устьевым сальниковым штоком 110 в уравнении четырёхзвенного механизма, определяют смещение между конкретным угловым положением кривошипа 120 и соответствующей позицией устьевого сальникового штока 110. Смещение определяют на основе угла кривошипа 120, когда первый датчик 128 обнаруживает кривошип 120, и соответствующей позиции устьевого сальникового штока 110. Тем не менее, поскольку это смещение определяется вручную и частота замеров контроллера штангового насоса 129 составляет приблизительно 20 замеров в секунду, точное определение смещения затруднено и подвержено ошибкам.
[0010] Расчет четырёхзвенного механизма, используемого для соотнесения позиции кривошипа 120 с позицией устьевого сальникового штока 110 по всему ходу станка-качалки 100, предполагает наличие жестких соединений (например, ременная передача 116, редуктор 118 и т. п.) между двигателем 114 и кривошипом 120, и предполагается, что шатун 122, балансир 108 и подвеска 112 являются жесткими по всему ходу станка-качалки 100. Но это не так. Напротив, шатун 122, балансир 108 и подвеска 112 изменяют длину, форму и т. п. в зависимости от наложенных на них нагрузок. Кроме того, гибкость ременной передачи 116, циклическая нагрузка устьевого сальникового штока 110 и воздействие противовесов 121, 126 циклически нагружают редуктор 118, что приводит к изменениям взаимосвязи между оборотами двигателя 114, позицией кривошипа 120 и, в свою очередь, позицией устьевого сальникового штока 110. Хотя подгонка противовесов 121 и/или 126 может минимизировать циклическую нагрузку, изменения взаимосвязи между оборотами двигателя 114 и позицией кривошипа 120 устранить нельзя. Следовательно, поскольку при расчете четырёхзвенного механизма невозможно учесть нежесткую природу компонентов станка-качалки 100, в определении позиции соответствующего устьевого сальникового штока 110 присутствует некоторая неточность.
[0011] ФИГ. 2 иллюстрирует станок-качалку 100, проиллюстрированный на ФИГ. 1, содержащий третий датчик (например, струнный потенциометр, датчик линейного смещения, использующий радар, лазер и т. п.) 200, используемый в комбинации с первым и вторым датчиками (например, датчик приближения) 128, 130 для калибровки контроллера штангового насоса 129 в соответствии с идеями настоящего изобретения. В противоположность устройству, проиллюстрированному на ФИГ. 1, основанному на измерении станка-качалки 100 и определении смещения кривошипа 120 / устьевого сальникового штока 110, станок-качалка 100 на ФИГ. 2 калибруется посредством измерения непосредственно позиции устьевого сальникового штока 110 и вращения двигателя 114 в течение цикла кривошипа 120.
[0012] В некоторых примерах, для калибровки контроллера штангового насоса 129, проиллюстрированного  на ФИГ. 2, первый датчик 128 регистрирует завершение цикла кривошипа 120, второй датчик 130 регистрирует одну или более меток 202, имеющихся на двигателе 114 и/или на валу двигателя 114, во время вращения двигателя 114 и третий датчик 200 измеряет непосредственно позицию устьевого сальникового штока 110 по всему его ходу. Данные, полученные от первого, второго и третьего датчиков 128, 130 и 200, принимаются устройством ввода/вывода (I/O) 204 устройства 205 и сохраняются в памяти 206, которая доступна процессору 208. Например, в течение процесса калибровки, процессор 208 итеративно и/или одновременно принимает (например, каждые 5 секунд, между примерно 5 секунд и 60 секунд) подсчет импульсов кривошипа и/или импульс от первого датчика 128, подсчет импульсов двигателя как функцию времени и/или импульс от второго датчика 130 и позицию устьевого сальникового штока 110 как функцию времени от третьего датчика 200. В некоторых примерах процессор 208 использует таймер 210 и/или первый, второй и/или третий датчики 128, 130 и/или 200 для определения периода выборки дискретных данных и/или для определения моментов, когда следует затребовать, отправить и/или принять данные (например, измеренные значения параметра) от первого, второго или третьего датчиков 128, 130 или 200.
[0013] В некоторых примерах, процессор 208 генерирует ссылочную и/или калибровочную таблицу 300 (ФИГ. 3), иллюстрирующую взаимосвязь(и) между этими измеренными значениями параметра (например, время, подсчет импульсов двигателя и позиция устьевого сальникового штока) для полного цикла станка-качалки 100, основанную на позиции устьевого сальникового штока 110 как функции времени и подсчета импульсов двигателя как функции времени между двумя следующими друг за другом подсчетами импульсов кривошипа. В некоторых примерах время может измеряться в секундах, а положения устьевого сальникового штока 110 – в дюймах.
[0014] Когда процесс калибровки завершен, и соответствующая ссылочная таблица 300 сгенерирована, третий датчик 200 может быть удален из станка-качалки 100 и/или устьевого сальникового штока 110 и может быть начата обычная эксплуатация и/или непрерывная работа станка-качалки 100. В некоторых примерах, в течение обычной эксплуатации, основанной на подсчете импульсов кривошипа, полученном от первого датчика 128, и подсчете импульсов двигателя, полученном от второго датчика 130, процессор 208 может использовать ссылочную таблицу 300 для определения и/или корреляции конкретного подсчета импульсов в цикле кривошипа 120 с позицией устьевого сальникового штока 110. В некоторых примерах, для определения и/или интерполяции позиции устьевого сальникового штока 110 можно использовать Уравнение 1, если, например, конкретный подсчет импульсов двигателя 114 не приведен в ссылочной таблице. В уравнении 1, і обозначает индекс идентифицированной точки в калибровочной таблице, где табличный подсчет импульсов больше или равен подсчету импульсов двигателя, Position обозначает позицию устьевого сальникового штока 110, pos обозначает позицию входа в ссылочную таблицу, ∆Pulses обозначает число импульсов двигателя 114, измеренное вторым датчиком 130 после получения индикации импульса кривошипа от первого датчика 128, а pulses обозначает строку подсчета импульсов двигателя 114 в калибровочной таблице.
[0015] Уравнение 1:
[0016] Когда позиция устьевого сальникового штока 110 определена, определенные данные о позиции (например, позиция в зависимости от даты и времени) сохраняются в памяти 206 и/или используются процессором 208 для генерирования динамограммы, такой как, например, динамограмма штангового насоса, поверхностная динамограмма, динамограмма насоса и т. п.
[0017] На ФИГ. 3 проиллюстрирован пример ссылочной таблицы 300, которая может быть сгенерирована в связи с и/или использована для реализации примеров, описанных в данном документе. Типичная ссылочная таблица 300 содержит первую колонку 302, в которой приведено время, полученное от и/или определенное таймером 210, вторую колонку 304, в которой приведен подсчет импульсов двигателя 114, полученный от или определенный вторым датчиком 130 и третью колонку 306, в которой указана позиция устьевого сальникового штока 110, полученная от и/или определенная третьим датчиком 200. В некоторых примерах, данные, включенные в ссылочную таблицу 300, относятся к одному обороту кривошипа 120.
[0018] На ФИГ. 4 проиллюстрирована типичная поверхностная динамограмма 400, которая может быть сгенерирована в соответствии с идеями настоящего изобретения, с использованием данных, связанных с вертикальным перемещением устьевого сальникового штока 110 как функции времени, и данных, связанных с давлением на устьевой сальниковый шток 110 как функции времени. В некоторых примерах, поверхностная динамограмма 400 представляет ситуацию, когда скважинный насос эксплуатируется в обычном режиме, с соответствующей насосу жидкостью. Как проиллюстрировано на ФИГ. 4, по оси x 402 откладываются позиции устьевого сальникового штока 110, а по оси y 404 – нагрузка на устьевой сальниковый шток 110.
[0019] Ссылочный номер 406 относится к моменту, когда устьевой сальниковый шток 110 начинает свое движение вверх, чтобы начать поднимать столб флюида. Между ссылочными номерами 406 и 408, проиллюстрировано увеличение давления на устьевой сальниковый шток 110 по мере того, как штанги удлиняются, и столб флюида поднимается. Ссылочный номер 408 относится к ситуации, когда станок-качалка 100 поддерживает вес колонны насосных штанг и вес ускоряющегося столба флюида. Между ссылочными номерами 408 и 410, на поверхности, по мере продолжения движения вверх, возникают силовые волны, которые вызывают колебания нагрузки на устьевой сальниковый шток 210. Ссылочный номер 410 относится к моменту, когда устьевой сальниковый шток 110 достигает максимального смещения вверх. Между ссылочными номерами 410 и 412, нагрузка флюида передается из колонны насосных штанг в насосно-компрессорную колонну, что приводит к снижению давления на устьевой сальниковый шток 110. Ссылочный номер 412 относится к моменту, когда нагрузка в большой мере и/или полностью передана в насосно-компрессорную колонну. Между ссылочными номерами 412 и 406, силовые волны отражаются на поверхность по мере продолжения хода вниз, что приводит к неравномерной нагрузке устьевого сальникового штока 110, пока устьевой сальниковый шток 110 достигает своей низшей точки и начинает новый ход.
[0020] На ФИГ. 5 проиллюстрирован пример динамограммы насоса 500, которая может быть сгенерирована в соответствии с идеями настоящего изобретения, с использованием данных, связанных с положением устьевого сальникового штока 110 и нагрузкой на устьевой сальниковый шток 110. В некоторых примерах, динамограмма насоса 500 генерируется с использованием данных, измеренных на поверхности. Как проиллюстрировано на ФИГ. 5, по оси x 502 отложено положение скважинного насоса, а по оси y 504 – нагрузка на скважинный насос.
[0021] При том, что типичный способ установки устройства 205 проиллюстрирован на ФИГ. 2, один или более элементов, способов или устройств, проиллюстрированных на ФИГ. 2, можно скомбинировать, разделить, перекомпоновать, пропустить, удалить и/или установить любым другим способом. Кроме того, устройство ввода/вывода(I/O) 204, память 206, процессор 208 и/или, в более общем случае, типичное устройство 205 на ФИГ. 2 можно дополнить аппаратными и программными устройствами, прошивкой и/или их комбинацией. Таким образом, например, любое из устройств ввода/вывода (I/O) 204, память 206, процессор 208, таймер 210 и/или, в более общем случае, типичное устройство 205 на ФИГ. 2 можно дополнить одной или более аналоговыми или цифровыми схемами, логическими схемами, программируемым процессором(ами), специализированной прикладной интегральной схемой(ами) (ASIC), программируемым логическим устройством(ами) (PLD) и/или логическим устройством(ами) с эксплуатационным программированием (FPLD). При чтении в Формуле изобретения данного патента любого из пунктов, относящихся к устройству или системе, охватывающих только дополнение программой и/или прошивкой, следует понимать, что по меньшей мере один из элементов – типичное устройство ввода/вывода (I/O) 204, память 206, процессор 208, таймер 210 и/или, в более общем случае, типичное устройство 205 на ФИГ. 2 является/являются однозначно определенным данным документом как содержащий конкретное машиночитаемое запоминающее устройство или диск запоминающего устройства, такой как память, цифровой универсальный диск (DVD), компакт-диск (CD), диск Blu-ray и т. п., на котором хранится программное обеспечение и/или прошивка. Более того, типичное устройство 205 на ФИГ. 2 может содержать один или более элементов, процессов и/или устройств дополнительно к или вместо тех, которые проиллюстрированы на ФИГ. 2, и/или может содержать более одного из или все проиллюстрированные элементы, процессы и устройства. Хотя на ФИГ. 2 проиллюстрирован обычный станок- качалка с кривошипным уравновешиванием, примеры, описанные в данном документе, могут быть использованы с любым другим станком-качалкой.
[0022] Образцы блок-схем типичных способов реализации устройства 205, проиллюстрированного на ФИГ. 2, представлены на ФИГ. 6 и 7. В этом примере, способы, проиллюстрированные на ФИГ. 6 и 7, могут быть реализованы посредством машиночитаемых инструкций, которые содержат программу для исполнения процессором, таким как процессор 812, проиллюстрированный в типичной процессорной платформе 800, которая описана ниже со ссылкой на ФИГ. 8. Программа может быть внесена в программное обеспечение, которое хранится на реальном машиночитаемом носителе, таком как CD-ROM, гибкий диск, жесткий диск, цифровой универсальный диск (DVD), диск Blu-ray или память, связанная с процессором 812, но программа полностью и/или ее части может, альтернативно, исполняться не процессором 812, а иным устройством и/или она может быть введена в прошивку или в выделенное оборудование. Кроме того, хотя пример программы описан со ссылкой на блок-схемы, представленные на ФИГ. 6 и 7, можно, альтернативно, использовать многие другие способы применения типичного устройства 205. Например, можно изменить порядок исполнения блоков и/или можно изменить, удалить или объединить некоторые из описанных блоков.
[0023] Как указано выше, примеры способов, проиллюстрированные на ФИГ. 6 и 7, можно реализовать при помощи запрограммированных инструкций (например, компьютеро- и/или машиночитаемых инструкций), хранящихся на реальном машиночитаемом носителе, таком как жесткий диск, флеш-память, постоянное запоминающее устройство (ROM), компакт-диск (CD), цифровой универсальный диск (DVD), кэш, память с произвольной выборкой (RAM) и/или другое запоминающее устройство или диск запоминающего устройства, в котором информация хранится в течение любого времени (например, продолжительные периоды времени, постоянно, кратковременно, временная буферизация и/или кэширование информации). В данном документе принято, что термин реальный машиночитаемый носитель ясно определен как охватывающий любой тип машиночитаемого запоминающего устройства и/или диска запоминающего устройства и не включающий проходящие сигналы и передающую среду. В данном документе принято, что “компьютерочитаемое запоминающее устройство" и "машиночитаемое запоминающее устройство" используются попеременно. Дополнительно или альтернативно, типичные способы, проиллюстрированные на ФИГ. 6 и 7, можно реализовать при помощи запрограммированных инструкций (например, компьютеро- и/или машиночитаемых инструкций), хранящихся на непереходящем компьютеро- и/или машиночитаемом носителе, таком как жесткий диск, флеш-память, постоянное запоминающее устройство, компакт-диск, цифровой универсальный диск, кэш, память с произвольной выборкой и/или другое запоминающее устройство или диск запоминающего устройства, в котором информация хранится в течение любого времени (например, продолжительные периоды времени, постоянно, кратковременно, временная буферизация и/или кэширование информации). В данном документе принято, что термин энергонезависимый  компьютерочитаемый носитель ясно определен как охватывающий любой тип компьютерочитаемого запоминающего устройства и/или диска запоминающего устройства и не включающий проходящие сигналы и передающую среду. В данном документе принято, что если выражение "по меньшей мере" используется в качестве переходного термина в преамбуле формулы изобретения, оно является неограничивающим в том же смысле, в каком является неограничивающим термин "включающий".
[0024] Способ на ФИГ. 6 начинается с этапа подготовки калибровки, включающего определение исходного подсчета импульсов кривошипа 120 (блок 601). В блоке 602, процессор 208 запускает и/или производит начальную установку таймера 210 (блок 602). В блоке 604, процессор 208 определяет, при помощи таймера 210, время, прошедшее после пуска таймера 210 (блок 604). В блоке 606, процессор 208 определяет, больше ли прошедшее время или меньше заданного времени, например, пятьдесят миллисекунд (блок 606). Таймер 210 может использоваться для задания времени выборки и/или для надежного обеспечения получения данных от первого, второго и/или третьего датчиков 128, 130, 200 при одинаковых частотах. Если процессор 208 определяет, что прошедшее время равно или превышает заданное время, то, основываясь на данных от первого датчика 128, процессор 208 определяет подсчет импульсов кривошипа 120 (блок 608). В блоке 610, процессор 208 определяет, основываясь на данных от первого датчика 128, имеется ли отличная от нуля разница между текущим подсчетом импульсов кривошипа 120 и исходным подсчетом импульсов кривошипа 120 (блок 610). В некоторых примерах, подсчет импульсов кривошипа 120 изменяется от нуля до единицы, когда цикл кривошипа 120 завершен. В примерах, в которых подсчет импульсов начинается с единицы, процессор 208 определяет, изменился ли подсчет импульсов кривошипа 120.
[0025] Если подсчет импульсов кривошипа 120 равен нулю, на основе данных от первого датчика 128, процессор 208 опять запускает таймер 210 (блок 602). Тем не менее, если разница подсчета импульсов больше нуля, начинается процесс калибровки (блок 612). В блоке 614, второй датчик 130 определяет первый подсчет импульсов двигателя 114 (блок 614). В других примерах, непосредственно после начала процесса калибровки подсчет импульсов двигателя не получают. В блоке 616, основываясь на данных от третьего датчика 200, процессор 208 определяет первую позицию устьевого сальникового штока 110 (блок 616). Затем процессор 208 устанавливает связь нулевого значения импульсов с первой позицией устьевого сальникового штока 110 и сохраняет эти данные в памяти 206 (блок 618). Например, подсчет импульсов может быть сохранен в первой строке 308 второй колонки 304 ссылочной таблицы 300, и первая позиция устьевого сальникового штока 110 может быть сохранена в первой строке 310 третьей колонки 306 ссылочной таблицы 300.
[0026] В блоке 620, процессор 208 опять запускает и/или производит начальную установку таймера 210 (блок 620). В блоке 622, процессор 208 определяет, посредством таймера 210, время, прошедшее после пуска таймера 210 (блок 622). В блоке 624, процессор 208 определяет, достигло ли или превысило прошедшее время заданное время, например, пятьдесят миллисекунд (блок 624). Если процессор 208 определяет, что прошедшее время равно или превысило заданное время, то, основываясь на данных от второго датчика 130, процессор 208 определяет второй и/или следующий подсчет импульсов двигателя 114 (блок 626).
[0027] В блоке 628, процессор 208 определяет разность между вторым и/или следующим подсчетом импульсов и первым подсчетом импульсов (блок 628). В блоке 630, основываясь на данных от третьего датчика 200, процессор 208 определяет второе и/или следующее положение устьевого сальникового штока 110 (блок 630). В блоке 632, процессор 208 устанавливает связь разности между первым и вторым подсчетами импульсов со второй и/или следующей позицией устьевого сальникового штока 110 и сохраняет эти данные в памяти 206. Например, разность подсчетов импульсов может быть сохранена во второй строке 312 второй колонки 304 ссылочной таблицы 300, и вторая позиция устьевого сальникового штока 110 может быть сохранена во второй строке 314 третьей колонки 306 ссылочной таблицы 300.
[0028] В блоке 634, основываясь на данных от первого датчика 128, процессор 208 определяет подсчет импульсов кривошипа 120 (блок 634). В блоке 636, процессор 208 определяет, превысила ли единицу разность между текущим подсчетом импульсов кривошипа 120 и исходным подсчетом импульсов кривошипа 120 (блок 636). В некоторых примерах, подсчет импульсов кривошипа 120 изменяется, когда цикл кривошипа 120 завершен. В блоке 638, собранные данные, сгенерированная ссылочная таблица 300 и/или обработанные данные сохраняются в памяти 206 (блок 638). Сгенерированная ссылочная таблица 300 может быть использована, в сочетании с данными от первого и/или второго датчиков 128, 130, для определения позиции устьевого сальникового штока 120 в условиях непрерывного функционирования станка-качалки 100.
[0029] Операции, проиллюстрированные на ФИГ. 7, такие как определение позиции и/или нагрузки на устьевой сальниковый шток 210, могут выполняться в условиях непрерывного функционирования станка-качалки 100. Способ на ФИГ. 7, начинается с определения процессором 208 исходного подсчета импульсов кривошипа 120 (блок 701). Процессор 208 запускает и/или производит начальную установку таймера 210 (блок 702). В блоке 704, процессор 208 определяет, посредством таймера 210, время, прошедшее после пуска таймера 210 (блок 704). В блоке 706, процессор 208 определяет, достигло ли или превысило прошедшее время заданное время, например, пять секунд (блок 706). Таймер 210 может использоваться для надежного обеспечения получения данных от первого и/или второго датчиков 128, 130 при одинаковых частотах. Если процессор 208 определяет, что прошедшее время равно или превышает заданное время, то, основываясь на данных от второго датчика 130, процессор 208 определяет первый подсчет импульсов двигателя 114 (блок 708).
[0030] Основываясь на данных от первого датчика 128, процессор 208 определяет подсчет импульсов кривошипа 120 (блок 710). В блоке 712, процессор 208 определяет, основываясь на данных от первого датчика 128, имеется ли отличная от нуля разница между текущим подсчетом импульсов кривошипа 120 и исходным подсчетом импульсов кривошипа 120 (блок 712). В некоторых примерах, подсчет импульсов кривошипа 120 изменяется, когда цикл кривошипа 120 завершен.
[0031] Если разница больше нуля, процессор 208 приводит текущий подсчет импульсов к первому подсчету импульсов (блок 714). Процессор 208 может также приводить первый подсчет импульсов кривошипа 120 к текущему подсчету импульсов кривошипа 120 (блок 715). В блоке 716, процессор 208 определяет разность между текущим подсчетом импульсов двигателя и первым подсчетом импульсов (блок 716). В блоке 718, процессор 208 обращается к ссылочной таблице 300 для идентификации строки в ссылочной таблице 300, в которой представлена разность подсчетов импульсов двигателя (блок 718). Например, если разность подсчетов импульсов равна нулю, соответствующая строка в ссылочной таблице 300 соответствует строке 308.
[0032] В блоке 720, процессор 208 использует ссылочную таблицу 300 и/или Уравнение 1 для определения соответствующей позиции устьевого сальникового штока 110 (блок 720). Например, если разница в подсчетах импульсов равна нулю, соответствующей строкой для позиции устьевого сальникового штока 110 в ссылочной таблице 300 является строка 310. В некоторых примерах, Уравнение 1 может использоваться для определения и/или интерполяции позиции устьевого сальникового штока 110 если, например, в ссылочной таблице 300 не приведен конкретный подсчет импульсов двигателя 114. В блоке 722, данные, которые были получены и/или определены, сохраняются в памяти 206 (блок 722). Сохраненные данные могут использоваться процессором 208 для определения скорости устьевого сальникового штока 110, ускорения устьевого сальникового штока 110 и/или для генерирования динамограммы штангового насоса, поверхностной динамограммы, динамограммы насоса и т. п.
[0033] На ФИГ. 8 представлена блок-схема типичной процессорной платформы 800, способной выполнять инструкции для реализации способов, проиллюстрированных на ФИГ. 6 и 7 и/или устройства, проиллюстрированного на ФИГ. 2. Процессорная платформа 800 может представлять собой, например, сервер, персональный компьютер, мобильное устройство (например, мобильный телефон, смартфон, планшетный компьютер, такой как iPad™), персональный цифровой помощник (PDA), устройство для доступа к Интернет или любой другой тип вычислительного устройства.
[0034] Процессорная платформа 800 проиллюстрированного примера содержит процессор 812. Процессор 812 проиллюстрированного примера представляет собой аппаратное оборудование. Например, процессор 812 может быть реализован одной или более интегральных схем, логических схем, микропроцессоров или контроллеров любого желательного класса или производителя.
[0035] Процессор 812 в проиллюстрированном примере содержит локальную память 813 (например, кэш). Процессор 812 в проиллюстрированном примере соединен с основной памятью, включая энергозависимую память 814 и энергонезависимую память 816, посредством шины 818. Энергозависимая память 814 может быть реализована Синхронным динамическим запоминающим устройством с произвольной выборкой (SDRAM), Динамическим запоминающим устройством с произвольной выборкой (DRAM), Динамическим запоминающим устройством с произвольной выборкой компании RAMBUS (RDRAM) и/или другим типом запоминающего устройства с произвольным доступом. Энергонезависимая память 816 может быть реализована флэш-памятью и/или любым другим желательным типом запоминающего устройства. Доступ к основной памяти 814, 816 контролируется контроллером памяти.
[0036] Процессорная платформа 800 в проиллюстрированном примере содержит также схему интерфейса 820. Схема интерфейса 820 может быть реализована любым типом стандарта интерфейса, таким как Ethernet-интерфейс, универсальная последовательная шина (USB), и/или последовательный интерфейс PCI Express.
[0037] В проиллюстрированном примере, одно или более устройств ввода 822 соединено со схемой интерфейса 820. Устройство(а) ввода 822 дает(ют) возможность пользователю вводить данные и команды в процессор1012. Устройство(а) ввода можно реализовать, например, аудиосенсором, микрофоном, клавиатурой, кнопкой, мышью, сенсорным дисплеем, сенсорным планшетом и/или шаровым манипулятором.
[0038] Одно или более устройств вывода 824 в проиллюстрированном примере тоже соединены со схемой интерфейса 820 в проиллюстрированном примере. Устройства вывода 824 можно реализовать, например, устройствами индикации (например, светодиод (LED), органический светодиод (OLED), жидкокристаллический дисплей, дисплей на электронно-лучевой трубке (CRT), сенсорный дисплей, сенсорное устройство вывода, светодиод (LED). Таким образом, схема интерфейса 820 в проиллюстрированном примере обычно содержит адаптер графического драйвера, микросхему графического драйвера или процессор графического драйвера.
[0039] Схема интерфейса 820 в проиллюстрированном примере содержит также устройство связи, такое как передатчик, приемник, приемо-передатчик, модем и/или сетевой адаптер для облегчения обмена данными с внешними компьютерами (например, вычислительными устройствами любого типа) через сеть 826 (например, Ethernet-соединение, цифровая абонентская линия (DSL), телефонная линия, коаксиальная линия передачи, система сотовой телефонной связи и т. п.).
[0040] Процессорная платформа 800 в проиллюстрированном примере содержит также одно или более запоминающих устройств большой емкости 828 для хранения программ и/или данных. Примеры таких запоминающих устройств большой емкости 828 включают накопители на гибких дисках, накопители на жестких дисках, накопители на компакт-дисках, накопители на дисках Blu-ray, дисковые RAID-системы и накопители на универсальных цифровых дисках (DVD).
[0041] Запрограммированные инструкции 832 для реализации способов, проиллюстрированных на ФИГ. 6 и 7, могут храниться в запоминающих устройствах большой емкости 828, в энергозависимой памяти 814, в энергонезависимой памяти 816 и/или на съемном реальном компьютерочитаемом запоминающем устройстве, таком как CD или DVD.
[0042] Из вышеизложенного должно быть понятно, что описанные выше способы, устройства и изделия приводят к более точному определению позиции устьевого сальникового штока в процессе непрерывной эксплуатации. Дополнительно или альтернативно, первый, второй и третий датчики автоматически точно определяют величину смещения хода поршня штангового насоса между позицией кривошипа и устьевого сальникового штока в течение процесса калибровки, что приводит к более точному определению позиции устьевого сальникового штока в течение непрерывной эксплуатации. Дополнительно или альтернативно, для калибровки контроллера штангового насоса с использованием примеров, описанных в данном документе, не требуется производить измерения станка-качалки вручную. Следовательно, калибровки контроллера штангового насоса с использованием примеров, описанных в данном документе, требует меньше времени и оказывается менее затратной, чем некоторые известные способы.
[0043] По данному изобретению, приведенный в качестве примера способ включает перемещение устьевого сальникового штока станка-качалки в ходе первого цикла станка-качалки с использованием двигателя и определение первых значений подсчета импульсов двигателя в ходе первого цикла с использованием первого датчика в первые моменты времени, при этом первые моменты времени отстоят, по существу, на одинаковые интервалы. Способ также включает определение значений первых позиций устьевого сальникового штока в ходе первого цикла с использованием второго датчика в первые моменты времени и установление связи первых значений подсчета импульсов с соответствующими данными значений первых позиций для калибровки процессора станка-качалки.
[0044] В некоторых примерах, способ также включает генерирование ссылочной таблицы с использованием первых значений подсчета импульсов и значений первых позиций, полученных в первые моменты времени, для демонстрации корреляции между первыми значениями подсчета импульсов и значениями первых позиций. В некоторых примерах, способ также включает удаление второго датчика и непрерывную эксплуатацию станка-качалки. В некоторых примерах, способ также включает определение значений вторых позиций устьевого сальникового штока как функцию времени с использованием ссылочной таблицы в сочетании с данными от первого датчика при непрерывной эксплуатации станка-качалки. В некоторых примерах, данные включают определение вторых значений подсчета импульсов двигателя в ходе второго цикла с использованием первого датчика во вторые моменты времени.
[0045] В некоторых примерах, способ также включает определение скорости устьевого сальникового штока как функции времени на основе определения значений вторых позиций устьевого сальникового штока как функции времени. В некоторых примерах, способ также включает определение ускорения устьевого сальникового штока как функции времени на основе определенных значений вторых позиций устьевого сальникового штока как функции времени. В некоторых примерах, способ также включает генерирование динамограммы на основе определенных значений вторых позиций устьевого сальникового штока как функции времени. В некоторых примерах, динамограмма содержит поверхностную динамограмму. В некоторых примерах, динамограмма содержит динамограмму насоса.
[0046] В некоторых примерах, определение значений подсчета первых импульсов включает отслеживание метки на двигателе с использованием первого датчика. В некоторых примерах, третий датчик отслеживает завершение первого цикла.
[0047] Типичный способ включает калибровку процессора станка-качалки для генерирования калибровочных данных посредством определения корреляции между значениями подсчета импульсов двигателя, полученными с использованием первого датчика, и позиции устьевого сальникового штока, определенной с использованием второго датчика. Способ включает удаление второго датчика из станка-качалки, перемещение устьевого сальникового штока станка-качалки с использованием двигателя и мониторинг положения кривошипа для определения момента завершения цикла кривошипа. Способ включает мониторинг второго импульса двигателя в ходе цикла с использованием первого датчика и определение позиции устьевого сальникового штока как функции времени на основе мониторинга второго подсчета импульса, и сравнение с калибровочными данными.
[0048] В некоторых примерах, способ также включает определение скорости устьевого сальникового штока как функции времени на основе определенного положения устьевого сальникового штока как функции времени. В некоторых примерах, способ также включает определение ускорения устьевого сальникового штока как функции времени на основе определенной позиции устьевого сальникового штока как функции времени. В некоторых примерах, способ также включает генерирование динамограммы на основе определенной позиции устьевого сальникового штока как функции времени. В некоторых примерах, динамограмма содержит поверхностную динамограмму. В некоторых примерах, динамограмма содержит динамограмму насоса. В некоторых примерах, определение значений подсчета импульсов включает отслеживание метки на двигателе с использованием первого датчика.
[0049] Типичное устройство содержит корпус и процессор, расположенный в корпусе. Процессор принимает значения подсчета первых импульсов двигателя станка-качалки в первые моменты в ходе первого цикла станка-качалки. Первые моменты разнесены по существу с нарастающими интервалами. Процессор принимает значения первых позиций устьевого сальникового штока станка-качалки в ходе первого цикла, при этом процессор выполняет корреляцию подсчета первых импульсов и первых позиций для калибровки станка-качалки. В некоторых примерах, устройство содержит контроллер штангового насоса.
[0050] Хотя в данном документе описаны определенные типичные способы, устройства и продукты, объем данного патента ими не ограничивается. Наоборот, данный патент охватывает все способы, устройства и продукты, фактически попадающие под действие формулы изобретения данного патента.