sampleBlock

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

Синтаксис

Msamp = sampleBlock(M,name,vals)
Msamp = sampleBlock(M,nameset,valset)
Msamp = sampleBlock(M,nameset1,valset1,nameset2,valset2,...,namesetM,valsetM)
[Msamp,samples] = 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, где 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), (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