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 все возвращаемые заменяемые значения в этом структурном формате.
Для фиксации указанных элементов к их номинальным значениям используйте значение замены '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