Минимальная реализация матрицы передаточной функции
имеет только 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
использует специальные схемы упрощения и сокращения для уменьшения сложности представления неопределенных объектов. Существует три уровня упрощения: 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
после сокращения.