exponenta event banner

Неопределенность модели в Simulink для надежной настройки

В этом примере показано, как настроить модель Simulink ® для надежной настройки с учетом неопределенности параметров. Надежная настройка контроллера или надежный синтез контроллера для системы, смоделированной в Simulink, требует линеаризации модели так, чтобы программное обеспечение учитывало неопределенность параметров. Для этого требуется подстановка блоков (Simulink Control Design) для линеаризации, чтобы заменить значение блоков с неопределенностью параметров неопределенными параметрами или системами.

В этом примере настраивается модель системы «масса-пружина-демпфер» для надежной настройки, в которой физические параметры системы являются неопределенными. В примере показано, как настроить модель для надежной настройки с помощью программного обеспечения, такого как Control System Tuner или systune для slTuner. Он также показывает, как извлечь неопределенную систему для использования для надежной конструкции контроллера с musyn.

Система масс-пружин-демпферов

Открытие модели Simulink rct_mass_spring_damper.

open_system('rct_mass_spring_damper')

Эта модель представляет собой систему управления системой демпфера масс-пружин, показанную на следующей иллюстрации.

В этой системе прикладываемая сила F является входным сигналом установки. Когда масса m, константа демпфирования c и константа пружины k фиксированы и известны, настройка коэффициентов PID для требуемых рабочих характеристик является простой. Однако на практике физические параметры системы могут быть неопределенными. Вы можете использовать тюнер системы управления или systune для надежной настройки системы с учетом неопределенности и достижения удовлетворительной производительности в пределах диапазона ожидаемых значений для этих параметров.

Задать неопределенность параметров

Модель сконфигурирована для использования номинальных или наиболее вероятных значений физических параметров, m = 3, c = 1 и k = 2. Чтобы настроить систему на отсутствие неопределенности в этих параметрах, укажите неопределенность параметров в модели.

Во-первых, создать неопределенный реал (ureal) параметры для каждой из трех неопределенностей. Для этого примера укажите неопределенность как процентное отклонение от номинального значения.

m_un = ureal('m',3,'Percentage',40);
c_un = ureal('c',1,'Percentage',20);
k_un = ureal('k',2,'Percentage',30);

Чтобы указать эти неопределенности в модели, используйте подстановку блоков. Подстановка блоков позволяет задать линеаризацию конкретного блока в модели Simulink. В модели щелкните правой кнопкой мыши значок Spring Stiffness блок в модели и выберите «Линейный анализ» > «Задать линеаризацию выбранного блока».

В диалоговом окне «Спецификация линеаризации блоков» установите флажок «Указать линеаризацию блоков», используя одно из следующих значений, и введите k_un в текстовом поле. Нажмите кнопку ОК.

При использовании настройки системы управления для этой модели программа линеаризует модель и настраивает настраиваемые параметры с помощью этой линеаризации для вычисления системных ответов. Определение k_un как линеаризация Spring Stiffness блок заставляет программное обеспечение использовать неопределенный параметр в качестве линеаризованного значения блока вместо его номинального значения, которое является постоянным фиксированным коэффициентом усиления, равным 2.

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

Примечание

Подстановка блока используется для указания неопределенности блока, даже если блок является Uncertain LTI System блок. Если в качестве подстановки блока явно не указано неопределенное значение, настройка системы управления и slTuner использовать номинальное значение при линеаризации Uncertain LTI System блоки.

Таким же образом укажите c_un как блок линеаризации для Damping блок. Для Mass блок, в диалоговом окне «Спецификация линеаризации блоков» введите 1/m_un как неопределенное значение, поскольку коэффициент усиления этого блока является обратным по отношению к массе.

Настройка с настройкой системы управления

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

Эта выборка дает общее представление о диапазоне возможных ответов, но не обязательно отражает истинный наихудший ответ.

Конфигурация для slTuner

При использовании slTuner для настройки командной строки можно задать неопределенности в модели с помощью диалогового окна Спецификация линеаризации блоков (Block Linearization Specification). Можно также указать неопределенные замены блоков без изменения модели. Для этого используйте структуру замещения блоков при создании slTuner интерфейс. Например, создайте структуру подстановки блоков для rct_mass_spring_damper модель.

blocksubs(1).Name = 'rct_mass_spring_damper/Mass';
blocksubs(1).Value = 1/m_un;
blocksubs(2).Name = 'rct_mass_spring_damper/Damping';
blocksubs(2).Value = c_un;
blocksubs(3).Name = 'rct_mass_spring_damper/Spring Stiffness';
blocksubs(3).Value = k_un;

Используйте эту структуру для получения slTuner интерфейс с моделью с неопределенными значениями.

UST0 = slTuner('rct_mass_spring_damper','Controller',blocksubs);

Теперь можно создавать цели настройки и настраивать модель. systune настраивает систему на оптимизацию производительности во всем диапазоне неопределенности. Пример, иллюстрирующий этот рабочий процесс надежной настройки с помощью slTuner, см. Надежная настройка системы масса-пружина-демпфер.

Извлечение uss Модель установки для разработки надежного контроллера с musyn

musyn команда синтезирует надежный контроллер для установки, предполагая конфигурацию управления LFT.

Сопоставление этой структуры с моделью Simulink,

  • w - опорный вход; r, выходной сигнал блока Step.

  • u - управляющий сигнал; F, выходной сигнал блока контроллера PID.

  • z - выход установки x, выходной сигнал блока интегратора.

  • y - измерительный сигнал, который является входом контроллера, или выходной сигнал блока суммы.

Используйте эти сигналы с getIOTransfer Команда (Simulink Control Design) для извлечения установки P из slTuner интерфейс UST0. Для этого UST0 должны иметь точки анализа, определенные в каждом из этих расположений. Изучить точки анализа UST0.

getPoints(UST0)
ans =

  2×1 cell array

    {'rct_mass_spring_damper/Step/1[r]'      }
    {'rct_mass_spring_damper/Integrator/1[x]'}

Уже имеются точки анализа для w и z. Добавьте точки анализа для u и y.

addPoint(UST0,{'Sum1','Controller'});
getPoints(UST0)
ans =

  4×1 cell array

    {'rct_mass_spring_damper/Step/1[r]'      }
    {'rct_mass_spring_damper/Integrator/1[x]'}
    {'rct_mass_spring_damper/Sum1/1'         }
    {'rct_mass_spring_damper/Controller/1[F]'}

Теперь можно извлечь модель завода P для настройки с помощью musyn. Используйте имена сигналов точек анализа, указанные в скобках на выходе getPoints, для указания входов и выходов P. Для точек анализа, не имеющих имен сигналов, используйте имя блока.

Pg = getIOTransfer(UST0,{'r','F'},{'x','Sum'});

getIOTransfer возвращает genss модель. В этом случае, потому что Pg исключает блок контроллера, Pg является genss модель только с неопределенными блоками. Новообращенный Pg кому uss для конструкции контроллера с musyn.

P = uss(P)
P =

  Uncertain continuous-time state-space model with 2 outputs, 2 inputs, 3 states.
  The model uncertainty consists of the following blocks:
    c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
    k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
    m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences

Type "P.NominalValue" to see the nominal value, "get(P)" to see all properties, and 
"P.Uncertainty" to interact with the uncertain elements.

Теперь вы можете использовать musyn разработка надежного контроллера для Р. Например, разработка неструктурированного надежного контроллера, обратите внимание, что P имеет один измерительный сигнал и один управляющий сигнал, и используйте следующую команду.

[K,CLperf,info] = musyn(P,1,1);

Либо создайте PID-контроллер фиксированной структуры, как в исходной модели Simulink.

C0 = tunablePID('K','PID');
CL0 = lft(P,C0);
[CL,CLperf,info] = musyn(CL0);

Дополнительные сведения о надежной конструкции контроллера см. в разделе musyn.

См. также

| | (Simulink Control Design) | (Simulink Control Design) | (Проект управления Simulink)

Связанные темы