usample

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

Синтаксис

B = usample(A);
B = usample(A,N)
[B,SampleValues] = usample(A,N)
[B,SampleValues] = usample(A,Names,N)
[B,SampleValues] = usample(A,Names1,N1,Names2,N2,...)
[B,SampleValues] = usample(A,N,Wmax)
[B,SampleValues] = usample(A,Names,N,Wmax)

Описание

B = usample(A) заменяет случайной выборкой неопределенных объектов в A, возврат определенного (т.е. весьма бесспорный) массив size [size(A)]. Вход A может быть любой неопределенный элемент, матрица или система, такой как ureal, umat, uss, или ufrdA может также быть любая обобщенная матрица или система, такой как genss или genmat, это содержит неопределенные блоки и другие типы Блоков Системы управления. Если A содержит ненеопределенные блоки системы управления, они неизменны в B. Таким образом, например, usample примененный a genss и с настраиваемыми и с неопределенными блоками, результатом является a genss массив только с настраиваемыми блоками.

B = usample(A,N) замены N случайные выборки неопределенных объектов в A, возврат определенного (т.е. весьма бесспорный) массив size [size(A) N].

[B,SampleValues] = usample(A,N) дополнительно возвращает определенные произведенные значения (как Struct чьи имена полей являются именами A's неопределенные элементы) неопределенных элементов. Следовательно, B совпадает с usubs(A,SampleValues).

[B,SampleValues] = usample(A,Names,N) выборки только неопределенные элементы перечислены в Names переменная (ячейка или массив символов). Если Names не включает все неопределенные объекты в A, затем B будет неопределенный объект. Любые записи Names это не элементы of A просто проигнорированы. Обратите внимание на то, что usample(A,fieldnames(A.Uncertainty),N) совпадает с usample(A,N).

[B,SampleValues] = usample(A,Names1,N1,Names2,N2,...) берет N1 выборки неопределенных элементов перечислены в Names1, и N2 выборки неопределенных элементов перечислены в Names2, и так далее. size(B) будет равняться [size(A) N1 N2 ...].

Скалярный параметр Wmax \in

[B,SampleValues] = usample(A,N,Wmax)
[B,SampleValues] = usample(A,Names,N,Wmax) 
[B,SampleValues] = usample(A,Names,N,Wmax)

влияет как ultidyn и umargin элементы в A производятся, ограничивая полюса выборок. Если A непрерывное время uss или ufrd, затем полюса произведенного GainBounded ultidyn или umargin элементы в SampleValues будет каждый иметь величину <= BW. Если A дискретное время, затем произвел GainBounded ultidyn или umargin элементы получены преобразованием Тастина, с помощью BW/(2*TS) когда (непрерывная) величина полюса связана. В этом случае, BW должен быть < 1. Если ultidyn типом является PositiveReal, затем выборки получены путем билинейного преобразования (см. Функции Нормализации для Неопределенных Элементов), GainBounded элементы, описанные выше.

Примеры

свернуть все

Создайте действительный неопределенный параметр, произведите его и постройте гистограмму произведенных значений.

A = ureal('A',5); 
Asample = usample(A,500);

Исследуйте размер параметра и демонстрационного массива.

size(A)
Uncertain real scalar.
size(Asample)
ans = 1×3

     1     1   500

A скалярный параметр. Размерности Asample отразите тот A параметр 1 на 1. Исследуйте тип данных Asample.

class(Asample)
ans = 
'double'

Выборки скалярного параметра являются численными значениями.

Постройте гистограмму произведенных значений.

hist(Asample(:))

Figure contains an axes object. The axes object contains an object of type patch.

Этот пример иллюстрирует, как произвести открытый и ответ с обратной связью неопределенной модели объекта управления для анализа Монте-Карло.

Создайте два неопределенных действительных параметра и неопределенный объект.

gamma = ureal('gamma',4); 
tau = ureal('tau',.5,'Percentage',30); 
P = tf(gamma,[tau 1]);

Создайте интегральный контроллер на основе номинальной стоимости неопределенности объекта.

KI = 1/(2*tau.Nominal*gamma.Nominal); 
C = tf(KI,[1 0]);

Теперь создайте неопределенную систему с обратной связью.

CLP = feedback(P*C,1);

Произведите объект в 20 значениях, распределенных однородно о tau и gamma куб параметра.

[Psample1D,Values1D] = usample(P,20); 
size(Psample1D)
20x1 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

Эта выборка возвращает массив 20 моделей в пространстве состояний, каждый представляющий систему с обратной связью в неопределенности.

Теперь произведите объект в 10 значениях tau и 15 значений gamma.

[Psample2D,Values2D] = usample(P,'tau',10,'gamma',15); 
size(Psample2D)
10x15 array of state-space models.
Each model has 1 outputs, 1 inputs, and 1 states.

Постройте переходные процессы 1D произведенного объекта.

subplot(2,1,1); 
step(Psample1D)

Figure contains an axes object. The axes object contains 20 objects of type line. This object represents Psample1D.

Оцените неопределенную модель с обратной связью в тех же значениях с помощью usubs, и постройте переходной процесс.

subplot(2,1,2); 
step(usubs(CLP,Values1D))

Figure contains 2 axes objects. Axes object 1 contains 20 objects of type line. This object represents Psample1D. Axes object 2 contains 20 objects of type line. This object represents untitled1.

Видеть эффект ограничения полосы пропускания произведенных моделей с Wmax, создайте два ultidyn объекты.

A = ultidyn('A',[1 1]); 
B = ultidyn('B',[1 1]);

Демонстрационные 10 экземпляров каждого, с помощью предела полосы пропускания 1 рад/секунда на A, и 20 рад/секунда на B.

Npts = 10; 
As = usample(A,Npts,1); 
Bs = usample(B,Npts,20);

Постройте 10-секундные переходные процессы для двух демонстрационных наборов.

step(As,'r',Bs,'b--',10)

Figure contains an axes object. The axes object contains 20 objects of type line. These objects represent A, B.

Более низкая полоса пропускания ограничивает на выборках A результаты в обычно более медленных переходных процессах для тех выборок.

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

Смотрите также

| | | | | | | | | |

Представленный в R2009b