Jan. 8th, 2020

juan_gandhi: (Default)
Тут у нас сейчас идет большая беседа на тему прогноза климата.

Вспомнил кое-что из автоматизации бурения.

Вот буровая установка. Бурильная колонна (сборка из бурильных труб, внутри скважины) весит, скажем, 80 тонн (глубина, скажем, 3000 метров). Вся эта колонна вращается с какой-то там скоростью (а долото с шарошками на дне скважины бурит оную). Все грохочет, трясется. К тому же внутри колонны подается бурильная жидкость, с давлением, достаточным, чтобы вымыть породу со дна скважины и подавить нежелательные выбросы если чо. На дне давление ну типа 300 атмосфер.

Колонна подвешена на тросе. К тросу присобачен датчик, тикающий, когда перемещаемся на 4 см. Ну перемещается оно туда-сюда, все же трясется, так что в реале получаем немножко противоречивые данные, но если правильно интегрировать, то ничо. Постепенно идет проходка, типа 5 метров в час (порода не мягкая, глубина большая).

Данные снимаются раз в несколько секунд (старинный компьютер, чо, цикл раз в 2 секунды - это наш идеал был).



Задачи: определить глубину скважины на настоящий момент (эту хитрую формулу мы с Гришей написали, вопреки возражениям наших "технарей", и внедрили), скорость проходки (метров в час), тренд изменения скорости проходки, факт скачка скорости (это важнее, чем тренд).

Всю эту хрень мы вполне удачно вычисляли, с довольно маленькой задержкой. Алгоритмы у нас были, зря, что ли, мы годами в этой области трудились.

Один посторонний мудила все предлагал заменить на фильтр Калмана-Бьюси. Ученого из себя изображал, т.к. матмех кончил. Но это Питер и это матмех, и выпускник кафедры кибернетики не считался у нас настоящим математиком.

juan_gandhi: (Default)
"Анна Каренина" начинается где-то в феврале 73-го ("Степан Аркадьич надел шубу и вышел на крыльцо."). В конце следующей зимы Долли вдруг родила ребенка ("недавно поднялась от родов (она родила девочку в конце зимы)").

Т.е. Лев Николаевич нам хочет сказать, что в мае 73-го Дарья Александровна допустила Стиву до своего белого тела. После чего он опять стал исчезать из дома.

Окей.
juan_gandhi: (Default)
Принцип дизайна: non sunt entia multiplicanda sine necessitatem.

Короче, CPS рулит; сейчас вмажу моноид, https://docs.rs/functional/0.0.5/functional/trait.Monoid.html, чтобы вообще не дублировать ничего и не писать циклы, где не надо (а просто fold). 

Подробности:

1. Не нужно дублировать данные. Если у тебя есть данные, присобачь к ним какой-нибудь метод, чтобы применять твою функцию и устраивать какой-нибудь fold, возможно, с мапингом и фильтрацией.

2. Поэтому, вместо того, чтобы передавать коллекцию в функцию, передавай функцию в коллекцию.

3. Для фолда моноид самое то (а иначе откуда фолд?) В моноиде есть "начальное значение" и ассоциативная бинарная операция. Чтобы проехаться по коллекции, это все что надо - начали с "начального значения", и все данные переварили, получив одно значение. Левый фолд или правый - для моноида роли не играет, можно и распараллелить.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 09:34 am
Powered by Dreamwidth Studios