Ультразвуковой анемометр

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Мало ли пригодиться, фазовый детектор, не чувствительный к амплитуде и смещению сигнала. Настройки на 4 mps.
https://github.com/Maniak003/Anemometer ... tector.ods

Пересчет в макросе, запуск по кнопке Quadrature, в верхнем правом углу. Делал для тестирования, когда с альтерой возился.
Jack_by85
Родился
Сообщения: 5
Зарегистрирован: Пт сен 14, 2018 22:15:13
Откуда: Беларусь

Re: Ультразвуковой анемометр

Сообщение Jack_by85 »

Поразмышляю вслух...
Я имею вот такой макет из г... и палок
Изображение
Расстояние между датчиками и основанием 14мм.
Подключаю осциллограф и вижу картину. Синий луч - сигнал TX, жёлтый луч - сигнал после усилителя RX. Тут же принимаю решение анализировать принятый сигнал в момент наивысшей амплитуды огибающей. К примеру пару периодов подсвеченных розовым.
Изображение
Собираю прибор, всё прекрасно работает, но затем выношу прибор на мороз, скорость звука прилично падает (с 343м/с до 318м/с). При моих габаритах макета это замедление эквивалентно увеличению числа волн звука 40кГц между датчиками на примерно одно колебание. Я отодвигаю основание от датчиков (типа мы на морозе)
Изображение
И вижу вот такую картину на осциллографе в моём выбранном окне анализа сигнала амплитуда сильно упала! Анализировать нечего!
Изображение
Пока снова пришел к выводу, что переотражения между "полом" и "потолком" нам портят всю картину при изменении температуры. И всегда найдётся такая температура при которой в нужном окне анализа амплитуда будет почти ноль.
PS Осциллограммы реальные и сняты с макета на фото.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Есть гипотеза (моя), что узловая точка возникает из-за изменения резонансной частоты излучателя. Проверить смогу на выходных. Сейчас мне удалось добиться, наличие узла в одном из 4 каналов при комнатной температуре. Очень хочется понять природу этого явления.

Изображение

[ко]
И, да, Вы же понимаете, что проблема не в нулевой амплитуде, а втом, что в этом месте изменяется фаза.
[\ко]
Последний раз редактировалось Maniak003 Ср май 25, 2022 12:53:55, всего редактировалось 1 раз.
Аватара пользователя
Andrey_B
Электрический кот
Сообщения: 1096
Зарегистрирован: Пт апр 09, 2010 16:06:38
Откуда: Тула

Re: Ультразвуковой анемометр

Сообщение Andrey_B »

Кто не видел соседнюю тему. Multik провёл грандиозную работу по анализу датчиков: ссылка.
Jack_by85
Родился
Сообщения: 5
Зарегистрирован: Пт сен 14, 2018 22:15:13
Откуда: Беларусь

Re: Ультразвуковой анемометр

Сообщение Jack_by85 »

[uquote="Maniak003",url="/forum/viewtopic.php?p=4236159#p4236159"]Есть гипотеза (моя), что узловая точка возникает из-за изменения резонансной частоты излучателя. Проверить смогу на выходных. Сейчас мне удалось добиться, наличие узла в одном из 4 каналов при комнатной температуре. Очень хочется понять природу этого явления.

[ко]
И, да, Вы же понимаете, что проблема не в нулевой амплитуде, а втом, что в этом месте изменяется фаза.
[\ко][/uquote]
Да это сумма отражённой волны от основания и переотражённой несколько раз от пола и потолка так скажем. И сумма эта в противофазе, поэтому амплитуда сильно занижается. Я так преполагаю.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Да, Ваша идея понятна. Только возможно, что все несколько хуже. Известно, что есть несколько видов ультразвуковых волн: продольные, поперечные, поверхностные, Лемба. Вы же заметили, что при увеличении расстояния, эфект наложения уменьшается. Видимо имеет место не один вид волн.

Вот, небольшая, но познавательная статья на тему ультразвука. Нам видимо интересен раздел "Звуковое поле излучателя".
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Пока не вышел из тупика, появилась вот такая картинка:

Изображение

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

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

Пришли вот такие излучатели:

Изображение

Работают, но чувствительность раза в полтора хуже, чем у не покрашенных и диаметр передней части отличается, пришлось корпус перепечатывать, иначе на 1мм выше становятся.
Zidanoff
Родился
Сообщения: 5
Зарегистрирован: Чт дек 01, 2022 13:01:12

Re: Ультразвуковой анемометр

Сообщение Zidanoff »

[uquote="Maniak003",url="/forum/viewtopic.php?p=4227029#p4227029"]Offtop:
СпойлерНе смог удержаться, что бы это не описать... Получил в конце прошлого года вот это чудо. Обычно чужие поделия не критикую, но -- это.... Эксплуатация закончилась не начавшись, все остальное время занимался перепиской с производителем. Первый не очень существенный нюанс: скорость на столе всегда показывает 0. Что то отличное от нуля начинает выдавать (судя по механическому анемометру), начиная от 0.5m/s. А вот то, что он не показывал значение угла больше 345 градусов, меня признаться сильно озадачило. Еще один интересный эффект: разная скорость по разным осям, причем сильно разная, отличающаяся до полутора раз. После предоставления видео, производитель сказал, что мои эксперименты с вентилятором -- полная ерунда и измерения нужно выполнять специальным оборудованием. "Устанавливай на улицу, все будет нормально." Как ни странно законы природы действуют везде одинаково и выгуливание в течении недели не помогло. Как Вы наверное понимаете, осциллографом я в него залезал, но в аппаратной части проблем не обнаружил.

Не худа без добра, этот инцидент и сподвиг меня на данный проект.
[/uquote]
Это Вы ее не мочили еще! Если конденсат или капли дождя на отражающей пластине - скорость 10-12 мс при реальном штиле и хаотичные градусы.
Zidanoff
Родился
Сообщения: 5
Зарегистрирован: Чт дек 01, 2022 13:01:12

Re: Ультразвуковой анемометр

Сообщение Zidanoff »

[uquote="Maniak003",url="/forum/viewtopic.php?p=4238424#p4238424"]Максимально, что удалось добиться, подбором расстояния от излучателей, до отражающей поверхности. Но срывы сигнала все равно есть.[/uquote]
А если излучатели утопить в шахты-рупоры?
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Любые попытки установить что нибудь перед излучателями до отражающей поверхности приводили к искажениям. Последняя версия прибора с не прерывным излучением вместо импульсного сильно обнадеживает, но сейчас вынуждено приостановил работу над проектом. Надеюсь скоро удастся возобновить разработку.
Zidanoff
Родился
Сообщения: 5
Зарегистрирован: Чт дек 01, 2022 13:01:12

Re: Ультразвуковой анемометр

Сообщение Zidanoff »

[uquote="Maniak003",url="/forum/viewtopic.php?p=4329721#p4329721"]Надеюсь скоро удастся возобновить разработку.[/uquote]
Как он себя чувствует с дождем? Кажется Ваш проект вдохновил меня на покупку 3d принтера и попробовать повторить этот датчик. Еще просится сюда добавить счетчик дождя на оптической основе в крышу. На эффекте отражения, встречали такие варианты?
Можно ли пообщаться в телеграм?
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Последние две недели удалось возобновить работу над проектом. Крайняя версия прибора:

Изображение Изображение Изображение Изображение Изображение

Усилители смонтированы с излучателями для снижения уровня помех от импульсных источников. Датчики расположил под углом для уменьшения интерференции. Решил не использовать мультиплексоры для обеспечения работы в непрерывном режиме:

Изображение

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

Изображение Изображение Изображение Изображение

Результаты не сильно отличаются и выделить, что то однозначно сложно и вот почему:

Изображение Изображение

На первом графике сырые данные с датчиков при изменении температуры. В исследуемом приборе датчики установлены в посадочные места с натягом и жестко зафиксированы. Подробнее по графику: ось X, красная и зеленая линии, ось Y синяя и коричневая, температура -- желтая. Измеряется температура корпуса, в области крепления датчиков. Видно, что ни о каком линейном законе речь не идет. На втором графике значения скорости. Около 17:20 наблюдается скачкообразное изменение значений при установившейся температуре.

Далее посадочные места под датчики были расточены, что бы корпус не касался датчика. Так же подобрал максимально близкие по параметрам пары.

Изображение

Исчезли скачкообразные изменения и наблюдается стабильная повторяемость.

Изображение Изображение

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

Изображение

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

Изображение Изображение

Суть метода измерения намного проще и менее подвержена влиянию конструктивных особенностей датчиков (кмк), нужно получить время между сигналом и ответом. Но как обычно не без сюрпризов: при скорости от 15м/с приемник "глохнет", от 18м/c -- появляется сильный шум. Т.е. нужно поднимать уровень сигнала, значит предыдущая схемотехника не годится в принципе.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Изображение

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

Вот сигнал который принимаем на дистанции 203 мм:

Изображение

Задержка 587 uS
Согласованный фильтр тоже это подтверждает. Но он так же находит это сигнал на 1.743mS. А вот, что там на самом деле:

Изображение

Т.е. можно увидеть дважды отраженный сигнал. Вот она, перспектива автоматической калибровки. Датчики можно приколотить к любой деревяшке и геометрия определиться сама.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Творческий кризис, не знаю куда дальше двигаться.... Вот так забил stm32f303cc.

Изображение
Проблема не в HAL, а в том, что слишком много памяти уходит на математику.

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

Исходный сигнал, 200 измерений:
Изображение

Результат свертки, 76 точек:
Изображение

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

Тогда пришла в голову идея получить огибающую преобразованием Гильберта и на ней найти максимум.

Изображение

Результат замечательный только в смысле результата вычислений, а вот реализация и время вычисления -- это ужас. На F303, при 72МГц, расчет 200 измерений занимает около секунды.

Не проблема МК заменить на более производительный и с большей памятью. Но может быть кто то владеет математикой не так как я, а на нормальном уровне и подскажет более эффективный алгоритм ?

На всякий случай: fft, удаление половины спектра с удвоением второй половины и обратное fft -- занимает еще больше места.
Аватара пользователя
Andrey_B
Электрический кот
Сообщения: 1096
Зарегистрирован: Пт апр 09, 2010 16:06:38
Откуда: Тула

Re: Ультразвуковой анемометр

Сообщение Andrey_B »

Maniak003, опишите поподробней ваш алгоритм. Я предполагал, что достаточно измерять фазовый сдвиг между непрерывным опорным сигналом и сигналом с датчика. А это делать на много проще.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Поскольку этот проект работает на 200KHz, ушел от фазовых измерений.

Изображение

Нужно просто определить задержку и посчитать скорость.
Аватара пользователя
fvladimirn
Родился
Сообщения: 11
Зарегистрирован: Вс ноя 19, 2017 00:29:13
Откуда: Москва

Re: Ультразвуковой анемометр

Сообщение fvladimirn »

А почему не использовать более дешевые ESP32. Пообъемнее и побыстрее.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Не очень владею esp32. Нужно, что бы таймеры и АЦП взаимодействовали на аппаратном уровне. Как это сделать на esp32 -- не знаю. Как минимум нужно три таймера. Первый формирует 13 импульсов, второй запускается по событию от первого и по окончании (задержка измерений) запускает ADC и третий таймер для фиксации пересечений нуля.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Собрал на stm32g473cbt6, оперативной памяти использовано около 60КБ для 1024 отсчетов. Сначала сделал на CMSIS-DSP -- нормально получилось, потом попробовал то, что сгенерировал MATLAB. Пока остановлюсь на коде MATLAB'а, поскольку легче с отладкой. На компе проверил, загрузил в МК -- работает одинаково. По скорости: CMSIS-DSP -- примерно в полтора раза быстрее.

Алгоритм для одного измерения выполняется за 35 mS. В идеале нужно 4 измерения (хотя кмк достаточно двух), т.е. за, примерно 0.15 сек., реализуется полный расчет. На текущий момент попробовал уточнить начало ответа при помощи таймера, но точность из-за шумов получается так себе. Преобразование по 1024 точкам, дает более стабильный результат. Все значения вычисляются с учетом таимингов и размеров конструкции, никакие поправочные/калибровочные коэффициенты не используется. Вот, что получается в сравнении:

Изображение

Vc - значения с поправкой capture таймера. Видимо от фиксации пересечения нуля буду отказываться.
Vh - Измеренное значения скорости, найденное по максимуму огибающей.
Vs - Рассчитанная скорость звука по температуре, влажности и давлению.

При 1024 отсчетах, получается погрешность измерения ~ 0.2m/s. При желании можно использовать dual mode adc и повысить точность в два раза, памяти для этого достаточно и время выполнения будет не критичное. Правда, пока особой необходимости в этом не вижу. Удивительно, но на столе, все получается намного проще, чем при фазовом методе -- прощаются погрешности в сотни nS.

Текущая схема приемной части, для возможности 4-х измерений:

Изображение

Пожалуйста критикуйте/поправляйте.
Аватара пользователя
Maniak003
Встал на лапы
Сообщения: 92
Зарегистрирован: Ср июл 28, 2021 09:51:23
Откуда: СПб.

Re: Ультразвуковой анемометр

Сообщение Maniak003 »

Удалось повысить разрешение в три раза при помощи интерполяции.

Изображение

Зеленая точка -- ближе к истинному максимуму огибающей.

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

Изображение

Т.е. сейчас, дискретность измерения 0.06м/с.

Использование памяти, без учета стека:

Изображение

Реально, RAM задействовано примерно на 60кБ больше. Основная часть flash, используется для табличных значений. В общем места остается более чем достаточно, а то была мысль, сразу делать на stm32f722.
Ответить

Вернуться в «Статьи»