sampleBlock

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

Описание

пример

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/(τs+1), где τ настраиваемый действительный параметр.

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

Оцените эту передаточную функцию для τ = 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, где aB, и 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) пары, (2 0.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)

Если вы не группируете значения, 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.

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

свернуть все

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

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

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

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

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

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

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

Система управления блокируется к выборке одновременно, заданный как массив ячеек из символьных векторов. Записи в nameset соответствуйте именам, по крайней мере, подмножества блоков Системы управления в 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