131 Отчет по датчику бурения
Отчёт показывает, когда и сколько буровая установка бурила, и сколько метров скважин пройдено за выбранный период. Каждая строка — одна скважина. Внизу — итоги: общее время бурения, общий метраж, средние показатели датчиков и количество скважин.
Как отчёт понимает, что идёт бурение В установке несколько датчиков. Отчёт использует их по очереди — от самого надёжного к вспомогательным:
- Датчик глубины — главный ориентир. Если глубина растёт, значит, бурение идёт.
- Датчик режима бурения — если он есть и включён в настройках, отчёт определяет бурение строго по нему. Самый точный способ.
- Датчик давления на бур — используется как запасной вариант, если первых двух нет.
Если датчика глубины нет или он неисправен, отчёт не останавливается, а автоматически переключается на датчик режима бурения, а если и его нет — на датчик давления. В этом случае графа «Глубина» будет заполнена нулём, и общий метраж тоже будет нулевым — это ожидаемо.
Как отчёт уточняет границы скважин Помимо основных датчиков, отчёт смотрит на давление вращения и давление воздуха. Если короткий провал одного из них — это ещё не остановка бурения (смена породы, продувка скважины). Отчёт заполняет такие короткие провалы и не разрывает скважину.
Дополнительный анализ — поиск пропущенных скважин Иногда основная логика пропускает скважину: например, датчик глубины кратко «дёрнулся», и алгоритм посчитал бурение законченным, хотя фактически оно продолжалось. Такие случаи видны на графике — участок с активными датчиками, но без отметки о бурении.
Чтобы их поймать, в отчёт добавлен дополнительный анализ. Он работает так:
- Берёт две соседние уже найденные скважины.
- По ним определяет образцовые значения датчиков — типичное давление воздуха и типичный режим бурения в этих скважинах.
- Просматривает промежуток между ними и ищет участки, где оба датчика держатся в пределах образцовых значений.
- Если находит такой участок достаточно длинный — добавляет его в отчёт как новую скважину.
Этот анализ не заменяет основную логику, а дополняет её: сначала работают основные правила, потом — дополнительная проверка. Скважины, найденные основной логикой, остаются на месте.
Почему события иногда «дёргаются» При бурении датчики могут дать короткий сбой — на одну-две секунды. Раньше этого хватало, чтобы отчёт разбил одну скважину на две короткие и обе отбросил как «слишком маленькие». Теперь дополнительный анализ терпит короткие сбои — до одной минуты — и не разрывает скважину из-за них.
Что можно настроить Минимальная продолжительность — Слишком короткие включения игнорируются — 60 секунд Глубина начала и окончания бурения — С какой глубины считать бурение — 1 метр Использовать датчик режима бурения — Определять бурение строго по нему — выключено Длина штанги бура — Нужна для корректного подсчёта глубины — 9 метров Допуск по давлению воздуха — Насколько давление может отклоняться от образцового — 1 единица Допуск по режиму бурения — Насколько режим может отклоняться от образцового — 0,1 Терпимость к коротким сбоям — Какой длины сбой ещё не считается остановкой — 60 секунд
Эти настройки задаются в коде и могут быть вынесены в интерфейс, если потребуется менять их без участия программиста.
Что получилось в итоге • Отчёт не падает, если датчик глубины сломан или отсутствует — переключается на запасные датчики. • Дополнительный анализ находит пропущенные скважины, которые основная логика не увидела. • Короткие сбои датчиков не разрывают длинные скважины. • Графы «Глубина», «Скорость подачи», давления и время бурения заполняются по единым правилам.
Формулировка для клиента: "Для повышения полноты обнаружения скважин применён двухпроходный метод. На первом проходе выделяются скважины с высокой степенью достоверности. Они используются как эталоны для второго прохода, в котором выполняется поиск пропущенных скважин по ослабленным критериям относительно эталонных значений датчиков. Такой подход известен как гистерезисная пороговая обработка с поиском по эталонам и широко применяется в задачах обнаружения сигналов на фоне шумов."
Мы применили классический двухпроходный подход, который в разных областях называется по-разному. Его суть: первый (строгий) проход находит только абсолютно надёжные события, а второй (мягкий) — ищет пропущенные, опираясь на параметры уже найденных как на эталон.
🎯 Как называется наш приём
В обработке сигналов и изображений это гистерезисная пороговая обработка (Hysteresis Thresholding). Классический пример — детектор границ Кэнни, где используются высокий и низкий пороги: по высокому находятся «сильные» границы, а «слабые» добавляются только если они связаны с сильными.
В анализе изображений и биоинформатике — поиск с расширением от начальных точек (Seed-and-Extend / Region Growing). Сначала выбираются «семена» (заведомо верные объекты), а затем от них «растут» регионы по более мягким критериям.
В машинном обучении — самообучение с псевдоразметкой (Self-Training / Pseudo-Labeling). Модель сначала размечает данные, в которых уверена, а затем использует эту разметку как эталон для доразметки остального.
В нашем отчёте это точнее всего назвать «поиск по эталонам с гистерезисом» — мы берём образцовые значения датчиков из двух подтверждённых скважин (эталоны) и по ним ищем третью с ослабленными допусками.
📚 Классические работы по теме
Гистерезисная пороговая обработка (детектор Кэнни)
- Canny, J. (1986). A Computational Approach to Edge Detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(6), 679–698. Основополагающая работа, где впервые формализован метод с двумя порогами для подавления разрывов.
Поиск с расширением от начальных точек (Seed-and-Extend / Region Growing)
- Adams, R., & Bischof, L. (1994). Seeded Region Growing. IEEE Transactions on Pattern Analysis and Machine Intelligence, 16(6), 641–647. Классическая работа, где вводится понятие «семян» и итеративного расширения областей.
Самообучение с псевдоразметкой (Self-Training / Pseudo-Labeling)
- Yarowsky, D. (1995). Unsupervised Word Sense Disambiguation Rivaling Supervised Methods. Proceedings of the 33rd Annual Meeting on Association for Computational Linguistics, pp. 189–196. Одна из первых работ по самообучению: алгоритм начинал с небольшого набора вручную размеченных примеров и постепенно расширял обучающую выборку.
- Lee, D.-H. (2013). Pseudo-Label: The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks. ICML Workshop on Challenges in Representation Learning. Современная формализация псевдоразметки для нейронных сетей.
Если
Справка: двухпроходный поиск событий по эталонам с гистерезисом
Внутренний документ. Применение в отчёте «Отчёт по датчику бурения» (код 131).
1. Постановка задачи
Дано: временной ряд показаний нескольких датчиков. Требуется выделить интервалы, соответствующие целевому процессу (бурению), при условии, что:
- сигналы зашумлены;
- часть событий может быть кратковременно прервана сбоями датчиков;
- строгие критерии дают высокую точность, но низкую полноту;
- мягкие критерии дают высокую полноту, но много ложных срабатываний.
Цель: получить и высокую точность, и высокую полноту одновременно.
2. Идея метода
Применяется двухпроходная схема:
Проход 1 (строгий). Находятся только события, в которых алгоритм уверен на 100%. Критерии жёсткие, ложные срабатывания почти исключены. Результат — набор «эталонных» событий.
Проход 2 (мягкий). Для каждого промежутка между двумя соседними эталонными событиями:
- По эталонам вычисляются образцовые значения каждого датчика (эталоны).
- В промежутке ищутся участки, где показания датчиков близки к эталонным с заданным допуском.
- Найденные участки добавляются к результату.
Ключевая идея: эталоны берутся не из внешних источников, а из уже подтверждённых событий той же установки и того же периода. Это автоматически учитывает особенности конкретной машины, породы, оператора и режима.
3. Математическая формализация
3.1. Обозначения
Пусть:
- $T = {t_1, t_2, \ldots, t_N}$ — временная шкала;
- $s_k(t)$ — значение $k$-го датчика в момент $t$;
- $E_1 = {e_1, e_2, \ldots, e_M}$ — события, найденные на первом проходе;
- $e_i = [b_i, e_i]$ — интервал $i$-го события.
3.2. Эталоны
Для $k$-го датчика эталон в паре событий $(e_i, e_{i+1})$ вычисляется как медиана значений внутри этих событий:
$$ r_k^{(i)} = \mathrm{median}\bigl{, s_k(t) ;\bigm|; t \in e_i \cup e_{i+1} ,\bigr} $$
Для дискретных сигналов (режим бурения) вместо медианы используется мода:
$$ r_k^{(i)} = \mathrm{mode}\bigl{, s_k(t) ;\bigm|; t \in e_i \cup e_{i+1} ,\bigr} $$
Медиана и мода устойчивы к выбросам — одиночные шумовые значения не смещают эталон.
3.3. Критерий попадания в дельту
Точка $t$ попадает в дельту для датчика $k$, если:
$$ \bigl| s_k(t) - r_k^{(i)} \bigr| \le \Delta_k $$
где $\Delta_k$ — допуск по $k$-му датчику.
3.4. Совместное условие
Событие фиксируется, когда оба датчика одновременно в дельте:
$$ A(t) = \bigwedge_{k \in K} \bigl[, |s_k(t) - r_k^{(i)}| \le \Delta_k ,\bigr] $$
где $K$ — множество датчиков, участвующих в постобработке (в нашем случае — воздух и режим бурения).
3.5. Склейка коротких разрывов
Вводится порог $g$ (допустимая длина разрыва). Участок, где $A(t) = \text{false}$ в течение времени $< g$, не закрывает текущее событие. Формально, если обозначить $t_{\text{last good}}$ — момент последнего $A(t) = \text{true}$, то разрыв закрывается только если:
$$ t - t_{\text{last good}} > g $$
3.6. Итоговое правило
Событие $[t_{\text{start}}, t_{\text{end}}]$ добавляется в результат, если:
$$ t_{\text{end}} - t_{\text{start}} \ge m $$
где $m$ — минимальная длительность события.
4. Блок-схема
┌─────────────────────────────────────────────────────────────┐
│ ВХОДНЫЕ ДАННЫЕ │
│ Показания датчиков за период: воздух, режим бурения, │
│ глубина, вращение, подача и т.д. │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ ПРОХОД 1: СТРОГИЙ │
│ │
│ • Основные правила определения бурения │
│ • Жёсткие пороги │
│ • Результат: только 100% надёжные события E₁ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Есть ли между событиями промежутки? │
│ (длительность ≥ минимальной) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────┴─────────────┐
│ НЕТ │ ДА
▼ ▼
┌───────────┐ ┌───────────────────────────────┐
│ КОНЕЦ │ │ ПРОХОД 2: МЯГКИЙ │
└───────────┘ │ │
│ Для каждой пары (eᵢ, eᵢ₊₁): │
│ 1. Вычислить эталоны │
│ r_air, r_work │
│ 2. Пройти по промежутку │
│ между ними │
│ 3. Найти участки, где оба │
│ датчика в дельте │
│ 4. Склеить короткие │
│ разрывы (≤ g) │
│ 5. Отфильтровать │
│ короткие (≤ m) │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ Добавить найденные события │
│ к результату │
└───────────────────────────────┘
│
▼
┌───────────────────────────────┐
│ ИТОГ: E₁ ∪ E₂ │
│ Высокая точность + высокая │
│ полнота │
└───────────────────────────────┘
5. Почему это работает
5.1. Устойчивость эталонов
Медиана и мода — робастные оценки. Если в эталонном событии 5% значений шумовые, они не смещают оценку. Обычное среднее сместилось бы.
5.2. Контекстная адаптация
Эталон вычисляется по конкретной установке и конкретному периоду. Если на одной буровой воздух держится на 6.2 бар, а на другой — на 5.5 бар, каждая будет искать по «своему» эталону. Никаких универсальных порогов, которые не подходят ни к одной машине.
5.3. Локальность поиска
Поиск ведётся только в промежутках между подтверждёнными событиями. Это исключает появление событий там, где их в принципе быть не может (вне смены, в период простоя).
5.4. Терпимость к сбоям
Порог $g$ позволяет игнорировать короткие «дёргания» датчиков. Без него любая одиночная шумовая точка разбивала бы событие на части.
6. Параметры метода
| Параметр | Обозначение | Смысл | Значение в отчёте |
|---|---|---|---|
| Допуск по воздуху | $\Delta_{\text{air}}$ | Насколько давление может отличаться от эталона | 1.0 бар |
| Допуск по режиму бурения | $\Delta_{\text{work}}$ | Насколько режим может отличаться от эталона | 0.1 |
| Минимум точек для эталона | $n_{\min}$ | Иначе эталон ненадёжен | 5 |
| Допустимый разрыв | $g$ | Склейка коротких сбоев | 60 сек |
| Минимальная длительность | $m$ | Отсечение ложных срабатываний | 60 сек |
7. Сравнение с классическими алгоритмами
7.1. Детектор границ Кэнни (Canny, 1986)
| Аспект | Кэнни | Наш метод |
|---|---|---|
| Что ищет | Границы на изображении | События на временном ряду |
| Два порога | Высокий и низкий | Строгий и мягкий |
| Связь слабых с сильными | Через связность пикселей | Через промежуток между событиями |
| Эталоны | Фиксированные пороги | Адаптивные, из подтверждённых событий |
Отличие: у Кэнни пороги фиксированные, у нас — вычисляются адаптивно.
7.2. Разрастание областей от семян (Adams & Bischof, 1994)
| Аспект | Seed Region Growing | Наш метод |
|---|---|---|
| Семена | Вручную или автоматически | События первого прохода |
| Критерий роста | Однородность с семенем | Попадание в дельту эталона |
| Направление | От семени наружу | По всему промежутку между событиями |
Сходство: обе схемы используют уже подтверждённые объекты как опору для расширения.
7.3. Самообучение с псевдоразметкой (Yarowsky, 1995; Lee, 2013)
| Аспект | Self-Training | Наш метод |
|---|---|---|
| Разметка | Модель размечает уверенные примеры | Алгоритм находит уверенные события |
| Обучение | На псевдоразметке | По эталонам из псевдоразметки |
| Итерации | Много | Два прохода |
Сходство: используем результат первого прохода как опору для второго.
8. Применение в отчёте
8.1. Что берётся в качестве эталонных датчиков
В отчёте 131 для постобработки используются два датчика:
- Давление воздуха — стабильное плато, надёжный сигнал;
- Режим бурения — дискретный или аналоговый, самый точный индикатор.
Их сочетание даёт высокую специфичность: ложное срабатывание возможно только если оба датчика одновременно оказались в дельте, что маловероятно при простое.
8.2. Что не берётся
- Глубина — используется в основной логике, в постобработке играет вспомогательную роль.
- Давление вращения — шумное, в постобработке не участвует.
- Скорость подачи — очень шумная, для эталонов не годится.
8.3. Последовательность работы
- Основная логика (V1 или V2) находит все события строгими методами.
- Постобработка проходит по парам соседних событий.
- Для каждой пары вычисляются эталоны по воздуху и режиму бурения.
- В промежутке ищутся участки, где оба датчика в дельте.
- Короткие разрывы внутри участков склеиваются.
- Участки короче минимальной длительности отбрасываются.
- Остальные добавляются в отчёт как новые события.
9. Ограничения метода
- Зависимость от эталонов. Если эталонные события сами найдены неверно, второй проход тоже будет ошибаться.
- Не работает на первом событии. Для самого первого события нет «левого» соседа — постобработка его не рассматривает.
- Не работает на последнем событии. То же самое справа.
- Промежутки меньше минимальной длительности пропускаются. Если между событиями меньше $m$, поиск не ведётся.
- Требует двух надёжных датчиков. Если хотя бы один отсутствует, постобработка не запускается.
10. Возможные улучшения
- Адаптивные допуски. Вычислять $\Delta_k$ по разбросу значений внутри эталонных событий: $\Delta_k = \alpha \cdot \sigma_k$, где $\sigma_k$ — стандартное отклонение внутри эталонов.
- Постобработка с обоих концов. Добавить поиск событий до первого и после последнего эталонного.
- Многодатчиковое расширение. Включить в критерий глубину как третий голос.
- Итеративное уточнение. После добавления новых событий повторить проход, используя их как эталоны.
11. Литература
- Canny, J. (1986). A Computational Approach to Edge Detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, 8(6), 679–698.
- Adams, R., & Bischof, L. (1994). Seeded Region Growing. IEEE Transactions on Pattern Analysis and Machine Intelligence, 16(6), 641–647.
- Yarowsky, D. (1995). Unsupervised Word Sense Disambiguation Rivaling Supervised Methods. Proceedings of the 33rd Annual Meeting on Association for Computational Linguistics, pp. 189–196.
- Lee, D.-H. (2013). Pseudo-Label: The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks. ICML Workshop on Representation Learning.
- Gonzalez, R. C., & Woods, R. E. (2018). Digital Image Processing (4th ed.). Pearson. — главы о пороговой обработке и выделении границ.
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. — главы о робастных оценках и полуавтоматической разметке.
Документ подготовить более развёрнутую справку с формулами и блок-схемами — для внутреннейго использования. При внедрении на других объекутах рекомендуется пересмотреть знации или обучения допусков и порогов — они могут отличаться в зависимости от типа буровой установки и характеристик днатчиков.