Main Content

minreal

最小实现或零极点相消

语法

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) 为状态空间模型 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.

算法

零极点相消是直接在极点和零点中搜素位于容差范围内的匹配项的方法。传递函数首先转换为零极点增益形式。

替代功能

实时编辑器任务

Reduce Model Order

版本历史记录

在 R2006a 之前推出