В этом примере показано, как симулировать модель 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]
Параметр, передаваемый по значению Неопределенности в каждом блоке Uncertain State Space уже установлен в vals. Когда вы симулируете модель для каждого блока, Simulink использует значение в vals это соответствует неопределенным параметрам в том блоке.
sim(mdl)

Чтобы симулировать модель в нескольких случайных значениях, повторите процесс генерации случайных значений для vals в for цикл. Каждый раз, usample генерирует новые значения для неопределенных элементов в модели, и график обновляется с другим переходным процессом.
for i=1:10 vals = usample(uvars); sim(mdl); end

MultiPlot Graph | Uncertain State Space