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