rsampleBlock

Случайным образом демонстрационная Система управления блокируется в обобщенной модели

Синтаксис

Msamp = rsampleBlock(M,names,N)
Msamp = rsampleBlock(M,names1,N1,names2,N2,...,namesM,NM)
[Msamp,samples] = rsampleBlock(___)

Описание

пример

Msamp = rsampleBlock(M,names,N) случайным образом выбирает подмножество блоков Системы управления в обобщенной модели M. Аргумент names задает, какие блоки к выборке, и N задает сколько выборок, чтобы взять. Результатом Msamp является образцовый массив размера [size(M) N], полученный, заменяя выбранные блоки на их рандомизированные значения.

пример

Msamp = rsampleBlock(M,names1,N1,names2,N2,...,namesM,NM) берет выборки N1 блоков, перечисленных в names1, выборках N2 блоков, перечисленных в names2, и так далее. Результатом Msamp является образцовый массив размера [size(M) N1 N2 ... NM].

[Msamp,samples] = rsampleBlock(___) также возвращает структуру данных, содержащую заменяющие значения блока для каждой точки выборки. Можно использовать этот синтаксис с любой из предыдущих комбинаций входных аргументов.

Примеры

свернуть все

Создайте модель первого порядка G(s)=1/(τs+1), где τ настраиваемый действительный параметр.

tau = realp('tau',5);
G = tf(1,[tau 1]);

Ограничьте tau к неотрицательным значениям только.

G.Blocks.tau.Minimum = 0;

Сгенерируйте 20 случайных выборок G. Результат 20 1 массив моделей первого порядка со случайными значениями tau, взятого из области значений tau.

Gs = rsampleBlock(G,'tau',20);
size(Gs)
20x1 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

Возьмите случайные выборки модели и с настраиваемыми и с неопределенными блоками. Используя неопределенные блоки требует Robust Control Toolbox™. Случайная выборка настраиваемых блоков работает одинаково как показано в этом примере.

Создайте неопределенную модель G(s)=a/(τs+1), где неопределенного параметра, который отличается по интервалу [3,5], и τ = 0.5 +/-30%. Кроме того, создайте настраиваемый контроллер PI и сформируйте систему с обратной связью от настраиваемого диспетчера и неопределенную систему.

a = ureal('a',4);
tau = ureal('tau',.5,'Percentage',30);
G = tf(a,[tau 1]);
C = tunablePID('C','pi');
T = feedback(G*C,1);

T является обобщенной моделью в пространстве состояний с двумя неопределенными блоками, a и tau, и одним настраиваемым блоком, C. Демонстрационный T в 20 случайных парах (a,tau).

[Ts,samples] = rsampleBlock(T,{'a','tau'},20);

Ts 20 1 массив моделей genss. Настраиваемый блок C, который не выбирается, сохраняется в Ts. samples структуры имеет поля samples.a и samples.tau, которые содержат значения, в которых выбираются те блоки.

Группировка a и tau в массив ячеек заставляет rsampleBlock выбирать их вместе как пары (a,tau). Выборка блоков независимо генерирует более высокую размерность массивы. Например, независимо взятие 10 случайных выборок a и 5 выборок tau генерирует 10 5 образцовый массив.

[TsInd,samples] = rsampleBlock(T,'a',10,'tau',5);
TsInd
TsInd =

  10x5 array of generalized continuous-time state-space models.
  Each model has 1 outputs, 1 inputs, 2 states, and the following blocks:
    C: Parametric PID controller, 1 occurrences.

Type "ss(TsInd)" to see the current value, "get(TsInd)" to see all properties, and "TsInd.Blocks" to interact with the blocks.

В этом массиве a отличается по одному измерению, и tau отличается вдоль другого.

Входные параметры

свернуть все

Модель к выборке, заданной как a:

  • Обобщенная модель (genss или genfrd)

  • Обобщенная матрица (genmat)

  • Неопределенная модель (uss или ufrd)

  • Неопределенная матрица (umat)

Система управления блокируется к выборке, заданной как вектор символов или массив ячеек из символьных векторов. Записи в names соответствуют именам, по крайней мере, подмножества блоков Системы управления в M. Например, предположите, что M является моделью genss с настраиваемыми блоками t1 и t2 и неопределенные блоки u1 и u2. Затем {'t1','u2'} является одним возможным значением для names.

Собирание в группу имен блока в массиве ячеек генерирует выборки группы, а не независимые выборки каждого блока. Например, следующий код генерирует массив 10 на 1 моделей, где каждая запись в массиве имеет случайное значение для парного (t1,u2).

Msamp = rsampleBlock(M,{'t1','u2'},10);

К демонстрационным параметрам независимо, не группируйте их. Например, следующий код генерирует 10 20 массив моделей, где t1 отличается по первому измерению, и u2 отличается вдоль второго измерения.

Msamp = rsampleBlock(M,'t1',10,'u2',20);

rsampleBlock игнорирует любую запись в names, который не появляется в M.

Количество выборок к взятию предыдущего блока или блоков, заданных как положительное целое число.

Выходные аргументы

свернуть все

Массив образцовых выборок, возвращенных как обобщенный образцовый массив, массив ss, массив frd или числовой массив. Msamp имеет тот же тип как M, если все блоки не выбираются. В этом случае Msamp является числовым массивом, массивом ss или массивом frd. Например, предположите, что M является моделью uss с неопределенными блоками u1 и u2. Следующая команда возвращает массив моделей uss с неопределенным блоком u2.

Msamp1 = rsampleBlock(M,'u1',10);

Следующие выборки команды оба блока и возвращают массив моделей ss.

Msamp2 = rsampleBlock(M,{'u1','u2'},10);

rsampleBlock использует значения, которые находятся в пределах области значений неуверенности при выборке неопределенных блоков, и в максимальных и минимальных значениях параметров при выборке настраиваемых блоков.

Блокируйте демонстрационные значения, возвращенные как структура. Поля samples являются именами выбранных блоков. Значения являются массивами, содержащими соответствующие случайные значения, используемые, чтобы сгенерировать записи в Msamp. Например, предположите, что вы запускаете следующую команду, где M является моделью genss с настраиваемыми блоками t1 и t2.

[Msamp,samples] = rsampleBlock(M,{'t1','t2'},10);

Затем samples.t1 содержит 10 значений t1, и samples.t2 содержит 10 значений t2. Если вы выбираете блок, который не является оцененным скаляром, соответствующее поле samples содержит значения, совместимые с блоком. Например, если вы выбираете блок tunablePID, samples содержит массив моделей в пространстве состояний, которые представляют ПИД-регуляторы.

Введенный в R2016a