【参数辨识】六关节机械臂动力学参数辨识(上)

导语:两周的动力学参数辨识,使我学到很多,但遇到的问题更多,在网上有很多六关节动力学参数辨识的资料,但大家对于最小惯性参数集的推导都不详细,不能得到最小惯性参数集的系数和对应的回归矩阵,很多东西都是直接给出来了,这期间我自己搭建模型,写代码,目前成功辨识出来第六关节的惯性参数,但在辨识第五关节的惯性参数时遇到一点问题,正在解决中,下篇推出全部关节的辨识

动力学参数辨识过程

熟悉动力学参数辨识的人都明白辨识过程,过程如下,不再赘述
辨识过程: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{的方程} θ要辨识的惯性参数,Φ矩阵参数矩阵,qq˙的方程

我参考的书籍是:机器人动力学与控制第二章第五节.机器人的最小惯性参数及其应用
这本书可以说是动力学参数辨识的鼻祖,是最原始的讲解,对于何种机械臂,最小惯性参数应该是多少,这本书里面均有着详细的讲解,网上也有资源,可以免费下载。
对于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,比较可得,辨识准确,第六关节惯性参数得到了准确的辨识。

遇到问题:在辨识出第六关节的惯性参数后,应该将辨识值作为已知值代入到第五关节的辨识程序中来辨识第五关节的惯性参数,但我遇到的问题是线性化后的第五关节的力矩和线性化之前的牛顿欧拉动力学的力矩不相等,导致第五关节惯性参数不能正确辨识,现正在调试中,期待不久能够解决。

未完待续…


停更说明

  放弃动力学参数辨识了,手中资料不是很足,而且感觉动力学辨识是个坑,弃坑搞其他方向了

机械参数辨识是指通过一定的方法和工具来确定机械系统的参数数值。在MATLAB中有多种方法可以用来进行机械参数辨识。 首先,我们可以使用该软件中有关系统辨识的工具箱,如System Identification Toolbox。该工具箱提供了一系列的辨识算法和函数,可以方便地进行机械参数辨识。例如,我们可以使用参数估计算法,通过测量的输入输出数据对机械参数进行估计。这些输入输出数据可以通过实验或仿真得到。同时,该工具箱还提供了模型结构选择和验证的功能,可以帮助我们选择最适合的模型。 其次,MATLAB中还有许多数值优化和曲线拟合等函数可以用来进行机械参数辨识。例如,我们可以使用非线性最小二乘法来拟合机械动力学方程,并通过最小化残差来确定参数的数值。 另外,MATLAB还提供了一些功能强大的工具,如系统辨识工具箱的命令行接口和Simulink等,可以更加灵活地进行机械参数辨识。例如,我们可以通过编写自定义的程序或模型来实现特定的辨识方法,从而得到更精确的参数估计结果。 总的来说,MATLAB是一个功能强大的工具,在机械参数辨识方面具有多种方法和工具,可以帮助我们更好地研究和应用机械系统。无论是从算法选择、数据处理,还是从模型拟合和优化等方面,MATLAB都提供了丰富的功能和工具,可以满足我们的需求。
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值