Дискретизация фильтра метки

Этот пример показывает сравнение нескольких методов для дискретизации фильтра метки. В то время как компоненты системы управления часто проектируются в непрерывное время, они должны обычно дискретизироваться для реализации на компьютерах и встраиваемых процессорах.

Фильтр метки непрерывного времени

Фильтры метки спроектированы, чтобы отклонить содержимое сигнала на определенной частоте путем резкого ослабления усиления на той частоте. Для этого примера мы рассматриваем следующий фильтр метки:

H(s)=s2+0.5s+100s2+5s+100

Можно построить частотную характеристику этого фильтра с bode команда:

H = tf([1 0.5 100],[1 5 100]);
bode(H), grid

Этот фильтр метки обеспечивает затухание на 20 дБ на частоте w = 10 рад/с.

Выбор метода дискретизации

Можно дискретизировать систему непрерывного времени с c2d команда. Несколько алгоритмов дискретизации поддерживаются Control System Toolbox™, включая:

  • Нулевой порядок содержит

  • Хранение первого порядка

  • Импульсный инвариант

  • Тастин (билинейное приближение)

  • Тастин с предварительным деформированием частоты

  • Совпадающие полюса и нули

Какой метод выбрать зависит от приложения и требований.

Нуль - и методы хранения первого порядка и инвариантный импульсом метод является подходящим для дискретных приближений во временном интервале. Например, переходной процесс дискретизации ZOH совпадает с переходным процессом непрерывного времени на каждом временном шаге (независимо от уровня выборки):

Ts = 0.1;
Hdz = c2d(H,Ts,'zoh');
step(H,'b',Hdz,'r'),
legend('Continuous','Discretized at 10 Hz')

Точно так же инвариантная импульсом дискретизация имеет ту же импульсную характеристику как исходная система:

G = tf([1 -3],[1 2 10]);
Gd = c2d(G,Ts,'imp');
impulse(G,'b',Gd,'r')
legend('Continuous','Discretized at 10 Hz')

В отличие от этого, Тастин и Совпадающие методы имеют тенденцию выполнять лучше в частотном диапазоне, потому что они вводят меньше усиления и искажения фазы около частоты Найквиста. Например, сравните Предвещать ответы фильтра метки непрерывного времени и его дискретизации с помощью ZOH, Тастина и Совпадающих алгоритмов:

Hdt = c2d(H,Ts,'tustin');
Hdm = c2d(H,Ts,'match');
bode(H,'b',Hdz,'r',Hdt,'m',Hdm,'g',{1 100}), grid
legend('Continuous','ZOH','Tustin','Matched')

Это сравнение указывает, что Совпадающий метод обеспечивает самое точное приближение частотного диапазона фильтра метки. Однако можно далее улучшить точность алгоритма Тастина путем определения предварительно деформирующейся частоты, равной частоте метки. Это гарантирует точное соответствие рядом w = 10 рад/с:

Hdp = c2d(H,Ts,'prewarp',10);
bode(H,'b',Hdt,'m',Hdp,'g',{1 100}), grid
legend('Continuous','Tustin','Tustin with prewarping')

Выбор уровня выборки

Чем выше уровень выборки, тем ближе соответствие между непрерывными и дискретизированными ответами. Но насколько маленький уровень выборки может быть, или эквивалентно, насколько большой интервал выборки может быть? Как показывает опыт, если вы хотите, чтобы непрерывные и дискретизированные модели совпадали с тесно некоторой частотой wm, убедитесь, что частотой Найквиста (производящий времена уровня Пи) является, по крайней мере, дважды wm. Для фильтра метки необходимо сохранить форму около 10 рад/с, таким образом, частота Найквиста должна быть вне 20 рад/с, который дает период выборки в большей части пи/20 = 0,16 с.

Чтобы подтвердить этот выбор, сравните совпадающие дискретизации с выборкой периода 0.1, 0.15, и 0.3:

Hd1 = c2d(H,0.1,'m');
Hd2 = c2d(H,0.15,'m');
Hd3 = c2d(H,0.3,'m');
bode(H,'b',Hd1,'r',Hd2,'m',Hd3,'g',{1 100}), grid
legend('Continuous','Ts = 0.1','Ts = 0.15','Ts = 0.3')

Как предсказано, дискретизация остается довольно точной для Ts < 0.16 но начинает ломаться для больших интервалов выборки.

Интерактивный графический интерфейс пользователя

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

Откройте графический интерфейс пользователя дискретизации метки

notch_gui