В этом примере показано, как повысить точность системы в частотной области с временной задержкой, которая является дробным кратным времени выборки.
Для систем с временными задержками, которые не являются целыми кратными времени выборки, Tustin и Matched методы по умолчанию округляют временные задержки до ближайшего кратного времени выборки. Чтобы повысить точность этих методов для таких систем, c2d может опционально аппроксимировать дробную часть временной задержки дискретным фильтром всех частот (фильтром Тирэна). В этом примере дискретизируйте систему как без, так и с приближением дробной части задержки и сравните результаты.
Создайте функцию непрерывной передачи времени с задержкой транспортировки 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 опять же, используя дискретный фильтр всех частот третьего порядка (фильтр Тирана) для аппроксимации полупериодической части задержки.
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 аппроксимировать дробную часть временной задержки как фильтр Тирэна.
c2d | c2dOptions | thiran