Обработка сигнала с датчик диф. давления

Захват, обработка и генерирование сигнала
Ответить
hammer
beginner
beginner
Сообщения: 16
Зарегистрирован: 04 мар 2008, 15:44
Контактная информация:

Обработка сигнала с датчик диф. давления

Сообщение hammer »

Привет народ.
Есть задача обработка сигнала с датчика диф. давления. Датчик подключен к arduino uno и выдает аналоговый сигнал 1-6 вольт. Датчик выдает +- 2.5 Вольта, при этом ноль = 3.5 Вольта это по даташиту.
Подключил вот такой график
2015-08-25 16-34-03 Скриншот экрана.png
На верхней паре графиков выводится снизу значения расхода воздуха (считается по формуле), а с верху интеграл от расхода, то есть объем. Воздух ходит в одну и другую сторону по этому такой и график. Но существует проблема ошибка или шум (начало нижнего графика) который дает датчик диф давления накапливается и дает сильную нарастающую ошибку при интегрировании. Может посоветуйте как можно ее обойти?
И еще момент с выводом результата на самом нижнем графике выводится значения мгновенного расхода в текущий момент, как сделать, что бы всегда на экране были значения за последние 30 секунд? А не накапливались постоянно?
Вот сама прога.
2015-08-25 18-47-21 Скриншот экрана.png
диф давление.vi
(37.22 КБ) 172 скачивания
Аватара пользователя
Aleksey Feoktistov

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

Re: Обработка сигнала с датчик диф. давления

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

hammer, вольтовый сигнал подвержен наводкам как никакой другой.
Проверьте не идет ли у Вас рядом с проводом от датчика провод питания ~220 В.
уж больно Ваш сигнал на наводку 50 Гц смахивает.
и кабель для подключения Вашего датчика следует использовать экранированный. а экран посадить на землю.
а вообще, лучше использовать унифицированный токовый сигнал 4...20 мА.
если Ваш датчик такой сигнал не поддерживает, то можете поставить вторичный преобразователь.
hammer
beginner
beginner
Сообщения: 16
Зарегистрирован: 04 мар 2008, 15:44
Контактная информация:

Re: Обработка сигнала с датчик диф. давления

Сообщение hammer »

Aleksey Feoktistov писал(а):hammer, вольтовый сигнал подвержен наводкам как никакой другой.
Проверьте не идет ли у Вас рядом с проводом от датчика провод питания ~220 В.
уж больно Ваш сигнал на наводку 50 Гц смахивает.
и кабель для подключения Вашего датчика следует использовать экранированный. а экран посадить на землю.
а вообще, лучше использовать унифицированный токовый сигнал 4...20 мА.
если Ваш датчик такой сигнал не поддерживает, то можете поставить вторичный преобразователь.
Когда тестировал 220 было рядом, попробую экранировать.
Датчик такой DC025BDR5, вот на него даташит.
http://z.compel.ru/item-pdf/a9a47f3821c ... ney~dc.pdf
hammer
beginner
beginner
Сообщения: 16
Зарегистрирован: 04 мар 2008, 15:44
Контактная информация:

Re: Обработка сигнала с датчик диф. давления

Сообщение hammer »

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

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Обработка сигнала с датчик диф. давления

Сообщение Borjomy_1 »

Интегрирование в принципе будет давать накопление ошибки, от этого никуда не деться. Но если действие циклическое, то можно попробовать обнулять интерграл синхронно с циклом.
И еще. дифференциальный сигнал должен очень хорошо давить наводки, для этого он, собственно и предназначен. Если он у вас шумит, то что-то не так со схемой измерения. Либо АЦП не в дифф режиме, либо дифференциальная пара проводов не перевита.
hammer
beginner
beginner
Сообщения: 16
Зарегистрирован: 04 мар 2008, 15:44
Контактная информация:

Re: Обработка сигнала с датчик диф. давления

Сообщение hammer »

Borjomy_1 писал(а):Интегрирование в принципе будет давать накопление ошибки, от этого никуда не деться. Но если действие циклическое, то можно попробовать обнулять интерграл синхронно с циклом.
И еще. дифференциальный сигнал должен очень хорошо давить наводки, для этого он, собственно и предназначен. Если он у вас шумит, то что-то не так со схемой измерения. Либо АЦП не в дифф режиме, либо дифференциальная пара проводов не перевита.
А можно поподробнее. У меня сделано так плата arduino uno к ней подключен датчик диф давления проводами для мекетки, внешнее питание 7 вольт подводится от лабораторного блока пинатия hy3005d, gnd arduinы и ноль блока питания перемкнуты. Вот снимаемый сигнал
2015-08-26 08-43-52 Скриншот экрана.png
Зеленый это напряжение в состоянии покоя на датчике, гуляет от 3,535 до 3,55. В принципе такая погрешность (шум) не мешают для отображения объемного расхода, но вот когда берется интеграл для расчета объема за итерацию, получается сильное накопление ошибки.
Попробовал убрать подальше от всех проводов не помогло, подключил проводами от витой пары (перевитые), тоже не помогло.
Обнулять значение интеграла скорее всего не получится, потому, что расход в одну сторону не факт, что будет равным расходу в другую. Но попробую конечно.
Аватара пользователя
Aleksey Feoktistov

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

Re: Обработка сигнала с датчик диф. давления

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

hammer, можете попробовать программно убрать шум.
используйте программный фильтр нижних или верхних частот (смотря какая помеха).
Блок-диаграмма --> ПКМ --> Signal Processing --> Filters
или Блок-диаграмма --> ПКМ --> Express --> Signal Analysis --> Filter
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Обработка сигнала с датчик диф. давления

Сообщение Borjomy_1 »

Обнулять значение интеграла скорее всего не получится, потому, что расход в одну сторону не факт, что будет равным расходу в другую. Но попробую конечно.
В таком случае хотелось-бы знать, что вы хотите от интеграла, он как раз и будет показывать перемещаемую массу. Если неизменная масса воздуха гоняется туда-обратно, то обнулять надо кратно периоду. Если нет, то это попытка поднять себя за волосы.
Обратите внимание, что красны тренд не крутится вокруг нуля, а имеет смещение. Это также приводит к накоплению ошибки.

Можете интегрированный сигнал, который у вас обозначен как "Спирограмма" прогонять через ФВЧ (обрезаются нижние частоты и постоянная составляющая). Полосу среза поставьте 0.1Гц
hammer
beginner
beginner
Сообщения: 16
Зарегистрирован: 04 мар 2008, 15:44
Контактная информация:

Re: Обработка сигнала с датчик диф. давления

Сообщение hammer »

Красный график не в нуле потому, что ноль для данного датчика по паспорту 3,5 вольта, но реально он 3,545 где то и от случая к случаю меняется. Поэтому и интегральная составляющая постоянно уходит. Пробовал посчитать значение начального нулевого значения напряжения как среднее арифметическое первых 1000 значений напряжения без нагрузки, но все равно потом начинает прыгать. Искусственно убрать шум не учитывая значения напряжения если они отличаются от предыдущего меньше чем на 0,02 вольта. Помогло но полностью избавиться не удалось.
Пока стоит вопрос как с датчика у которого "плавает ноль" гарантированно получать этот ноль.
Можно примерчик:
Можете интегрированный сигнал, который у вас обозначен как "Спирограмма" прогонять через ФВЧ (обрезаются нижние частоты и постоянная составляющая). Полосу среза поставьте 0.1Гц
седьмой
adviser
adviser
Сообщения: 222
Зарегистрирован: 14 апр 2014, 17:36
Версия LabVIEW: 14
Откуда: г.Киров
Контактная информация:

Re: Обработка сигнала с датчик диф. давления

Сообщение седьмой »

Попробуйте просто отфильтровать шум например фильтром Beуssel Filter.vi и возможно обойдетесь без интегралов.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»