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

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

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

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

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

Свойства

Значение

Класс

Name

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

char

NominalValue

Номинальная стоимость элемента

double

Mode

Имеет значение, какое описание (from'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. Свойство 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' со значениями свойств по умолчанию.

Смотрите также

Похожие темы