求解离散黎卡提矩阵代数方程

离散代数黎卡提方程求解

1. 黎卡提方程

在LQR最优控制中,有连续时间最优控制,即LQR,也有离散时间最优控制DLQR,则在求解中一定会遇到解连续时间黎卡提方程和离散时间黎卡提方程的问题,本文主要针对离散时间黎卡提方程进行求解。
给定一个系统,如下所示:
x ( k + 1 ) = A x ( k ) + B u ( k ) x(k+1) = Ax(k)+Bu(k) x(k+1)=Ax(k)+Bu(k)
性能指标:
J ( u ) = ∑ n = 1 ∞ ( x T ( n ) Q x ( n ) + u T ( n ) R u ( n ) + 2 x T ( n ) L u ( n ) ) . J(u) = \sum_{n=1}^ \infty(x^{T}(n)Qx(n)+u^{T}(n)Ru(n)+2x^{T}(n)Lu(n)). J(u)=n=1(xT(n)Qx(n)+uT(n)Ru(n)+2xT(n)Lu(n)).

离散时间黎卡提方程:
P = A T P A − A T P B ( R + B T P B ) − 1 B T P A + Q P = A^{T}PA-A^{T}PB(R+B^{T}PB)^{-1}B^{T}PA+Q P=ATPAATPB(R+BTPB)1BTPA+Q

K = ( R + B T P B ) − 1 B T P A K = (R+B^{T}PB)^{-1}B^{T}PA K=(R+BTPB)1BTPA

u ( n ) = − K x ( n ) u(n) = -Kx(n) u(n)=Kx(n)

即求解上述黎卡提方程有两种方法,一种是不变子空间法,另外一种是迭代法求解。

2. 迭代法求解

  • 步骤一:选取P的初始值,令 P ( 1 ) = Q − L R − 1 L T P(1)=Q -LR^{-1}L^{T} P(1)=QLR1LT

  • 步骤二:迭代计算P,如下所示:
    P ( k ) = ( A − B R − 1 L T ) T ( P − 1 ( k − 1 ) + B R − 1 B T ) − 1 ( A − B R − 1 L T ) + Q − L R − 1 L T P(k)=(A-BR^{-1}L^{T})^{T}(P^{-1}(k-1)+BR^{-1}B^{T})^{-1}(A-BR^{-1}L^{T})+Q-LR^{-1}L^{T} P(k)=(ABR1LT)T(P1(k1)+BR1BT)1(ABR1LT)+QLR1LT

  • 步骤三:计算矩阵 ∥ P ( k ) − P ( k − 1 ) ∥ m ∞ ≤ e \left\|P(k)-P(k-1)\right\|_{m\infty}\leq e P(k)P(k1)me,其中 e = 1 0 − 10 e=10^{-10} e=1010,如果条件满足,结束
    循环,否则继续步骤二。

3. matlab仿真代码

%======求解黎卡提方程==========%
clear all;clc;close all;
A = [0.8 0.3;-0.6 0];
B = [1 0.3;0 1.4];
L = [2 0.5;1 0.3];
Q = [7 1;1 3];
R = [3 1;1 2];
[Kr,Pr]=dlqr(A,B,Q,R,L);   % 标准库求解
err = 10^(-15);
error = 10;
Pe = Q - L*inv(R)*L';
X = Q - L*inv(R)*L';
% X = (A - B*inv(R)*L')'*inv(B*inv(R)*B')*(A-B*inv(R)*L') +Q - L*inv(R)*L';
Last_Pe = Pe;
i = 1;
while (error>=err)
  Pe = (A-B*inv(R)*L')'*inv(Last_Pe + B*inv(R)*B')*(A-B*inv(R)*L') +Q - L*inv(R)*L';
  error = norm((Pe-Last_Pe),'Inf');
  Last_Pe = Pe;
  i = i +1;
end
Ke = inv(R+B'*Pe*B)*B'*Pe*A;

参考文献:https://www.docin.com/p-809609626.html
http://www.doc88.com/p-4042295878668.html

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值