您的位置:网站首页 > 技术应用 > 正文

Matlab在六维腕力传感器系统标定中的应用

作者:admin来源:本网 日期:2017-10-27 15:05:19 人气: 标签:

  9基项目)本本课题受国家教育部博士点基金资助项目blishing失,需要重新对其进行标定和解耦以及特性分析。六维腕力传感器的标定是提高六维腕力传感器精度的关键,原有的六维腕力传感器的标定及测试软件是用C语言编写的,软件工作量大,调试周期长,而且可读性差,缺少可维护性。Madab语言的出现为六维腕力传感器的标定和测量提供了一个功能强大的软件工具。在原有硬件的基础上,我们对数据处理的软件部分做了很大的改进,采用VC和Matlab相结合的方法,大大提高了数据分析和处理的精度和效率,结果更为直观。

  2.1腕力传感器的解耦原理六维腕力传感器弹性体的主梁上对称贴有16个应变片可以组成8个电桥,输出电压正比于应变片平面方向的分力。根据输出电压与力的线性关系,对应变片输出电压信号做适当的处理,就可得出力的三个分量和力矩的三个分量。

  首先假设传感器系统模型为线性系统,即V=HXF,其中VGR6为输出电压信号,FGR6为作用在传感器上的力和力矩,HGR6" 6为常数矩阵,其元素由传感器所决定。传感器标定实际就是求标定矩阵C.也就是根据加载在传感器上的力(称为标定力)和传感器各通道输出测量传V由上式求解出H.其中C就是标定矩阵或称传递系数矩阵。求解过程实际是多元函数的最小二乘法拟合。

  以往,解耦矩阵的计算我们需要自己根据最小二乘法的原理用VC或C编制矩阵方程求转置和逆的程序,以及多项式拟合曲线(根据传感器模型,这里指线性拟合)以及拟合曲线显示程序。以上这些单纯用C或VC编写都有较大的工作量。

  现在,我们用VC编程,将从腕力传感器中得到的八路信号经数据采集卡采集到后,以文本文件的形式存储,这样,数据解耦和标定以及图形化显示的工作主要由Matlab来完成,我们只需要由VC直接调用这些Matlab函数文件就可以了,无需编制复杂的VC关于多元矩阵方程的求解和图形显示程序。Matlab关于线性方程求解、多项式拟合、以及图形显示都有现成的函数,关键是如何用VC调用Matlab的脚本文件。由于Matlab缺少如VC、C等直接读写I/O口的函数,这样不得不用VC或C读I/O的函数,先从数据采集卡中读取数据,供Matlab处理。

  本文采用VC内部调用Matlab函数法。具体如下:生成几个连接库文件。在目录c:\Matlab\extem\include下找这几个文件:libeng.deflibmx.deflibmat.def在DOS行命令下生成二个库文件:c:\msdev \lib/def:lib.def/out:lib……b把生成的三个LIB文件加入到工程的LINK项。

  写包含engine 1VC的格式如下Academic这种方法,Matlab的函数和VC的源程序一起被编译。Matlab的函数库可以看作是VC的外部函数库。VC调用Matlab的函数就象是调用自己的函数一样方便。值得注意的是,从VC程序中调用Matlab头文件必须包含engine……用engOpen((打开一个引擎,在调用时须先用engOpen(NULL)来初始化;Matlab的命令要由engEvalString来传递,此夕卜,C与Matlab存储矩阵的方式不同,C以行存储矩阵而Matlab是按列存储。这样,Matlab与VC通道就建立了。

  2.3静态解耦运算和曲线拟合我们对每维力做加载实验,在量程范围内均匀采样11个点,测量数据采集卡对应电压输出值,测量多次取平均值。假设作用在传感器的力向量F1=T,i6n测量出各通道的输出为ViV2…V6T,由式(1)可得关于矩阵H的第j行元素的线性方程组(66):亦即用Matlab求解线性方程V=HXF非常简单。要求得H,Matlab有两种方法。一种方法是用除法运算来求即,H=V/F.另一种是用广义逆来求H=VXpinv(F)。这两种解都是最小二乘意义上的解结果是一致的。

  在测量了单维力作用下负载逐渐变化时各通道输出电压值后,需要对全部测量数据做线性拟合,来了解各维力/力矩之间的影响即耦合作用。我们使用Matlab多项式拟合函数plotfi(4-由)于存在维间耦合h在单方向上加力)时fc会对其他方向上产生力或力矩作用因此,i://ww解耦矩阵非主对角元不全为零。最终我们计算得到的解耦矩阵:一0.该矩阵中C51、C42较大,接近主对角元。说明Fx对MyFy对她的耦合作用相对于其它分量要大。显示单方向逐渐加力时,各主通道的输出变化情况。从图上可以得知主通道上单维力/力矩线性度很好,并且关于零点对称。为测量六维力/力矩数据的三维立体图,用三维表面函数surf实现。其中,X轴1*6分别表示FxiMz六个方向输出,Y轴表示分别在这六个方向加力或力矩,Z轴表示各方向对应输出值大小。该图实际就是解耦矩阵C的立体显示。对角线上的尖峰对应于解耦矩阵主对角元,分别加Fx、Fy方向力时,Vmy、Vmx上出现两个尖峰,对应于解耦矩阵C5PC4,2.这很直观的说明了力与力矩之间的耦合作用。

  与上面的理论分析是一致的。

  2.4动态特性研究腕力传感器的动态标定是在完成静态标定的基础上进行的,Matlab的系统工具是一个很有力的特性分析工具它的辨型可以是稚数模醢中的频域纠局、脉冲响介应模型,也可以是参数模型类中的ARX模型、BJ模型等。非参数模型是由腕力传感器的实测频响曲线和单位阶跃响应曲线直接获得传感器的时、频域的特性参数。而参数模型则是用有限参数来描述对象模型,求出传递函数,进而获得时频域的特性参数。以spa函数为例,spa函数的功能是利用频谱分析方法估计对象的频率响应和噪声频谱,利用这个函数我们能直接得到频率响应估计和噪声频谱估计的波特图。具体方法是,z指对象的输入输出数据向量z=,7、u分别是各主通道输出电压值和输入力值构成的列向量;一频率响应函数估计Gf);*噪声的频谱估计Y(w)。

  3结论()利用Matlab矩阵运算、多项式拟合以及平面图形处理函数,能够非常简便的求解腕力传感器的解耦矩阵,并能提高静态耦合率的精度。

  动态参数和非参数数学模型,确定腕力传感器的动态时频域性能指标,为估计传感器的性能、改进传感器的设计提供了依据。

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料