本发明涉及机械臂控制,具体提供一种机械臂动力学参数的辨识方法。
背景技术:
1、机械臂的动力学模型可用于高级控制算法设计、碰撞检测、人机交互、多臂协作等领域。高精度的动力学模型可以提高机械臂的控制性能。然而,机械臂制造商通常不提供动态模型,从计算机辅助设计(cad)软件获得的动力学参数与实际模型相比经常表现出显著的差异,进行实验识别是获得准确动力学参数的可靠方法。
2、实验动态识别方法通常可分为无模型识别方法和基于模型的识别方法。无模型动态识别方法不需要机械臂的预定义数学模型,该方法依赖于机械臂的关节位置和电流的测量,典型的无模型动态识别方法包括多层感知器网络补偿器、高斯过程回归学习、径向基函数网络补偿器、自适应神经模型优化,其优点是更灵活,与基于模型的方法相比,该方法需要更多的计算资源,精度较低,所识别的动力学参数可能无法涵盖所有物理效应,惯性参数的准确估计非常困难,不适合观测器设计。
3、基于模型的动态识别通常包括动态建模、激励轨迹设计、参数识别和模型验证,牛顿-欧拉方法是建立机械臂动力学模型的常用方法,使用symoro、opensymoro等工具箱可以快速实现动力学线性化,然而完全基于刚体动力学模型的辨识精度有限,辨识误差较大,尤其是在关节速度很低的时候,动力学模型辨识误差较大。
4、准确估计动力学参数是识别机械臂动力学过程中的关键一步。几种常用的动力学参数辨识方法包括最小二乘算法、加权最小二乘算法、最大似然估计和卡尔曼滤波,尽管这些方法可以快速识别动力学参数,但仍存在如下问题:
5、1.这些算法容易受到噪声和异常值的影响,采集的数据通常存在很大的噪声,这些噪声通常会导致数据存在很大的误差,这些误差影响辨识精度。
6、2.辨识的动力学参数不满足物理可行性约束,辨识的参数会超过正常值,这将导致辨识的模型虽然在数值上精度很高,但是不符合实际的物理情况。
7、3.物理可行性约束会降低动态识别的准确性,并可能导致辨识的动力学参数处于物理可行性约束的边缘。
8、4.速度带宽的限制导致机械臂的辨识轨迹无法实现高速运行,导致激励轨迹并不能设计的很大,从而使得辨识效果不好。
9、5.这些算法无法有效结合非线性摩擦模型进行动力学参数辨识;
10、现有的参数辨识的方法将整个模型完全线性化,这种方法不适合纳入非线性摩擦模型。
技术实现思路
1、本发明为解决上述问题,提供了一种机械臂动力学参数的辨识方法,本发明所采用的辨识方法,其动力学模型为半线性化动力学模型,融合了摩擦模型的非线性,使得辨识的参数更精准,更贴合实际的物理情况。
2、本发明提供的机械臂动力学参数的辨识方法,包括:
3、s1:依据机械臂关节速度的方向,建立机械臂的分段关节非线性摩擦模型:
4、;
5、其中,表示机械臂的任意一个关节,表示机械臂关节总数,表示关节速度为正时的粘滞摩擦力,表示关节速度为负时的粘滞摩擦力,表示关节速度为正时的库伦摩擦力,表示关节速度为负时的库伦摩擦力,表示关节速度为正时关节摩擦力的偏置项,表示关节速度为负时关节摩擦力的偏置项,表示机械臂第个关节的关节速度,表示关节速度为正时,关节的非线性摩擦参数,表示关节速度为负时,关节的非线性摩擦参数,表示关节的摩擦力,表示机械臂的关节摩擦力矩,表示符号函数;
6、s2:结合分段关节非线性摩擦模型,通过迭代的半线性化动力学辨识算法建立机械臂的半线性化动力学模型:
7、;
8、其中,表示机械臂的总关节力矩,表示机械臂的惯性总力矩,表示无摩擦项的回归矩阵的子集,表示无摩擦参数的动力学最小参数集向量,表示非线性,表示线性,表示机械臂的惯性力矩,表示机械臂的科氏力力矩,表示机械臂的重力力矩;
9、s3:按照预定轨迹对机械臂的每一个关节进行独立驱动,计算每个关节的关节摩擦力矩的初始值;
10、s4:依据关节摩擦力矩的初始值,进行如下迭代:
11、将关节摩擦力矩的初始值代入摩擦参数辨识方程,利用内点法辨识分段关节非线性摩擦模型的摩擦参数,摩擦参数辨识方程为:
12、;
13、其中,表示关节摩擦力矩的初始值
14、依据辨识的摩擦参数,更新分段非线性摩擦模型,依据更新后的分段非线性摩擦模型计算关节摩擦力矩的计算值;
15、依据如下力矩关系式和关节摩擦力矩的计算值,计算机械臂的惯性总力矩的计算值:
16、;
17、其中,表示机械臂的总关节力矩;
18、依据惯性总力矩的计算值,利用加权最小二乘算法辨识半线性化动力学模型的惯性参数,惯性参数辨识方程为:
19、;
20、其中,表示目标函数,
21、依据惯性参数,更新半线性化动力学模型;
22、判断机械臂力矩的均方根误差和摩擦参数的更新量是否均收敛到预定阈值内:
23、若是,则结束辨识流程;
24、若否,则依据更新后的半线性化动力学模型,重新计算机械臂的惯性总力矩的更新值,并通过力矩关系式,依据惯性总力矩的更新值,再次计算关节摩擦力矩的更新值,用关节摩擦力矩的更新值替代步骤s4中的关节摩擦力矩的初始值,重复执行步骤s4。
25、优选的,预定轨迹的表达式如下:
26、;
27、其中,表示关节运动轨迹周期,表示0至时间内的任意时刻,表示关节速度换向所需时间,表示在时刻关节的关节速度,表示关节的期望关节速度,表示运动轨迹参数。
28、优选的,关节摩擦力矩的初始值的计算方法为:
29、;
30、;
31、其中,,表示根据预定轨迹计算得到的摩擦力矩,表示在关节位置为、关节速度为、关节加速度为0时的机械臂关节力矩,表示在关节位置为、关节速度为、关节加速度为0时的机械臂关节力矩。
32、优选的,还包括s5:利用深度卷积神经网络对半线性化动力学模型的模型误差进行补偿。
33、优选的,深度卷积神经网络的损失函数为:
34、;
35、其中,表示根据辨识的半线性化动力学模型导出的半线性化动力学模型的模型误差,表示卷积神经网络生成的输出,表示训练样本的总数。
36、优选的,补偿后的半线性化动力学模型为:
37、。
38、其中,表示神经网络补偿的半线性化动力学模型的模型误差,表示神经网络。
39、与现有技术相比,本发明能够取得如下有益效果:
40、本发明所提出的辨识方法所建立的动力学模型为半线性化动力学模型,其结合了分段非线性摩擦模型,分段分线性摩擦模型考虑了机械臂的速度方向,有效提高动力学参数辨识精度,进而提高动力学模型精度,本发明提出的动力学参数辨识方法辨识得到的动力学参数可以满足物理可行性约束,使得辨识的动力学参数数值更合理,更符合实际情况,同时本发明还通过深度学习卷积神经网络对动力学模型的不确定性进行补偿,可以有效处理动力学模型的参数辨识误差,可提高机械臂在低速运动下的动力学模型精度,进而提高动力学模型的可靠性和准确性。
1.一种机械臂动力学参数的辨识方法,其特征在于,包括:
2.如权利要求1所述的机械臂动力学参数的辨识方法,其特征在于,所述预定轨迹的表达式如下:
3.如权利要求1所述的机械臂动力学参数的辨识方法,其特征在于,所述关节摩擦力矩的初始值的计算方法为:
4.如权利要求1所述的机械臂动力学参数的辨识方法,其特征在于,还包括s5:利用深度卷积神经网络对所述半线性化动力学模型的模型误差进行补偿。
5.如权利要求4所述的机械臂动力学参数的辨识方法,其特征在于,所述深度卷积神经网络的损失函数为:
6.如权利要求5所述的机械臂动力学参数的辨识方法,其特征在于,补偿后的半线性化动力学模型为: