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