赞
踩
导语:两周的动力学参数辨识,使我学到很多,但遇到的问题更多,在网上有很多六关节动力学参数辨识的资料,但大家对于最小惯性参数集的推导都不详细,不能得到最小惯性参数集的系数和对应的回归矩阵,很多东西都是直接给出来了,这期间我自己搭建模型,写代码,目前成功辨识出来第六关节的惯性参数,但在辨识第五关节的惯性参数时遇到一点问题,正在解决中,下篇推出全部关节的辨识
熟悉动力学参数辨识的人都明白辨识过程,过程如下,不再赘述
辨识过程:1.建立机械臂动力学模型
2.机器人动力学模型线性化并整理出最小参数集(难点)
3.激励轨迹的设计及其优化
4.动力学模型的参数辨识及其验证
动力学方程
M ( q ) q ¨ + c ( q , q ˙ ) + G ( q ) = τ \boldsymbol{M}\left( \boldsymbol{q} \right) \boldsymbol{\ddot{q}}+\boldsymbol{c}\left( \boldsymbol{q},\boldsymbol{\dot{q}} \right) +\boldsymbol{G}\left( \boldsymbol{q} \right) =\boldsymbol{\tau } M(q)q¨+c(q,q˙)+G(q)=τ
三种建模方法,牛顿-欧拉动力学建模方法应用最广泛,便于编程实现,网上也有资源,不多说。
将第一步的动力学模型线性化如下:
Φ
(
q
,
q
˙
)
⋅
θ
=
τ
\boldsymbol{\varPhi }\left( \boldsymbol{q},\boldsymbol{\dot{q}} \right) \cdot \boldsymbol{\theta }\,\,=\,\,\boldsymbol{\tau }
Φ(q,q˙)⋅θ=τ
θ
是要辨识的惯性参数,
Φ
矩阵是参数矩阵,是
q
和
q
˙
的方程
\boldsymbol{\theta }\,\,是\text{要辨识的惯性参数,}\boldsymbol{\varPhi }\text{矩阵}是\text{参数矩阵,}是\boldsymbol{q}\text{和}\boldsymbol{\dot{q}}\text{的方程}
θ是要辨识的惯性参数,Φ矩阵是参数矩阵,是q和q˙的方程
我参考的书籍是:机器人动力学与控制第二章第五节.机器人的最小惯性参数及其应用
这本书可以说是动力学参数辨识的鼻祖,是最原始的讲解,对于何种机械臂,最小惯性参数应该是多少,这本书里面均有着详细的讲解,网上也有资源,可以免费下载。
对于6R机械臂,输入六个关节的DH参数,输出最小参数集为36个,参数如下
注:这里暂未考虑摩擦系数,只有36个参数,如果考虑到摩擦,则有36+12=48个参数。
目前工业机器人动力学参数辨识大都采用傅里叶级数型的轨迹,这里我选择
5*cos(t) + 10*cos(2*t)
作为激励轨迹,轨迹的优化暂不考虑。
在进行这步之前,需搭建好你的机械臂控制器,机械臂动力学模型,辨识模块(这里采用RLS辨识)
机械臂控制器模块:根据动力学模型建立的滑模控制器,能够跟踪理想的关节角度,关节角速度。
动力学模型:牛顿欧拉动力学方程或者凯恩方法建立。
辨识模块:递推最小二乘法辨识
simulink仿真框图如下,其中包括机械臂动力学模型,控制器设计,牛顿欧拉动力学模型,第六关节辨识模块。
机械臂动力学模型中各关节的惯性参数真实值为:
我使第五,六关节的关节角为激励轨迹5cos(t) + 10cos(2*t),其余四个关节角为0,启动仿真,仿真结果如下
六个关节角的运动角度曲线:
可以看到第五六关节与期望轨迹吻合,且其余四个关节角均保持在1e-11次方左右,可认为是0,达到了角度控制的效果,控制器设计良好。
第六关节惯性参数辨识结果:
在参数辨识图中,第一个小图辨识的值为L_6xx-L_6yy的组合值,第二个小图辨识的值为L_6xy,第三个小图辨识的值为L_6xz,第四个小图辨识的值为L_6yz,将辨识结果与真实值比较可得,辨识效果很好,均得到准确的辨识。
第一个小图辨识的值为L_6zz,第二个小图辨识的值为l_6x,第三个小图辨识的值为l_6y,比较可得,辨识准确,第六关节惯性参数得到了准确的辨识。
未完待续…
放弃动力学参数辨识了,手中资料不是很足,而且感觉动力学辨识是个坑,弃坑搞其他方向了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。