Замена по usubs

Если неопределенная матрица или объект модели (umat, uss, ufrd) имеет много неопределенных параметров, часто полезно замораживать некоторые, но не все, неопределенные параметры до конкретных значений для анализа. The usubs команда выполняет это, а также позволяет более сложные замены для элемента.

usubs принимает список имен элементов и соответствующих значений для их замены. Для примера может создать три неопределенных вещественных параметра и использовать их, чтобы создать неопределенную матрицу 2 на 2, A.

delta = ureal('delta',2); 
eta = ureal('eta',6); 
rho = ureal('rho',-1); 
A = [3+delta+eta delta/eta;7+rho rho+delta*eta] 
A =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    delta: Uncertain real, nominal = 2, variability = [-1,1], 2 occurrences
    eta: Uncertain real, nominal = 6, variability = [-1,1], 3 occurrences
    rho: Uncertain real, nominal = -1, variability = [-1,1], 1 occurrences

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

Использование usubs для подстановки неопределенного элемента с именем delta в A со значением 2.3, оставляя все другие неопределенные элементы нетронутыми. Что результат, B, является неопределенной матрицей с зависимостью только от eta и rho.

B = usubs(A,'delta',2.3) 
B =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    eta: Uncertain real, nominal = 6, variability = [-1,1], 3 occurrences
    rho: Uncertain real, nominal = -1, variability = [-1,1], 1 occurrences

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

Чтобы задать несколько элементов, перечислите по отдельности или сгруппируйте значения в структуре данных. Для образца следующий код создает идентичные неопределенные матрицы B1 и B2. В каждом случае вы заменяете delta 2.3, и eta по неопределенному вещественному параметру A.Uncertainty.rho.

B1 = usubs(A,'delta',2.3,'eta',A.Uncertainty.rho)
B1 =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    rho: Uncertain real, nominal = -1, variability = [-1,1], 4 occurrences

Type "B1.NominalValue" to see the nominal value, "get(B1)" to see all properties, and "B1.Uncertainty" to interact with the uncertain elements.
S.delta = 2.3;
S.eta = A.Uncertainty.rho;
B2 = usubs(A,S)
B2 =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    rho: Uncertain real, nominal = -1, variability = [-1,1], 4 occurrences

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

usubs игнорирует замены, которые не совпадают с неопределенными параметрами в модели или матрице. Например, следующая матрица возвращает неопределенную матрицу, которая аналогична A.

B3 = usubs(A,'fred',5); 

Задание замещения структурами

Альтернативный синтаксис для usubs задает замещенные значения в структуре, имена которых являются именами элементов, заменяемых значениями. Например, создайте структуру NV с полями delta и eta. Установите значения этих полей в качестве требуемых значений для замены. Затем выполните замену на usubs.

NV.delta = 2.3; 
NV.eta = A.Uncertainty.rho; 
B4 = usubs(A,NV)
B4 =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    rho: Uncertain real, nominal = -1, variability = [-1,1], 4 occurrences

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

Здесь, B4 то же, что и B1 и B2 выше. Снова любые лишние поля игнорируются. Поэтому добавление дополнительного поля gamma на NV не изменяет результат замены.

NV.gamma = 0; 
B5 = usubs(A,NV)
B5 =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    rho: Uncertain real, nominal = -1, variability = [-1,1], 4 occurrences

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

B5 то же, что и B4.

Команды анализа, такие как wcgain, robstab, и usample все возвращаемые заменяемые значения в этом формате структуры.

Номинальные и случайные значения

Чтобы исправить указанные элементы к их номинальным значениям, используйте значение замены 'Nominal'. Чтобы задать элементу случайное значение, используйте 'Random'. Для примера создайте числовую матрицу путем фиксации неопределенных параметров в A: Установите eta на его номинальное значение установите delta в случайное значение и установите rho до 6,5.

B6 = usubs(A,'eta','Nominal','delta','Random','rho',6.5) 
B6 = 2×2

   11.6294    0.4382
   13.5000   22.2767

В формате структуры, чтобы задать неопределенному элементу его номинальное значение, установите соответствующее значение в структуре.

S = struct('eta',A.Uncertainty.eta.NominalValue,'rho',6.5);
B7 = usubs(A,S)
B7 =

  Uncertain matrix with 2 rows and 2 columns.
  The uncertainty consists of the following blocks:
    delta: Uncertain real, nominal = 2, variability = [-1,1], 2 occurrences

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

Использование usample чтобы задать для оставшегося элемента случайное значение.

B8 = usample(B7,'delta',1)
B8 = 2×2

   11.8116    0.4686
   13.5000   23.3695

См. также

|

Похожие темы