RiccatiSolve

RiccatiSolve[{a,b},{q,r}]

给出矩阵 ,它是连续代数黎卡提方程 TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0 的稳定解.

RiccatiSolve[{a,b},{q,r,p}]

求解方程 TemplateBox[{a}, ConjugateTranspose].x+x.a-(x.b+p).TemplateBox[{r}, Inverse].(TemplateBox[{b}, ConjugateTranspose].x+TemplateBox[{p}, ConjugateTranspose])+q=0.

更多信息和选项

  • TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0 中, 表示共轭转置.
  • 方程 TemplateBox[{a}, ConjugateTranspose].x+x.a-x.b.TemplateBox[{r}, Inverse].TemplateBox[{b}, ConjugateTranspose].x+q=0 含有一个唯一的、对称的、半正定的解 ,如果 是稳定化的, 是可探测的, 并且 . 因此,矩阵 的所有特征值是负的,并且解是稳定化的.
  • 是能控的,并且 是能观测的,则解是正定的.
  • RiccatiSolve 支持 Method 选项,其中有下列可能设置:
  • Automatic自动确定的方法
    "Eigensystem"基于特征分解
    "GeneralizedEigensystem"基于广义特征分解
    "GeneralizedSchur"基于广义 Schur 分解
    "InverseFree""GeneralizedSchur" 的一个变种
    "MatrixSign"使用矩阵符号函数的迭代方法
    "Newton"迭代牛顿方法
    "Schur"基于 Schur 分解
  • 所有方法应用于近似数值矩阵. "Eigensystem" 也应用于精确矩阵.

范例

打开所有单元关闭所有单元

基本范例  (1)

求解一个连续代数黎卡提方程:

对解进行验证:

范围  (3)

求解一个连续黎卡提方程:

利用状态控制耦合求解一个黎卡提方程:

通过从状态空间模型对象提取近似矩阵,求解黎卡提方程:

选项  (7)

Method  (7)

Automatic"Eigensystem" 方法可用于精确系统:

以及用于不精确系统:

"Schur" 方法可用于不精确系统:

"Newton" 应用于不精确系统并且可能比 Automatic 更准确:

计算解和绝对误差:

与默认方法比较:

"Newton" 采用子选项 "StartingMatrix""MaxIterations""Tolerance":

"Newton" 方法可能不收敛,即使存在稳定解:

Automatic 方法比较:

"MatrixSign" 通常作为 "Newton" 方法的初始近似使用:

使用 xinit 初始化 "Newton" 方法:

比较误差:

"MatrixSign" 采用子选项 "MaxIterations""Tolerance":

"GeneralizedSchur""GeneralizedEigensystem" 可用,当 a 是奇异的:

矩阵 a 是奇异的:

这两种方法可用于奇异 a:

验证误差:

"InverseFree" 可以使用,当 r 是病态性的:

矩阵 r 具有一个高条件数:

使用该方法:

与默认方法比较:

在这种情况下,绝对误差高于默认方法的误差:

应用  (3)

对一个线性倒立摆,计算与最优轨迹相关联的代价:

最优代价是 .x.sinit:

通过数值积分,获得代价:

跟踪最优轨迹上每个时刻的代价:

计算一个最优状态反馈增益,以确保所有闭环极点位于 的左边:

没有任何指定的稳定度的闭环极点:

计算卡尔曼估值器的最小误差协方差:

属性和关系  (8)

在交叉耦合矩阵 p 下,求最优增益:

通过把 p 融合入 aq 矩阵,可以求得相等的结果:

如果 {a,b} 是能控制的,{a,g} 是能观测的,并且 q=Transpose[g].g,那么黎卡提方程的解是正定的:

哈密顿矩阵 的特征值具有如下的形式 {λ,-λ}

是相似矩阵:

获取稳定解的能力取决于哈密顿矩阵:

哈密顿矩阵必须满足稳定属性:

以及互补属性:

稳定解:

求满足 的反馈系统的特征值:

这是也是哈密顿矩阵的稳定特征值:

利用 RiccatiSolve 计算最优状态反馈增益:

利用 LQRegulatorGains 直接计算相同的结果:

利用 RiccatiSolve 计算最优输出反馈增益:

LQOutputRegulatorGains 给出相同的结果:

利用 RiccatiSolve 计算最优估值器增益:

利用 LQEstimatorGains 直接计算这个结果:

可能存在的问题  (1)

如果 不是稳定化的或者 不可检测,那么满足 q=TemplateBox[{g}, Transpose].g 的黎卡提方程没有稳定解:

Wolfram Research (2010),RiccatiSolve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RiccatiSolve.html (更新于 2014 年).

文本

Wolfram Research (2010),RiccatiSolve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RiccatiSolve.html (更新于 2014 年).

CMS

Wolfram 语言. 2010. "RiccatiSolve." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/RiccatiSolve.html.

APA

Wolfram 语言. (2010). RiccatiSolve. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RiccatiSolve.html 年

BibTeX

@misc{reference.wolfram_2024_riccatisolve, author="Wolfram Research", title="{RiccatiSolve}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/RiccatiSolve.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_riccatisolve, organization={Wolfram Research}, title={RiccatiSolve}, year={2014}, url={https://reference.wolfram.com/language/ref/RiccatiSolve.html}, note=[Accessed: 21-November-2024 ]}