赞
踩
最近在研究两轮机器人的平衡控制算法,了解了LQR的一些知识,再加上和研究生学长聊了聊,有一些更深层的理解。LQR的原理网上随便一找就有很详细的说明,本来不想再写一遍了,但是觉得不写出来又讲不清楚。还是再啰嗦一遍...
首先,需要建立系统的线性时不变(LTI)动态模型。这通常表示为状态空间方程,其中包含状态向量、控制输入和系统动态矩阵。
我们再设计一个线性反馈控制器:
则此时的状态方程可以表示为:
接着我们定义一个常见的二次型成本函数:
其中,Q 和R 分别是正定对称矩阵,分别表示状态和控制输入的权重,即状态和输入对于成本函数的影响程度。
定义一个辅助常量矩阵P,P满足:
代入成本函数可得:
显然地,代价函数只与矩阵P 和系统的初始状态有关,即找出最小的P就能让代价函数J 最小。现对P的定义式中左边的微分项进行展开:
该式子要求对于任意状态下的都满足,所以式子
可得:
我们定义:,代入上式,可得:
由此,我们可以根据给定的(A,B,Q,R)求出辅助矩阵P,继而求出线性反馈控制器K。
那么(A,B,Q,R)是怎么得出来的呢?结合两轮机器人这个内容,我们根据机器人运动特点建立动力学模型,根据欧拉—拉格朗日方程求出系统中各个状态量的关系。根据:
不难发现,A、B(系统动态矩阵)两个矩阵就是完全根据机器人系统中各个运动部件的参数而确定的。也就是说,不管实际运动过程中,机器人的姿态如何,只要机器人各运动部件的尺寸不变,A、B两个系统动态矩阵就是确定不变的。那么回顾K的求解过程,唯一会对K产生影响的就是两个权重矩阵P和Q了。
想到这里我不禁想问,在用LQR算法实现平衡控制时,K不变或者说一个机器人型号对应一个K这一特点,会对平衡控制产生什么影响吗?
我们课题组研究的两轮机器人不同于两轮平衡车,在车架平台上加装了两个自由度的机械臂。机械臂在完成指定动作的同时,也会参与到动态平衡控制当中去。
简图如下:
这就和往常的平衡控制情况不太一样了。和研究生学长交流下来,他跟我说采用LQR是很难实现这种多自由度的平衡控制的,但是没有给我一个明确的解释。我之前觉得只要角度采集更新得足够快,就可以实现平衡控制,但是现在也有些怀疑。我也发现,另一种叫做MPC的算法也在平衡控制中比较常用。过几天看了MPC之后再来分享一下我的理解。
希望有大佬可以解答我的困惑。或者有感兴趣的同学可以跟我交流探讨,说不定灵感也就来了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。