最优控制LQR求解

LQR

Problem

xt+1=Axk+Buk

xk:state at time tuk:input at time t

It assumes a quadratic cost function :

J=n=0N1 ( xTnQxn+uTnRun ) + xNPxN

with Q,R,P 正定

这里讨论的求解lqr是,在有模型的约束下面,以及初始条件 x0 , 求解使性能指标最小的u 以及 x

求解过程,迭代求解

先定义cost-to-go function

Ji(xi)=n=iN1(xTnQxn+uTnRun)+xTNPxN

可以理解为从第i时刻开始以初始条件为 xi 到最后产生的性能指标

推导的思想采用动态规划的思想,就是如果想要 J 最小,我们可以通过迭代求解cost-to-go function的最小值来实现。

那么可以很简单的推导为:

JN(xN)=xTNPxNJN1(xN1)=xTN1QxN1+uTN1RuN1+JN(xN)

这里再把模型的约束 xt+1=Axk+Buk 带入可以得到

JN1(xN1)=xTN1QxN1+uTN1RuN1+JN(AxN1+BuN1)           (1)

为了推导方便,这里将(1)中的 xN1,uN1 替换成 x,u

那么:

JN1(x)=xTQx+uTRu+(Ax+Bu)TP(Ax+Bu)           (2)

将(2)对u求梯度然后令其为0可以得到:

u{(2)}=2Ru+2BTP(Ax+Bu)=0

u=(R+BTPB)1BTPAx          (3)

将(3)带入(2), 令 (R+BTPB)1BTPA=k , 即 u=kx

JN1(x)=xTP^xP^=Q+kTRk+(ABk)TP(ABk)

这里可以看到求解后发现, JN1 最后也可以写成 xTPx 的形式,只是P要更新,所以可以迭代的像后面求解,而且结果都是统一的形式

求解结果

loop for i = N-1 : i>=0 : i–

k=(R+BTPB)1BTPAui=kxP=Q+kTRk+(ABk)TP(ABk)

这样迭代完毕后会得到 {u0,u1,...,uN1}

  • 25
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值