exponenta event banner

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

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

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

Изучение модели

Чтобы открыть пример модели гидравлического привода с цифровым регулятором положения, введите ssc_hydraulic_actuator_digital_control в окне команд MATLAB ® .

Модель представляет собой двухходовой клапан, действующий в замкнутом контуре вместе с цилиндром двойного действия. Дважды щелкните подсистему гидравлического привода для просмотра конфигурации модели.

Контроллер представлен как функция передачи непрерывного времени плюс транспортная задержка, которая обеспечивает вычислительное время и удержание нулевого порядка при реализации в дискретное время. Подсистема точек ввода-вывода Linearization позволяет легко разорвать и восстановить контур управления обратной связью, установив для базовой переменной рабочей области значение 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 Command Window следующее:

    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 plot.

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

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

Подробнее