Отличайтесь значения неуверенности через несколько неопределенных блоков пространства состояний

Этот пример показывает рабочий процесс для переменных значений неуверенности через несколько Неопределенных блоков Пространства состояний в модели Simulink®. Используйте этот подход для сложных моделей с большим количеством неопределенных переменных или Неопределенных блоков Пространства состояний.

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

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

    rct_sim_ex2

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

    Unmodeled dynamics и блоки First order with uncertain pole зависят от неопределенных переменных input_unc и a.

  2. Дважды кликните блок Unmodeled dynamics, чтобы открыть диалоговое окно параметров блоков. Поле значения Неуверенности содержит переменную val_all. Точно так же поле значения Неуверенности в диалоговом окне параметров блоков First order with uncertain pole содержит переменную val_all. Вы используете эту переменную, чтобы отличаться неопределенные значения переменных через обоих Неопределенные блоки Пространства состояний.

    Примечание

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

  3. В посдказке MATLAB задайте val_all = []; и нажатие кнопки

    моделировать модель.

    Программное обеспечение использует номинальную стоимость неопределенных переменных a и input_unc во время симуляции. После того, как симуляция завершается, блок MultiPlot Graph показывает следующей фигуре.

  4. Сгенерируйте случайные выборки значений неуверенности:

    1. Найдите все Неопределенные блоки Пространства состояний, и сопоставил неопределенные переменные в модели.

      uvars=ufind('rct_sim_ex2')

      MATLAB возвращает следующий результат:

      uvars =

                a: [1x1 ureal]
        input_unc: [1x1 ultidyn]
      

      Неопределенными переменными a и input_unc является ureal и объекты ultidyn, соответственно и структура, uvars перечисляет их по наименованию.

    2. Случайным образом демонстрационный неопределенные переменные.

      val_all = usample(uvars)

      MATLAB возвращает следующий результат:

      val_all =

                a: -1.1167
        input_unc: [1x1 ss]
      

      Структура val_all содержит демонстрационные значения неопределенных переменных a и input_unc. Программное обеспечение выбирает значения в заданных областях значений неуверенности для a и input_unc.

  5. Моделируйте модель для значений неуверенности val_all. Путем повторения процесса в цикле for можно оценить, как неуверенность влияет на образцовые ответы. Например, выполните 10 симуляций с помощью случайных значений неуверенности:

    for i=1:10;
           val_all = usample(uvars)
           sim('rct_sim_ex2',10);
    end

Во время каждой симуляции, демонстрационных значений программного обеспечения неопределенных переменных input_unc и a и графиков ответ для выбранных значений. Блок MultiPlot Graph показывает следующие ответы, полученные с помощью значений случайной выборки неопределенных переменных.