Измерение уровня жидкости

Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

Добрый день!
Есть емкость, в ней нефть (оттенки меняются)
Рисунок12.jpg
напротив емкости устанавливается видеокамера на рельсу.
к штативу камеры подключается сервопривод.
камера должна бегать за жидкостью и измерять уровень.
нашел пример, который у меня работает
Optical Flow (eyes) Folder.rar
LV ver. 10
(1.02 МБ) 152 скачивания
Подскажите, каким образом можно решить данную задачу.
Спасибо
--------------

Нашел пример, который возможно как-то поможет
Polygon Area exercise.vi
(187.57 КБ) 163 скачивания
Данный пример позволяет определить площадь фигуры по заданным точкам

Теперь надо как-то автоматически определить границы фигуры (возможно, сравнить с эталоном)
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Jakob Brontfeyn »

Может имеет смысл это изучить и использовать, получается намного дешевле.
http://www.technoline.ru/articles/view/5
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

Jakob Brontfeyn писал(а):Может имеет смысл это изучить и использовать, получается намного дешевле.
http://www.technoline.ru/articles/view/5
ни один из перечисленных методов не позволяет измерить уровень нефти в данной емкости
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Измерение уровня жидкости

Сообщение dadreamer »

Aleksey Feoktistov писал(а):Подскажите, каким образом можно решить данную задачу.
Если в общих чертах, то получаете картинку с камеры, выделяете ROI области с жидкостью, находите границу уровня жидкости, соотносите границу с линейкой. Можно программно забить высоту линейки (самый простой вариант) или же попробовать распознавание цифр на шкале. А далее, в зависимости от значения на линейке запускаете привод в положительном/отрицательном направлении на заданное число шагов.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

dadreamer, на данный момент остановился на этапе - "найти границу жидкости"
может, подскажите какая функция может помочь?
нужен ли эталон для определения уровня?
еще есть мысль - заменить сервопривод двумя фотокамерами установленными снизу и сверху под определенным углом. дальше, вычисляется уровень с двух камер и находится среднее значение.

вот что получилось
Безымянный.png
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Измерение уровня жидкости

Сообщение dadreamer »

Aleksey Feoktistov писал(а):может, подскажите какая функция может помочь?
Универсальной функции, к сожалению, нет. Для начала нужно преобразовать картинку из 8-битной в бинарную. В простейших случаях может помочь IMAQ Threshold :vi: . Если верхняя часть изображения (незаполненное пространство) всегда светлее, чем нижняя (с жидкостью), то в принципе можно этим и ограничиться. По крайней нижней координате Y яркой области можно сказать, где находится уровень жидкости.
2015-11-01_20-32-17.jpg
2015-11-01_20-32-46.jpg
Координаты включений в бинарном изображении определяются с помощью IMAQ Particle Analysis :vi: :
2015-11-01_20-27-17.jpg
Выделяете в массиве объект с макс. площадью (Area) и берёте крайнюю нижнюю координату Y ограничивающего прямоугольника (Bounding Rect Bottom) - это и будет уровень в пикселях. Дальше уровень нужно преобразовать в физическую величину - это отдельная задача.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

dadreamer, благодарю за помощь. все работает.
для корректного определения уровня, все-таки попробую сервопривод использовать.
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013
Контактная информация:

Re: Измерение уровня жидкости

Сообщение ESeid »

Aleksey Feoktistov, а почему вы не хотите использовать мерную линейку, которая видна слева? И сразу еще один вопрос: с какой скоростью колеблется уровень жидкости и какова дискретность измерений?
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

ESeid, сложно её использовать, так как нужно распознавать не только цифры, а еще и шкалу.
максимальная скорость - 0,5 мм/сек.
1 раз в секунду будет достаточно для измерений.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Измерение уровня жидкости

Сообщение IvanLis »

Aleksey Feoktistov писал(а):dadreamer, благодарю за помощь. все работает.
для корректного определения уровня, все-таки попробую сервопривод использовать.
Я бы попробовал иной путь.
Попробуй реализовать некий следящий механизм: аттрактор.
Например уровень перехода между нефтью и воздухом всегда находится в определенном секторе изображения получаемого с камеры. А реальный уровень жидкости уже вычислять исходя из положения (угла поворота) камеры.
Так более точнее получится нежели снимать всю шкалу сразу, особенно при значительных линейных размерах емкости. Да и с регуляторами ты вроде работал, главное его правильно настроить.

Что касается нахождения границ перехода, я бы попробовал свернуть оператором Собеля по вертикали, по идее должен получиться четкая граница.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

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

Что касается оператором Собеля, спасибо за идею!
обязательно попробую.
возможно, можно какой-нибудь буёк в емкость установить, чтобы граница была лучше видна
Последний раз редактировалось Aleksey Feoktistov 02 ноя 2015, 15:15, всего редактировалось 1 раз.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Измерение уровня жидкости

Сообщение IvanLis »

Aleksey Feoktistov писал(а):всю шкалу снимать целиком нет смысла.
камера катается по рельсе и в каждый момент времени она фотографирует область определенного размера.
к измеренному уровню прибавляется значение соответствующее текущему положению.
Ну а зачем что-то прибавлять, она же все равно каким-то образом держит этот переход в поле видимости, добейтесь того, что бы этот переход был всегда (например по центру изображения) в одном месте.
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Aleksey Feoktistov »

IvanLis писал(а):
Aleksey Feoktistov писал(а):всю шкалу снимать целиком нет смысла.
камера катается по рельсе и в каждый момент времени она фотографирует область определенного размера.
к измеренному уровню прибавляется значение соответствующее текущему положению.
Ну а зачем что-то прибавлять, она же все равно каким-то образом держит этот переход в поле видимости, добейтесь того, что бы этот переход был всегда (например по центру изображения) в одном месте.
тогда, скорей всего, придется видеокамерой пользоваться, чтобы кадров было больше чем 1 в секунду.
тогда и качество снимков снизится.
хорошее предложение, надо попробовать
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Измерение уровня жидкости

Сообщение IvanLis »

Aleksey Feoktistov писал(а):тогда, скорей всего, придется видеокамерой пользоваться, чтобы кадров было больше чем 1 в секунду.
тогда и качество снимков снизится.
Да тебе 320*240 хватит с избытком :wink: И обрабатывать проще будет небольшую картинку.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Измерение уровня жидкости

Сообщение Jakob Brontfeyn »

Невольно, мне, как старому КИП-овцу приходит в голову
мысль, организовать сообщающийся сосуд открытый сверху цилиндр с достаточно большим поплавком
удерживающим вес камеры и крепежа. от поплавка вверх идет легкий стержень с легкой перекладинкой сверху,
получится нечто Г или лучше Т-образное. На леске подвешиваемаем камеру к перекладине, на другой конец "Т" компенситующй грузик.
Вопрос "точного позиционирования" решен, никакие приводы не нужны. Возможно придется сделать поплавок
с утяжелением внизу для комсенсации "опрокидывания" или сделать крышку с отверстиями центральное из которых только чуть чуть больше
стержня по диаметру и поэтому стабилизирует его по центру.

Другой вариант, вместо стержня тросик с грузом( и камерой) перекинутый наверху
через блок, придется тогда программно "развернуть линеку" на 180 градусов и вообще границу
раздела сред камерой снимать и анализировать не нужно а только цифры на линеике посредине
поля зрения камеры

Кстати, а может вместо сообщающегося сосуда реализовать это все в самом резервуаре,
всего одно маленькое отверстие нужно тросик пропустить
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Vision / IMAQ»