Этот пример показывает, как симулировать неопределенную модель в Simulink ® с помощью блока Unfintain State Space. Можно дискретизировать неопределенные параметры при заданных значениях или сгенерировать случайные выборки. Блок MultiPlot Graph позволяет вам визуализировать отклики нескольких выборок на одном графике.
Простая модель rctUncertainModel
содержит блок Secretain State Space с шаговым входом. Сигнал переходной характеристики подает блок Мультиграфика Графика.
mdl = "rctUncertainModel";
open_system(mdl)
По умолчанию блок Secretain 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