机器动力学人参数辨识
注:知识来源于哈工大《机器人力控》线上课程,网址:https://www.bilibili.com/video/BV1y7411H7fg?p=1
M(θ)θ¨+C(θ,θ˙)+Bd⋅θ+D(θ˙)+G(θ)=τ(1)
M——惯性系数矩阵,
C——离心力、科氏力等力或力矩项
Bd——关节相对运动时的内部摩擦项中的黏性摩擦项
D——动摩擦项
G——重力或重力矩
其中:
M(θ)=[M1+2Rcosθ2M2+Rcosθ2M2+2Rcosθ2M2]C(θ,θ˙)=[−2Rθ˙1θ˙2sinθ2−Rθ˙22sinθ2Rθ˙12sinθ2]Bd=[Bd100Bd2]D(θ˙)=[D1sgn(θ˙1)D2sgn(θ˙1)]G(θ)=0M1=I1+I2+m1r12+m2(l12+r22)M2=I2+m2r12R=m2r2l1(2)

根据计算,有以下两种参数几何 P,ρ
P={I1,I2,m1,m2,r1,r2,Bd1,Bd2,D1,D2}∈R10 or ρ={M1,M2,R,Bd1,Bd2,D1,D2}∈R7
选择哪一个组合参数?
选择 ρ ,维数小,这样可以提高计算效率
说明:
1.基底参数定义不唯一
2.参数识别不一定要是独立的物理参数,几个参数组合而成的组合参数也可以
3.尽可能选择组合参数 → 减少识别个数
逐次识别法:对操作臂的1自由度各轴逐次进行识别
同时识别法:对操作臂的多自由度各轴同时识别

-
第一步识别 ρ1={M2,B2,D2}T
固定第一轴,让第二轴单独运动。
运动方程式:
[θ¨2(t)θ˙2(t)sgn(θ˙2(t))]⎣⎡M2B2D2⎦⎤=τ2(t)(3)
如何求解:
-
测定所有时刻t=t1,t2......tN下的所有值{ θ2,θ˙2,θ¨2,τ2 }
AN=⎣⎡θ¨2(t1)⋯θ¨2(tN)θ˙2(t1)⋯θ˙2(tN)sgn(θ˙2(t1))⋯sgn(θ˙2(tN))⎦⎤ρ=⎣⎡M2B2D2⎦⎤yN=⎣⎡τ2(t1)⋯τ2(tN)⎦⎤(4)
-
进而得到:
AN⋅ρ1=yN(5)
-
由最小二乘法可得:
ρ=(ANT⋅AN)−1⋅AN⋅yN(6)
-
第二步识别 ρ2={M1,B1,D1}T
固定第二轴在多个不同的姿势,在不同的情况下分别让第一周单独运动

-
情况一
运动方程:
(M1+2R)θ¨a1(t)+B1θ˙a1(t)+D1sgn(θ˙a1(t))=τa1(t)(7)
也就是:
[θ¨a1(t)θ˙a1(t)sgn(θ˙a1(t))](ρ2+⎣⎡2R00⎦⎤)=τa1(t)(8)
由最小二乘法可以得到 ρ2+[2R00]
-
情况三
运动方程 :
[θ¨b1(t)θ˙b1(t)sgn(θ˙b1(t))]ρ2=τb1(t)(9)
由最小二乘法得到 ρ2
进一步可以得到 R
-
说明
上述过程只用2种情况,但是分的情况越细,参数识别越精确。
同时在不同情况下的参数识别可以存入数表,在使用时通过查表的方式得到参数,这样更加准确。
由于电流和力矩是完全随机的,实验时有一定的危险。