主要内容

idare

离散时间代数黎卡提方程的隐式求解器

说明

[X,K,L] = idare(A,B,Q,R,S,E) 计算以下离散时间代数黎卡提方程的唯一稳定解 X、状态反馈增益 K 和闭环特征值 L

ATXAETXE(ATXB+S)(BTXB+R)1(ATXB+S)T+Q = 0

稳定解 X 使所有特征值 L 位于单位圆内。

代数黎卡提方程在 LQR/LQG 控制、H2 控制和 H 无穷控制、卡尔曼滤波以及谱分解或互质分解中起着关键作用。

示例

[X,K,L,info] = idare(___) 还返回一个结构体 info,其中包含有关离散时间代数黎卡提方程的解的附加信息。

示例

[___] = idare(___,'noscaling') 关闭内置缩放,并将缩放向量 info.Sxinfo.Sr 的所有条目设置为 1。关闭缩放可加快计算速度,但当 A,B,Q,R,S,E 的缩放不佳时,可能会影响准确性。

[___] = idare(___,'anti') 计算反稳定解 X,该解使所有特征值 L 位于单位圆外。

示例

示例

全部折叠

对于此示例,假设有以下一组矩阵,求解离散时间代数黎卡提方程:

A=[-0.9-30.70.1]B=[11]Q=[1003]R=0.1.

使用 idare 函数,在 SE 取默认值的情况下,求解上述矩阵的稳定解。

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;
[X,K,L,info] = idare(A,B,Q,R,[],[])
X = 2×2

    4.7687    0.9438
    0.9438    3.2369

K = 1×2

   -0.2216   -0.1297

L = 2×1

   -0.4460
   -0.0027

info = struct with fields:
        Sx: [2×1 double]
        Sr: 1
         U: [2×2 double]
         V: [2×2 double]
         W: [0.0232 0.0428]
    Report: 0

其中,X 是唯一稳定解,K 包含状态反馈增益,L 包含闭环特征值,info 包含解的额外信息。

对于此示例,假设有以下一组矩阵,求解离散时间代数黎卡提方程:

A=[-0.9-30.70.1]B=[11]Q=[1003]R=0.1.

使用 'anti' 选项,在 SE 取默认值的情况下,求解上述矩阵的反稳定解。

A = [-0.9,-0.3;0.7,0.1];
B = [1;1];
Q = [1,0;0,3];
R = 0.1;
[X,K,L] = idare(A,B,Q,R,[],[],'anti')
X = 2×2

   -0.5423    0.4996
    0.4996   -0.5569

K = 1×2

 -118.0177  490.9023

L = 2×1

 -371.4426
   -2.2420

其中,X 是唯一反稳定解,K 包含状态反馈增益,L 包含闭环特征值。

输入参数

全部折叠

输入矩阵,指定为矩阵。

矩阵 QR 必须是埃尔米特矩阵。如果一个方阵等于其复共轭转置,即 ai,j=a¯j,i,则该方阵为埃尔米特矩阵。

有关埃尔米特矩阵的详细信息,请参阅 ishermitian

矩阵 E 必须是非奇异的。

当矩阵 RSE 被省略或设置为 [] 时,idare 使用以下默认值:

  • R = I

  • S = 0

  • E = I

如果输入 QR 为标量值,则 idare 会将它们解释为单位矩阵的倍数。

关闭内置缩放的选项,指定为 'noscaling'。关闭内置缩放时,idare 会将缩放向量 info.Sxinfo.Sr 中的所有条目设置为 1。关闭缩放可加快计算速度,但当 A,B,Q,R,S,E 的缩放不佳时,可能会影响准确性。

计算反稳定解的选项,指定为 'anti'。启用此选项后,idare 会计算使 (A-B*K,E) 的所有特征值位于单位圆外的反稳定解 X

了解黎卡提微分方程的完整相图,既需要唯一稳定解,也需要唯一反稳定解。

输出参量

全部折叠

离散时间代数黎卡提方程的唯一解,以矩阵形式返回。

默认情况下,X 是离散时间代数黎卡提方程的稳定解。当使用 'anti' 选项时,X 是反稳定解。

当不存在有限稳定解时,idareX 返回 []

当矩阵束奇异(即 [B;S;R] 秩亏)时,idare 返回 [] (自 R2024a 起)

状态反馈增益,以矩阵形式返回。

状态反馈增益 K 的计算公式如下:

K = (BTXB+R)1(BTXA+ST).

当不存在有限稳定解时,idareK 返回 []

当矩阵束奇异(即 [B;S;R] 秩亏)时,idare 返回 [] (自 R2024a 起)

闭环特征值,以矩阵形式返回。

闭环特征值 L 的计算公式如下:

L = eig(ABK,E).

当不存在有限稳定解时,idareXK 返回 []。即使 XK 为空矩阵,L 也非空。

当矩阵束奇异(即 [B;S;R] 秩亏)时,idare 返回 L = NaN(n,1) (自 R2024a 起)

关于唯一解的信息,以包含以下字段的结构体形式返回:

  • Sx - 用于缩放状态的值向量。

  • Sr - 用于缩放 R 矩阵的值向量。

  • UVW - 表示相关联缩放矩阵束的稳定不变子空间基的值向量。有关详细信息,请参阅算法

  • Report - 具有以下值之一的标量:

    • 0 - 唯一解准确。

    • 1 - 解精度差。

    • 2 - 解不是有限数值。

    • 3 - 找不到解,因为 [L;1./L] 表示的辛频谱在单位圆上有特征值。

    • 4 - 奇异矩阵束([B;S;R] 是秩亏的) (自 R2024a 起)

限制

  • (A-zE,B) 必须是可稳定的,ER 必须是可逆的,并且 [B;S;R] 具有满列秩,才能使有限稳定解 X 存在且为有限的。虽然这些条件通常并不充分,但当满足以下条件时,它们就变得充分:

    • [QSTSR]  0

    • [ABR1STQSR1ST] 是可检测的

算法

不变子空间的基

idare 处理以下矩阵束,并计算与该矩阵束的稳定或反稳定的有限特征值相关联的不变子空间的基 [U;V;W]

MzN = [A0BQETSST0R]z[E000AT00BT0]

数据会自动缩放,以降低单位圆附近特征值的敏感度,并进一步分离稳定和反稳定不变子空间。

解、状态反馈增益和缩放向量之间的关系

X 和状态反馈增益 K 与缩放向量和 U,V,W 之间的关系由以下方程组表示:

X = Dx VU1 Dx E1,K = Dr WU1 Dx,

其中,

Dx = diag(Sx),Dr = diag(Sr).

版本历史记录

在 R2019a 中推出

全部展开

另请参阅

| | | | | | (Robust Control Toolbox) | (Robust Control Toolbox) | | (Robust Control Toolbox) | (Robust Control Toolbox)