Варьируйте неопределенные значения по нескольким неопределенным блокам

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

См. также

|

Похожие темы