2023-09-27-离散系统的LQR推导

离散系统的LQR推导

离散的LQR优化问题一般具有如下形式:

min ⁡ J = 1 2 x N T H x N + 1 2 ∑ k = 0 N − 1 [ x k T Q k x k + u k T R k u k ] subject to x k + 1 = A k x k + B k u k , x 0 given , H = H T ≥ 0 , Q = Q T ≥ 0 , R = R T > 0 , (1) \min{J=\frac{1}{2}x_N^THx_N+\frac{1}{2}\sum_{k=0}^{N-1}{[x_k^TQ_kx_k+u_k^TR_ku_k]}}\\ \begin{aligned} \text{subject to}\quad&x_{k+1}=A_kx_k+B_ku_k,\\ &x_0\quad\text{given},\\ &H=H^T\geq0,\\ &Q=Q^T\geq0,\\ &R=R^T>0, \end{aligned} \tag{1} minJ=21xNTHxN+21k=0N1[xkTQkxk+ukTRkuk]subject toxk+1=Akxk+Bkuk,x0given,H=HT0,Q=QT0,R=RT>0,(1)

优化的目标是已知 x x x的情况下,通过选择控制输入 u 0 ⋯ u N − 1 u_0\cdots u_{N-1} u0uN1 使得代价 J J J最小。我们将代价函数 J J J 分开来看,定义从状态 x i x_i xi x N x_N xN 的部分代价函数为 J i J_i Ji ,除此之外部分的代价函数为 J i ′ J_i^{\prime} Ji ,于是有:

J i = 1 2 x N T H x N + 1 2 ∑ k = i N − 1 [ x k T Q k x k + u k T R k u k ] when 0 ≤ i ≤ N − 1 J N = 1 2 x N T H x N (2) \begin{aligned} J_i&=\frac{1}{2}x_N^THx_N+\frac{1}{2}\sum_{k=i}^{N-1}{[x_k^TQ_kx_k+u_k^TR_ku_k]} \quad\text{when}\quad 0 \leq i \leq N-1\\ J_N&=\frac{1}{2}x_N^THx_N \end{aligned} \tag{2} JiJN=21xNTHxN+21k=iN1[xkTQkxk+ukTRkuk]when0iN1=21xNTHxN(2)

J i ′ = 1 2 ∑ k = 0 i − 1 [ x k T Q k x k + u k T R k u k ] when 1 ≤ i ≤ N − 1 J 0 ′ = 0 (3) \begin{aligned} J_i^{\prime}&=\frac{1}{2}\sum_{k=0}^{i-1}{[x_k^TQ_kx_k+u_k^TR_ku_k]} \quad\text{when}\quad 1 \leq i \leq N-1\\ J_0^{\prime}&=0 \end{aligned} \tag{3} JiJ0=21k=0i1[xkTQkxk+ukTRkuk]when1iN1=0(3)

显然有:

J = J i + J i ′ (4) J=J_i+J_i^{\prime} \tag{4} J=Ji+Ji(4)

我们逐步对控制输入 u u u 进行最小化 J J J 的操作。考虑控制输入的最后一项是 u N u_N uN ,有:

min ⁡ u N − 1 J = min ⁡ u N − 1 { J N − 1 + J N − 1 ′ } (5) \underset{u_{N-1}}\min{J}=\underset{u_{N-1}}\min{\{J_{N-1}+J_{N-1}^{\prime}\}} \tag{5} uN1minJ=uN1

### 离散LQR中的黎卡提方程推导 离散线性二次型调节器(Discrete Linear Quadratic Regulator, DLQR)的目标是最小化给定性能指标下的控制输入和状态轨迹。为了实现这一目标,需要解决一个最优控制问题,该问题通常通过求解离散时间黎卡提方程来完成。 #### 性能指标定义 考虑如下形式的离散时间动态系统: \[ x(k+1) = A x(k) + B u(k), \] 其中 \(x\) 是系统的状态向量,\(u\) 是控制输入向量,而 \(A\) 和 \(B\) 则分别是描述系统行为的状态转移矩阵与输入影响矩阵[^1]。 对于上述系统,希望最小化的成本函数可以表示为: \[ J(u) = \sum_{k=0}^{N-1} [x^T(k)Qx(k)+u^T(k)Ru(k)] + x^T(N)F x(N). \] 这里,\(Q\geq 0\) 表示状态权重矩阵;\(R>0\) 控制代价加权矩阵;以及终端惩罚项 \(F\geq 0\)【注意这里的不等号意味着这些是对称半正定/正定矩阵】。 #### 黎卡提方程的形式 为了找到使此成本函数达到极小值的最佳反馈增益律 \(K_k=-R^{-1}B^TP_{k+1}A\) ,引入了所谓的“价值函数”,它满足贝尔曼优化原理并最终简化成下面这个著名的离散代数黎卡提方程(DARE): \[ P=A^TPA-(A^TPB)(R+B^TPB)^{-1}(B^TPA)+Q. \] 当边界条件设定为终态的价值函数等于 \(P_N=F\) 时,在有限预测范围内迭代应用上式可得到各时刻对应的协态变量或称为共轭动量张量 \(P_k\) 。而在无限水平情形下,则寻求使得 DARE 收敛到稳定固定点解的方法[^2]。 #### 初始化及迭代计算 选取合适的初值是至关重要的一步。一般情况下可以选择: \[ P(1)=Q-LR^{-1}L^T,\] 作为初始猜测来进行后续的数值求解过程。 ```python import numpy as np from scipy.linalg import solve_discrete_are # 定义参数 A = ... # 系统矩阵 B = ... # 输入矩阵 Q = ... # 状态权重矩阵 R = ... # 控制代价矩阵 # 使用SciPy库求解DARE P = solve_discrete_are(A, B, Q, R) print("The solution of the discrete Riccati equation is:\n", P) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值