В этом примере показано, как симулировать неопределенную модель в Simulink® с помощью блока Uncertain State Space. Можно произвести неопределенные параметры по заданным значениям или сгенерировать случайные выборки. Блок MultiPlot Graph позволяет вам визуализировать ответы нескольких выборок на том же графике.
Простая модель rctUncertainModel
содержит блок Uncertain State Space с входом шага. Сигнал переходного процесса питает блок MultiPlot Graph.
mdl = "rctUncertainModel";
open_system(mdl)
По умолчанию блок Uncertain State Space сконфигурирован, чтобы симулировать неопределенную модель ss(ureal('a',-5),5,1,1)
, который является uss
модель одним неопределенным параметром. В данном примере создайте модель массово-пружинной системы демпфера с неопределенным коэффициентом упругости и затуханием постоянного.
m = 3; c = ureal('c',1,'Percentage',20); k = ureal('k',2,'Percentage',30); usys = tf(1,[m c k])
usys = Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states. The model uncertainty consists of the following blocks: c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences Type "usys.NominalValue" to see the nominal value, "get(usys)" to see all properties, and "usys.Uncertainty" to interact with the uncertain elements.
Чтобы симулировать эту систему, в параметрах блоков, вводят usys
для Неопределенного параметра системной переменной.
В качестве альтернативы установите значение параметров в командной строке.
ublk = strcat(mdl,"/Uncertain State Space"); set_param(ublk,"USystem","usys");
Чтобы симулировать модель, Simulink должен установить неопределенные параметры в usys
к определенным, ненеопределенным значениям. Используйте параметр, передаваемый по значению Неопределенности, чтобы задать эти значения. По умолчанию этот параметр устанавливается на []
, который заставляет Simulink использовать номинальную стоимость всех неопределенных параметров.
Симулируйте модель. Блок MultiPlot Graph генерирует график номинального ответа модели на входной сигнал шага.
sim(mdl);
Чтобы симулировать неопределенную модель с неопределенным набором параметров к значениям кроме номинальной стоимости, установите параметр, передаваемый по значению Неопределенности на структуру, поля которой являются неопределенными элементами uss
модель. Например, создайте структуру samps
это устанавливает затухание, постоянное на 1,2 и коэффициент упругости к 1,7.
samps = struct('c',1.2,'k',1.7);
Установите параметр, передаваемый по значению Неопределенности на samps
, и симулируйте модель. Блок MultiPlot Graph добавляет этот новый отклик системы в ту же ось как предыдущий ответ.
set_param(ublk,"UValue","samps"); sim(mdl);
Можно использовать usample
команда, чтобы сгенерировать выборки usys
наугад значения неопределенных параметров. Команда uvars = ufind(mdl)
генерирует структуру, содержащую все неопределенные параметры в модели.
uvars = ufind(mdl);
usample
берет случайные выборки этих параметров и возвращает структуру, которую можно использовать в параметре, передаваемом по значению Неопределенности. Установите значение Неопределенности к usample(uvars)
, и симулируйте модель.
set_param(ublk,"UValue","usample(uvars)"); sim(mdl);
Переходной процесс случайным образом произведенного экземпляра usys
добавляется к блоку MultiPlot Graph. Симулируйте модель еще десять раз. Каждый раз, usample
генерирует новые значения для c
и k
, и график обновляется с другим переходным процессом.
for i=1:10 sim(mdl); end
MultiPlot Graph | Uncertain State Space