Замена 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

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

|

Похожие темы