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

Один действительный контроллер для этой системы включает фильтр-пробку, расположенный последовательно с интегратором. Создайте модель этого контроллера.
notch = tf([1,0.5,9],[1,5,9]); integ = pid(0,0.34); C = integ*notch; bodeplot(C)

Режущий фильтр с центром 3 рад/с противодействует эффекту резонанса в G. Эта конфигурация обеспечивает более высокий коэффициент усиления петли для более быстрого общего отклика.
Дискретизируйте компенсатор.
Cdz = c2d(C,0.5);
c2d поддерживает несколько различных методов дискретизации. Поскольку эта команда не задает метод, c2d по умолчанию используется метод Zero-Order Hold (ZOH). В способе ZOH отклик дискретизированного компенсатора во временной области соответствует отклику непрерывного времени на каждом временном шаге.
Дискретизированный контроллер Cdz имеет время выборки 0,5 с. На практике выбранное время выборки может быть ограничено системой, в которой реализован контроллер, или пропускной способностью системы управления.
Сравните отклик частотной области C и Cdz.
bodeplot(C,Cdz) legend('C','Cdz');

Вертикальная линия отмечает частоту Найквиста, , где - время выборки. Вблизи частоты Найквиста отклик дискретизированного компенсатора искажается относительно отклика непрерывного времени. В результате дискретизированный фильтр с надрезом может неправильно противодействовать резонансу установки.
Чтобы исправить это, попробуйте дискретизировать компенсатор с помощью метода Тастина и сравнить с результатом ZOH. Метод дискретизации Тустина часто дает лучшее совпадение в частотной области, чем метод ZOH.
Cdt = c2d(C,0.5,'tustin'); plotopts = bodeoptions; plotopts.Ylim = {[-60,40],[-225,0]}; bodeplot(C,Cdz,Cdt,plotopts) legend('C','Cdz','Cdt')

Метод Тастина сохраняет глубину выемки. Однако способ вводит сдвиг частоты, который неприемлем для многих применений. Вы можете исправить сдвиг частоты, указав частоту пробки в качестве частоты предварительного предупреждения в преобразовании Тустина.
Дискретизируйте компенсатор с помощью метода Тастина с предварительной обработкой частоты и сравните результаты.
discopts = c2dOptions('Method','tustin','PrewarpFrequency',3.0); Cdtp = c2d(C,0.5,discopts); bodeplot(C,Cdt,Cdtp,plotopts) legend('C','Cdt','Cdtp')

Чтобы указать дополнительные опции дискретизации за пределами метода дискретизации, используйте c2dOptions. Здесь устанавливаются опции дискретизации discopts определяет как метод Тустина, так и частоту предвоенной операции. Частота предварительного действия составляет 3,0 рад/с, частота надреза в отклике компенсатора.
Использование метода Тастина с предварительным прогоном частоты дает лучше согласующуюся частотную характеристику, чем при отсутствии предварительного прорыва.