rsampleBlock

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

Описание

пример

Msamp = rsampleBlock(M,names,N) случайным образом отсчитывает подмножество блоков Система Управления в обобщенной модели M. The 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.

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

Создайте неопределенную модель G(s)=a/(τs+1), где a - неопределенный параметр, который изменяется в интервале [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: Tunable 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 изменяется вдоль другого.

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

свернуть все

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

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

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

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

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

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

См. также

| | | | | (Robust Control Toolbox)

Введенный в R2016a