Упрощение представления неопределенного объекта
B = simplify(A) B = simplify(A,'full') B = simplify(A,'basic') B = simplify(A,'class')
B = simplify(A) выполняет методы, подобные моделям, для обнаружения и исключения избыточных копий неопределенных элементов. В зависимости от результата класс B может быть ниже, чем A. 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] Варга, А. и Г. Лойе, «Символьные и числовые программные средства для моделирования неопределенности низкого порядка на основе LFT», Международный симпозиум IEEE по проектированию систем автоматизированного управления, 1999, стр. 5-11.
[2] Belcastro, C.M., K.B. Lim и E.A. Morelli, «Компьютерное моделирование неопределенности для нелинейных зависимых от параметров систем Часть II: F-16 пример» IEEE International Symposium on Computer Aided Control System Design, 1999, pp. 17-23.