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(A)]. Область входа A может быть любым неопределенным элементом, матрицей или системой, таким как ureal, umat, uss, или ufrd. A может также быть любой обобщенной матрицей или системой, такой как genss или genmat, который содержит неопределенные блоки и другие типы блоков Система Управления. Если A содержит неопределенные блоки проекта системы управления, они не изменяются в B. Таким образом, например, usample применяется к genss с настраиваемыми и неопределенными блоками результатом является genss массив с настраиваемыми блоками.

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

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

[B,SampleValues] = usample(A,Names,N) отбирает только неопределенные элементы, перечисленные в Names переменная (камера, или массив char). Если Names не включает все неопределенные объекты в A, затем B будет неопределенным объектом. Все записи Names которые не являются элементами 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 в

[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. The axes 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.

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

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

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

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

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

Figure contains 2 axes. Axes 1 contains 20 objects of type line. This object represents Psample1D. Axes 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. The axes contains 20 objects of type line. These objects represent A, B.

Нижний предел полосы пропускания для выборок A приводит в целом к более медленным переходным характеристикам для этих выборок.

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

расширить все

Поведение изменено в R2020a

См. также

| | | | | | | | | |

Введенный в R2009b