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

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

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

|

Похожие темы