Этот пример показывает, как можно линеаризовать гидравлическую модель объекта управления, чтобы поддержать анализ и проектирование устойчивости системы управления.
В зависимости от программного обеспечения вы имеете в наличии, используете соответствующие разделы этого примера, чтобы исследовать различную линеаризацию и аналитические методы.
Обрезка Используя контроллер и линеаризует с Simulink функцию linmod
Линеаризуйте с программным обеспечением Simulink Control Design
Чтобы открыть Гидравлический Привод с Цифровым Контроллером Положения модель в качестве примера, введите ssc_hydraulic_actuator_digital_control
в Командном окне MATLAB®. Чтобы отобразить скрытые имена блока в учебных целях, выберите Display и снимите флажок Hide Automatic Names.
Модель представляет двухсторонний клапан, действующий в схеме с обратной связью вместе с цилиндром двойного действия. Дважды кликните Гидравлическую подсистему Привода, чтобы видеть настройку модели.
Контроллер представлен как непрерывно-разовая передаточная функция плюс транспортная задержка, которая допускает вычислительное время, и нулевой порядок содержат, когда реализовано в дискретное время. Подсистема точек ввода-вывода Линеаризации позволяет вам легко повредить и восстановить цикл управления с обратной связью путем установки переменной ClosedLoop базового рабочего пространства на 0 или 1, соответственно.
Можно быстро сгенерировать и просмотреть частотную характеристику маленькую сигнала путем нажатия на гиперссылку Linearize
в образцовой аннотации. Чтобы просмотреть скрипт MATLAB, который генерирует частотную характеристику, кликните по следующей гиперссылке в той аннотации, see code
. Эта документация обеспечивает справочную информацию и альтернативные способы линеаризации на основе программного обеспечения, которое вы имеете.
В целом, чтобы получить нетривиальную линеаризовавшую модель ввода - вывода и сгенерировать частотную характеристику, необходимо задать вводы и выводы образцового уровня. Гидравлический Привод с Цифровыми Моделями контроллеров Положения удовлетворяет это требование двумя способами, в зависимости от того, как вы линеаризуете:
Simulink® требует верхней части - или порты ввода и вывода образцового уровня для линеаризации с linmod
. Модель имеет такие порты, отметил In1
и Out1
.
Программное обеспечение Simulink Control Design™ требует, чтобы вы задали сигнальные линии ввода и вывода с точками линеаризации. Заданные строки должны быть строками Сигнала Simulink, не строками физического соединения Simscape™. Модели задали такие точки линеаризации. Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, см. документацию для того продукта.
Откройте осциллограф Положения Загрузки и моделируйте модель в нормальной настройке контроллера с обратной связью.
Вы видите, что модель имеет квазилинейный установившийся ответ между 2 и 3 секундами, когда двухсторонний клапан открыт. Поэтому состояние в 2,5 секунды является рабочей точкой, подходящей для линеаризации.
linmod
Установите параметры контроллера.
Чтобы задать шаг расчета для реализации дискретного времени контроллера, введите следующее в Окне Команды MATLAB:
ts = 0.001;
Чтобы задать непрерывно-разовый числитель контроллера и знаменатель, введите:
num = -0.5; den = [1e-3 1];
Найдите рабочую точку путем выполнения с обратной связью и выбора состояния в 2,5 секунды, когда пользовательский двухсторонний клапан будет открыт.
Чтобы закрыть обратную связь, введите:
assignin('base','ClosedLoop',1);
Чтобы моделировать модель и сохранить информацию рабочей точки в форме вектора состояния X и входной вектор U, введите:
[t,x,y] = sim('ssc_hydraulic_actuator_digital_control'); idx = find(t>2.5,1); X = x(idx,:); U = y(idx);
Линеаризуйте модель с помощью функции linmod
Simulink.
Чтобы повредить обратную связь, введите:
assignin('base','ClosedLoop',0);
Чтобы линеаризовать модель, введите:
[a,b,c,d] = linmod('ssc_hydraulic_actuator_digital_control',X,U);
Закройте обратную связь путем ввода:
assignin('base','ClosedLoop',1);
Чтобы сгенерировать Диаграмму Боде с соглашением отрицательной обратной связи, введите следующее в Окне Команды MATLAB:
c = -c; d = -d; npts = 100; w = logspace(-3,5,npts); G = zeros(1,npts); for i = 1:npts G(i) = c*(1i*w(i)*eye(size(a))-a)^-1*b +d; end subplot(211), semilogx(w,20*log10(abs(G))) grid ylabel('Magnitude (dB)') subplot(212), semilogx(w,180/pi*unwrap(angle(G))) ylabel('Phase (degrees)') xlabel('Frequency (rad/s)') grid
Чтобы работать через этот раздел, у вас должна быть лицензия Simulink Control Design.
Программное обеспечение Simulink Control Design имеет инструменты, которые помогают вам найти рабочие точки, и возвращает объект модели в пространстве состояний, который задает имена состояния. Это - рекомендуемый способ линеаризовать модели Simscape.
В верхней панели меню Гидравлического Привода с Цифровыми Моделями контроллеров Положения выберите Analysis> Control Design> Linear Analysis .
В Linear Analysis Tool, в Operating Point выпадающий список, выбирают Linearize At
. Введите время снимка состояния симуляции секунд 2.5
и нажмите OK.
Нажмите кнопку графика Bode.
Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, см. документацию Simulink Control Design.