1)离散LQR的推导原理:
拉格朗日乘子法都是在等式约束下用的;
对这个性能函数J运用拉格朗日乘子法后,得到的函数是二次型函数(即转化为了最优化控制问题),二次型函数只有一个极值点而且是极小值点,那么极小值就是最小值;
使用Frenet坐标系中的车辆动力学方程作为约束条件;
a
a
a
a
a
a
2)离散状态空间方程推导:
注:这里的推导省略了一个求逆的运算,因为dt就是采样周期,而采样周期一般取值很小所以这里可以忽略不计,减少计算量;
a
a
a
a
a
a
3)DLQR的求解方程推导:
注:本质上是求的值使得性能函数取得最小值;
解释:因为中的所有的值都是受决定的,因为本来和的值是存在一个关系,这个关系由离散动力学方程描述出来,所以当指定了的值的时候,该动力学方程就成为了一个确定的微分方程了,求解这个微分方程就可以将求解出来,所以真正的未知数只有一个(是已知初始条件),所以用拉格朗日乘子法求的最小值本质上就是求一系列适合的的值,使得代价函数的值最小;
得到新的性能函数:加入了拉格朗日乘子之后
得到性能函数的偏导数:
最终得到:
求解的递推式:
为什么要求的递推式:是因为由2式知要想求,则必须要先知道,求出以后LQR问题就解决了;
将求的递推式改为求的递推式:
里卡提(Riccati)方程(一个迭代公式)有一个很好的性质:
a
a
a
a
a
a
4)DLQR算法总结:
a
对LQR算法本质的总结:
- 利用性能函数J作为目标;
- 利用Frenet上的动力学方程作为(等式)约束条件;
- 使用拉格朗日乘子法计算J的极小值点处U的值(在这一步中经过数学推导,可以不用计算复杂的拉格朗日乘子法,直接用现成的里卡提公式就可以计算出极小值点处U的值)