Неопределенные действительные параметры

Неопределенный действительный параметр, ureal, является Система управления Блоком, который представляет вещественное число, значение которого неопределенно.

Свойства неопределенных реальных параметров

Неопределенные действительные параметры имеют имя (Name свойство) и номинальное значение (NominalValue свойство). Несколько других свойств (PlusMinus, Range, Percentage) описать неопределенность в значениях параметров.

Все свойства a ureal доступ к ним можно получить через get и set. Свойствами являются:

Свойства

Значение

Класс

Name

Внутреннее имя

char

NominalValue

Номинальное значение элемента

double

Mode

Указывает, какое описание (из 'PlusMinus', 'Range', 'Percentage') неопределенность инвариантна, когда NominalValue изменяется

char

PlusMinus

Изменение аддитива

scalar or 1x2 double

Range

Численная область значений

1x2 double

Percentage

Изменение добавки (% от абсолютного значения номинала)

scalar or 1x2 double

AutoSimplify

'off' | {'basic'} |'full'

char

Свойства 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);

Figure contains an axes. The axes contains an object of type patch.

Сделайте область значений несимметричным относительно номинального значения и повторите выборку и график гистограммы (с 40 интервалами по области значений 2-к-6)

h.Range = [2 6]; 
hsample = usample(h,1000); 
hist(reshape(hsample,[1000 1]),40);

Figure contains an axes. The axes contains an object of type patch.

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

Нет понятия пустой ureal (или любой другой неопределенный элемент, для этого вопроса). ureal, сам по себе создает элемент с именем 'UNNAMED', со значениями свойств по умолчанию.

См. также

Похожие темы