exponenta event banner

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

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

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 автоматически выполняется на неопределенном объекте, циклически просматривая все неопределенные элементы и пытаясь упростить (без ошибок) представление эффекта этого неопределенного объекта. 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 

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

См. также

Связанные темы