Дискретизация компенсатора

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

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

В следующей системе управления G является непрерывной системой второго порядка с резким резонансом около 3 рад/с.

Один действительный контроллер для этой системы включает в себя узкополосный фильтр последовательно с интегратором. Создайте модель этого контроллера.

notch = tf([1,0.5,9],[1,5,9]);
integ = pid(0,0.34);
C = integ*notch;
bodeplot(C)

Figure contains 2 axes. Axes 1 contains an object of type line. This object represents C. Axes 2 contains an object of type line. This object represents C.

Узкополосный фильтр с центром 3 рад/с противодействует эффекту резонанса в G. Это строение позволяет повысить коэффициент усиления цикла для более быстрого общего отклика.

Дискретизируйте компенсатор.

Cdz = c2d(C,0.5);

The c2d команда поддерживает несколько различных методов дискретизации. Поскольку эта команда не задает метод, c2d использует метод по умолчанию, Удержание нулевого порядка (ZOH). В способе ZOH ответ во временной области дискретизированного компенсатора совпадает с ответом в непрерывном времени на каждом временном шаге.

Дискретизированный контроллер Cdz имеет шаг расчета 0,5 с. На практике выбранное вами шаг расчета может быть ограничено системой, в которой вы реализуете свой контроллер, или пропускной способностью вашей системы управления.

Сравните частотный диапазон ответ C и Cdz.

bodeplot(C,Cdz)
legend('C','Cdz');

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent C, Cdz. Axes 2 contains 2 objects of type line. These objects represent C, Cdz.

Вертикальная линия помечает частоту Найквиста, π/Ts, где Ts - шаг расчета. Около частоты Найквиста реакция дискретизированного компенсатора искажается относительно непрерывного времени характеристики. В результате дискретизированный фильтр с надрезом может неправильно противостоять резонансу объекта.

Чтобы исправить это, попробуйте дискретизировать компенсатор с помощью метода 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')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent C, Cdz, Cdt. Axes 2 contains 3 objects of type line. These objects represent 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')

Figure contains 2 axes. Axes 1 contains 3 objects of type line. These objects represent C, Cdt, Cdtp. Axes 2 contains 3 objects of type line. These objects represent C, Cdt, Cdtp.

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

Использование метода Тастина с предварительной обработкой частоты приводит к лучшему соответствию частотной характеристики, чем у Тастина без предварительной обработки.

См. также

Функции

Задачи Live Editor

Похожие темы