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

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

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

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

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

Обрезка с использованием контроллера и линеаризация с 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. Линеаризация модели с помощью Simulink linmod функция.

    Чтобы прервать цикл обратной связи, введите:

    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 Toolstrip Гидравлического Привода с Цифровым Контроллером Положения на вкладке 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.

Похожие примеры

Подробнее о