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