От веб-обёртки до CAD/CAE-движка для MWD-телеметрии

Когда я начинал этот проект, цель была скромной: сделать удобный веб-интерфейс вокруг open-source библиотеки mwdstdcore. Но в реальных инженерных сценариях я упёрся в два фундаментальных барьера: 1. Ограничения GPL 3.0: Лицензия накладывает строгие copyleft-обязательства и запрещает закрытое лицензирование производных продуктов. Для коммерческих сервисных компаний это табу: такой код нельзя внедрить в закрытый production. 2. Бутылочное горлышко в MSA: Калибровка Multi-Station Analysis строилась на самописном Differential Evolution (DE) на чистых питоновских for-циклах под NumPy 1.x.. ЧТО БЫЛО СДЕЛАНО: РОЖДЕНИЕ ARROWELL Я отказался от идеи «просто обёртки» и пошёл на полную clean-room реализацию ядра с нуля по спецификациям: • Движок под лицензией MIT: Полностью независимое ядро arrowell_engine. Код юридически чист и готов к интеграции в любые коммерческие платформы. • Векторизация и TRF-солвер: Переписал целевые функции на векторизованную математику и добавил быстрый градиентный оптимизатор нелинейных наименьших квадратов с поддержкой ограничений (bounds). Теперь архитектура дуальная: TRF сходится за доли секунды, а векторизованный DE остаётся в резерве для редких многоэкстремальных аномалий. • Механика КНБК и BHA Sag: Реализовал расчёт прогиба компоновки под собственным весом (балка Эйлера-Бернулли) с учётом плавучести в растворе, DLS и контакта со стенками скважины. Неопределённость зенитного угла снижена до 0.08°. • Неопределённость ISCWSA и антиколлизия: Накопление матриц ковариаций 3х3 (Sigma_NEV) по стандартам ISCWSA Rev 4 и 5.11 (SPE 67616), спектральное разложение на собственные векторы, генерация 3D-эллипсоидов (EOU) и расчёт Separation Factor для защиты от пересечения с соседними стволами. • Бэкенд и данные: FastAPI в связке с DuckDB (in-memory OLAP для мгновенной фильтрации сотен тысяч замеров) плюс алгоритм Дугласа-Пекера, сжимающий плотные потоки непрерывной инклинометрии на ~95% с удержанием TVD до 5 см. • Фронтенд и WebGL: Сцена на Three.js и React 19 с аппаратным рендерингом ствола и эллипсоидов на 120 FPS, синхронизированная с 2D-проекциями (Plan / Vertical Section) и скраббером глубины. СЕЙЧАС В РАБОТЕ: БОЛЬ MWD-ИНЖЕНЕРОВ Главный практический вызов — No-Go зоны (зенит > 45° при азимутах 90° и 270°), где поперечные магнитометры слепнут из-за геометрического вырождения проекций поля. Моя идея — связать математику оптимизатора с кинематикой бурения. Если между станциями было 3 метра слайда с известным темпом ВЗД и качеством Toolface, долото физически не могло развернуть ствол больше чем на 0.5°. Я закладываю эти кинематические границы в вектор ограничений (bounds) для TRF. Это не даёт оптимизатору свалиться в ложные минимумы вблизи сингулярности и отсекает фантомные скачки азимута на 10°. Параллельно экспериментирую с нейросетевым «тёплым стартом» (Neural Warm-Starting) для поиска грубого вектора параметров в случаях, когда перенос калибровки с прошлой станции невозможен (например, после смены КНБК или магнитной аномалии).

Проект полностью открыт под лицензией MIT — и расчётное ядро, и весь стек веб-станции: GitHub: https://github.com/maksim-y-nikitin/arrowell

От веб-обёртки до CAD/CAE-движка для MWD-телеметрии | Сетка — социальная сеть от hh.ru От веб-обёртки до CAD/CAE-движка для MWD-телеметрии | Сетка — социальная сеть от hh.ru