Этот пример показывает, как улучшить точность частотного диапазона системы с временной задержкой, которая является дробным кратным шага расчета.
Для систем с задержками по времени, которые не являются целочисленными кратными шага расчета, 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')
Существует фаза задержка между дискретизированной системой 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')
Величины Gt
и Gtf
идентичны. Однако фаза Gtf
обеспечивает лучшее соответствие фазе системы непрерывного времени через резонанс. Когда частота приближается к частоте Найквиста, это совпадение фазы ухудшается. Более высокое приближение дробной задержки улучшит согласование фаз ближе к частотам Найквиста. Однако каждый дополнительный порядок приближения добавляет дополнительный порядок (или состояние) в дискретизированную систему.
Если ваше приложение требует точного согласования частот вблизи частоты Найквиста, используйте c2dOptions
чтобы сделать c2d
аппроксимируйте дробный фрагмент временной задержки как фильтр Thiran.
c2d
| c2dOptions
| thiran