В этом примере показано, как спроектировать компенсатор для модели объекта управления, заданной данными частотной характеристики (FRD), с помощью Control System Designer.
Непараметрические представления моделей объекта управления, такие как данные частотной характеристики, часто используются для анализа и разработки системы управления. Эти модели FRD обычно получают из:
1) Оборудование анализатора сигналов, которое выполняет измерения частотного диапазона в системах.
2) Непараметрические методы оценки, использующие системные данные временной характеристики. Для оценки моделей FRD можно использовать следующие продукты:
Simulink ® Control Design™:
Функция: frestimate
(Simulink Control Design)
Пример: Оценка частотной характеристики с использованием основанных на симуляции методов (Simulink Control Design).
Signal Processing Toolbox™:
Функция: tfestimate
(Signal Processing Toolbox).
System Identification Toolbox™:
В этом примере проектируйте контроллер скорости вращения двигателя, который приводит в действие угол дросселя двигателя:
Частотная характеристика двигателя уже оценена. Загрузка и просмотр данных.
load FRDPlantDemoData.mat
AnalyzerData
AnalyzerData = struct with fields:
Response: [594x1 double]
Frequency: [594x1 double]
FrequencyUnits: 'rad/s'
Создайте объект модели FRD:
FRDPlant = frd(AnalyzerData.Response,AnalyzerData.Frequency,... 'Unit',AnalyzerData.FrequencyUnits);
Требования к проектированию:
Нулевая установившаяся ошибка для изменения задающей скорости шага
Запас по фазе более 60 степени
Запас по амплитуде больше 20 дБ.
Откройте Control System Designer.
controlSystemDesigner({'bode','nichols'},FRDPlant)
Control System Designer откроется с редакторами Bode и Nichols разомкнутого контура.
Вы можете спроектировать компенсатор, сформировав частотную характеристику без разомкнутого контура в редакторе Bode или редакторе Николса. В этих редакторах в интерактивном режиме изменяйте коэффициент усиления, полюсы и нули компенсатора.
Чтобы удовлетворить требованию отслеживания нулевой статической ошибки, добавьте интегратор к компенсатору. Щелкните правой кнопкой мыши область графика редактора Bode и выберите Add Pole/Zero > Integrator.
Чтобы удовлетворить требования к запасу по амплитуде и фазе, добавьте нуль к компенсатору. Щелкните правой кнопкой мыши область графика редактора Bode и выберите Add Pole/Zero > Real Zero. Измените положение нуля и коэффициент усиления компенсатора до тех пор, пока вы не удовлетворите маржинальным требованиям.
Одной из возможных конструкций, которая удовлетворяет требования проекта, является:
Этот компенсатор проекта, который является ПИ-контроллером, достигает запаса по усилению 20,7 дБ и запаса по фазе 70,8 степеней.
Экспортируйте разработанный компенсатор в рабочую область. Нажмите Экспорт.
Проверьте эффективность контроллера путем симуляции отклика двигателя с помощью нелинейной модели в Simulink ®. В данном примере результаты симуляции валидации заключаются в EngineStepResponse
.
Постройте график отклика двигателя на изменение задающей скорости с 2000 до 2500 об/мин:
plot(EngineStepResponse.Time,EngineStepResponse.Speed) title('Engine Step Response') xlabel('Time (s)') ylabel('Engine Speed (RPM)')
Ответ показывает нулевую установившуюся ошибку и хорошо поведенные переходные процессы со следующими метриками.
stepinfo(EngineStepResponse.Speed,EngineStepResponse.Time)
ans = struct with fields:
RiseTime: 1.1048
SettlingTime: 1.7194
SettlingMin: 2.4501e+03
SettlingMax: 2.5078e+03
Overshoot: 0.3127
Undershoot: 0
Peak: 2.5078e+03
PeakTime: 2.3853