Линеаризуйте модель объекта управления для использования в проекте управления с обратной связью

В этом примере показано, как можно линеаризовать гидравлическую модель объекта управления, чтобы поддержать анализ и проектирование устойчивости системы управления.

В зависимости от программного обеспечения вы имеете в наличии, используете соответствующие разделы этого примера, чтобы исследовать различную линеаризацию и аналитические методы.

Исследуйте модель

Чтобы открыть Гидравлический Привод с Цифровым Контроллером Положения модель в качестве примера, введите 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 секунды является рабочей точкой, подходящей для линеаризации.

Обрезка Используя контроллер и линеаризует с Simulink linmod Функция

  1. Установите параметры контроллера.

    Чтобы задать шаг расчета для реализации дискретного времени контроллера, введите следующее в Окне Команды MATLAB:

    ts = 0.001;

    Чтобы задать контроллер непрерывного времени числитель и знаменатель, введите:

    num = -0.5;
    den = [1e-3 1];
  2. Найдите рабочую точку путем выполнения с обратной связью и выбора состояния в 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);
  3. Линеаризуйте модель с помощью linmod Simulink функция.

    Чтобы повредить обратную связь, введите:

    assignin('base','ClosedLoop',0);

    Чтобы линеаризовать модель, введите:

    [a,b,c,d] = linmod('ssc_hydraulic_actuator_digital_control',X,U);

    Закройте обратную связь путем ввода:

    assignin('base','ClosedLoop',1);
  4. Чтобы сгенерировать Диаграмму Боде с соглашением отрицательной обратной связи, введите следующее в Окне Команды 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.

Программное обеспечение Simulink Control Design имеет инструменты, которые помогают вам найти рабочие точки, и возвращает объект модели в пространстве состояний, который задает имена состояния. Это - рекомендуемый способ линеаризовать модели Simscape.

  1. В Панели инструментов Simulink Гидравлического Привода с Цифровым окном Моделей контроллеров Положения, на вкладке Apps, под Control Systems, нажимают Model Linearizer.

  2. В окне Model Linearizer, на вкладке Linear Analysis, в Operating Point выпадающий список, выбирают Linearize At. Введите время снимка состояния симуляции 2.5 секунды и нажимают OK.

  3. Нажмите кнопку графика Bode.

Для получения дополнительной информации об использовании программного обеспечения Simulink Control Design для обрезки и линеаризации, см. документацию Simulink Control Design.

Связанные примеры

Больше о