ureal

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

Описание

Используйте ureal неопределенный элемент для представления вещественных чисел, значения которых неопределенны при моделировании динамических систем с неопределенностью. Неопределенный действительный параметр имеет номинальное значение, сохраненное в NominalValue свойство и неопределенность, которая является потенциальным отклонением от номинального значения. ureal сохраняет это отклонение эквивалентно трем различным свойствам:

  • PlusMinus - Относительное отклонение добавки от NominalValue

  • Range - Абсолютная область значений значений, выраженный как интервал, содержащий NominalValue

  • Percentage - Отклонение, выраженное в процентах от NominalValue

Когда вы создаете неопределенный действительный параметр, можно задать неопределенность любым из этих трех способов. The ureal объект автоматически вычисляет соответствующие значения для двух других свойств.

Можно комбинировать ureal неопределенные параметры с числовыми параметрами для создания неопределенных матриц (umat объекты), который можно затем использовать, чтобы создать модели неопределенного пространства состояний. Или можно использовать их как коэффициенты в передаточных функциях. Когда вы используете неопределенные действительные параметры для создания неопределенных динамических систем, результатом является неопределенная модель, такая как uss или genss модель.

Создание

Описание

p = ureal(name,nominalvalue) создает неопределенный действительный параметр с заданным номинальным значением и неопределенностью ± 1. Этот синтаксис устанавливает Name и NominalValue свойства полученного ureal объект.

пример

p = ureal(name,nominalvalue,'PlusMinus',plusminus) устанавливает неопределенность на заданные отклонения от номинального значения. plusminus является двухэлементным вектором вида [-DL,DR]. Неопределенный параметр принимает значения в области значений [nominalvalue-DL,nominalvalue+DR]. Если область значений симметрична вокруг номинального значения, такое что DL = DR, можно использовать plusminus = DR.

Использование этого синтаксиса также устанавливает Mode свойство получившегося ureal объект к 'PlusMinus'.

пример

p = ureal(name,nominalvalue,'Range',range) устанавливает неопределенность в заданную абсолютную область значений. range является двухэлементным вектором вида [LOW,HIGH], и номинальное значение должно опуститься в этой области значений.

Использование этого синтаксиса также устанавливает Mode свойство получившегося ureal объект к 'Range'.

пример

p = ureal(name,nominalvalue,'Percentage',percentage) устанавливает неопределенность с точки зрения процентных отклонений от номинального значения. percentage является двухэлементным вектором вида [-PL,PR]. Этот синтаксис устанавливает нижний и верхний пределы области значений неопределенности, так что PL = 100*|1-LOW/nominalvalue| и PR = 100*|1-HIGH/nominalvalue|.

Использование этого синтаксиса также устанавливает Mode свойство получившегося ureal объект к 'Percentage'.

p = ureal(name,nominalvalue,___,Name,Value) устанавливает дополнительные свойства с помощью пар "имя-значение". Можно задать несколько пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.

Свойства

расширить все

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

Независимое количественное определение неопределенности, заданное как 'PlusMinus', 'Range', или 'Percentage'. The ureal объект сохраняет неопределенность как относительное отклонение от номинального, абсолютная область значений возможных значений и процентное отклонение от номинального. Это свойство определяет, какой из этих трех способов выражения неопределенности не зависит от номинального значения. Для образца, если p.Mode = 'Range', тогда изменение номинального значения не влияет на p.Range, но изменяет значение обоих p.PlusMinus и p.Percentage.

Начальное значение этого свойства зависит от того, как вы создаете ureal объект. Например, следующий код создает pl с p1.Mode = 'PlusMinus' и p2 с p2.Mode = 'Percentage'.

p1 = ureal('p1',2);
p2 = ureal('p2',2,'Percentage',[-10 20]);

Область значений изменений неопределенного параметра, заданный как двухэлементный вектор вида [LOW,HIGH], где LOW и HIGH являются реальными скалярами. Неопределенный параметр может взять любое значение в этой области значений. Номинальное значение должно попадать в эту область значений.

Отклонение от номинального значения, заданное как двухэлементный вектор вида [-DL,DR], где DL и DR являются реальными положительными скалярными величинами. Неопределенный параметр может взять любое значение в области значений [NominalValue-DL,NominalValue+DR]. Если вы не задаете неопределенность в какой-либо форме, когда вы создаете ureal параметр, тогда неопределенность по умолчанию PlusMinus = [-1,1].

Процентное отклонение от номинального значения, заданное как двухэлементный вектор вида [-PL,PR], где PL и PR являются реальными положительными скалярными величинами. Эти значения устанавливают область значений неопределенности, такой что PL = 100*|1-LOW/NominalValue| и PR = 100*|1-HIGH/NominalValue|, где [LOW,HIGH] - значение Range свойство.

Уровень упрощения блока, заданный как 'basic', 'full', или 'off'. В целом, когда вы комбинируете неопределенные элементы, чтобы создать неопределенные модели пространства состояний, программное обеспечение автоматически применяет методы, чтобы исключить избыточные копии неопределенных элементов. (См. simplify.) Используйте это свойство, чтобы задать упрощение для применения при использовании методов арифметики модели или взаимосвязей с неопределенным блоком.

  • 'basic' - Применять элементарный метод упрощения после каждой арифметической или соединительной операции.

  • 'full' - Применить методы, подобные снижению сложности модели.

  • 'off' - Упрощения не выполняйте.

Имя неопределенного элемента, заданное как вектор символов. Когда вы создаете неопределенную модель или неопределенную матрицу, используя неопределенные блоки проекта системы управления, программное обеспечение отслеживает блоки, используя имя, заданное вами в этом свойстве, а не имя переменной в MATLAB® рабочей области. Для примера используйте следующий код для создания ureal параметр и модель неопределенной динамической системы.

p1 = ureal('w0',10);
sys = tf(p1,[1 p1])
sys =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 1 states.
  The model uncertainty consists of the following blocks:
    w0: Uncertain real, nominal = 10, variability = [-1,1], 1 occurrences

The Blocks свойство получившегося uss модель приводит список неопределенных систем управления, блок используя w0, который является Name свойство неопределенного параметра, используемого для создания sys.

Функции объекта

Можно использовать ureal параметры с функциями для создания динамических систем, таких как tf и ss. Можно также объединить их с существующими моделями динамических систем с помощью арифметики модели или таких команд, как feedback. Это создает неопределенную модель пространства состояний. Можно также объединить ureal параметры, использующие общие арифметические операции, которые обычно приводят к неопределенной матрице (umat объект). Используйте такие функции, как actual2normalized и uscale для преобразования или масштабирования величины неопределенности в ureal параметр. Можно также использовать такие команды, как usample или usubs чтобы заменить действительные параметры фиксированными значениями. gridureal команда оценивает ureal параметр в своей области значений и возвращает сетку выборочных значений.

Следующий список содержит репрезентативное подмножество функций, с которыми можно использовать ureal объекты параметров.

actual2normalizedПреобразуйте фактические значения в нормированные
appendГруппируйте модели путем добавления их входов и выходов
feedbackCоединение обратной связи многих моделей
getДоступ к значениям свойств модели
getLimitsОбласть значений валидности для неопределенного реального (ureal) параметры
getNominalНоминальное значение неопределенной модели
gridurealСетка ureal параметры равномерно в своей области значений
isuncertainПроверяйте, является ли аргумент неопределенным типом класса
normalized2actualПреобразуйте значение для атома в нормированных координатах в соответствующее фактическое значение
replaceBlockЗамените или обновите блоки проекта системы управления в обобщенной модели LTI
rsampleBlockСлучайные выборки блоков Система Управления в обобщенной модели
sampleBlockОбразцы блоков Система Управления в обобщенной модели
ssМодель пространства состояний
tfМодель передаточной функции
umatСоздайте неопределенную матрицу
usampleСгенерируйте случайные выборки неопределенной или обобщенной модели
uscaleМасштабная неопределенность блока или системы
usubsПодстановка заданных значений для неопределенных элементов неопределенных объектов

Примеры

свернуть все

Создайте неопределенный действительный параметр с номинальным значением 10 и областью значений неопределенности ± 2. Поскольку эта неопределенность симметрична, можно задать ее, задав PlusMinus значение 2 вместо явного задания значения [-2,2].

p1 = ureal('p1',10,'PlusMinus',2)
p1 = 
  Uncertain real parameter "p1" with nominal value 10 and variability [-2,2].

Создайте другой параметр с номинальным значением 10, на этот раз с асимметричной неопределенностью, такой что значение может уменьшиться на 2 от номинального, но может увеличиться на 5.

p2 = ureal('p2',10,'PlusMinus',[-2 5])
p2 = 
  Uncertain real parameter "p2" with nominal value 10 and variability [-2,5].

Исследуйте свойства параметра. The Range и Percentage свойства автоматически устанавливаются на значения, соответствующие этой изменчивости.

get(p2)
    NominalValue: 10
            Mode: 'PlusMinus'
           Range: [8 15]
       PlusMinus: [-2 5]
      Percentage: [-20 50]
    AutoSimplify: 'basic'
            Name: 'p2'

Потому что вы указали PlusMinus чтобы создать параметр, Mode свойство инициализируется в PlusMinus. В этом режиме, когда вы меняете номинальное значение, PlusMinus остается фиксированным, в то время как Percentage и Range измените, чтобы отразить новую область значений значений, которые может взять параметр. Смотрите Изменение Номинального Значения или Неопределенность Существующего Параметра.

Создайте неопределенный действительный параметр, значение которого может варьироваться от 14 до 19 с номинальным значением 15,5. Для этого установите Range свойство к самым низким и самым высоким значениям, которые может взять параметр.

p1 = ureal('p1',15.5,'Range',[14,19])
p1 = 
  Uncertain real parameter "p1" with nominal value 15.5 and range [14,19].

Исследуйте свойства параметра. The PlusMinus и Percentage свойства автоматически устанавливаются на соответствующие значения. The Mode для свойства задано значение 'Range'.

get(p1)
    NominalValue: 15.5000
            Mode: 'Range'
           Range: [14 19]
       PlusMinus: [-1.5000 3.5000]
      Percentage: [-9.6774 22.5806]
    AutoSimplify: 'basic'
            Name: 'p1'

Создайте неопределенный действительный параметр с номинальным значением 24, значение которого может увеличиться или уменьшиться на 15%. Поскольку эта неопределенность симметрична, можно задать ее, задав Percentage 15 вместо явного задания значения [-15,15].

p1 = ureal('p1',24,'Percentage',15)
p1 = 
  Uncertain real parameter "p1" with nominal value 24 and variability [-15,15]%.

Создайте другой параметр с номинальным значением 24, на этот раз с асимметричной неопределенностью, такой что значение может уменьшиться на 20% от номинального, но может увеличиться на 15%.

p2 = ureal('p2',24,'Percentage',[-20,15])
p2 = 
  Uncertain real parameter "p2" with nominal value 24 and variability [-20,15]%.

Исследуйте свойства, чтобы увидеть отклонение от номинальных (PlusMinus) и область значений значений (Range), представленные этими процентными изменениями.

get(p2)
    NominalValue: 24
            Mode: 'Percentage'
           Range: [19.2000 27.6000]
       PlusMinus: [-4.8000 3.6000]
      Percentage: [-20 15]
    AutoSimplify: 'basic'
            Name: 'p2'

A ureal параметр сохраняет неопределенность как относительное отклонение от номинального (PlusMinus), абсолютная область значений возможных значений (Range), и процентное отклонение от номинального (Percentage). The Mode свойство определяет, какой из этих трех не меняется при изменении номинального значения параметра. Например, создайте параметр с номинальным значением 10 и относительным отклонением ± 2.

p1 = ureal('p1',10,'PlusMinus',[-2,2])
p1 = 
  Uncertain real parameter "p1" with nominal value 10 and variability [-2,2].

Исследуйте значения других свойств.

get(p1)
    NominalValue: 10
            Mode: 'PlusMinus'
           Range: [8 12]
       PlusMinus: [-2 2]
      Percentage: [-20 20]
    AutoSimplify: 'basic'
            Name: 'p1'

В PlusMinus mode, когда вы меняете номинальное значение, PlusMinus свойство остается фиксированным, а значения двух других способов выражения неопределенности обновляются с учетом новых значений. Для образца измените номинальное значение на 20.

p1.NominalValue = 20;
get(p1)
    NominalValue: 20
            Mode: 'PlusMinus'
           Range: [18 22]
       PlusMinus: [-2 2]
      Percentage: [-10 10]
    AutoSimplify: 'basic'
            Name: 'p1'

Новый неопределенный параметр имеет то же PlusMinus значение, но области значений и процент корректируются в соответствии с новыми значениями, которые соответствуют 20 ± 2.

Если вы меняете PlusMinus значение, Range и Percentage значения обновляются с учетом новых неопределенностей. Номинальное значение не изменилось.

p1.PlusMinus = [-4 4];
get(p1)
    NominalValue: 20
            Mode: 'PlusMinus'
           Range: [16 24]
       PlusMinus: [-4 4]
      Percentage: [-20 20]
    AutoSimplify: 'basic'
            Name: 'p1'

Затем смените параметр на Range режим. В этом режиме, когда вы меняете номинальное значение, Range остается фиксированным на [16 24], в то время как Percentage и PlusMinus обновляются.

p1.Mode = 'Range';
p1.NominalValue = 22;
get(p1)
    NominalValue: 22
            Mode: 'Range'
           Range: [16 24]
       PlusMinus: [-6 2]
      Percentage: [-27.2727 9.0909]
    AutoSimplify: 'basic'
            Name: 'p1'

Создайте модель системы второго порядка с естественной частотой ω0 = 10 ± 3 рад/с и коэффициент демпфирования, который может варьироваться от 0,5 до 0,8 с номинальным значением

Во-первых, представьте значения естественной частоты и коэффициента затухания как неопределенные действительные параметры.

w0 = ureal('w0',10,'PlusMinus',[-3 3]);
zeta = ureal('zeta',0.6,'Range',[0.5 0.8]);

Затем используйте параметры, чтобы задать коэффициенты передаточной функции.

sys = tf(1,[1/w0^2 2*zeta/w0 1])
sys =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states.
  The model uncertainty consists of the following blocks:
    w0: Uncertain real, nominal = 10, variability = [-3,3], 3 occurrences
    zeta: Uncertain real, nominal = 0.6, range = [0.5,0.8], 1 occurrences

Type "sys.NominalValue" to see the nominal value, "get(sys)" to see all properties, and "sys.Uncertainty" to interact with the uncertain elements.

sys является неопределенным пространством состояний (uss) модель, которая зависит от неопределенных параметров w0 и zeta. Модель sys использует Name свойство параметров ссылаться на них и отслеживать их.

Исследуйте переходную характеристику системы, чтобы получить представление об ответах, которые представляет неопределенность. The step команда автоматически берёт несколько случайных выборок неопределенной системы.

step(sys,sys.NominalValue)

Figure contains an axes. The axes contains 22 objects of type line. These objects represent sys, untitled1.

Можно использовать ureal параметры для задания неопределенных элементов в матрицах пространства состояний. Например, создайте три неопределенных вещественных параметра и создайте из них матрицы пространств состояний.

p1 = ureal('p1',10,'Percentage',50); 
p2 = ureal('p2',3,'PlusMinus',[-.5 1.2]); 
p3 = ureal('p3',0); 

A = [-p1 p2; 0 -p1]; 
B = [-p2; p2+p3]; 
C = [1 0; 1 1-p3]; 
D = [0; 0];

Матрицы, построенные с неопределенными параметрами A, B и C, являются неопределенной матрицей (umat) объекты. Использование их в качестве входов для ss приводит к системе с 2 выходами, 1 входом, 2 состояниями с неопределенностью.

sys = ss(A,B,C,D)
sys =

  Uncertain continuous-time state-space model with 2 outputs, 1 inputs, 2 states.
  The model uncertainty consists of the following blocks:
    p1: Uncertain real, nominal = 10, variability = [-50,50]%, 2 occurrences
    p2: Uncertain real, nominal = 3, variability = [-0.5,1.2], 2 occurrences
    p3: Uncertain real, nominal = 0, variability = [-1,1], 2 occurrences

Type "sys.NominalValue" to see the nominal value, "get(sys)" to see all properties, and "sys.Uncertainty" to interact with the uncertain elements.

Отображение показывает, что система включает три неопределенных параметра, на которые ссылается Name свойства ureal объекты, используемые для создания системы.

Совет

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

    Когда область значений неопределенностей ureal параметр не центрирован по номинальному значению, параметр может принимать только ограниченную область значений значений. Для робастного анализа устойчивости, который иногда требует назначения значений параметров вне заданной области, эти ограничения означают, что наименьшее дестабилизирующее возмущение параметра может оказаться вне фактической области значений значений, которые может взять параметр. Использовать getLimits чтобы найти ограниченную область значений значений, которые были искажены ureal параметр может взять. Для получения дополнительной информации см. getLimits.

Вопросы совместимости

расширить все

Поведение изменено в R2020a

Представлено до R2006a