Упрощение представления неопределенных объектов

Минимальная реализация матрицы передаточной функции

H(s)=[2s+14s+13s+16s+1]

имеет только 1 состояние, очевидное из разложения

H(s)=[23]1s+1[12].

Однако “естественная” конструкция, сформированная

sys11 = ss(tf(2,[1 1])); 
sys12 = ss(tf(4,[1 1])); 
sys21 = ss(tf(3,[1 1])); 
sys22 = ss(tf(6,[1 1])); 
sys = [sys11 sys12;sys21 sys22] 
a = 
       x1  x2  x3  x4 
   x1  -1   0   0   0 
   x2   0  -1   0   0 
   x3   0   0  -1   0 
   x4   0   0   0  -1 
b = 
       u1  u2 
   x1   2   0 
   x2   0   2 
   x3   2   0 
   x4   0   2 
c = 
        x1   x2   x3   x4 
   y1    1    2    0    0 
   y2    0    0  1.5    3 
d = 
       u1  u2 
   y1   0   0 
   y2   0   0 
Continuous-time model 

имеет четыре состояния и неминимален.

Таким же образом внутреннее представление неопределенных объектов, созданных от неопределенных элементов, может стать неминимальным, в зависимости от последовательности операций в их конструкции. Команда simplify использует оперативные схемы упрощения и сокращения уменьшать сложность представления неопределенных объектов. Существует три уровня упрощения: прочь, основной и полный. Каждый неопределенный элемент имеет AutoSimplify свойство, значением которого является любой 'off', 'basic' или 'full'. Значением по умолчанию является 'basic'.

После (почти) каждая операция, команда simplify автоматически запущен на неопределенном объекте, циклически повторяющемся через все неопределенные элементы и пытающемся упростить (без ошибки) представление эффекта того неопределенного объекта. AutoSimplify свойство каждого элемента диктует типы расчетов, которые выполняются. В 'off' случай, никакое упрощение даже не предпринято. В 'basic', используются довольно простые схемы обнаружить и устранить неминимальные представления. Наконец, в 'full', числовые основанные методы, похожие на усеченную сбалансированную реализацию, используются с очень жестким допуском, чтобы минимизировать ошибку.

Эффект автоупростить свойства

Создайте неопределенный действительный параметр, просмотрите AutoSimplify свойство a, и затем создайте 1 2 umat, обе из чей записей включают неопределенный параметр.

a = ureal('a',4); 
a.AutoSimplify 
ans = 
basic 
m1 = [a+4 6*a] 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 1 occurrence 

Обратите внимание на то, что несмотря на то, что неопределенный действительный параметр появляться в оба (два) записи матрицы, получившегося неопределенного матричного m1 только зависит от “1 вхождения” a.

Установите AutoSimplify свойство a к 'off' (от 'basic'). Воссоздайте 1 2 umat. Теперь обратите внимание что получившийся неопределенный матричный m2 зависит от “2 случаев” a.

a.AutoSimplify = 'off'; 
m2 = [a+4 6*a] 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 2 occurrences 

'basic' уровень автоупрощения часто обнаруживает (и упрощает), дублирование, созданное линейными членами в различных записях. Высший порядок (квадратичный, билинейный, и т.д.) дублирование часто не обнаруживается 'basic' автоупростите уровень.

Например, сбросьте AutoSimplify свойство к 'basic' (от 'off'). Создайте неопределенный действительный параметр, и 1 2 umat, обе из чей записей включают квадрат неопределенного параметра.

a.AutoSimplify = 'basic'; 
m3 = [a*(a+4) 6*a*a] 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 4 occurrences 

Обратите внимание на то, что получившийся неопределенный матричный m3 зависит от “4 случаев” a.

Установите AutoSimplify свойство a к 'full' (от 'basic'). Воссоздайте 1 2 umat. Теперь обратите внимание, что получившаяся неопределенная матрица m4 зависит от “2 случаев” a.

a.AutoSimplify = 'full'; 
m4 = [a*(a+4) 6*a*a] 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 2 occurrences 

Несмотря на то, что m4 имеет менее комплексное представление (2 случаев a вместо 4 как в m3), некоторые числовые изменения замечены, когда оба неопределенных объекта оценены в (говорят) 0.

usubs(m3,'a',0) 
ans = 
     0     0 
usubs(m4,'a',0) 
ans = 
  1.0e-015 * 
   -0.4441         0 

Небольшие числовые различия также отмечены в других точках оценки. Пример ниже показов различия столкнулся с оценкой в a равняйтесь 1.

usubs(m3,'a',1) 
ans = 
     5     6 
usubs(m4,'a',1) 
ans = 
    5.0000    6.0000 

Прямое Использование упрощает

simplify команда может использоваться, чтобы заменить AutoSimplify всего неопределенного элемента свойство. Первый вход к simplify команда является неопределенным объектом. Второй вход является желаемым методом сокращения, который может любой 'basic' или 'full'.

Снова создайте неопределенный действительный параметр, и 1 2 umat, обе из чей записей включают квадрат неопределенного параметра. Установите AutoSimplify свойство a к 'basic'.

a.AutoSimplify = 'basic'; 
m3 = [a*(a+4) 6*a*a] 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 4 occurrences 

Обратите внимание на то, что получившийся неопределенный матричный m3 зависит от четырех случаев a.

simplify команда может использоваться, чтобы выполнить 'full' сокращение на получившемся umat.

m4 = simplify(m3,'full') 
UMAT: 1 Rows, 2 Columns 
  a: real, nominal = 4, variability = [-1  1], 2 occurrences

Получившийся неопределенный матричный m4 зависит только от двух случаев a после сокращения.

Смотрите также

Похожие темы