Этот пример показов, как преобразовать компенсатор из непрерывного в дискретное время с помощью нескольких методов дискретизации, чтобы идентифицировать метод, который приводит к хорошему соответствию в частотный диапазон.
Вы можете проектировать компенсатор за непрерывное время, а затем нужно преобразовать его в дискретное время для цифровой реализации. Когда вы делаете это, вы хотите, чтобы дискретизация сохраняла характеристики частотного диапазона, которые необходимы для вашей эффективности и стабильности.
В следующей системе управления 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);
The c2d
команда поддерживает несколько различных методов дискретизации. Поскольку эта команда не задает метод, c2d
использует метод по умолчанию, Удержание нулевого порядка (ZOH). В способе ZOH ответ во временной области дискретизированного компенсатора совпадает с ответом в непрерывном времени на каждом временном шаге.
Дискретизированный контроллер Cdz
имеет шаг расчета 0,5 с. На практике выбранное вами шаг расчета может быть ограничено системой, в которой вы реализуете свой контроллер, или пропускной способностью вашей системы управления.
Сравните частотный диапазон ответ C
и Cdz
.
bodeplot(C,Cdz) legend('C','Cdz');
Вертикальная линия помечает частоту Найквиста, , где - шаг расчета. Около частоты Найквиста реакция дискретизированного компенсатора искажается относительно непрерывного времени характеристики. В результате дискретизированный фильтр с надрезом может неправильно противостоять резонансу объекта.
Чтобы исправить это, попробуйте дискретизировать компенсатор с помощью метода Tustin и сравнить с результатом ZOH. Метод дискретизации Tustin часто приводит к лучшему соответствию в частотный диапазон, чем метод 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 рад/с, частота надреза в отклике компенсатора.
Использование метода Тастина с предварительной обработкой частоты приводит к лучшему соответствию частотной характеристики, чем у Тастина без предварительной обработки.