Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Есть ли методы минимизации амплитуды overshoot для Step Response?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
RCray
В цепи контроля данные с датчика идут на HPF IIR 2-го порядка (Butterworth). Получаю нежелательный выброс (20%) на ступенько-образных сигналах.


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

UPD. Поменял картинку (взято отсюда - http://unicorn.us.com/trading/allpolefilters.html) Выход с моего фильтра, как на этой картинке обозначен синим.
serjj
Этот "выброс" следствие импульсной характеристики выбранного вами фильтра. Предполагаю (судя по картинке), что у вас фильтр с достаточно широкой полосой (относительно частоты следования данных), скорее всего 0,3-0,5. У таких фильтров импульсная имеет относительно узкий главный лепесток и много боковых. У узкополосных фильтров, например с полосой 0,05-0,15 от частоты следования данных может быть всего 1 лепесток, импульсная похожа на параболу (главный лепесток функции sinc). Переходный процесс у таких фильтров может быть гладким без скачков. Но возможно вам он не подойдет, т.к. он может нежелательно ограничить полосу вашего сигнала.
Я расписал с точки зрения FIR, т.к. с IIR почти не работал, но для них эти принципы должны распространяться. Попробуйте в порядке эксперимента заузить полосу фильтра и посмотреть, что будет с вашим выбросом.
ViKo
У фильтра Бесселя не должно быть выбросов.
thermit
Цитата(RCray @ Jun 8 2015, 08:23) *
В цепи контроля данные с датчика идут на IIR 2-го порядка (Butterworth). Получаю нежелательный выброс (20%) на ступенько-образных сигналах.


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


Выбросы-колебания есть следствие комплексных полюсов. Делайте полюсы вещественные. Никаких колебаний не будет.

shf_05
Цитата(RCray @ Jun 8 2015, 10:23) *
В цепи контроля данные с датчика идут на IIR 2-го порядка (Butterworth). Получаю нежелательный выброс (20%) на ступенько-образных сигналах.

с Баттервортом выброс должен быть.
по поводу велосипеда, убирающего выброс - любое искажение единичной функции влечет искажение импульсной характеристики и АЧХ/ФЧХ, так что выброс не трогать, если не хотите разрушить фильтр. А если выброс категорически не нужно - придется применять другой фильтр.
Fourier
Цитата
В цепи контроля данные с датчика идут на IIR 2-го порядка (Butterworth). Получаю нежелательный выброс (20%) на ступенько-образных сигналах.

Попробуйте фильтр Бесселя.
thermit
фильтр бесселя пробовать смысла нет. ибо цифровой фильтр бесселя совсем не фильтр бесселя, вообще говоря.
если колбасня критична, используют последовательное соединение звеньев

H(z)=k/(1+(k-1)*z^-1)
k=1-(1-L)^(1/Fs/t)

переходная характеристика такого звена монотонно достигнет значения L через t сек
V_G
Цитата(thermit @ Jun 9 2015, 06:31) *
цифровой фильтр бесселя совсем не фильтр бесселя, вообще говоря.

Это почему же?
IIR часто является цифровым аналогом аналогового фильтра, потому фильтры Бесселя (или очень близкие к ним) в цифре вполне можно построить.
Другое дело, эти фильтры вообще не будут иметь выброса в ПХ, а ТС просит оптимизировать (нормировать?) выброс, т.е. совсем от него не отказывается.
Сильно подозреваю, что запрашиваемое по своим частотным свойствам (и по сложности) будет стоять между фильтрами Бесселя и Баттерворта, но как оно называется, не знаю.

P.S. Самый простой по реализации фильтр с линейной фазой и без выбросов ПХ - это фильтр со скользящим средним, но он имеет уж совсем поганую ЧХ.
thermit
Цитата(V_G @ Jun 9 2015, 01:35) *
Это почему же?
IIR часто является цифровым аналогом аналогового фильтра, потому фильтры Бесселя (или очень близкие к ним) в цифре вполне можно построить.
Другое дело, эти фильтры вообще не будут иметь выброса в ПХ, а ТС просит оптимизировать (нормировать?) выброс, т.е. совсем от него не отказывается.
Сильно подозреваю, что запрашиваемое по своим частотным свойствам (и по сложности) будет стоять между фильтрами Бесселя и Баттерворта, но как оно называется, не знаю.

P.S. Самый простой по реализации фильтр с линейной фазой и без выбросов ПХ - это фильтр со скользящим средним, но он имеет уж совсем поганую ЧХ.


именно как раз часто не является. еще раз замечу, что выбросов в принципе небудет у фильтра с вещественными полюсами.
RCray
Цитата(serjj @ Jun 8 2015, 10:47) *
Этот "выброс" следствие импульсной характеристики выбранного вами фильтра. Предполагаю (судя по картинке), что у вас фильтр с достаточно широкой полосой (относительно частоты следования данных), скорее всего 0,3-0,5. У таких фильтров импульсная имеет относительно узкий главный лепесток и много боковых. У узкополосных фильтров, например с полосой 0,05-0,15 от частоты следования данных может быть всего 1 лепесток, импульсная похожа на параболу (главный лепесток функции sinc). Переходный процесс у таких фильтров может быть гладким без скачков. Но возможно вам он не подойдет, т.к. он может нежелательно ограничить полосу вашего сигнала.
Я расписал с точки зрения FIR, т.к. с IIR почти не работал, но для них эти принципы должны распространяться. Попробуйте в порядке эксперимента заузить полосу фильтра и посмотреть, что будет с вашим выбросом.


Спасибо за развернутый комментариий. От игр с полосой амплитуда выброса не меняться, только время отклика.
blackfin
Цитата(RCray @ Jun 9 2015, 01:59) *
От игр с полосой амплитуда выброса не меняется, только время отклика.

Известный факт.. Явлением Гиббса зовется..
RCray
Цитата(thermit @ Jun 9 2015, 02:46) *
именно как раз часто не является. еще раз замечу, что выбросов в принципе небудет у фильтра с вещественными полюсами.


Попробую построить цифровой HPF Бесселя и посмотрю что можно сделать с полюсами.

Цитата(shf_05 @ Jun 8 2015, 12:46) *
с Баттервортом выброс должен быть.
по поводу велосипеда, убирающего выброс - любое искажение единичной функции влечет искажение импульсной характеристики и АЧХ/ФЧХ, так что выброс не трогать, если не хотите разрушить фильтр. А если выброс категорически не нужно - придется применять другой фильтр.


Все верно. Один момент - амплитуда overshoot'a (превышение от значения послe стабилизации) тем больше, чем больше амплитуда ступеньки. Малые ступеньки не так страшны, так как и последствия от них незаметны - велосипед не активен. Велосипед включается при польших амплитудах входного сигнала и, хотя и искажает немного выход, на больших амплитудах это не критично. На больших амплитудах без велосипеда - катастрофа, 20% выброс очень заметен.
RCray
По поводу digital HPF Бесселя вот такая петрушка получается:
красный - вход
синий - LPF
зеленый - эквивалентный HPF

И как-то плохо уменьшает для HPF. Не исключаю правда, что намудрил где-то.



это вместе для сравнения до и послe

ViKo
Синие графики смотрите. Зачем вам HPF?
О, вижу, и картинка в первом сообщении изменилась...
RCray
Цитата(ViKo @ Jun 9 2015, 07:34) *
Синие графики смотрите. Зачем вам HPF?
О, вижу, и картинка в первом сообщении изменилась...


Да изначально я привел выход цепи управления, а не фильтра, чем ввел в заблуждение всех вас.
ViKo
Тогда поясните, что вы хотите фильтровать? Выделить сигнал с датчика на фоне постоянного дрейфующего смещения? Сделайте ФВЧ, пропускающий весь ваш полезный сигнал. То есть, понизьте частоту среза ФВЧ.
RCray
Цитата(thermit @ Jun 9 2015, 00:31) *
фильтр бесселя пробовать смысла нет. ибо цифровой фильтр бесселя совсем не фильтр бесселя, вообще говоря.
если колбасня критична, используют последовательное соединение звеньев

H(z)=k/(1+(k-1)*z^-1)
k=1-(1-L)^(1/Fs/t)

переходная характеристика такого звена монотонно достигнет значения L через t сек


Где почитать про эти звенья?

Цитата(ViKo @ Jun 9 2015, 07:55) *
Тогда поясните, что вы хотите фильтровать? Выделить сигнал с датчика на фоне постоянного дрейфующего смещения? Сделайте ФВЧ, пропускающий весь ваш полезный сигнал. То есть, понизьте частоту среза ФВЧ.


Именно так и Вы хорошо расписали процесс фильтрации, но потом приходит сигнал большой амплитуды и получаем заметный overshoot.
ViKo
Если поставите просто RC фильтр, то выбросов не будет.
shf_05
Цитата(ViKo @ Jun 9 2015, 10:00) *
Если поставите просто RC фильтр, то выбросов не будет.

это и есть фильтр с вещественными полюсами.

пс- автору может надо нелинейный фильтр или вейвлет...
V_G
Стало совсем непонятно, что нужно автору. HPF (он же ФВЧ) ПРИНЦИПИАЛЬНО должен иметь выброс ПХ при ЛЮБОЙ аппроксимации ЧХ.
thermit
Цитата(V_G @ Jun 9 2015, 12:06) *
Стало совсем непонятно, что нужно автору. HPF (он же ФВЧ) ПРИНЦИПИАЛЬНО должен иметь выброс ПХ при ЛЮБОЙ аппроксимации ЧХ.


это заблуждение. фвч 1-го порядка не даст никаких выбросов.
V_G
Цитата(thermit @ Jun 10 2015, 06:53) *
это заблуждение. фвч 1-го порядка не даст никаких выбросов.

Смешно...
Вы не в курсе про дифференцирующие цепи? Поделируйте прохождение ступеньки через RC-дифференцирующую цепочку (она же - ФВЧ 1-го порядка).
Выброс ПХ ФВЧ заложен теорией его работы: пропускать быстроменяющиеся сигналы (фронты в том числе) и давить медленные (плоские вершины в том числе).
RCray
Цитата(V_G @ Jun 9 2015, 12:06) *
Стало совсем непонятно, что нужно автору. HPF (он же ФВЧ) ПРИНЦИПИАЛЬНО должен иметь выброс ПХ при ЛЮБОЙ аппроксимации ЧХ.


Никто не отрицает наличие таких колебаний для 2-го порядка и выше. Стоял вопрос об их минимизации.

По поводу полюсов - у меня не хватает фундаментальных знаний - как сделать БИХ фильтр с вещественными полюсами? Просто расположить полюса вручную?

Нынешняя диаграмма полюсов


V_G, это step response для 1-го порядка

shf_05
Цитата(V_G @ Jun 10 2015, 03:45) *
Смешно...

полагаю автор имел ввиду колебательные процессыа не скачок сигнала

Цитата(RCray @ Jun 10 2015, 04:22) *
По поводу полюсов - у меня не хватает фундаментальных знаний - как сделать БИХ фильтр с вещественными полюсами? Просто расположить полюса вручную?

воспользуйтесь поисковиком, для начала найдите что такое фильтр с вещественными полюсами.
пробовал поставить вручную - ИХ и ПХ имеют колебания при одном вещественном отрицательном полюсе.
придется потрудиться вручную или найти иной способ
thermit
Цитата(V_G @ Jun 10 2015, 01:45) *
Смешно...
Вы не в курсе про дифференцирующие цепи? Поделируйте прохождение ступеньки через RC-дифференцирующую цепочку (она же - ФВЧ 1-го порядка).
Выброс ПХ ФВЧ заложен теорией его работы: пропускать быстроменяющиеся сигналы (фронты в том числе) и давить медленные (плоские вершины в том числе).



ну, кому как. лично мне грустно.

x(n)=0 0 0 0 0 1 1 1 1 1

y(n)=x(n)-x(n-1)

уж не знаю, эр это цэпь или цэ... но игрек-то сами посчитаете? логика работы, вроде не сложная.
RCray
Как правильно заметил shf_05, V_B просто не так понял. Не надо баталий ))
Я с самого начала везде писал overshoot, т.е. превышение от значения после стабилизации. Простите если ввел кого -то в заблуждение.


thermit
Цитата(RCray @ Jun 10 2015, 08:43) *
Как правильно заметил shf_05, V_B просто не так понял. Не надо баталий ))
Я с самого начала везде писал overshoot, т.е. превышение от значения после стабилизации. Простите если ввел кого -то в заблуждение.



писать лучше по русски. а еще лучше, внятно написать что же вам все же нужно, указав конкретные значения частот фильтрации, дискретизации итд итп. тогда и баталий не будет.
Santik
Некоторую информацию по данной проблеме можно найти тут.
RCray
Цитата(Santik @ Jul 11 2015, 09:24) *
Некоторую информацию по данной проблеме можно найти тут.


Спасибо за статью.

В моем случае по шагам что сделал:
1. Перешел на фильтр 1-го порядка, чтобы не иметь выброса.
2. Чтобы иметь приемлемое подавление, увеличил частоту среза.
3. Ухудшилaсь групповая задержка, которую компенсировал lead-lag фильтром.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.