Неопределенный действительный параметр, ureal
, является Блоком Системы управления (Control System Toolbox), который представляет вещественное число, значение которого сомнительно.
Неопределенные действительные параметры имеют имя (свойство Name
), и номинальная стоимость (свойство NominalValue
). Несколько других свойств (PlusMinus
, Range
, Percentage
) описывают неуверенность в значениях параметров.
Ко всем свойствам ureal
можно получить доступ через get
и set
. Свойства:
Свойства |
Значение |
Класс |
---|---|---|
|
Внутреннее имя |
|
|
Номинальная стоимость элемента |
|
|
Имеет значение, какое описание (from |
|
|
Аддитивное изменение |
|
|
Числовая область значений |
|
|
Аддитивное изменение (% абсолютного значения номинала) |
|
|
|
|
Свойства Range
, Percentage
и PlusMinus
все автоматически синхронизируются. Если номинальная стоимость 0, то Mode
не может быть Percentage
. Свойство Mode
управляет тем, какой аспект неуверенности остается неизменным, когда NominalValue
изменяется. При присвоении любому Range
/Percentage/
PlusMinus
изменяет значение, но не изменяет режим.
Свойство AutoSimplify
управляет, как упрощены выражения, включающие действительный параметр. Его значением по умолчанию является 'basic'
, что означает, что элементарные методы упрощения применяются, когда операции завершаются. Другими значениями для AutoSimplify
является 'off'
(никакое выполняемое упрощение), и 'full'
(подобные снижению сложности модели методы применяются). Смотрите Упрощение Представления Неопределенных Объектов узнать больше о свойстве AutoSimplify
и команде simplify
.
Если никакие пары свойства/значения не заданы, значения по умолчанию используются. Mode
по умолчанию является PlusMinus
, и значением по умолчанию PlusMinus
является [-1 1]
. Некоторые примеры показывают ниже. Во многих случаях полное имя свойства не задано, использовав в своих интересах нечувствительное к регистру, частичное соответствие свойства имени.
Этот пример показывает, как создать неопределенные действительные параметры, изменить свойства, такие как область значений неуверенности и демонстрационные неопределенные параметры.
Создайте неопределенный действительный параметр, номинальная стоимость 3, со значениями по умолчанию для всех незаданных свойств (включая плюс/минус изменчивость 1).
a = ureal('a',3)
a = Uncertain real parameter "a" with nominal value 3 and variability [-1,1].
Просмотрите свойства и их значения, и обратите внимание, что Range
и описания Percentage
изменчивости автоматически сохраняются.
get(a)
NominalValue: 3 Mode: 'PlusMinus' Range: [2 4] PlusMinus: [-1 1] Percentage: [-33.3333 33.3333] AutoSimplify: 'basic' Name: 'a'
Создайте неопределенный действительный параметр, номинальная стоимость 2, с 20%-й изменчивостью. Снова, просмотрите свойства и обратите внимание, что Range
и описания PlusMinus
изменчивости автоматически сохраняются.
b = ureal('b',2,'Percentage',20)
b = Uncertain real parameter "b" with nominal value 2 and variability [-20,20]%.
get(b)
NominalValue: 2 Mode: 'Percentage' Range: [1.6000 2.4000] PlusMinus: [-0.4000 0.4000] Percentage: [-20 20] AutoSimplify: 'basic' Name: 'b'
Измените область значений параметра. Все описания изменчивости автоматически обновляются, в то время как номинальная стоимость остается фиксированной. Несмотря на то, что изменение в изменчивости было выполнено путем определения Range
, Mode
незатронут, и остается Percentage
.
b.Range = [1.9 2.3]; get(b)
NominalValue: 2 Mode: 'Percentage' Range: [1.9000 2.3000] PlusMinus: [-0.1000 0.3000] Percentage: [-5.0000 15.0000] AutoSimplify: 'basic' Name: 'b'
Как упомянуто, свойство Mode
показывает, какой аспект неуверенности остается неизменным, когда NominalValue
изменяется. Следовательно, если действительный параметр находится в режиме Percentage
, то свойства Range
и PlusMinus
определяются из свойства Percentage
и NominalValue
. Изменение NominalValue
сохраняет свойство Percentage
, и автоматически обновляет свойства Range
и PlusMinus
.
b.NominalValue = 2.2; get(b)
NominalValue: 2.2000 Mode: 'Percentage' Range: [2.0900 2.5300] PlusMinus: [-0.1100 0.3300] Percentage: [-5.0000 15.0000] AutoSimplify: 'basic' Name: 'b'
Создайте неопределенный параметр с асимметричным изменением о его номинальной стоимости. Исследуйте свойства подтвердить асимметричную область значений.
c = ureal('c',-5,'Percentage',[-20 30]); get(c)
NominalValue: -5 Mode: 'Percentage' Range: [-6 -3.5000] PlusMinus: [-1 1.5000] Percentage: [-20 30] AutoSimplify: 'basic' Name: 'c'
Создайте неопределенный параметр, задав изменчивость с Percentage
, но обеспечьте Mode
, чтобы быть Range
.
d = ureal('d',-1,'Mode','Range','Percentage',[-40 60]); get(d)
NominalValue: -1 Mode: 'Range' Range: [-1.4000 -0.4000] PlusMinus: [-0.4000 0.6000] Percentage: [-40 60] AutoSimplify: 'basic' Name: 'd'
Наконец, создайте неопределенный действительный параметр и установите свойство AutoSimplify
на 'full'
.
e = ureal('e',10,'PlusMinus',[-23],'Mode','Percentage','AutoSimplify','Full')
e = Uncertain real parameter "e" with nominal value 10 and variability [-230,230]%.
get(e)
NominalValue: 10 Mode: 'Percentage' Range: [-13 33] PlusMinus: [-23 23] Percentage: [-230 230] AutoSimplify: 'full' Name: 'e'
Определение конфликтных значений для Range/Percentage/PlusMinus
при создании элемента ureal
не приводит к ошибке. В этом случае последнее заданное свойство используется. Это последнее вхождение также определяет Mode
, если Mode
явным образом не задан, в этом случае который используется, независимо от упорядоченного расположения пар свойства/значения.
f = ureal('f',3,'PlusMinus',[-2 1],'Percentage',40)
f = Uncertain real parameter "f" with nominal value 3 and variability [-40,40]%.
g = ureal('g',2,'PlusMinus',[-2 1],'Mode','Range','Percentage',40)
g = Uncertain real parameter "g" with nominal value 2 and range [1.2,2.8].
g.Mode
ans = 'Range'
Создайте неопределенный действительный параметр, используйте usample
, чтобы сгенерировать 1 000 экземпляров (приводящий к 1 1 1 000 массивов), изменить размерность массива и построить гистограмму, с 20 интервалами (в области значений 2 - 4).
h = ureal('h',3);
hsample = usample(h,1000);
hist(reshape(hsample,[1000 1]),20);
Сделайте область значений несимметричной о номинальной стоимости и повторите выборку и график гистограммы (с 40 интервалами в области значений 2 к 6)
h.Range = [2 6]; hsample = usample(h,1000); hist(reshape(hsample,[1000 1]),40);
Обратите внимание на то, что распределение скашивается. Однако количество выборок меньше, чем номинальная стоимость и количество выборок, больше, чем номинальная стоимость, равно (в среднем). Проверьте это.
length(find(hsample(:) < h.NominalValue))
ans = 482
length(find(hsample(:) > h.NominalValue))
ans = 518
Распределение, используемое в usample, универсально в нормированном описании неопределенного действительного параметра. Смотрите Разлагающиеся Неопределенные Объекты узнать больше о нормированном описании.
Нет никакого понятия пустого ureal
(или никакой другой неопределенный элемент, в этом отношении). ureal
, отдельно, создает элемент под названием 'UNNAMED'
со значениями свойств по умолчанию.