Сверхдискретизируйте систему дискретного времени

Этот пример показывает, как сверхдискретизировать систему с помощью и d2d и команд upsample и сравнивает результаты обоих к исходной системе.

Повышающая дискретизация системы может быть полезной, например, когда необходимо реализовать цифровой контроллер на более быстром уровне, чем вы первоначально разработали ее для.

Создайте систему дискретного времени

G(z)=z+0.4z-0.7

с шагом расчета 0,3 с.

G = tf([1,0.4],[1,-0.7],0.3);

Передискретизируйте систему в 0,1 с с помощью d2d.

G_d2d = d2d(G,0.1)
G_d2d =
 
  z - 0.4769
  ----------
  z - 0.8879
 
Sample time: 0.1 seconds
Discrete-time transfer function.

По умолчанию d2d использует метод "нулевого порядка содержит" (ZOH), чтобы передискретизировать систему. Передискретизируемая система имеет тот же порядок как G.

Передискретизируйте систему снова в 0,1 с, с помощью upsample.

G_up = upsample(G,3)
G_up =
 
  z^3 + 0.4
  ---------
  z^3 - 0.7
 
Sample time: 0.1 seconds
Discrete-time transfer function.

Второй вход, 3, говорит upsample передискретизировать G в шаге расчета в три раза быстрее, чем шаг расчета G. Этот вход к upsample должен быть целым числом.

G_up имеет в три раза больше полюсов и обнуляет, чем G.

Сравните переходные процессы исходной модели G с передискретизируемыми моделями G_d2d и G_up.

step(G,'-r',G_d2d,':g',G_up,'--b')
legend('G','d2d','upsample','Location','SouthEast')

Переходной процесс сверхдискретизированной модели G_up совпадает точно с переходным процессом исходной модели G. Ответ передискретизируемой модели G_d2d соответствует только на каждой третьей выборке.

Сравните частотную характеристику исходной модели с передискретизируемыми моделями.

bode(G,'-r',G_d2d,':g',G_up,'--b')
legend('G','d2d','upsample','Location','SouthWest')

В частотном диапазоне также, модель G_up, созданная с командой upsample, совпадает с исходной моделью точно до частоты Найквиста исходной модели.

Используя upsample обеспечивает лучшее соответствие, чем d2d в обоих временной и частотный диапазон. Однако upsample увеличивает порядок модели, который может быть нежелательным. Кроме того, upsample только доступен, где исходный шаг расчета является целочисленным кратным новый шаг расчета.

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

| |

Похожие темы