exponenta event banner

sampleBlock

Блоки конструкции Sample Control в обобщенной модели

Описание

пример

Msamp = sampleBlock(M,name,vals) примеры одного блока Control Design в обобщенной модели M. Результат Msamp является массивом модели размера [size(M) N] полученный заменой блока заданными значениями, где N - количество значений в vals.

пример

Msamp = sampleBlock(M,nameset,valset) одновременно выполняет выборку нескольких блоков, указанных как массив ячеек имен блоков. valset является массивом ячеек N выборочные значения для каждого блока. Результат Msamp является массивом модели размера [size(M) N].

пример

Msamp = sampleBlock(M,nameset1,valset1,nameset2,valset2,...,namesetM,valsetM) независимо выполняет выборку нескольких блоков. nameset1,nameset2,...,namesetM каждый может быть одним именем блока (см. name) или массив имен ячеек (см. nameset). Модель M отбирается по сетке размера [N1 N2 ... NM], где N1 - количество значений в valset1, N2 - количество значений в valset2и так далее. Получающееся Msamp является массивом размера [size(M) N1 N2 ... NM].

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

Примеры

свернуть все

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

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

Вычислите эту передаточную функцию для start= 3,4,.., 7. Результатом является массив моделей первого порядка 5 на 1.

Gs = sampleBlock(G,'tau',3:7);
size(Gs)
5x1 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

Создание модели с полюсом в s = a и выигрыш в размере b*c, где a, b, и c являются настраиваемыми скалярами.

a = realp('a',1);  
b = realp('b',3);  
c = realp('c',1);
G = tf(b*c,[1 a]);

Выбор 5 образцов для a и 3 образца для (b,c) пар. Оценить G по соответствующей сетке 5 на 3 (a,b,c) комбинации.

as = 0.8:0.1:1.2;
bs = 2:4;
cs = [0.5 1 1.5];
Gs = sampleBlock(G,'a',as,{'b','c'},{bs,cs});

Группирование значений для b и c в массивах ячеек вызывает sampleBlock чтобы рассматривать их как (b,c) пар (20,5), (3,1) и (1,5). Gs - массив моделей пространства состояний 5 на 3, в котором a изменяется вдоль первого измерения и (b,c) изменяется вдоль второго размера. Таким образом, например, Gs(:,:,3,2) соответствует a = 1, (b,c) = (3,1).

График шага показывает набор ответов для каждого из трех (b,c) пар. Каждый набор содержит ответ для каждого из пяти a значения.

stepplot(Gs)

Figure contains an axes. The axes contains 15 objects of type line. This object represents Gs.

Если значения не группируются, sampleBlock заменяет все ценности независимо, приводя к образцовому множеству 5 на 3 на 3.

GsInd = sampleBlock(G,'a',as,'b',bs,'c',cs);
size(GsInd)
5x3x3 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

Например, в GsInd, Gs(:,:,3,2,1) является моделью с a = 1, b = 3, и c = 0.5.

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

свернуть все

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

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

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

  • Неопределенная модель (uss(Панель инструментов надежного управления) или ufrd (Надёжная панель инструментов управления))

  • Неопределенная матрица (umat (Надёжная панель инструментов управления))

Контрольный блок проекта для выборки, заданный как символьный вектор. Например, предположим, что M является genss модель с настраиваемыми блоками t1 и t2. Затем, либо 't1' или 't2' является возможным значением для name.

Значения блока образца, заданные как числовой массив или массив модели. Значения должны быть совместимы с типом блока. Например, если name является настраиваемым вещественным параметром (realp), то vals - числовой массив длины N, количество образцов. Если name является настраиваемым PID-контроллером (tunablePID), то vals представляет собой массив моделей LTI, совместимых со структурой PID.

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

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

t1s = 1:10;
u2s = 2:2:20;
valset = {t1s,t2s};
Msamp = sampleBlock(M,{'t1','u2'},valset);

sampleBlock игнорирует любую запись в nameset который не отображается в M.

Значения блока образца, заданные как массив ячеек. Каждая запись в массиве ячеек сама является массивом N выборочные значения для каждого блока в nameset. Например, следующий код является образцом модели M на (t1,u2) пары (1,2), (2,4),... (10,20).

t1s = 1:10;
u2s = 2:2:20;
valset = {t1s,t2s};
Msamp = sampleBlock(M,{'t1','u2'},valset);

Значения в valset должен быть совместим с соответствующим типом блока.

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

свернуть все

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

Msamp1 = sampleBlock(M,'u1',1:10);

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

Msamp2 = sampleBlock(M,{'u1','u2'},{1:10,2:20});

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

Представлен в R2016a