Этот пример показывает, как улучшить точность частотного диапазона системы с задержкой, которая является дробным кратным шаг расчета.
Для систем с задержками, которые не являются целочисленными множителями шага расчета, 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);
Опция FractDelayApproxOrder
задает порядок фильтра Thiran, который аппроксимирует дробный фрагмент задержки. Другие опции в discopts
неизменны. Таким образом Gtf
является дискретизацией Тастина 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