Этот пример показывает сравнение нескольких методов дискретизации узкополосного фильтра. Несмотря на то, что компоненты системы управления часто проектируются постоянно, они обычно должны быть дискретизированы для реализации на цифровых компьютерах и встраиваемых процессорах.
Узкополосные фильтры предназначены для отклонения содержимого сигнала на определенной частоте путем резкого ослабления усиления на этой частоте. В данном примере мы рассматриваем следующий узкополосный фильтр:
Вы можете построить график частотной характеристики этого фильтра с bode
команда:
H = tf([1 0.5 100],[1 5 100]); bode(H), grid
Этот узкополосный фильтр обеспечивает 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')
Аналогично, импульсно-инвариантная дискретизация имеет ту же импульсную характеристику, что и исходная система:
G = tf([1 -3],[1 2 10]); Gd = c2d(G,Ts,'imp'); impulse(G,'b',Gd,'r') legend('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')
Это сравнение указывает, что Согласованный метод обеспечивает наиболее точное приближение частотного диапазона узкополосного фильтра. Однако можно дополнительно улучшить точность алгоритма Тастина, задав частоту предварки, равную частоте надреза. Это обеспечивает точное соответствие около 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
, убедитесь, что частота 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')
Как предсказано, дискретизация остается довольно точной для Ts < 0.16
но начинает разбиваться на большие интервалы дискретизации.
Щелкните по ссылке ниже, чтобы запустить интерактивный графический интерфейс пользователя, который дополнительно показывает, как дискретизированный узкополосный фильтр зависит от выбора алгоритма дискретизации и частоты дискретизации.
Откройте графический интерфейс пользователя дискретизации Notch
notch_gui