Упростите представление неопределенного объекта
B = simplify(A) B = simplify(A,'full') B = simplify(A,'basic') B = simplify(A,'class')
B = simplify(A)
выполняет методы, подобные уменьшению модели, для обнаружения и устранения избыточных копий неопределенных элементов. В зависимости от результата, класса B
может быть ниже A
. The AutoSimplify
свойство каждого неопределенного элемента в A
определяет, какие методы сокращения используются. После сокращения любой неопределенный элемент, который на самом деле не влияет на результат, удаляется из представления.
B = simplify(A,'full')
переопределяет все AutoSimplify
неопределенного элемента свойство и использует
'full'
методы сокращения.
B = simplify(A,'basic')
переопределяет все AutoSimplify
неопределенного элемента свойство и использует
'basic'
методы сокращения.
B = simplify(A,'class')
не выполняет сокращение. Однако любые неопределенные элементы в A
с нулем вхождения исключены, и класс B
может быть ниже, чем класс A
.
Создайте простое umat
с одним неопределенным вещественным параметром. Выберите конкретные элементы, обратите внимание, что результат остается в umat
классов. Упростите эти же элементы и обратите внимание, что изменяется класс.
p1 = ureal('p1',3,'Range',[2 5]); L = [2 p1]; L(1) UMAT: 1 Rows, 1 Columns L(2) UMAT: 1 Rows, 1 Columns p1: real, nominal = 3, range = [2 5], 1 occurrence simplify(L(1)) ans = 2 simplify(L(2)) Uncertain Real Parameter: Name p1, NominalValue 3, Range [2 5]
Создайте четыре неопределенных вещественных параметра со значением по умолчанию AutoSimplify('basic')
, и задайте полином высокого порядка [1].
m = ureal('m',125000,'Range',[100000 150000]); xcg = ureal('xcg',.23,'Range',[.15 .31]); zcg = ureal('zcg',.105,'Range',[0 .21]); va = ureal('va',80,'Range',[70 90]); cw = simplify(m/(va*va)*va,'full') UMAT: 1 Rows, 1 Columns m: real, nominal = 1.25e+005, range = [100000 150000], 1 occurrence va: real, nominal = 80, range = [70 90], 1 occurrence cw = m/va; fac2 = .16726*xcg*cw*cw*zcg - .17230*xcg*xcg*cw ... -3.9*xcg*cw*zcg - .28*xcg*xcg*cw*cw*zcg ... -.07*xcg*xcg*zcg + .29*xcg*xcg*cw*zcg ... + 4.9*xcg*cw - 2.7*xcg*cw*cw ... +.58*cw*cw - 0.25*xcg*xcg - 1.34*cw ... +100.1*xcg -14.1*zcg - 1.91*cw*cw*zcg ... +1.12*xcg*zcg + 24.6*cw*zcg ... +.45*xcg*xcg*cw*cw - 46.85 UMAT: 1 Rows, 1 Columns m: real, nominal = 1.25e+005, range = [100000 150000], 18 occurrences va: real, nominal = 80, range = [70 90], 8 occurrences xcg: real, nominal = 0.23, range = [0.15 0.31], 18 occurrences zcg: real, nominal = 0.105, range = [0 0.21], 1 occurrence
Результатом полинома высокого порядка является неэффективное представление с 18 копиями m
, 8 экземпляров va
, 18 экземпляров xcg
и 1 копию zcg
. Упростите выражение, используя 'full'
алгоритм упрощения
fac2s = simplify(fac2,'full') UMAT: 1 Rows, 1 Columns m: real, nominal = 1.25e+005, range = [100000 150000], 4 occurrences va: real, nominal = 80, range = [70 90], 4 occurrences xcg: real, nominal = 0.23, range = [0.15 0.31], 2 occurrences zcg: real, nominal = 0.105, range = [0 0.21], 1 occurrence
что приводит к гораздо более экономичному представлению.
Также измените AutoSimplify
свойство каждого параметра, чтобы 'full'
перед формированием полинома.
m.AutoSimplify = 'full'; xcg.AutoSimplify = 'full'; zcg.AutoSimplify = 'full'; va.AutoSimplify = 'full';
Можно сформировать полином, который сразу же дает представление низкого порядка.
cw = m/va; fac2f = .16726*xcg*cw*cw*zcg - .17230*xcg*xcg*cw ... -3.9*xcg*cw*zcg - .28*xcg*xcg*cw*cw*zcg ... -.07*xcg*xcg*zcg + .29*xcg*xcg*cw*zcg ... + 4.9*xcg*cw - 2.7*xcg*cw*cw ... +.58*cw*cw - 0.25*xcg*xcg - 1.34*cw ... +100.1*xcg -14.1*zcg - 1.91*cw*cw*zcg ... +1.12*xcg*zcg + 24.6*cw*zcg ... +.45*xcg*xcg*cw*cw - 46.85 UMAT: 1 Rows, 1 Columns m: real, nominal = 1.25e+005, range = [100000 150000], 4 occurrences va: real, nominal = 80, range = [70 90], 4 occurrences xcg: real, nominal = 0.23, range = [0.15 0.31], 2 occurrences zcg: real, nominal = 0.105, range = [0 0.21], 1 occurrence
Создайте два действительных параметра, da
и dx
, и матрица 2 на 3, ABmat
, включая полиномиальные выражения в двух вещественных параметрах.
da = ureal('da',0,'Range',[-1 1]); dx = ureal('dx',0,'Range',[-1 1]); a11 = -.32 + da*(.8089 + da*(-.987 + 3.39*da)) + .15*dx; a12 = .934 + da*(.0474 - .302*da); a21 = -1.15 + da*(4.39 + da*(21.97 - 561*da*da)) ... + dx*(9.65 - da*(55.7 + da*177)); a22 = -.66 + da*(1.2 - da*2.27) + dx*(2.66 - 5.1*da); b1 = -0.00071 + da*(0.00175 - da*.00308) + .0011*dx; b2 = -0.031 + da*(.078 + da*(-.464 + 1.37*da)) + .0072*dx; ABmat = [a11 a12 b1;a21 a22 b2] UMAT: 2 Rows, 3 Columns da: real, nominal = 0, range = [-1 1], 19 occurrences dx: real, nominal = 0, range = [-1 1], 2 occurrences
Использование 'full'
упрощение для уменьшения сложности описания.
ABmatsimp = simplify(ABmat,'full') UMAT: 2 Rows, 3 Columns da: real, nominal = 0, range = [-1 1], 7 occurrences dx: real, nominal = 0, range = [-1 1], 2 occurrences
Кроме того, можно задать значения параметра AutoSimplify
свойство к 'full'
.
da.AutoSimplify = 'full'; dx.AutoSimplify = 'full';
Теперь можно перестроить матрицу
a11 = -.32 + da*(.8089 + da*(-.987 + 3.39*da)) + .15*dx; a12 = .934 + da*(.0474 - .302*da); a21 = -1.15 + da*(4.39 + da*(21.97 - 561*da*da)) ... + dx*(9.65 - da*(55.7 + da*177)); a22 = -.66 + da*(1.2 - da*2.27) + dx*(2.66 - 5.1*da); b1 = -0.00071 + da*(0.00175 - da*.00308) + .0011*dx; b2 = -0.031 + da*(.078 + da*(-.464 + 1.37*da)) + .0072*dx; ABmatFull = [a11 a12 b1;a21 a22 b2] UMAT: 2 Rows, 3 Columns da: real, nominal = 0, range = [-1 1], 7 occurrences dx: real, nominal = 0, range = [-1 1], 2 occurrences
Многомерные снижения сложности модели и теория реализации являются лишь частично полными теориями. Эвристика, используемая simplify
это - эвристика. Порядок, в котором складываются выражения с участием неопределенных элементов, например, распределение между сложением и умножением, может повлиять на детали представления (т.е. количество вхождений ureal
в неопределенной матрице). Возможно, что simplify
наивные методы не могут полностью разрешить эти различия, поэтому можно заставить работать с «неминимальными» представлениями неопределенных систем.
simplify
использует эвристику наряду с одномерными алгоритмами снижения сложности модели, чтобы частично уменьшить размерность представления неопределенной матрицы или системы.
[1] Varga, A. and G. Looye, «Symbolic and numerical software tools for LFT-based low order theainty modeling», IEEE International Symposium on Computer Aided Control System Design, 1999, pp. 5-11.
[2] Belcastro, C.M., K.B. Lim and E.A. Morelli, «Computer assed неопределенности modeling for nonlinear parameter-dependent systems Part II: F-16 примера», Международный симпозиум IEEE по компьютерному управлению Разработки системы, 1999, стр. 17-23.