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%. Кроме того, создайте настраиваемый ПИ-контроллер и сформируйте систему с обратной связью от настраиваемого диспетчера и неопределенную систему.

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