exponenta event banner

ureal

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

Описание

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

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

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

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

При создании неопределенного вещественного параметра можно задать неопределенность любым из этих трех способов. 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'. 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

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

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

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

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

actual2normalizedПреобразование фактических значений в нормализованные значения
appendГруппировать модели путем добавления их входных и выходных данных
feedbackОбратная связь нескольких моделей
getДоступ к значениям свойств модели
getLimitsДиапазон достоверности для неопределенного реального (ureal) параметры
getNominalНоминальное значение неопределенной модели
gridurealСетка ureal параметры равномерно по их диапазону
isuncertainПроверьте, является ли аргумент неопределенным типом класса
normalized2actualПреобразование значения атома в нормализованных координатах в соответствующее фактическое значение
replaceBlockЗамена или обновление блоков управления в обобщенной модели LTI
rsampleBlockСлучайная выборка блоков конструкции управления в обобщенной модели
sampleBlockБлоки конструкции Sample Control в обобщенной модели
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].

Проверьте свойства параметра. 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].

Проверьте свойства параметра. PlusMinus и Percentage свойства автоматически устанавливаются в соответствующие значения. 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). 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 , при изменении номинального значения, 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 rad/s и коэффициентом демпфирования, который может изменяться от 0,5 до 0,8, с номинальным значением start= 0,6.

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

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 свойство параметров ссылаться на них и отслеживать их.

Изучите ступенчатую реакцию системы, чтобы получить представление о реакции, которую представляет неопределенность. 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