exponenta event banner

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

В этом примере показано, как моделировать модель Simulink ®, содержащую несколько блоков пространства неопределенного состояния. Можно выполнить выборку всех неопределенных блоков одновременно с помощью uvars команда. Этот подход полезен, если модель содержит большое количество неопределенных переменных или блоков пространства неопределенного состояния.

Неопределенная модель

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

mdl = "rctMultiUncertainModel";
open_system(mdl)

Модель содержит два блока пространства неопределенного состояния. Немодулированный блок динамики предварительно сконфигурирован для представления неопределенной динамики с частотно-зависимым весом формы. wt*input_unc.

input_unc = ultidyn('input_unc',[1 1]);
wt = makeweight(0.25,130,2.5);

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

unc_sys = ss(ureal('a',-1,'Range',[-2 -.5]),1,5,0);

Ввод шага подает неопределенную систему, и блок MultiPlot Graph показывает систему.

Моделирование номинальной модели

Чтобы смоделировать модель, Simulink должен установить неопределенные параметры в обоих этих блоках в конкретные, не неопределенные значения. Используйте параметр «Значение неопределенности» для задания этих значений. В rctMultiUncertainModel, оба блока предварительно настроены для использования переменной рабочей области vals для этого параметра. Для моделирования модели с использованием номинальных значений всех неопределенных параметров установите vals = [].

vals = [];
sim(mdl);

Генерировать случайную выборку всех неопределенных параметров

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

uvars = ufind(mdl)
uvars = 

  struct with fields:

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

Использовать usample для генерации случайной выборки неопределенных параметров в uvars. Набор vals к этому образцу значения.

vals = usample(uvars)
vals = 

  struct with fields:

            a: -0.7779
    input_unc: [1x1 ss]

Параметр значения неопределенности в каждом блоке пространства неопределенного состояния уже установлен в значение vals. При моделировании модели для каждого блока Simulink использует значение в vals это соответствует неопределенным параметрам в этом блоке.

sim(mdl)

Моделирование нескольких случайных выборок

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

for i=1:10
    vals = usample(uvars);
    sim(mdl);
end

См. также

|

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