时间:2024-05-22
刘晓宇,盖广洪
(陕西电器研究所,西安 710025)
Stewart结构具有刚度高、对称性好、结构紧凑以及解耦特性好等优点,特别适合作为六维力传感器力敏元件结构[1]。
理想的六维力传感器在输入单维的力/力矩时,输出的应当只有该方向的力/力矩。然而由于结构设计、加工精度等问题,必然会导致其他方向也有力的输出,即产生维间耦合。
为降低维间耦合,一方面会引入关节轴承、万向节、球铰链、柔性结构等释放多余耦合力[2];另一方面使用求解标定矩阵[3-5]和BP神经网络训练[6-9]两种算法进行解耦。由于实际工程中传感器须达到极大的刚度,需将弹性杆件固定约束,导致该传感器输入输出无法满足线性关系,因而传统的使用单维加载数据进行解耦[10-12]及个别文章提及的有关二维加载[13]方法均无法在该情况下使用。
本文在此基础上进行了解耦算法的比较与优化设计,以使得该传感器的精度能够达到要求。
图1 传感器结构示意图
如图1所示的Stewart六维力传感器,其包含上平台、下平台和6个弹性分支杆件。上、下平台与弹性杆件通过去耦结构连接,各个平台的去耦结构分布在同一个圆周上;弹性杆件用来测力,其位置成对称关系,在不考虑重力和摩擦力的情况下,每个弹性杆件都只承受沿轴线方向的拉力或压力,即二力杆,因而通过检测6个弹性杆件的形变情况就可以对空间载荷进行测量。整个结构为对称的静态结构,具有保持几何不变性所需的最少约束,减少任何一个约束都将使结构失去几何不变性。
该结构有5个主要参数:上、下平台半径,上、下平台定位角,上下平台距离。
根据螺旋理论,以上平台坐标系为基准,列出平衡方程如下:
(1)
可以简化为:
FW=Gf
(2)
为了有效提高结构的刚度,将传感器支路的连接方式由铰约束改为了固支约束,在主体结构不变的前提下最大限度的提高了刚度[2]。然而这样就导致了传感器无法保证输入输出之间的线性关系。
制作的样机实物图如图2所示,该样机拉压刚度不小于1×108N/m,量程为-1 500 N/(N·m)~1 500 N/(N·m),误差要求控制在3.75%范围内。
图2 传感器实物图
数据的标定用来获得传感器的静态特性,其标定的精度将直接影响传感器使用时的测量精度,其重要程度显而易见。
标定系统主要由加载系统、信号放大电路、数据采集卡组成,通过将标准的标定力和力矩加载到传感器上,经过信号放大电路进行放大和滤波,最后经数据采集卡将电压信号采集到计算机中,从而得到对应的输出电压值。
传统的标定过程都是对六维力传感器的6个方向分别进行标定,得到单维方向的标定力F和力矩M对应的输出电压值U。
使用求解标定矩阵方法进行解耦的前提是:将传感器系统视为线性系统,即弹性结构的输出与其对应的输入为线性关系。
标定矩阵C即为正映射矩阵G的逆矩阵,由于G一般为非奇异矩阵,不能直接求逆,因而需要利用伪逆矩阵来求解,其求解公式为:
C=FSU-
(3)
式中:FS=[FM]∈R6×6n为标定力和力矩所组成的矩阵;U为标定所得电压值所组成的矩阵;U-=U+=UT(UUT)-1为矩阵U的伪逆矩阵。
求得标定矩阵C之后,使用C和电压值反解求得解算力值,与理论力值做差,求得各个方向上的误差。
然而由于制造工艺等种种原因,弹性结构无法做到理想的对称,导致传感器的输入输出并非是理想的线性关系[14],因而该种方法的误差会相对大一些。
图3 BP神经网络结构图
由于神经网络可以构建非线性映射关系,故可应用于六维力传感器的静态标定解耦。而神经网络中一般使用的是结构较为简单的BP神经网络,如图3所示。BP神经网络有两个特点:一是网络为全连接,即在任一层上的任意一个神经元与它之前层上的所有节点、所有神经元都是连接的;二是网络为一个多层前馈网络,具有一个或多个隐含层,信号从左到右一层一层逐步流过。该算法衡量误差的标准为均方差,过程中每输入一个样本,便将网络的实际输出与期望输出进行对比,进而调整网络的参数以获得最小的均方误差。
将BP神经网络应用于六维力传感器系统中时,是将标定得到的电压值组成的列矢量U=[U1U2U3U4U5U6]T作为神经网络的输入,将对应的施加在传感器系统上的标定力和力矩所组成的列矢量FS=[FxFyFzMxMyMz]T作为神经网络的目标输出,选择合适的激活函数、训练方法和约束条件,通过改变隐含层神经元的个数对数据进行训练,而随着神经元个数的增加,训练精度会逐渐提高,但训练速度也会逐渐变慢,因此需要选择合适的精度要求以获得最优的网络。
使用BP神经网络还有一个优势就是,在MATLAB软件中有成熟的神经网络工具箱(NNTOOL),该工具箱提供了面向不同神经网络模型特别是BP神经网络模型的丰富多彩的网络学习和训练函数,为神经网络的设计、建模和仿真提供了极大的便利[15]。
通过对样机进行标定获得大量数据,使用以上两种方法进行解耦运算,发现两种方法解得的结果都有较大的误差。其中使用求解标定矩阵方法时发现,该样机当单独施加My或Mz方向的力矩时,其他方向会产生非常严重的维间耦合;使用BP神经网络训练的方法时发现,对标定数据的解算结果良好,但是当将该网络进行对多维复合加载数据的验证时,会产生极大的偏差。这两个问题的出现意味着常用的两种解耦方法无法针对该样机使用。
为了同时解决该样机的维间耦合和多维加载两个问题,本文提出了一种新的思路,即在获取标定数据时同时进行单维加载和多维加载,再使用上述两种方法分别解耦运算,观察解耦效果如何,是否可以投入使用。
本文共进行了四次重复标定,标定时同时进行单维加载和多维加载,其中多维加载包含四维、五维、六维多种工况,且都包含My和Mz两个方向,获得的数据分为单维数据、复合数据和两者组成的总体数据。
误差的计算方式为:
(4)
式中:F为标定力/力矩值,f为解算力/力矩值。
3.1.1 求解标定矩阵
①首先针对四次单维数据,使用求标定矩阵的方法,解得的结果误差矩阵如下:
式中:Fx方向最大误差为4.55%,Fy方向最大误差为11.49%,Fz方向最大误差为2.65%,Mx方向最大误差为0.45%,My方向最大误差为0.36%,Mz方向最大误差为1.54%。
观察发现,加载My或Mz时,会产生较大的维间耦合,其中以加载My时在Fy方向上产生的维间耦合最大,达到了11.49%。
②使用四次复合数据进行验证,验证误差结果如下:Fx方向最大误差为8.02%,Fy方向最大误差为14.00%,Fz方向最大误差为15.57%,Mx方向最大误差为1.37%,My方向最大误差为2.39%,Mz方向最大误差为1.57%,显然误差较反解自身更大。
3.1.2 BP神经网络
①使用MATLAB中自带的神经网络工具箱进行操作,首先建立BP神经网络模型,隐含层采用单层神经元,隐含层神经元的激活函数采用S型正切函数(Tansig),输出层神经元的激活函数采用线性函数(Purelin),训练方法采用收敛速度较快的Levenberg-Marquadt带反弹算法(Trainlm函数);之后导入标定得到的四次单维数据,设定电压信号为输入,理想的力值/力矩值为目标输出。模型建立好之后,通过调整隐含层神经元的个数进行训练,随着神经元个数的增加,训练速度逐渐变慢,训练精度逐渐提高。
当神经元到达40个时的误差如下:Fx方向最大误差为0.63%,Fy方向最大误差为0.48%,Fz方向最大误差为1.13%,Mx方向最大误差为0.22%,My方向最大误差为0.21%,Mz方向最大误差为0.32%,显然与传统方法相比,最大误差大大减小。
②使用四次复合数据进行验证,验证误差结果如下:Fx方向最大误差为69.74%,Fy方向最大误差为230.40%,Fz方向最大误差为240.81%,Mx方向最大误差为64.49%,My方向最大误差为133.58%,Mz方向最大误差为124.65%,显然使用单维数据训练得到的网络无法对多维复合数据进行解算。
经过以上说明,求解标定矩阵的方法无法解决My和Mz方向产生的维间耦合问题,而传统的BP神经网络方法可以有效降低维间耦合,但训练得到的模型无法应用于多维力同时加载的复合工况。
为此,本文提出一种新的方法,即将四次重复数据标定中的前3组总体数据作为新的标定和训练数据,使用传统解算方法和BP神经网络方法来进行解算,最后使用第4次的数据进行验证。
3.2.1 求解标定矩阵
①针对前三次的总体数据,使用求标定矩阵的方法,解得的结果误差如下:Fx方向最大误差为6.12%,Fy方向最大误差为13.58%,Fz方向最大误差为14.24%,Mx方向最大误差为1.38%,My方向最大误差为2.13%,Mz方向最大误差为1.63%,发现较之前采用相同方法针对单维数据求得的结果误差更大。
②使用第4次总体数据进行验证,验证误差结果如下:Fx方向最大误差为5.89%,Fy方向最大误差为12.02%,Fz方向最大误差为15.39%,Mx方向最大误差为0.52%,My方向最大误差为1.80%,Mz方向最大误差为1.55%,证明该方法仍然无法解决维间耦合问题。
3.2.2 BP神经网络
①使用BP神经网络对前三次总体数据进行训练,隐含层采用单层神经元,隐含层神经元的激活函数采用Tansig函数,输出层神经元的激活函数采用Purelin函数,训练方法采用收敛速度较快的Trainlm函数,调整隐含层神经元的个数进行训练,随着神经元个数的增加,训练速度逐渐变慢,训练精度逐渐提高。
当神经元到达40个时的误差如下:Fx方向最大误差为2.27%,Fy方向最大误差为1.85%,Fz方向最大误差为1.83%,Mx方向最大误差为1.14%,My方向最大误差为0.62%,Mz方向最大误差为1.73%,发现各个方向都在误差允许范围内。
②使用第4次总体数据进行验证,验证误差结果如下:Fx方向最大误差为1.66%,Fy方向最大误差为1.26%,Fz方向最大误差为1.81%,Mx方向最大误差为0.37%,My方向最大误差为0.48%,Mz方向最大误差为0.43%,发现都可以满足要求。
将几种情况各个方向的最大误差列表为表1。
表1 改进前后传感器最大误差值
通过对比发现,改进后使用BP神经网络的方法,在隐含层神经元个数为40时,能够有效提高传感器使用精度。
本文提出了改进的六维力传感器解耦算法,并通过实际标定数据的验证,得到了如下结论:同时通过单维加载和多维加载进行标定,之后使用BP神经网络训练的方法进行解耦运算,可以有效地减小6个方向的最大误差,提高传感器的标定精度,能够同时解决Stewart六维力传感器的维间耦合问题和多维方向加载问题。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!