机器人多变量控制方法简述
2017-07-31 20:28
148 查看
Thanks Mark W. Spong for his great work of Robot Modeling and Control.
∑j=1ndkj(q)q¨j+∑i=1n∑j=1ncijk(q)q˙iq˙j+gk=τk 机器人驱动器动力学为:
Jmkθ¨mk+Bkθ˙mk=Kmk/RkVk−τk/rk其中,对于所有的k=1,⋯,n, Bk=Bmk+KbkKmk/Rk。结合上述公式,得到对于所有的k=1,⋯,n
r2kJmkq¨k+∑j=1ndkjq¨j+∑i,j=1ncijkq˙iq˙j+r2kBkq˙k+gk=rkKmRVk其中 θmk=rkqk。进一步简化可得:
M(q)q¨+C(q,q˙)q˙+Bq˙+g(q)=u为了简单起见,我们设定摩擦系数矩阵 B=0。
u=−KPq~−KDq˙其中,q~=q−qd 是期望关节位移(常值)与实际关节位移之间的误差。KP, KD 分别为比例和微分增益的(正)对角矩阵。在没有重力的情况下(g(q)=0),上述控制律可以实现对期望关节位置的渐进跟踪。
然而,实际中仅使用PD控制无法保证系统实现渐进跟踪。在实践中,将会出现稳态误差,因为机器人必须能够使电机产生一个保持力矩来平衡重力扭矩g(q)。为了消除这个稳态误差,我们可以将PD控制律修改如下:
u=−KPq~−KDq˙+g(q)
上述控制律需要在每个时刻根据拉格朗日方程来计算重力项,在这些未知的情况下无法计算上述控制律。
M(q)q¨+C(q,q˙)q˙+g(q)=u 逆动力学的思路是:寻找一个非线性反馈控制律
u=f(q,q˙,t)当该控制律被代入到动力学方程时,会得到一个线性闭环系统。
如果根据下列公式选择控制输入 u (内环):
u=M(q)aq+C(q,q˙)q˙+g(q) 由于惯量矩阵 M 可逆,综合系统可简化为 (外环):
q¨=aq上式中 aq 代表一个尚待选择的新输入,该公式被称为双积分系统(double integrator system)。该公式是线性且解耦的,这意味着每个输入 aqk 可被设计用来控制一个SISO线性系统。此外,假设 aqk 仅是 qk 和 q˙k 的函数,那么闭环系统将是解耦的。
一个明显的选择是令:
aq=q¨d(t)−K0q~−K1q~˙这无非是一个带有前馈加速的PD控制器。
X˙X¨=J(q)q˙=J(q)q¨+J˙(q)q˙其中 J 是分析型雅克比矩阵。如果我们选取下列 aq:
aq=J−1(aX−J˙q˙) 结果得到的是任务空间坐标系中的一个双积分系统,如下:
X˙=aX 给定一个任务空间轨迹 Xd(t) ,我们可以选择 aX 如下:
aX=X˙d−K0(X−Xd)−K1(X˙−X˙d)
实施逆动力学控制方法的一个缺点是:系统参数必须是明确已知的。
M(q)q¨+C(q,q˙)q˙+g(q)=u 选取控制输入如下:
u=M(q)a+C(q,q˙)v+g(q)−Kr 其中
var=q˙d−Λq~=v˙=q¨d−Λq~˙=q˙−v=q~˙+Λq~ 其中 K 和 Λ 是定常正值增益的对角阵。将上述控制律代入到机器人动力学方程中可得:
M(q)r˙+C(q,q˙)r+Kr=0 注意到上述系统不是解耦的,仍是一个非线性偶合系统。其渐进收敛性可通过李雅普诺夫方法证明,此处省略。
对上述控制器做如下修改:
u=M^(q)a+C^(q,q˙)v+g^(q)−Kr 就机器人动力学的线性参数化而言,上述控制器变为:
u=Y(q,q˙,a,v)θ^−Kr 联立得到闭环系统:
M(q)r˙+C(q,q˙)r+Kr=Y(q,q˙,a,v)(θ^−θ)
令 θ^=θ0+δθ 其中 θ0 是一个固定的名义参数向量, δθ 是一个额外的控制项。那么,闭环系统可以被写成:
M(q)r˙+C(q,q˙)r+Kr=Y(q,q˙,a,v)(θ~+δθ) 如果通过寻找一个非负常数 ρ≥0 使得这个不确定性有界,即
∥θ~∥=∥θ−θ0∥≤ρ 那么,附加项 δρ 可以根据下式设计:
δθ=⎧⎩⎨⎪⎪⎪⎪⎪⎪−ρYTr∥YTr∥,∥YTr∥>ϵ−ρϵYTr,∥YTr∥≤ϵ 我们可以证明跟踪误差的一致最终有界性,此处从略。
在自适应控制方法中,θ^ 向量被当作是对真实参数向量 θ 的一个时变估计,即:
M(q)r˙+C(q,q˙)r+Kr=Yθ~ 对参数的估计可以用梯度法或最小二乘法等标准方法。例如:使用梯度法
θ^=−Γ−1YT(q,q˙,a,v)r 将得到跟踪误差全局收敛性以及参数估计有界性。证明从略。
机器人动力学模型
首先,我们将给出机械臂的动力学方程。机器人运动方程为:∑j=1ndkj(q)q¨j+∑i=1n∑j=1ncijk(q)q˙iq˙j+gk=τk 机器人驱动器动力学为:
Jmkθ¨mk+Bkθ˙mk=Kmk/RkVk−τk/rk其中,对于所有的k=1,⋯,n, Bk=Bmk+KbkKmk/Rk。结合上述公式,得到对于所有的k=1,⋯,n
r2kJmkq¨k+∑j=1ndkjq¨j+∑i,j=1ncijkq˙iq˙j+r2kBkq˙k+gk=rkKmRVk其中 θmk=rkqk。进一步简化可得:
M(q)q¨+C(q,q˙)q˙+Bq˙+g(q)=u为了简单起见,我们设定摩擦系数矩阵 B=0。
PD控制
一个独立关节的PD控制策略可以写成下列向量形式:u=−KPq~−KDq˙其中,q~=q−qd 是期望关节位移(常值)与实际关节位移之间的误差。KP, KD 分别为比例和微分增益的(正)对角矩阵。在没有重力的情况下(g(q)=0),上述控制律可以实现对期望关节位置的渐进跟踪。
然而,实际中仅使用PD控制无法保证系统实现渐进跟踪。在实践中,将会出现稳态误差,因为机器人必须能够使电机产生一个保持力矩来平衡重力扭矩g(q)。为了消除这个稳态误差,我们可以将PD控制律修改如下:
u=−KPq~−KDq˙+g(q)
上述控制律需要在每个时刻根据拉格朗日方程来计算重力项,在这些未知的情况下无法计算上述控制律。
逆动力学控制
关节空间
逆动力学控制包括两个表达式,一个是内环控制,一个是外环控制。考虑一个n-连杆刚性机器人的动力学方程:M(q)q¨+C(q,q˙)q˙+g(q)=u 逆动力学的思路是:寻找一个非线性反馈控制律
u=f(q,q˙,t)当该控制律被代入到动力学方程时,会得到一个线性闭环系统。
如果根据下列公式选择控制输入 u (内环):
u=M(q)aq+C(q,q˙)q˙+g(q) 由于惯量矩阵 M 可逆,综合系统可简化为 (外环):
q¨=aq上式中 aq 代表一个尚待选择的新输入,该公式被称为双积分系统(double integrator system)。该公式是线性且解耦的,这意味着每个输入 aqk 可被设计用来控制一个SISO线性系统。此外,假设 aqk 仅是 qk 和 q˙k 的函数,那么闭环系统将是解耦的。
一个明显的选择是令:
aq=q¨d(t)−K0q~−K1q~˙这无非是一个带有前馈加速的PD控制器。
任务空间
任务空间内的跟踪可以通过修改外环控制,保持内环控制来实现。通过使用SO(3)令 X∈R6 表示末端执行器的姿态,我们有:X˙X¨=J(q)q˙=J(q)q¨+J˙(q)q˙其中 J 是分析型雅克比矩阵。如果我们选取下列 aq:
aq=J−1(aX−J˙q˙) 结果得到的是任务空间坐标系中的一个双积分系统,如下:
X˙=aX 给定一个任务空间轨迹 Xd(t) ,我们可以选择 aX 如下:
aX=X˙d−K0(X−Xd)−K1(X˙−X˙d)
实施逆动力学控制方法的一个缺点是:系统参数必须是明确已知的。
基于无源性的运动控制
再次考虑机器人动力学方程:M(q)q¨+C(q,q˙)q˙+g(q)=u 选取控制输入如下:
u=M(q)a+C(q,q˙)v+g(q)−Kr 其中
var=q˙d−Λq~=v˙=q¨d−Λq~˙=q˙−v=q~˙+Λq~ 其中 K 和 Λ 是定常正值增益的对角阵。将上述控制律代入到机器人动力学方程中可得:
M(q)r˙+C(q,q˙)r+Kr=0 注意到上述系统不是解耦的,仍是一个非线性偶合系统。其渐进收敛性可通过李雅普诺夫方法证明,此处省略。
基于无源性的鲁棒控制
鲁棒控制器是一个固定的控制器,它被设计用来面对大范围不确定时依然能满足性能要求。对上述控制器做如下修改:
u=M^(q)a+C^(q,q˙)v+g^(q)−Kr 就机器人动力学的线性参数化而言,上述控制器变为:
u=Y(q,q˙,a,v)θ^−Kr 联立得到闭环系统:
M(q)r˙+C(q,q˙)r+Kr=Y(q,q˙,a,v)(θ^−θ)
令 θ^=θ0+δθ 其中 θ0 是一个固定的名义参数向量, δθ 是一个额外的控制项。那么,闭环系统可以被写成:
M(q)r˙+C(q,q˙)r+Kr=Y(q,q˙,a,v)(θ~+δθ) 如果通过寻找一个非负常数 ρ≥0 使得这个不确定性有界,即
∥θ~∥=∥θ−θ0∥≤ρ 那么,附加项 δρ 可以根据下式设计:
δθ=⎧⎩⎨⎪⎪⎪⎪⎪⎪−ρYTr∥YTr∥,∥YTr∥>ϵ−ρϵYTr,∥YTr∥≤ϵ 我们可以证明跟踪误差的一致最终有界性,此处从略。
基于无源性的自适应控制器
自适应控制器与鲁棒控制器的区别在于:它采用某种形式的参数估计。在重复的运动任务中,由固定的鲁棒控制器产生的跟踪误差也趋于重复;随着控制参数根据运行时的信息而更新,由自适应控制器产生的跟踪误差预计会随时间减少。在自适应控制方法中,θ^ 向量被当作是对真实参数向量 θ 的一个时变估计,即:
M(q)r˙+C(q,q˙)r+Kr=Yθ~ 对参数的估计可以用梯度法或最小二乘法等标准方法。例如:使用梯度法
θ^=−Γ−1YT(q,q˙,a,v)r 将得到跟踪误差全局收敛性以及参数估计有界性。证明从略。
相关文章推荐
- Java编码约定中对下列部分的要求:类、属性、方法、包、文件名、变量、常量、控制结构、语句行、注释
- springmvc中一个Action中,写多个类似的业务控制方法+在业务控制方法中写入普通变量收集参数+限定某个业务控制方法。只允许GET或POST请求方式访问
- Spring中控制反转怎么配置的?比如Action类有个成员变量TestService testService,Action类就可以直接用TestServiceIMP中的方法了
- 类中使用get和set方法来控制成员变量,而不将成员变量的权限设为public的原因?
- SNMP 原理及配置简述 net-snmp-utils net-snmp 第2版基于SNMP 群体名(community name) 第3版引入了安全性更高的访问控制方法 SNMP协议操作只有4种 Apache的php_snmp 模块
- Qt优雅地结束线程(两种方法都是用Mutex锁住bool变量进行修改,然后由bool变量控制耗时动作的退出,即正常退出)
- iOS 运行时runtime控制私有变量以及私有方法
- 5种控制变量可学习性的方法(PyTorch)
- python基础教程之简单入门说明(变量和控制语言使用方法)
- jsp:synchronized方法控制对类成员变量的访问(实例)
- 成员变量或者成员方法的访问控制
- Linux下查看控制环境变量的方法
- python基础教程之简单入门说明(变量和控制语言使用方法)
- 礼拜三log~CSS控制文本不换行+省略号 & li宽度无效的解决方法 & 在js中获取后台变量
- java 父子实例的内存控制 继承变量和继承方法的区别
- 父子实例的内存控制--继承成员变量和继承方法的区别
- JAVA多线程并发变量控制方法之volatile修饰工作原理
- ecshop 后台增加设置选项(系统控制变量)的方法____2016年5月28日