Симулируйте неопределенную модель при выборочных значениях параметров

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

См. также

|

Похожие темы