Минимальная реализация или удаление нулей-полюсов
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)
задает допуск, используемый для устранения состояния или удаления нулей-полюсов. Значение по умолчанию is tol = sqrt(eps)
и увеличение этого допуска обеспечивает дополнительные отмены.
[sysr,u] = minreal(sys,tol)
возвращается, для модели в пространстве состояний sys
, ортогональный матричный U
таким образом, что (U*A*U',U*B,C*U')
разложение Кальмана (A
B
C
)
... = minreal(sys,tol,false)
и ...
= minreal(sys,[],false)
отключите многословный выход функции. По умолчанию, minreal
отображает сообщение, указывающее на количество состояний, удаленных из модели в пространстве состояний 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.
Удаление нулей-полюсов является прямым поиском через полюса и нули, ища соответствия, которые являются в допуске. Передаточные функции сначала преобразованы в форму нулей, полюсов и усиления.
Model Reducer | balreal
| modred
| sminreal