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

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

Смотрите также

|

Похожие темы