Структура и программная реализация цифровых фильтров и регуляторов

Содержание

Слайд 2

Инерционное звено первого порядка (фильтр)

Где Тф – постоянная времени фильтра

Инерционное звено первого порядка (фильтр) Где Тф – постоянная времени фильтра

Слайд 3

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

Для преобразования уравнения

Пример разработки и отладки программы инерционного звена первого порядка (фильтра) Для преобразования
фильтра из непрерывной области в дискретную, введем интервал дискретизации по времени h. Тогда производная в уравнении может быть представлена в виде разности первого порядка:

Слайд 4

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

Слайд 5

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

 void Filter_Init()
{
ky1=_IQdiv(Th,Th+_IQ(1));
kx0=_IQdiv(_IQ(1),Th+_IQ(1));
}
void Filter_Execute()
{
y=_IQmpy(kx0,x)+_IQmpy(ky1,y);
}

Пусть

,

Пример разработки и отладки программы инерционного звена первого порядка (фильтра) void Filter_Init()
тогда программный код:

Слайд 6

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

Можно принять допущение

Пример разработки и отладки программы инерционного звена первого порядка (фильтра) Можно принять
и упростить формулы:

Приблизительно равен yk-1

Слайд 7

Пример разработки и отладки программы инерционного звена первого порядка (фильтра)

Упрощенное выражение фильтра

Это

Пример разработки и отладки программы инерционного звена первого порядка (фильтра) Упрощенное выражение
выражение имеет интуитивно-понятный смысл:
На данном шаге расчета отфильтрованное значение (yk) равно тому же самому, чему было равно в прошлый раз (yk-1) плюс коррекция, которая пропорциональна разнице между входом фильтра и его выходным значением. Чем отношение h/Tф больше, тем коррекция сильнее, соответственно фильтр работает «быстрее» и фильтрует слабее.
Программная реализация также проста и делается одной строкой:
output = output + _IQmpy(kf,(input-output));

Где kf – коэффициент фильтра, равный h/Tф : отношению частоты вызова функции фильтра h к желаемой постоянной времени Tф.

Слайд 8

Структура фильтра скользящего среднего

Структура фильтра скользящего среднего

Слайд 9

ВЫЧИСЛЕНИЕ ВЫХОДНОГО СИГНАЛА 4-ТОЧЕЧНОГО
ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО

ВЫЧИСЛЕНИЕ ВЫХОДНОГО СИГНАЛА 4-ТОЧЕЧНОГО ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО

Слайд 10

РЕАКЦИЯ ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО НА ВОЗДЕЙСТВИЕ В ВИДЕ СМЕСИ ШУМА И СТУПЕНЧАТОГО

РЕАКЦИЯ ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО НА ВОЗДЕЙСТВИЕ В ВИДЕ СМЕСИ ШУМА И СТУПЕНЧАТОГО СИГНАЛА
СИГНАЛА

Слайд 11

Структура КИХ-фильтра

Структура КИХ-фильтра

Слайд 12

Входные и выходные решетчатые функции

Входные и выходные решетчатые функции

Слайд 13

ХАРАКТЕРИСТИКИ КИХ-ФИЛЬТРОВ

Выходное управляющее воздействие (результат работы фильтра) представляет собой сумму произведений величин,

ХАРАКТЕРИСТИКИ КИХ-ФИЛЬТРОВ Выходное управляющее воздействие (результат работы фильтра) представляет собой сумму произведений
сохраненных в линии задержки, на соответствующие коэффициенты. Заметьте, что число коэффициентов в фильтре всегда на единицу больше, чем порядок фильтра. Это связано с тем, что текущая выборка x(n), которая представляет собой входное воздействие, всегда участвует в процессе вычислений.

Если предположить, что буфер выборок вначале пуст, то выходное значение y0 будет рассчитываться только на основе входной выборки x0, выходное значение y1 уже на основе двух выборок x0 и x1 и т.д. Начиная с шестой выборки x5, все предыдущие выборки будут участвовать в расчете выходной переменной фильтра, т.е. буфер выборок окажется полностью заполненным.

Слайд 14

Структура БИХ-фильтра

Структура БИХ-фильтра

Слайд 15

ПИ-регуляторы

ПИ-регуляторы