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

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

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

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. These objects represent G, Gt. Axes object 2 contains 2 objects of type line. These objects represent 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')

Figure contains 2 axes objects. Axes object 1 contains 3 objects of type line. These objects represent G, Gt, Gtf. Axes object 2 contains 3 objects of type line. These objects represent G, Gt, Gtf.

Величины Gt и Gtf идентичны. Однако фаза Gtf предоставляет лучшее соответствие фазе системы непрерывного времени через резонанс. Когда частота приближается к частоте Найквиста, это соответствие фазы ухудшается. Приближение высшего порядка дробной задержки улучшило бы фазу, соответствующую ближе к частотам Найквиста. Однако каждый дополнительный порядок приближения добавляет дополнительный порядок (или состояние) к дискретизированной системе.

Если ваше приложение требует точного соответствия частоты около частоты Найквиста, используйте c2dOptions сделать c2d аппроксимируйте дробный фрагмент задержки как фильтр Thiran.

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

Функции

Задачи Live Editor

Похожие темы