«В последнее время все меньше иностранных компаний остаются доступны в России. В связи со сложными внешнеполитическими процессами, внутренний рынок требует все больше отечественных независимых „импортозамещающих“ разработок во всех сферах производства, включая и горную промышленность.»
Примерно с такой формулировкой к нам обратилось одно крупное предприятие из области добывающей промышленности.
На большинстве крупных предприятий так или иначе всегда присутствует конвейер. Вещь очень полезная, тем более если необходима постоянная транспортировка материала из цеха в цех, на переработку или куда‑нибудь еще. В нашем случае, точнее в случае заказчика, конвейер установлен в цехе среднего дробления и задача его — загружать руду в мельницу, для получения более мелкой фракции на выходе.

Для того, чтобы эффективно измельчать камни, обороты мельницы необходимо строго регулировать в зависимости от кол‑ва поступаемого в нее материала. Но что более экономически важно — контролировать износ бронеплит (компонент футеровки) в мельнице. «Броня» — удовольствие весьма недешевое, это один из самых дорогих расходников, тем не менее, менять ее приходится довольно часто. Если провести замену слишком рано, то лето вы проведете без премии и без отпуска, а если слишком поздно, то лучше сразу искать новую работу.

Заказчик сказал, что было бы неплохо разработать некий метод оценки износа бронеплит, схожий с гарантией на автомобиль. А как обычно определяется срок гарантии на машину? Производитель устанавливает максимальный срок эксплуатации по времени, либо по пробегу (иногда моточасам). Так и здесь, замену брони необходимо осуществлять либо по времени работы, либо по кол‑ву пройденного материала. И если со временем работы мельницы все понятно, то вот точное кол‑во пройденного материала никто вам не назовет.
Как посчитать материал на ленте? Да, для этого уже давно используются стандартные конвейерные весы, работающие на тензодатчиках. Однако проблема данного советского конвейера в том, что он очень короткий и поставить туда обычные весы как ни крути, не получится. А если даже и получится, то огромные камни, при падении на конвейер, сделают весы таким же дорогим расходником как и броню.
Искать решение следует в бесконтактном методе. Как оказалось, такое решение уже есть. Бесконтактная система работает на основе лидара, который сканирует поверхность материала и производит подсчет объемного расхода. Первыми начали делать подобные системы Финны, а затем подхватили Немцы. В связи с санкциями и прочими ограничениями, кто‑то закрыл поддержку, кто‑то ушел из страны, а кто‑то серыми схемами завозит иностранное оборудование за очень дорого. Складывается ощущение, что даже спустя 3 года санкций, люди изо всех сил не хотят заниматься собственным производством, неужели мы так зависимы от запада??
И так, задача ясна — сделать как у иностранцев, но только круче и дешевле, и естественно на собственном софте.
Начать следует с лидара. Лидар это тот же ИК лазерный уровнемер, который вращается вокруг своей оси и получает информацию о расположении предметов относительно себя. Принцип работы стандартный «ToF». Простыми словами, Time‑of‑Flight метод определяет пройденное расстояние импульса исходя из пройденного времени от источника до объекта и обратно.
d = пройденное расстояние, с = скорость света, t = время между излучением и приемом

Электромагнитные волны бывают видимые, невидимые, звуковые, wifi, радио и т. д. В лидарах в основном используются короткие световые волны 905-950нм, иногда в китайских автомобилях встречаются и 1550нм. На самом деле про их разницу, преимущества и недостатки можно написать отдельную статью, но мы все‑таки сосредоточимся на нашем кейсе. Исходя из опыта работы с лазерными уровнемерами мы знаем, что ведут они себя по‑разному, бывает, что пыль не видна глазу, но лазер работает некорректно, а иногда запыленность очень большая (не видно дальше трех метров), но уровнемер показывает расстояние правильно. Влияние на лазер оказывает не общая запыленность, а концентрация частиц определенного размера. Частицы пыли, размер которых близок к длине волны лазерного источника, могут отражать сигнал и рассеивать излучение, тем самым вызывая ошибку. Также не стоит забывать про резонансное поглощение воды, но на этой позиции с конвейером нет тумана или испарений, поэтому не берем его во внимание.

Лидар имеет свою систему координат и мы получаем точки, расположенные относительно источника излучения, каждая измеренная точка представлена абсолютными координатами и мы можем математически описать их расположение на конвейерной ленте. Естественно речь идет о функции, но о какой? Стандартные параболы здесь не работают, потому что камни большие и расположение их на ленте хаотично, чего нельзя сказать про измельченный материал. Хотя и форма сечения мелких камней тоже не всегда имеет «Гауссовское» распределение.

Лучшее решение математически описать набор случайных точек — использовать сплайн. Порядки и параметры сглаживания подбираются индивидуально. Это означает, что мы аппроксимируем полученные точки для нахождения неизвестных промежуточных значений в местах разрыва, при этом сама функция не проходит ровно через каждую точку, она минимизирует среднеквадратичную ошибку между заданными точками и аппроксимирующей функцией. Проще говоря, мы проводим линию не ровно по точкам, а как бы рядом с ними, сохраняя общую форму. Это сделано для минимизации ошибка, ведь точки из лидара не идеальны и подвержены шуму, об этом будет чуть позже.
Мы представили точки функцией, хорошо, но нам необходимо посчитать площадь, а ее можно получить только из замкнутой фигуры. Поэтому добавляем виртуальные ограничительные линии, которые по краям ограничиваются нашей функцией, а ограничение снизу особо не важно, главное чтобы после калибровки положение и размер виртуальных линий были постоянны.

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

Естественно при работе конвейера лента может дергаться, сами точки тоже шумят и вообще может быть не идеально ровной и т.д. Поэтому мы применяем различные методы для минимизации ошибок, от усредненных калибровочных значений до полного сканирования всей ленты и внесения корректировки в программу.
настройка через клавиатуру?
Да, в первый раз приходилось все настраивать с клавиатурой и мышью, наблюдать за процессом работы, тестировать и вносить корректировки, но затем софт доработали и все настраивается через сенсорный дисплей.
Теперь наш прибор считает площадь сечения руды на ленте 100 раз в секунду (именно такая частота у лидара). Однако наша задача получить объем, поэтому надо знать еще и расстояние между каждым отдельным сечением. Зная расстояние между сечениями, мы будем использовать простую формулу для нахождения объема, как например объем цилиндра. Только в качестве площади основания будем использовать площадь сечения материала, а в качестве высоты, расстояние между сечениями.

Если представить такой процесс подсчета визуально, это будет похоже на интегрирование функции в 3-х мерном пространстве

Такими образом, разделяя материал на слайсы, наша система воссоздает трехмерную модель камней на ленте и подсчитывает объемный расход.

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

Недостаток такого колеса, это сам механический метод. Бывает, что оно проскальзывает, прыгает из-за вибрации ленты, не прилегает к ней плотно, а сам ролик изнашивается и начинает показывать неверную скорость.
Мы же решили сделать свою систему полностью бесконтактной и пошли в сторону технического зрения. Рядом с лидаром устанавливается камера, направленная тоже вниз.

Идея определения скорости методом сопоставления областей пикселей заключается в том, чтобы найти фильтр (некий шаблон), минимизирующий ошибку между желаемой корреляционной картой и результатом свёртки обучающих примеров с фильтром. Проще говоря, алгоритм трекинга выбирает эталонное облако пикселей на материале и ищет максимальную корреляцию с каждым новым входным кадром. Таким образом камера следит за движения материала и вычисляет его скорость.
Отличие такого метода заключается в том, что он бесконтактный и не требует обслуживания, а еще он вычисляет не скорость ленты, а именно реальную скорость движения материала. Так как мы имеем дело с камерой, необходимо установить дополнительный источник освещения, для корректной работы алгоритма.
Как и говорилось выше, точки с лидара не идеальны, любой лазерный уровнемер имеет погрешность, на это влияет температура, наводки, пыль и любые другие необъяснимые причины. Нестабильность каждой отдельно взятой точки наводит на мысль о возможной большой итоговой ошибке в измерении объема. Поэтому мы провели ряд тестов, чтобы выяснить, как же все‑таки ведет себя ошибка площади сечения при измерении абсолютно ровной поверхности (например стенки).

Испытания проводились с лидаром, направленном на плоскую поверхность. (то есть в нулевой позиции). Длина поверхности составляла 440мм. Для подсчета площади были введены виртуальные ограничительные линии, чтобы получить площадь замкнутой фигуры. (длина ограничительных линий не имеет значения, так как на ошибку влияют точки лидара). Были проведены 2 испытания длиною 1 час и 6 часов.
Сначала при помощи софта «СКАН-400» была проведена калибровка в течение 10 минут, программа нашла базовую площадь и затем каждое новое измеренное сечение вычиталось из базисного. Значения «squares» — это отклонения каждой измеренной площади от базисной.
Частота лидара 100Гц, соответственно 1 часовой график это 360.000 измерений, 6 часовой график это 2.160.000 измерений.
Испытания показали, что точки ведут себя хаотично, они не зависят друг от друга и величина их шума случайна (в пределах +-2мм), хотя по итогу всегда сводя ошибку к нулю. Это подтверждается графиком распределения, которое представляет из себя распределение Гаусса (нормальное распределение). В процессе испытания мы заметили, что из‑за изменения температуры в процессе испытаний (или каких‑то других причин) все точки хоть и имеют нормальное распределение, однако происходит их одновременный сдвиг то вверх, то вниз на +-17см2 (или же на 17/44 = 3.8мм по высоте), это видно из 6 часового теста. Тем не менее, этот сдвиг цикличен и всегда гуляет около нуля. В краткосрочной перспективе этот одновременный сдвиг можно видеть на графике часового распределения, видно что он смещен относительно нуля в правую сторону на 1.85 см2. А из 6 часового графика видно, что сдвиг всего 0.15см2.

Другими словами, в долгосрочной перспективе погрешность автоматически сводится к нулю. Но мы возьмем самую плохую ситуацию со сдвигом в 1.85см2.
Так как длина тестовой поверхности = 440мм. Мы можем вычислить среднюю ошибку по высоте (среднюю ошибку по координате “Y”) исходя из средней ошибке по площади..
Таким образом средняя ошибка по высоте составила 0.42мм. Так как поведение точек распределено нормально, то ошибка по высоте 0.42мм будет одинакова для любой длины поверхности. Чтобы понять какая погрешность будет на реальном конвейере, нам необходимо знать номинальное сечение материала. (какую ширину занимает материал и какая средняя высота материала на ленте)
((Ширина материала ленте * 0.42мм) / (Ширина материала на ленте * средняя высота поверхности материала)) * 100 = погрешность площади %
Предположим, что ширина конвейерной ленты 1200мм. Руда занимает 50% ширины ленты, а средняя высота материала 150 мм.
((600мм * 0.42мм) / (600мм * 150мм) * 100 = 0.28%
0.28% составляет максимальная погрешность за час, а если взять долгосрочную перспективу как в 6-ти часовом графике с ошибкой 0.15см2, мы получим 0.1% от номинально расхода, так как объем вычисляется из сечения.
Как и говорилось ранее, работа лазерных уровнемеров зависит от концентрации в пыли частиц определенного размера. Поэтому мы уже сделали версию, где вместо лидара используется камера и лазерная линия. Такой метод измерения сечения работает гораздо лучше в условиях сильной запыленности.

Таким образом мы сделали систему измерения объема материала на конвейерной ленте и назвали ее «СКАН-400». Мы взяли идею у иностранных компаний, а все методы подсчета объема разработали сами, плюс (наверное первые) внедрили камеру для измерения скорости материала на ленте.
Составил Егор Александрович visualclassic@mail.ru
Комментарии (10)
kaapmt
26.08.2025 08:58Статья на русском, поэтому "финны" и "немцы" пишутся строчными буквами.
Egor_Russia Автор
26.08.2025 08:58Привет,
На самом деле с большой буквы, почему-то после модерации они маленькими стали.true_alex
26.08.2025 08:58А "финны" и "немцы" это разве имена собственные? По контексту это национальная принадлежность, т.е. заглавные буквы не нужны.
molnij
26.08.2025 08:58А насколько корректно считать, что весь объем внутри заполнен и достаточно лишь посчитать внешнюю огибающую? У вас всегда есть мелкая фракция, которая в состоянии забить пустоты?
Egor_Russia Автор
26.08.2025 08:58Привет,
Действительно, чем больше камни, тем больше пустого пространства внутри. Здесь все-таки важна не абсолютная точность, а относительная (какой износ в сравнении с другими циклами), погрешность вызванная пустотами таким образом более менее постоянная. Мы сделали систему, она работает именно так, как она запрограммирована. Даже если пустое пространство и дает ошибку, можно к ней "приспособиться". В процессе эксплуатации сравнивать износ брони и показания расхода с прибора.
programania
26.08.2025 08:58Возможно, проще измерять мощность двигателя, который тянет ленту.
Ведь она разная для пустой и загруженной ленты.
Чтобы учесть износ, иногда калибровать.А для учета износа бронеплит можно использовать индуктивный датчик.
Moog_Prodigy
26.08.2025 08:58Для коррекции веса можно использовать подпружиненный валок (один), через который проходит лента, а уже с него через энкодер или тензодатчики вносить поправку на заполнение. И весь конвейер переделывать не нужно.
AlxB
26.08.2025 08:58Интересная разработка, но непонятная. Во-первых пустая лента (при калибровке) обычно висит над опорным роликом - иначе она будет проскальзывать по ведущему барабану, когда полная. Во-вторых, как правильно заметил предыдущий комментатор, насыпная плотность материала не есть постоянная величина. Итого погрешность может быть очень неслабой. Как, впрочем, и в ситуации с весовыми роликами (на калибровке лента неплотно прилегает к ролику, пыль забивает демпфер между опорой и роликом, блокируя датчик) Не проще, если короткий конвейер, поставить его на 4 тензодатчика с демпферами?
Опять же, износ футеровки меряется глазами и шаблоном, в пустой мельнице. Если там мелющие тела - тогда сложнее, но уязвимые места футеровки обычно известны. Я, конечно, больше по мокрому помолу, и футеровка или резиновая, или алюбитовая, но как-то не было проблем с осмотром. А если ещё хороший эндоскоп собрать, то и мелющие не нужно высыпать...
Остаточную толщину металлической футеровки, в принципе, акустикой можно измерить, как и толщину корпуса. Если изнутри, должно быть точно.
Вот уровень заполнения непрерывных мельниц (сухих цементных особенно, но и мокрых при использовании глин) - это да, задачка на ИИ. Пытаются решать и акустическими датчиками, и установкой мельниц на домкраты для контроля веса и даже наклона...
woodiron
Можно, наверное, измерять продукт после мельницы, на выходе мелкая фракция и тензовесы или ваш подход будут давать нужный результат в более щадящих условиях. Рад за вас, что такая работа нашлась и выполнена. Кстати, написано - конвейер советский, значит работает более 35 лет в тяжёлых условиях.
Egor_Russia Автор
Привет,
Мельниц более 10 штук, материал с них сразу же поступает (падает) на один общий конвейер, поэтому весами получится измерять только общий вес. Очень редко конвейеры работают все вместе. В основном они работают хаотично, где-то руда идет, где-то нет. Поэтому износ брони у всех мельниц разный.
"Кстати, написано - конвейер советский, значит работает более 35 лет в тяжёлых условиях" - это верно