Дискретизация узкополосного фильтра

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

Непрерывный узкополосный фильтр

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

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

Вы можете построить график частотной характеристики этого фильтра с bode команда:

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

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents H. Axes 2 contains an object of type line. This object represents H.

Этот узкополосный фильтр обеспечивает 20dB ослабление на частоте 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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent 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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Continuous, Discretized at 10 Hz.

Напротив, методы Тастина и Согласованного, как правило, лучше работают в частотном диапазоне, потому что они вводят меньше искажений усиления и фазы вблизи частоты Найквиста. Для примера сравните отклики Бода непрерывного времени узкополосного фильтра и его дискретизации с помощью алгоритмов ZOH, Tustin и Matched:

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')

Figure contains 2 axes. Axes 1 contains 4 objects of type line. These objects represent Continuous, ZOH, Tustin, Matched. Axes 2 contains 4 objects of type line. These objects represent 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')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent Continuous, Tustin, Tustin with prewarping. Axes 2 contains 3 objects of type line. These objects represent Continuous, Tustin, Tustin with prewarping.

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

Чем выше частота дискретизации, тем ближе соответствие между непрерывными и дискретизированными ответами. Но насколько малой может быть частота дискретизации, или эквивалентно, насколько большой может быть интервал дискретизации? Как правило, если вы хотите, чтобы непрерывные и дискретизированные модели тесно совпадали до некоторой частоты wm, убедитесь, что частота Nyquist (частота дискретизации, умноженная на Pi), по крайней мере, в два раза wm. Для узкополосного фильтра необходимо сохранить форму около 10 рад/с, поэтому частота Найквиста должна быть за пределами 20 рад/с, что даёт период дискретизации не более pi/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')

Figure contains 2 axes. Axes 1 contains 4 objects of type line. These objects represent Continuous, Ts = 0.1, Ts = 0.15, Ts = 0.3. Axes 2 contains 4 objects of type line. These objects represent Continuous, Ts = 0.1, Ts = 0.15, Ts = 0.3.

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

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

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

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

notch_gui

Figure Notch Filter Discretization contains 3 axes and other objects of type uicontrol. Axes 1 with title Bode Diagram of Notch Filter contains 3 objects of type line. These objects represent Continuous, Discretized. Axes 2 contains 3 objects of type line. Axes 3 with title Filtered Sine Wave at Notch Frequency contains 4 objects of type line.