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

Этот пример показывает, как настроить модель Simulink® для устойчивой настройки против неуверенности параметра.

Чтобы выполнить такую настройку, сконфигурируйте модель Simulink, таким образом, что Control System Tuner или slTuner принимают неуверенность во внимание. Выполнение так требует замены блока (Simulink Control Design) для линеаризации, чтобы заменить значение блоков, которые имеют неуверенность параметра с неопределенными параметрами или системами.

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

Система массового демпфера Spring

Откройте модель Simulink rct_mass_spring_damper.

open_system('rct_mass_spring_damper')

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

В этой системе приложенная сила F является входом объекта. ПИД-регулятор генерирует силу, необходимую, чтобы управлять массовым положением x. Когда массовый m, ослабляющий постоянный c и коэффициент упругости k фиксируется и известен, настройка коэффициентов ПИДа для желаемой производительности является прямой. На практике, однако, параметры физической системы могут быть сомнительными. Можно использовать Control System Tuner или 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 по модели и выберите Linear Analysis> Specify Selected Block Linearization.

В диалоговом окне Block Linearization Specification проверяйте Specify block linearization using one of the following и введите k_un в текстовое поле. Нажмите OK.

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

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

Примечание

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

Таким же образом задайте c_un как линеаризацию блока для блока Damping. Для блока Mass, в диалоговом окне Block Linearization Specification, вводят 1/m_un как неопределенное значение, потому что усиление этого блока является инверсией массы.

Настройтесь с Control System Tuner

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

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

Настройка для slTuner

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

blocksubs(1).Name = 'rct_mass_spring_damper/Mass';
blocksubs(1).Value = 1/um;
blocksubs(2).Name = 'rct_mass_spring_damper/Damping';
blocksubs(2).Value = uc;
blocksubs(3).Name = 'rct_mass_spring_damper/Spring Stiffness';
blocksubs(3).Value = uk;

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

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

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

Смотрите также

| |

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

Больше о