Этот пример показывает, как симулировать модель 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