主要内容

obsv

状态空间模型的可观测性

    说明

    如果某个动态系统的所有状态都可以从该系统的输出得知,那么这个系统可观测obsv 根据状态矩阵或状态空间模型计算可观测性矩阵。您可以使用此矩阵来确定可观测性。

    例如,假设有一个具有 Nx 个状态、Ny 个输出和 Nu 个输入的连续时间状态空间模型:

    x˙=Ax+Buy=Cx+Du

    此处,xuy 分别表示状态、输入和输出,而 ABCD 是具有如下大小的状态空间矩阵:

    • A 是一个 Nx×Nx 实数值或复数值矩阵。

    • B 是一个 Nx×Nu 实数值或复数值矩阵。

    • C 是一个 Ny×Nx 实数值或复数值矩阵。

    • D 是一个 Ny×Nu 实数值或复数值矩阵。

    如果由 obsv Ob=[CCACA2  :CAn1] 生成的可观测性矩阵具有满秩,即秩等于状态空间模型中的状态数量,则系统可观测。可观测性矩阵 Ob 具有 Nx 行和 Nxy 列。有关示例,请参阅SISO 状态空间模型的可观测性

    Ob = obsv(A,C) 使用状态矩阵 A 和状态-输出矩阵 C 返回可观测性矩阵 Ob。如果 Ob 具有满秩,即 Ob 的秩等于状态数量,则系统可观测。

    示例

    Ob = obsv(sys) 返回状态空间模型 sys 的可观测性矩阵。此语法等效于:

    Ob = obsv(sys.A,sys.C);

    示例

    示例

    全部折叠

    定义 A 和 C 矩阵。

    A = [1  1;
         4 -2];
    C = [-1 1;
         1 -1];

    计算可观测性矩阵。

    Ob = obsv(A,C);

    确定不可观测状态的数量。

    unobsv = length(A) - rank(Ob)
    unobsv = 
    1
    

    不可观测状态表示 Ob 没有满秩 2。因此系统不可观测。

    对于此示例,假设有以下具有 2 个状态的 SISO 状态空间模型:

    A=[-1.5-210]B=[0.50]C=[01]D=1SISO State-Space Model

    创建由以下状态空间矩阵定义的 SISO 状态空间模型:

    A = [-1.5,-2;1,0];
    B = [0.5;0];
    C = [0,1];
    D = 1;
    sys = ss(A,B,C,D);

    计算可观测性矩阵并求秩。

    Ob = obsv(sys)
    Ob = 2×2
    
         0     1
         1     0
    
    

    可观测性矩阵的大小取决于 AC 矩阵的大小。例如,如果矩阵 A 是 Nx×Nx 矩阵,矩阵 CNx×Ny 矩阵,则得到的矩阵 Ob 具有 Nx 行和 Nxy 列。此处,Nx 是状态数目,Ny 是输出数目。

    rank(Ob)
    ans = 
    2
    

    由于可观测性矩阵 Ob 的秩等于状态数量,因此系统 sys 可观测。

    您也可以仅使用 AC 矩阵求可观测性矩阵。

    Ob = obsv(sys.A,sys.C);
    rank(Ob)
    ans = 
    2
    

    输入参数

    全部折叠

    状态矩阵,指定为一个 Nx×Nx 矩阵,其中 Nx 是状态数。

    状态-输出矩阵,指定为 Ny×Nx 矩阵,其中 Nx 是状态数,Ny 是输出数。

    状态空间模型或模型数组,指定为:

    • 状态空间 (ss) 模型对象(当输入 ABCD 是数值矩阵或从另一个模型对象类型转换时)。

    • 广义状态空间模型 (genss) 对象(当矩阵 ABCD 中的一个或多个包括 realp 参数等可调参数或广义矩阵 (genmat) 时)。该函数使用可调参数的当前值。

    • 不确定的状态空间模型 (uss) 对象(当输入 ABCD 中的一个或多个包括不确定的矩阵时)。该函数使用不确定参数的标称值。使用不确定模型需要 Robust Control Toolbox™ 软件。

    输出参量

    全部折叠

    可观测性矩阵,以数组形式返回。如果 sys 为:

    • 具有 Nx 个状态和 Ny 个输出的单个状态空间模型,则生成的数组 Ob 具有 Nx 行和 Nxy 列。

    • 状态空间模型数组 sys(:,:,j1,...,jN),则 Ob 是具有 N+2 个维度的数组,即 Ob(:,:,j1,...,jN)

    限制

    • 不建议在控制设计中使用 obsv,因为不建议在可观测性测试中计算可观测性矩阵的秩。对于大多数具有多个状态的系统,Ob 在数值上将是奇异值。这一事实在 [1] 的第 III 节中有详细记录。

    参考

    [1] Paige, C. C. "Properties of Numerical Algorithms Related to Computing Controllability." IEEE Transactions on Automatic Control. Vol. 26, Number 1, 1981, pp. 130-138.

    版本历史记录

    在 R2006a 之前推出