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

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

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

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

Эффект Autosimplify Свойство

Создайте неопределенный действительный параметр, посмотрите 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 

Обратите внимание, что хотя неопределенный действительный параметр a появляется в обеих (двух) записях матрицы, полученная неопределенная матрица 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 

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

Для примера сбросьте AutoSimplify свойство от a до '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 

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

The 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.

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

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

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

См. также

Похожие темы