Минимальная реализация матрицы передаточной функции
имеет только 1 состояние, очевидное из разложения
Однако “естественная” конструкция, сформированная
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
после сокращения.