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