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