В этом примере показано, как преобразовать компенсатор от непрерывного до дискретного времени с помощью нескольких методов дискретизации, чтобы идентифицировать метод, который дает к хорошему соответствию в частотном диапазоне.
Вы можете спроектировать компенсатор в непрерывное время, и затем должны преобразовать его в дискретное время для цифровой реализации. Когда вы делаете так, вы хотите, чтобы дискретизация сохранила характеристики частотного диапазона, которые важны для вашей эффективности и требований устойчивости.
В следующей системе управления, 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
использует метод по умолчанию, Хранение Нулевого Порядка (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 рад/с, частота метки в ответе компенсатора.
Используя метод Тастина с частотой предварительное деформирование дает к лучше соответствующей частотной характеристике, чем Тастин без предварительного деформирования.