Минимальная реализация или отмена нулевого полюса
sysr = minreal(sys)
sysr = minreal(sys,tol)
[sysr,u] = minreal(sys,tol)
... = minreal(sys,tol,false)
... = minreal(sys,[],false)
sysr = minreal(sys) устраняет неконтролируемое или ненаблюдаемое состояние в моделях состояния-пространства или отменяет пары полюс-ноль в передаточных функциях или моделях с нулевым усилением. Продукция sysr имеет минимальный порядок и те же характеристики отклика, что и у исходной модели sys.
sysr = minreal(sys,tol) определяет допуск, используемый для исключения состояния или отмены нулевого полюса. Значение по умолчанию: tol = sqrt(eps) и увеличение этого допуска вынуждает дополнительные отмены.
[sysr,u] = minreal(sys,tol) возвращает, для модели state-space sys, ортогональная матрица U такой, что (U*A*U',U*B,C*U') - декомпозиция Калмана (A,B,C)
... = minreal(sys,tol,false) и ... = minreal(sys,[],false) деактивизировать подробный вывод функции. По умолчанию minreal отображает сообщение, указывающее количество состояний, удаленных из модели state-space sys.
Команды
g = zpk([],1,1); h = tf([2 1],[1 0]); cloop = inv(1+g*h) * g
создать модель с неминимальным нулевым полюсным усилением cloop.
cloop =
s (s-1)
-------------------
(s-1) (s^2 + s + 1)
Continuous-time zero/pole/gain model.
Для отмены пары полюс-ноль при s = 1 введите
cloopmin = minreal(cloop)
Эта команда дает следующий результат.
cloopmin =
s
-------------
(s^2 + s + 1)
Continuous-time zero/pole/gain model.
Отмена нуля полюса - это простой поиск полюсов и нулей в поисках совпадений, которые находятся в пределах допуска. Передаточные функции сначала преобразуют в форму с нулевым полюсом и усилением.
balreal | Редуктор модели | modred | sminreal