Этот пример показывает, как симулировать модель Simulink ®, содержащую несколько блоков Secretain State Space. Можно дискретизировать все неопределенные блоки сразу, используя 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);

The ufind команда находит все неопределенные параметры во всех блоках Пространства неопределенных состояний по всей модели и возвращает структуру, содержащую их имена и значения.
uvars = ufind(mdl)
uvars =
struct with fields:
a: [1x1 ureal]
input_unc: [1x1 ultidyn]

Использование usample чтобы сгенерировать случайную выборку неопределенных параметров в уварах. Задайте 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 Graph | Uncertain State Space