В этом примере показано, как улучшить точность частотного диапазона системы с задержкой, которая является дробным кратным шаг расчета.
Для систем с задержками, которые не являются целочисленными множителями шага расчета, 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