Замена usubs

Если неопределенный матричный или объект модели (umat, uss, ufrd) имеет много неопределенных параметров, часто полезно заморозить некоторых, но не все, неопределенных параметров к определенным значениям для анализа. 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 все возвращают substitutable значения в этом формате структуры.

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

Чтобы зафиксировать указанные элементы к их номинальной стоимости, используйте заменяющее значение '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

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

|

Похожие темы