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

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

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

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

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.

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

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, Тастина и Совпадающих алгоритмов:

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, убедитесь, что частотой Найквиста (времена частоты дискретизации Пи) является, по крайней мере, дважды 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')

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_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.