Неопределенный действительный параметр, ureal
, является Система управления Блоком, который представляет вещественное число, значение которого неопределенно.
Неопределенные действительные параметры имеют имя (Name
свойство) и номинальное значение (NominalValue
свойство). Несколько других свойств (PlusMinus
, Range
, Percentage
) описать неопределенность в значениях параметров.
Все свойства a ureal
доступ к ним можно получить через get
и set
. Свойствами являются:
Свойства |
Значение |
Класс |
---|---|---|
|
Внутреннее имя |
|
|
Номинальное значение элемента |
|
|
Указывает, какое описание (из |
|
|
Изменение аддитива |
|
|
Численная область значений |
|
|
Изменение добавки (% от абсолютного значения номинала) |
|
|
|
|
Свойства Range
, Percentage
и PlusMinus
все синхронизируются автоматически. Если номинальное значение 0, то Mode
невозможно Percentage
. The Mode
свойство контролирует, какой аспект неопределенности остается неизменным, когда NominalValue
изменяется. Назначение любому из Range
/ Percentage
/ PlusMinus
изменяет значение, но не меняет режим.
The AutoSimplify
свойство управляет упрощением выражений с использованием параметра real. Его значение по умолчанию является '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
mode, затем the 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 на 1000), измените массив и подготовьте гистограмму с 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);
Распределение все еще равномерное. Распределение, используемое usample
равномерно в фактическом значении неопределенного вещественного параметра. Однако сильно искаженные области значений могут привести к плохому числовому обусловлению и плохим результатам. Поэтому для значимых результатов избегайте сильно искривленных областей значений, где номинальное значение порядков величины ближе к одному концу области значений, чем к другому.
Нет понятия пустой ureal
(или любой другой неопределенный элемент, для этого вопроса). ureal
, сам по себе создает элемент с именем 'UNNAMED'
, со значениями свойств по умолчанию.