exponenta event banner

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) дополнительно возвращает конкретные выборочные значения (в виде Struct чьи имена полей являются именами A's неопределенные элементы) неопределенных элементов. Следовательно, B является таким же, как usubs(A,SampleValues).

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