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