Фильтр сглаживания для аналогового сигнала

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Post Reply
wrathangels
Posts: 20
Joined: Thu Sep 09, 2010 9:21 am

Фильтр сглаживания для аналогового сигнала

Post by wrathangels » Sun Jun 04, 2017 9:48 am

Всем доброго времени суток !Имеется аналоговое значение (пятизначное) от тензодатчика. Последня цифра, а и иногда предпоследняя цифра, этого анологового значения постоянно меняется и из-за этого постоянно "прыгает" вес в программе и из за этого не могу выставить ноль системе
Подскажите как решить данную проблему.Возможно есть примеры программ на SCL ?

ALcron
Posts: 3
Joined: Sun Jun 02, 2013 8:23 am

Re: Фильтр сглаживания для аналогового сигнала

Post by ALcron » Wed Jun 07, 2017 5:51 am

Сделайте зону нечувствительности
Или усредняйте значение (скользящее среднее)
Или их комбинацию

В любом случае будет потеря в скорости и точности обработки сигнала.

Да и вообще зачем такая точность (до 5го знака), если сам датчик выдает ложный сигнал в этом разряде, просто можно округлить до 4 разряда...

MEFinc
Posts: 51
Joined: Thu Dec 08, 2011 11:23 am

Re: Фильтр сглаживания для аналогового сигнала

Post by MEFinc » Thu Jun 08, 2017 6:26 am

Еще как вариант:
1. Настроить фильтрацию в hardware канала.
2. Реализовать фильтр (3 строчки кода в SCL):
Image

wrathangels
Posts: 20
Joined: Thu Sep 09, 2010 9:21 am

Re: Фильтр сглаживания для аналогового сигнала

Post by wrathangels » Fri Jun 09, 2017 4:02 pm

Дело в том что собираю весовой терминал.Когда преобразую величину в значение получается к примеру 23.56 кг ,второй разряд после зааятой в данном случае 6-ка прыгает.Это мешает измерению ,т.к планируется дозировать наполнение пакетов. Округление особо не помогает ,пробовал различные фильтры и по времени в итоге измерение становится инертным довольнотаки.
В формуле с экспонентой t и T какое из них что значит на примере цикла ПЛК .t это как часто опрашивается сигнал или время выполнения блока программы ?? Пояснительная пожалуйста )

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Фильтр сглаживания для аналогового сигнала

Post by Rex2701 » Fri Jun 09, 2017 5:24 pm

ОК, добавь обработку зоны нечувствительности (deadband): в каждом цикле новое значение веса сравниваешь с сохранённым предыдущим. Если дельта по модулю между ними меньше 0.02 - оставляешь старое значение. И нет больше никакого дребезга в младшем разряде.

serg_58
Posts: 99
Joined: Thu Jun 03, 2010 7:43 pm
Location: Russia

Re: Фильтр сглаживания для аналогового сигнала

Post by serg_58 » Mon Jun 12, 2017 4:04 am

Привет.
А почему не использовать для этой цели стандартный PID-регулятор? Gain на единицу, D на 0, а интегратором добиться требуемого. И не заморачиваться. Была аналогичная тема лет 10 назад, только не с весом, а с уровнем в смесительном танке. При включеной мешалке, была полная дребедень. :D

wrathangels
Posts: 20
Joined: Thu Sep 09, 2010 9:21 am

Re: Фильтр сглаживания для аналогового сигнала

Post by wrathangels » Mon Jun 12, 2017 10:10 pm

Т.е мне надо записать значения в N мерный массив и каждое N-1 значение сравнить с N , если результат не выходит за дельту отправлять его на обработку?
Если можно то пример пару строчек...

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Фильтр сглаживания для аналогового сигнала

Post by Rex2701 » Tue Jun 13, 2017 8:29 am

Да какой массив... Достаточно хранить предыдущее значение.
ЕСЛИ Хтек-Xпред<Дельта ТО Y=Xпред ИНАЧЕ Y=Xтек: Xпред=Xтек

wrathangels
Posts: 20
Joined: Thu Sep 09, 2010 9:21 am

Re: Фильтр сглаживания для аналогового сигнала

Post by wrathangels » Thu Jun 15, 2017 5:53 pm

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

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Фильтр сглаживания для аналогового сигнала

Post by Rex2701 » Thu Jun 15, 2017 8:25 pm

Всё зависит от того, куда эти показания потом идут. Если это вес ёмкости и ПИДу надо "поймать" уставку при заполнении - небольшая погрешность не роляет. А если это мгновенный вес в потоке, который идёт в суммы за час/смену/неделю/месяц - это совсем другое.

wrathangels
Posts: 20
Joined: Thu Sep 09, 2010 9:21 am

Re: Фильтр сглаживания для аналогового сигнала

Post by wrathangels » Thu Jun 15, 2017 9:39 pm

У меня субстанцией наполняется пакет который стоит на весах,т.е. задаю объём происходит наполнение как необходимый вес набрался все стоп.
У Siemens есть весоизмерительные модули siwarex, уважаемый Rex2701 вы не знаете там алгоритмы на аппаратном уровне зашиты, или основные преобразования в запароленых блоках?

Rex2701
Posts: 370
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Фильтр сглаживания для аналогового сигнала

Post by Rex2701 » Mon Jun 19, 2017 5:30 am

Весовая служба у нас отдельная. Почитайте документацию на SIWAREX'ы.

Dfcz
Posts: 875
Joined: Tue Dec 26, 2006 5:21 am
Location: Russia

Re: Фильтр сглаживания для аналогового сигнала

Post by Dfcz » Thu Jun 29, 2017 1:11 pm

Если не вдаваться в дискусии оп весовому хозяйству, то фильтрацию на аналоговых входах я делаю просто: делю на 10 потом умножаю на 10 (10 или 100 или 1000 смотря сколько знаков надо отфильтровать).

Post Reply