Повышение точности дискретизированной системы с временной задержкой

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

Для систем с задержками по времени, которые не являются целочисленными кратными шага расчета, Tustin и Matched методы по умолчанию округляют задержки до ближайшего кратного шага расчета. Чтобы улучшить точность этих методов для таких систем, c2d может опционально аппроксимировать дробный фрагмент временной задержки с помощью фильтра полного прохождения дискретного времени (фильтр Thiran). В этом примере дискретизируйте систему как без, так и с приближением дробного фрагмента задержки и сравните результаты.

Создайте передаточную функцию в непрерывном времени с задержкой транспортировки 2,5 с.

G = tf(1,[1,0.2,4],'ioDelay',2.5);

Дискретизируйте G использование шага расчета 1 с. G имеет резкий резонанс 2 рад/с. Во шаге расчета 1 с этот пик близок к частоте Найквиста. Для соответствия частотного диапазона, которое сохраняет динамику около пика, используйте метод Тустина с предваренной частотой 2 рад/с.

discopts = c2dOptions('Method','tustin','PrewarpFrequency',2);
Gt = c2d(G,1,discopts)
Warning: Rounding delays to the nearest multiple of the sampling period. For more accuracy in the time domain, use the ZOH or FOH methods. For more accuracy in the frequency domain, use Thiran filters to approximate the fractional delays (type "help c2dOptions" for more details).
Gt =
 
           0.1693 z^2 + 0.3386 z + 0.1693
  z^(-3) * ------------------------------
               z^2 + 0.7961 z + 0.913
 
Sample time: 1 seconds
Discrete-time transfer function.

Программа предупреждает вас, что она округляет дробную задержку времени до ближайшего кратного шага расчета. В этом примере временная задержка в 2,5 раза больше шага расчета (2,5 с) преобразуется в дополнительный коэффициент z^(-3) в Gt.

Сравнение Gt в систему непрерывного времени G.

plotopts = bodeoptions;
plotopts.Ylim = {[-100,20],[-1080,0]};
bodeplot(G,Gt,plotopts); 
legend('G','Gt')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent G, Gt. Axes 2 contains 2 objects of type line. These objects represent G, Gt.

Существует фаза задержка между дискретизированной системой Gt и систему в непрерывном времени G, который растет, когда частота приближается к частоте Найквиста. Эта задержка фазы в значительной степени связана с округлением дробной временной задержки. В этом примере дробная задержка составляет половину шага расчета.

Дискретизируйте G снова используя фильтр с дискретным временем третьего порядка (фильтр Thiran), чтобы аппроксимировать фрагмент задержки с полупериодом.

discopts.FractDelayApproxOrder = 3;
Gtf = c2d(G,1,discopts);

The FractDelayApproxOrder опция задает порядок фильтра Thiran, который аппроксимирует дробный фрагмент задержки. Другие опции в discopts не изменяются. Таким образом Gtf является дискретизацией Tustin G с предваркой при 2 рад/с.

Сравнение Gtf на G и Gt.

plotopts.PhaseMatching = 'on';
bodeplot(G,Gt,Gtf,plotopts);
legend('G','Gt','Gtf','Location','SouthWest')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent G, Gt, Gtf. Axes 2 contains 3 objects of type line. These objects represent G, Gt, Gtf.

Величины Gt и Gtf идентичны. Однако фаза Gtf обеспечивает лучшее соответствие фазе системы непрерывного времени через резонанс. Когда частота приближается к частоте Найквиста, это совпадение фазы ухудшается. Более высокое приближение дробной задержки улучшит согласование фаз ближе к частотам Найквиста. Однако каждый дополнительный порядок приближения добавляет дополнительный порядок (или состояние) в дискретизированную систему.

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

См. также

Функции

Задачи Live Editor

Похожие темы