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

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

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

В следующей системе управления, 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);

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 шаг расчета. Около частоты Найквиста ответ дискретизированного компенсатора искажен относительно ответа непрерывного времени. В результате дискретизированный с пазами фильтр не может правильно противодействовать резонансу объекта.

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

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

Похожие темы