В этом примере показано, как можно линеаризовать гидравлическую модель объекта управления, чтобы поддержать анализ и проектирование устойчивости системы управления.
В зависимости от программного обеспечения вы имеете в наличии, используете соответствующие разделы этого примера, чтобы исследовать различную линеаризацию и аналитические методы.
Чтобы открыть Гидравлический Привод с Цифровым Контроллером Положения модель в качестве примера, введите ssc_hydraulic_actuator_digital_control
в командном окне MATLAB®.
Модель представляет двухсторонний клапан, действующий в схеме с обратной связью вместе с гидроцилиндром двойного действия. Дважды кликните Гидравлическую подсистему Привода, чтобы видеть настройку модели.
Контроллер представлен как передаточная функция непрерывного времени плюс транспортная задержка, которая допускает вычислительное время, и нулевой порядок содержат, когда реализовано в дискретное время. Подсистема точек ввода-вывода Линеаризации позволяет вам легко повредить и восстановить цикл управления с обратной связью путем установки переменной 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);
Линеаризуйте модель с помощью Simulink linmod
функция.
Чтобы повредить обратную связь, введите:
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.
В Панели инструментов Simulink Гидравлического Привода с Цифровым окном Моделей контроллеров Положения, на вкладке Apps, под Control Systems, нажимают Model Linearizer.
В окне Model Linearizer, на вкладке Linear Analysis, в Operating Point выпадающий список, выбирают Linearize At
. Введите время снимка состояния симуляции 2.5
секунды и нажимают OK.
Нажмите кнопку графика Bode.
Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, см. документацию Simulink Control Design.