Улучшите точность дискретизированной системы с задержкой

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

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

Смотрите также

| |

Похожие темы