exponenta event banner

Линеаризация моделей Simulink с неопределенностью

В этом примере показано, как вычислять неопределенные линеаризации с помощью надежных управляющих Toolbox™ и Simulink ® Control Design™. В зависимости от способа использования Simulink предлагаются два удобных рабочих процесса. Полученные в результате неопределенные линеаризации имеют форму структуры данных пространства неопределенных состояний (USS) в Rustive Control Toolbox, которая может использоваться функциями анализа в Rustive Control Toolbox.

Введение

Графический интерфейс пользователя в Simulink является естественной средой для моделирования и моделирования систем управления. Используя возможности линеаризации в Simulink Control Design и элементы неопределенности в Rustible Control Toolbox, можно задать неопределенность для определенных блоков в модели Simulink, а затем извлечь неопределенную линеаризованную модель.

В этом примере рабочие характеристики PID-контроллера проверяются при наличии неопределенности. Существуют два подхода для вычисления линеаризаций неопределенных систем. Каждый из подходов разработан для удовлетворения различных потребностей при работе в Simulink. Эти подходы кратко изложены в следующих разделах.

Подход № 1: Использование блоков пространства неопределенного состояния

Этот первый подход наиболее применим, когда вы уже используете блоки Uncretain State Space как часть процесса проектирования системы управления в Simulink. Как показано в примере «Анализ надежности в Simulink» (Robustness Analysis in Simulink), блок «Пространство неопределенного состояния» (Confrecture State Space) в панели инструментов надежного управления позволяет задать неопределенность в модели Simulink.

В следующем примере динамика как установки, так и датчика является неопределенной. Неопределенность динамики установки включает в себя:

  • Настоящий полюс unc_pole расположение которого варьируется от -10 до -4

  • Немодулированная динамика input_unc (25% относительная неопределенность при низкой частоте повышается до 100% неопределенности при 130 рад/с).

unc_pole = ureal('unc_pole',-5,'Range',[-10 -4]);
plant = ss(unc_pole,5,1,0);
wt = makeweight(0.25,130,2.5);
input_unc = ultidyn('input_unc',[1 1]);

Неопределенная динамика датчика определяется как

sensor_pole = ureal('sensor_pole',-20,'Range',[-30 -10]);
sensor = tf(1,[1/(-sensor_pole) 1]);

rct_ulinearize_uss модель использует блоки пространства неопределенного состояния (выделены синим цветом) для моделирования этой неопределенности:

mdl = 'rct_ulinearize_uss';
open_system('rct_ulinearize_uss')

Эта модель Simulink готова к вычислению неопределенной линеаризации. Линейная модель имеет вход в опорном блоке rct_ulinearize_uss/Reference и выпуск продукции завода rct_ulinearize_uss/Uncertain Plant. Эти входные и выходные точки линеаризации задаются с помощью модуля Simulink Control Design. Точки линеаризации находятся с помощью следующей команды:

io = getlinio(mdl);

Неопределенная линеаризация вычисляется с помощью команды ulinearize. Эта команда возвращает неопределенный объект пространства состояний (USS), который зависит от неопределенных переменных input_unc, sensor_pole, и unc_pole:

sys_ulinearize = ulinearize(mdl,io)
sys_ulinearize =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 5 states.
  The model uncertainty consists of the following blocks:
    input_unc: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences
    sensor_pole: Uncertain real, nominal = -20, range = [-30,-10], 1 occurrences
    unc_pole: Uncertain real, nominal = -5, range = [-10,-4], 1 occurrences

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

На этом первый подход завершается. Закройте модель Simulink:

bdclose(mdl)

Подход No2: использование встроенных блоков Simulink

Второй подход использует пользовательский интерфейс Simulink Control Design для спецификации линеаризации блоков для задания неопределенности линеаризации. Функция спецификации линеаризации блоков в модуле Simulink Control Design позволяет заменить любой блок Simulink либо усилением, либо объектом LTI, либо неопределенной переменной надёжной панели инструментов управления. Этот подход лучше всего подходит при работе с моделями, не использующими блок «Пространство неопределенного состояния». Основное преимущество этого подхода заключается в том, что спецификация неопределенности не влияет на другие операции Simulink, такие как моделирование.

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

mdl = 'rct_ulinearize_builtin';
open_system(mdl);

Щелчком правой кнопкой мыши по rct_ulinearize_builtin/Plant и выбрав пункт меню «Линейный анализ» - > «Задать линеаризацию», можно указать, какое значение должен иметь этот блок. При вводе выраженияplant*(1+wt*input_unc) в диалоговом окне, показанном ниже, блок «Plant» линеаризуется с соответствующей неопределенной моделью состояния-пространства (объект USS).

Аналогично, можно назначить неопределенную модель sensor как линеаризация для блока rct_ulinearize_builtin/Sensor Gain.

Теперь можно линеаризовать rct_ulinearize_builtin с помощью команды «Управление симуляцией» linearize:

io = getlinio(mdl);
sys_linearize = linearize(mdl,io)
sys_linearize =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 5 states.
  The model uncertainty consists of the following blocks:
    input_unc: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences
    sensor_pole: Uncertain real, nominal = -20, range = [-30,-10], 1 occurrences
    unc_pole: Uncertain real, nominal = -5, range = [-10,-4], 1 occurrences

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

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

Использование неопределенного результата линеаризации

Оба подхода линеаризации создают неопределенный объект state-space (USS), который может быть проанализирован стандартными командами Rustive Control Toolbox. В этом примере эта модель USS используется для нахождения наихудшего коэффициента усиления линеаризованного отклика с замкнутым контуром.

[maxg,worstun] = wcgain(sys_linearize);

Результирующие значения наихудшего случая для неопределенных переменных могут затем использоваться для сравнения с номинальным откликом. Это сравнение показывает, что характеристики МТС не являются надежными для установки и неопределенности датчика.

sys_worst = usubs(sys_linearize,worstun);
step(sys_linearize.NominalValue,sys_worst)
legend('Nominal','Worst-case');

На этом пример завершается. Закройте модель Simulink:

bdclose(mdl);

См. также

Блоки

Функции

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