В этом примере показано, как моделировать модель 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

График MultiPlot | Пространство неопределенного состояния