Просмотреть полную версию : Фильтрация аналогового сигнала
Хороший фильтр аналогового сигнала очень нужен. У Сегнетикса показания датчиков очень уж скачут, и, как следствие, скачут результаты дальнейших вычислений.
Штатный фильтр, встроенный в макрос TermoSensor, не особенно эффективен.. Пытался городить какие-то свои фильтрующие и сглаживающие конструкции, но особого результата не добился, показания датчиков всё равно выглядят как кардиограмма.
RC фильтр первого порядка:
RC фильтр первого порядка:
Вариация на тему SMLogix Help - Экспоненциальный фильтр?
Где новизна? :beta:
Вариация на тему SMLogix Help - Экспоненциальный фильтр?
Где новизна? :beta:
А можно подробнее, что это такое - экспоненциальный фильтр?
А можно подробнее, что это такое - экспоненциальный фильтр?
Выше в теме выложены макросы с фильтрами. Экспоненциальный фильтр - это математическая реализация RC фильтра. Выдаёт данные с частотой тика.
Если ставить перед макросом ПИД №7, то убирает дёрганье и возбуждение. Если ещё поставить на выходе макроса ПИД, то не будет так сильно (быстро) гонять привод.
Хотя работа ПИД сильно зависит от подобранных коэффициентов. Тут уж как повезёт.
Вроде так ...
А можно подробнее, что это такое - экспоненциальный фильтр?Из описания в Вашем макросе - Uвых = Uвх*(1 - exp(-t/T))
Ну а ответ был в предыдущем посте.
ФНЧ-фильтры с предзагрузкой и без неё ещё очень давно и выложил их на форум.
http://forum.segnetics.com/showthread.php?t=314
Смотрите, сравнивайте.
Посмотрел. Сравнил. Путём моделирования выяснил, что лучше всего работает связка exp + alpha-beta(TVF). Для лучшего понимания, и подборов коэффициентов промоделировал в Excel. Ещё почитал здесь (http://we.easyelectronics.ru/Theory/chestno-prostoy-cifrovoy-filtr.html), познавательно.
Посмотрел. Сравнил. Путём моделирования выяснил, что лучше всего работает связка 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 лица: частотную характеристику и переходную (временнУю) характеристику.
....
Лучше фильтрация — хуже переходной процесс. Мало давить помехи, надо знать когда фильтр должен устаканится.
Путём моделирования выяснил, что лучше всего работает связка exp + alpha-beta(TVF).Вся проблема альфа-бета фильтра - подбор коэффициентов. А они зависят как от сигнала, так и от наложенного шума. Если коэффициенты подобраны не оптимально, то вреда может быть больше, чем пользы.
Полностью согласен с тем, что в выше приведённой статье описывается экспоненциальный фильтр. Просто там расписано как подбирать коэффициенты для его настройки, и его влияние на ПИД регулятор (на Д составляющую).
Причем в моём файле есть как с альфой и бетой, так и просто с бетой (в основном с бетой). Сокращенная формула в комментариях к данной статье есть.
Просто наглядно видно, как коэффициенты влияют на переходные характеристики, и на подавление ВЧ составляющих шума. Оптимально - экспоненциальный, затем альфа-бета для восстановления формы сигнала.
Если наоборот - то больше проникновение импульсных помех на выход.
Оптимально - экспоненциальный, затем альфа-бета для восстановления формы сигнала.
Если наоборот - то больше проникновение импульсных помех на выход.Форма сигнала это хорошо. А как быть с амплитудой? В вашем же файле с вашими же параметрами коэффициент передачи фильтра в полосе пропускания не равен 1. А это плохо, очень плохо. Особенно хорошо это видно когда фильтруется скачек. Величина выбега сильно зависит от коэффициентов. Для меня это неприемлемо. Хотите повозится - ваше дело. К слову говоря, есть еще альфа-бета-гамма фильтр. Это когда к переменным положения и скорости добавляется еще и ускорение объекта.Просто там расписано как подбирать коэффициенты для его настройки, и его влияние на ПИД регулятор (на Д составляющую).По большому счету в статье написано как сделать аналоговый фильтр используя целочисленную арифметику.
Ещё два фильтра:Интересные макросы, правда тяжеловаты. И основная тяжесть в расчетах коэффициентов. Теорией не поделитесь?
Форма сигнала это хорошо. А как быть с амплитудой? В вашем же файле с вашими же параметрами коэффициент передачи фильтра в полосе пропускания не равен 1. А это плохо, очень плохо. Особенно хорошо это видно когда фильтруется скачек. Величина выбега сильно зависит от коэффициентов.
В моём файле приведены разные графики.
Если сначала стоит alpha-beta(TVF), а затем экспоненциальный - то да, выбег есть. И амплитуда может гулять. А если сначала (как я писал ранее) экспоненциальный, и лишь потом alpha-beta(TVF) - то выбега не будет.
Чем хорошо моделирование в Excel, так это тем что видно что и как будет в контроллере по факту. Можно подбирать коэффициенты и сразу видеть результат на графиках.
Интересные макросы, правда тяжеловаты. И основная тяжесть в расчетах коэффициентов. Теорией не поделитесь?
Что именно Вас интересует?
Что именно Вас интересует?По большому счету интересует методика расчета коэффициентов БИХ-фильтра по импульсной характеристике, заданной аналитическим путем. Ну или по переходной характеристике, что в принципе одно и то же.
По большому счету интересует методика расчета коэффициентов БИХ-фильтра по импульсной характеристике, заданной аналитическим путем. Ну или по переходной характеристике, что в принципе одно и то же.
Могу предложить расчёт алгоритма (структура и коэффициенты) по коэффициенту передачи, заданному в операторной форме, на примере выложенного выше фильтра Баттерворта.
vBulletin v3.8.3 (Russian), Copyright ©2000-2024, Jelsoft Enterprises Ltd.