讨论LQR的三种解法以及各自的复杂度计算
发布网友
发布时间:2024-09-24 18:38
我来回答
共1个回答
热心网友
时间:2024-10-05 15:49
线性二次调节器(LQR)在控制理论中用于最小化系统状态与控制输入的加权和。本文将介绍几种常用的LQR求解方法,包括射击法、QP方法、有限时域和无限时域的黎卡提递归方法,以及动态规划法。
系统模型
考虑一个双积分器系统,其模型可以被精确离散化为以下形式:
具体公式缺失,此处假设已正确离散化。
对于初始状态 [公式] 和控制输入序列 [公式] ,状态更新方程为: [公式]
方法一:射击法(Shooting Method)
射击法基于庞特里亚金极小值原理,用于求解最优控制问题。
首先定义原拉格朗日函数的表达式,然后推导出哈密顿方程,包括状态方程、伴随方程以及控制更新规则。
代码实现步骤如下:
1. 构建哈密顿方程
2. 解状态方程
3. 求伴随方程
4. 更新控制输入
方法二:QP Method
将LQR问题表述为二次规划问题,构建代价函数和约束条件,形成QP标准问题。
1. 构建代价函数
2. 矩阵构建
3. KKT条件
4. 求解QP问题
方法三:Riccati 递归法
对于有限时域LQR,推导过程包括终端条件、递推关系、优化控制输入以及代价函数系数矩阵的更新。
算法流程:
1. 终端条件设定
2. 递推关系计算
3. 反馈增益矩阵求解
无限时域LQR的推导过程类似,但求解代价函数系数矩阵P时,使用固定点迭代法。
比较有限时域和无限时域LQR的主要区别在于终端条件的设定。
动态规划法通过反向递推计算P和K矩阵,其时间复杂度主要取决于系统状态和控制输入的维度,以及迭代次数。
时间复杂度分析如下:
射击法的时间复杂度与初值猜测、数值积分和迭代求解非线性方程系统的复杂度相关。
QP方法的时间复杂度主要依赖于构建KKT系统和求解线性方程组的复杂度。
黎卡提方法的时间复杂度涉及递推求解黎卡提方程和计算反馈增益矩阵。
优化问题分析和耗时对比实验结果将在此后续部分给出,以提供详细的时间分布分析。
矩阵运算的复杂度主要取决于矩阵的维度和操作,如矩阵乘法的复杂度为 [公式],矩阵求逆的复杂度为 [公式]。
通过上述分析,我们可以深入理解LQR求解方法的原理、实现和时间复杂度,从而选择最合适的解法应用于特定的控制系统。