1. 引言
发展至今,人们对纱线张力传感器静态特性的研究比较全面和成熟,但对其动态特性研究较少。传感器静态性能与动态性能一般分开研究,研究动态性能时认为静态性能是理想的 [1],纱线张力传感器在使用时测量信号为动态信号,使用传感器静态特性计算时,不可避免地带来计算误差,影响测试精度,因此对传感器动态性能研究具有现实意义 [2]。其中,传感器的动态特性是指传感器对随着时间变化的输入量的响应特性,一般从时间域和频率域来表征传感器的动态特性。由于MATLAB具有强大的数据处理能力以及良好的编程环境,在数据分析、图像处理、信号处理和控制系统等领域广泛应用 [3],为了获得纱线张力传感器的动态特性,通过动态实验数据用系统辨识 [4] 的方法得到其动态模型,利用MATLAB进行编程和计算,从而求得传感器的动态性能指标。
2. 纱线张力传感器动态性能指标
参考文献 [5] [6],通过数学模型对传感器的动态性能进行分析,从时间域指标和频率域指标对纱线张力传感器动态特性进行了全面描述。
2.1. 时间域动态性能指标
纱线张力的时域动态特性用单位阶跃信号作为输入信号时输出的曲线来表示,如图1所示。上升时间和响应时间是表征传感器响应速度的参数,超调量是表征传感器稳定性能的参数。时间域动态性能指标通常定义:
1) 上升时间
:响应从稳定值的x%变化到y%所需时间。x一般取0或10,y一般取90或100。
2) 响应时间
:响应曲线从刚开始变化到稳定值范围内的时间。稳定值范围一般为稳定值的2%或5%。
3) 超调量
:响应曲线最大值与稳定值之差与稳定值的百分比。
2.2. 频率域动态性能指标
频率特性包括幅频特性和相频特性,传感器频率特性一般关注幅频特性。频率域动态性能指标一般为工作频带,即幅值误差为±2%或±5%时的工作频带,如图2中
和
。
Figure 1. Dynamic response at step input
图1. 阶跃输入时的动态响应
Figure 2. Amplitude and frequency characteristic curve of the sensor
图2. 传感器幅频特性曲线
3. MATLAB在传感器动态性能中的应用
3.1. 递推最小二乘算法(RLS)
最小二乘法是应用最广泛的系统辨识方法,但存在一些缺点,比如:预先选取的观测值越多,系统参数估计的精度越高,但矩阵求逆的计算量也越大,需要的储存空间也会越大 [7]。而递推最小二乘法计算量小,可用于在线辨识。其中心思想可概括为:新的参数估计值等于旧的参数估计值加上修正值,即使辨识对象随着时间发生变化,模型也能不断地更新和修正辨识参数 [8],每获得一次新的观测数据就修正一次参数估计值,直至获得满意的辨识结果。参考文献 [9],递推最小二乘法可表示为:
辨识是从一组模型中选择某个模型,按照一定准则,使其能最好的拟合实际过程中的静态特性或动态特性。系统辨识的基础是模型结构,所以需要选择出与系统输入输出特性最等价的数学结构模型。参考文献 [10] 可知纱线张力传感器是线性模型,由于二阶模型基本上可以反映高阶系统的特性,可以把纱线张力传感器系统看做一个二阶系统。确定模型类后可以根据系统的输入输出数据,按照递推最小二乘法的辨识算法确定结构参数。
3.2. 纱线张力传感器数据采集
由于纱线张力较小,纱线张力传感器采集纱线张力首先需经过放大模块放大一定倍数,其次通过单片机进行AD转换,最终由串口传输至上位机。数据采集流程图如图3所示。
Figure 3. Flow chart of data acquisition
图3. 数据采集流程图
ADC对输入信号的分辨能力取决于其分辨率,纱线张力传感器输出的最大电压为3.3 V。部分采集程序为:
void Iint()
{
num = 0;//局部变量
ADC_ConvertValue = 0;//变量
AD_Op = 0;//启动ADC采集
HAL_Delay();//延时
AD_Op = 1;
while(1)
{
sprintf((ADC_ConvertValue[0]*3.3)/4095,(ADC_ConvertValue[1]*3.3)/4095,theta);//转换完成
HAL_Delay(时间a);//延时,a为任意整数,可根据实际情况调整
}
ADC_Re = 0;//读取ADC转换结果
num =((ADC_ConvertValue[0]*3.3)/4095)*b;//转换结果放大b倍后赋值给num
HAL_UART_Transmit(&huart1,(uint8_t*)str,strlen(str),HAL_MAX_DELAY);//串口发送AD转换数据
}
采集过程中发现,上位机上实时采集曲线波动过大,通过调节采样频率等操作发现可能存在的原因是,采样频率远大于传感器信号输出频率,为此采集一定时间内的数据后取平均数,发现上位机监测波形较为稳定。部分程序如下:
last20press[i] = ADC_ConvertValue[0];
if(i=1)
{
i = 0;
}
if(采样时间=c)//c为整数
{
time = 0;
buttter = 0;
for(unit8_t j=0;j
{
butter+=last20press[j];
}
press=butter/d;//除一定数值,d为任何整数,可根据上位机波形进行调节
}
3.3. 基于MATLAB递推最小二乘法系统辨识
系统辨识包括两个方面:结构辨识和参数估计。图4为递推最小二乘法流程图,图5为纱线张力传感器受到激励后的输出响应,将激励信号和输出信号分别作为输入数据和输出数据,可作为观测数据 [11]。
Figure 4. Recursive least squares flow chart
图4. 递推最小二乘法流程图
Figure 5. Step response diagram of yarn tension sensor
图5. 纱线张力传感器阶跃响应图
其程序如下:
load(‘实验数据.mat’);//加载动态实验数据
a[1 1 1]’;b=[1 1]’;d=1;%a>=b
na=length(a)-1;nb=length(b)-1;//na、nb为A、B阶次
L=length(x);//定义观测测量长度
uk=zeros(d+nb);//输入初值:uk(i)表示u(k-i)
yk=zeros(na,1);//输出初值
u=randn(L,1);//输入白噪声序列
u=y3;//读取加速度传感器输出
xi=sqrt(0.1)*randn(L,1);//白噪声序列
theta=[a(2:na+1);b];//辨识参数
thetae_1=zeros(na+nb+1,1);//辨识参数theta赋初值
P=s*eye(na+nb+1);//s一般取10^6-10^10
phi=[-yk;uk(d:d+nb)];//此处phi为列向量
y(k)=y2(k);//读取电桥输出数据
K=P*phi/(1+phi’*P*phi);
thetae(:,k)=thetae_1+K*(y(k)-phi’*thetae_1);
P=(eye(na+nb+1)-K*phi’)*P;//更新参数估值
thetae_1=thetae(:,k);
for i=d+nb:-1:2
uk(i)= uk(i-1);
end
uk(1)=y3(k);
for i=na:-1:2
yk(i)=yk(i-1)
end
yk(1)=y2(k);
3.4. 分析结果
将纱线张力传感器的输入输出数据导入MATLAB中进行分析后可得传感器的传递函数为
。MATLAB计算可得出其阶跃响应曲线和幅频特性曲线,分别如图6和图7。
由此可以求出纱线张力传感器的动态特性指标。
时间域动态性能指标:超调量
,峰值时间
,上升时间
,响应时间为
;频率域动态性能指标:幅值误差±5%时的工作频率为
,幅值误差 ± 2%时的工作频率为
。
由结果分析可知,从时间域性能指标中的峰值时间和响应时间可以看出纱线张力传感器响应快,能够快速反应张力值的大小;振荡周期且次数少,表征纱线张力传感器的波动小。从频率域性能指标可以看出纱线张力传感器谐振频率大小,能够提前了解纱线张力传感器的谐振频率,在实际工况中应避免纱线张力传感器与外界环境产生共振,保证纱线张力传感器的稳定性。通过动态性能指标可以反映出传感器在动态测试时的性能,能够更加精确的测量纱线张力,同时此方法对应变式传感器均有效,具有普适性。
Figure 6. Yarn tension sensor step curve
图6. 纱线张力传感器阶跃曲线
Figure 7. Amplitude-frequency characteristic curve of yarn tension sensor
图7. 纱线张力传感器幅频特性曲线
4. 总结
本文针对纱线张力传感器对张力的采集进行了编程,依据纱线张力小的特性在程序中对其电压信号进行了倍数放大,并且依据上位机显示波形波动大的问题,通过编写程序对一定时间内的电压数据取平均值可有效减小波动幅度。同时,基于递推最小二乘法对纱线张力传感器系统对象进行了动态特性辨识分析,并借助了MATLAB这个计算能力强大的辨识工具,可以便捷准确的实现算法计算,使得参数辨识和参数估计的过程变得轻便易行。此方法可以快捷有效的得到纱线张力传感器的阶跃曲线和幅频曲线,进而得到纱线张力传感器的动态性能指标。通过动态性能指标可以反映出传感器在动态测试时的性能,能够更加精确的测量纱线张力,同时此方法对应变式传感器均有效,具有普适性。