PDA

Просмотреть полную версию : Фильтрация аналогового сигнала


СВМ
12.11.2015, 19:53
Хороший фильтр аналогового сигнала очень нужен. У Сегнетикса показания датчиков очень уж скачут, и, как следствие, скачут результаты дальнейших вычислений.

Штатный фильтр, встроенный в макрос TermoSensor, не особенно эффективен.. Пытался городить какие-то свои фильтрующие и сглаживающие конструкции, но особого результата не добился, показания датчиков всё равно выглядят как кардиограмма.

RC фильтр первого порядка:

ATS
12.11.2015, 23:17
RC фильтр первого порядка:
Вариация на тему SMLogix Help - Экспоненциальный фильтр?
Где новизна? :beta:

СВМ
13.11.2015, 18:45
Вариация на тему SMLogix Help - Экспоненциальный фильтр?
Где новизна? :beta:

А можно подробнее, что это такое - экспоненциальный фильтр?

serg-el
13.11.2015, 19:07
А можно подробнее, что это такое - экспоненциальный фильтр?

Выше в теме выложены макросы с фильтрами. Экспоненциальный фильтр - это математическая реализация RC фильтра. Выдаёт данные с частотой тика.
Если ставить перед макросом ПИД №7, то убирает дёрганье и возбуждение. Если ещё поставить на выходе макроса ПИД, то не будет так сильно (быстро) гонять привод.

Хотя работа ПИД сильно зависит от подобранных коэффициентов. Тут уж как повезёт.

Вроде так ...

ATS
13.11.2015, 21:01
А можно подробнее, что это такое - экспоненциальный фильтр?Из описания в Вашем макросе - Uвых = Uвх*(1 - exp(-t/T))
Ну а ответ был в предыдущем посте.

Arsie
16.11.2015, 09:40
ФНЧ-фильтры с предзагрузкой и без неё ещё очень давно и выложил их на форум.

http://forum.segnetics.com/showthread.php?t=314

serg-el
30.11.2015, 13:20
Смотрите, сравнивайте.

Посмотрел. Сравнил. Путём моделирования выяснил, что лучше всего работает связка exp + alpha-beta(TVF). Для лучшего понимания, и подборов коэффициентов промоделировал в Excel. Ещё почитал здесь (http://we.easyelectronics.ru/Theory/chestno-prostoy-cifrovoy-filtr.html), познавательно.

tvf
30.11.2015, 17:19
Посмотрел. Сравнил. Путём моделирования выяснил, что лучше всего работает связка exp + alpha-beta(TVF). Для лучшего понимания, и подборов коэффициентов промоделировал в Excel. Ещё почитал здесь (http://we.easyelectronics.ru/Theory/chestno-prostoy-cifrovoy-filtr.html), познавательно.Боюсь вас разочаровать, но то что написано в статье по вашей ссылке это экспоненциальный фильтр. Просто другая форма записи. Постараюсь доказать свою точку зрения:

Y(n)=Y(n-1) + (X(n)-Y(n-1))*b

Это стандартная формула экспоненциального фильтра.
0<b<1
Y(n) - значение на выходе фильтра в текущем такте
Y(n-1) - значение на выходе фильтра в предыдущем такте
X(n) - значение на входе фильтра в текущем такте

Раскроем скобки:

Y(n)=Y(n-1) + b*X(n) - b*Y(n-1)

Сгруппируем множители:

Y(n)= (1-b)*Y(n-1) + b*X(n)

Введем новый коэффициент:

a=1-b

И запишем формулу уже с новым коэффициентом:

Y(n)=a*Y(n-1) + b*X(n)

Проверим соотношение a+b=1:

a+b=1-b+b=1

Все как в вашей ссылке. Сам наталкивался на этот сайт. Наличие в формуле a и b ни как не относится к реальному альфа-бета фильтру. Причем автор статьи ни кого не пытается обманывать. В статье прямо говорится:Математически цифровой фильтр 1-го порядка описывается различными способами. Мы будем использовать такое представление:
Y(n) = Alfa*Y(n-1) + Beta*X(n)
Фильтр 1-го порядка это и есть экспоненциальный фильтр.
Более гладкие кривые после последовательного применения двух фильтров вполне понятны - это уже фильтр 2-го порядка. Примените последовательно еще один фильтр и результаты будут еще лучше. Только постарайтесь применять все фильтры с одинаковой постоянной времени. Как говорилось в той же статье:Цифровой фильтр (равно как и не цифровой) имеет как бы 2 лица: частотную характеристику и переходную (временнУю) характеристику.
....
Лучше фильтрация — хуже переходной процесс. Мало давить помехи, надо знать когда фильтр должен устаканится.

tvf
30.11.2015, 18:19
Путём моделирования выяснил, что лучше всего работает связка exp + alpha-beta(TVF).Вся проблема альфа-бета фильтра - подбор коэффициентов. А они зависят как от сигнала, так и от наложенного шума. Если коэффициенты подобраны не оптимально, то вреда может быть больше, чем пользы.

serg-el
30.11.2015, 18:39
Полностью согласен с тем, что в выше приведённой статье описывается экспоненциальный фильтр. Просто там расписано как подбирать коэффициенты для его настройки, и его влияние на ПИД регулятор (на Д составляющую).

Причем в моём файле есть как с альфой и бетой, так и просто с бетой (в основном с бетой). Сокращенная формула в комментариях к данной статье есть.

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

tvf
30.11.2015, 19:27
Оптимально - экспоненциальный, затем альфа-бета для восстановления формы сигнала.
Если наоборот - то больше проникновение импульсных помех на выход.Форма сигнала это хорошо. А как быть с амплитудой? В вашем же файле с вашими же параметрами коэффициент передачи фильтра в полосе пропускания не равен 1. А это плохо, очень плохо. Особенно хорошо это видно когда фильтруется скачек. Величина выбега сильно зависит от коэффициентов. Для меня это неприемлемо. Хотите повозится - ваше дело. К слову говоря, есть еще альфа-бета-гамма фильтр. Это когда к переменным положения и скорости добавляется еще и ускорение объекта.Просто там расписано как подбирать коэффициенты для его настройки, и его влияние на ПИД регулятор (на Д составляющую).По большому счету в статье написано как сделать аналоговый фильтр используя целочисленную арифметику.

tvf
30.11.2015, 20:00
Ещё два фильтра:Интересные макросы, правда тяжеловаты. И основная тяжесть в расчетах коэффициентов. Теорией не поделитесь?

serg-el
01.12.2015, 14:25
Форма сигнала это хорошо. А как быть с амплитудой? В вашем же файле с вашими же параметрами коэффициент передачи фильтра в полосе пропускания не равен 1. А это плохо, очень плохо. Особенно хорошо это видно когда фильтруется скачек. Величина выбега сильно зависит от коэффициентов.

В моём файле приведены разные графики.
Если сначала стоит alpha-beta(TVF), а затем экспоненциальный - то да, выбег есть. И амплитуда может гулять. А если сначала (как я писал ранее) экспоненциальный, и лишь потом alpha-beta(TVF) - то выбега не будет.

Чем хорошо моделирование в Excel, так это тем что видно что и как будет в контроллере по факту. Можно подбирать коэффициенты и сразу видеть результат на графиках.

СВМ
01.12.2015, 19:25
Интересные макросы, правда тяжеловаты. И основная тяжесть в расчетах коэффициентов. Теорией не поделитесь?
Что именно Вас интересует?

tvf
02.12.2015, 07:09
Что именно Вас интересует?По большому счету интересует методика расчета коэффициентов БИХ-фильтра по импульсной характеристике, заданной аналитическим путем. Ну или по переходной характеристике, что в принципе одно и то же.

СВМ
02.12.2015, 20:28
По большому счету интересует методика расчета коэффициентов БИХ-фильтра по импульсной характеристике, заданной аналитическим путем. Ну или по переходной характеристике, что в принципе одно и то же.

Могу предложить расчёт алгоритма (структура и коэффициенты) по коэффициенту передачи, заданному в операторной форме, на примере выложенного выше фильтра Баттерворта.