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

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

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 после сокращения.

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

Похожие темы