Неопределенный реальный параметр, ureal, является блоком конструкции элемента управления, который представляет действительное число, значение которого является неопределенным.
Неопределенные реальные параметры имеют имя ( Name свойство) и номинальное значение ( NominalValue свойство). Несколько других свойств (PlusMinus, Range, Percentage) описать неопределенность в значениях параметров.
Все свойства ureal можно получить доступ через get и set. Свойства:
|
Свойства |
Значение |
Класс |
|---|---|---|
|
|
Внутреннее имя |
|
|
|
Номинальное значение элемента |
|
|
|
Обозначает, какое описание (от |
|
|
|
Изменение присадки |
|
|
|
Численный диапазон |
|
|
|
Изменение присадки (% от абсолютного значения номинального) |
|
|
|
|
|
Свойства Range, Percentage и PlusMinus все автоматически синхронизируются. Если номинальное значение равно 0, то Mode не может быть Percentage. Mode свойство управляет тем, какой аспект неопределенности остается неизменным, когда NominalValue изменяется. Присвоение любому из Range/Percentage/PlusMinus изменяет значение, но не изменяет режим.
AutoSimplify управляет упрощением выражений с использованием вещественного параметра. Значение по умолчанию: 'basic', что означает применение элементарных способов упрощения по мере завершения операций. Другие значения для AutoSimplify являются 'off' (упрощение не выполнено) и 'full' (применяются модельно-восстановительные методы). Дополнительные сведения см. в разделе Упрощение представления неопределенных объектов AutoSimplify свойство и команда simplify.
Если пары свойство/значение не указаны, используются значения по умолчанию. Дефолт Mode является PlusMinusи значение по умолчанию PlusMinus является [-1 1]. Ниже приведены некоторые примеры. Во многих случаях полное имя свойства не указывается, используя свойство paral name, не учитывающее регистр.
В этом примере показано, как создавать неопределенные реальные параметры, изменять такие свойства, как диапазон неопределенности и выборка неопределенных параметров.
Создайте неопределенный вещественный параметр, номинальное значение 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 на 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', со значениями свойств по умолчанию.