为了采集纱线张力传感器的电压信号,通过单片机和串口完成了对传感器数据的采集和传输,与此同时,通过编写程序提高了数据波形稳定输出。同时,基于递推最小二乘法(RLS)进行系统辨识的基本原理,给定纱线张力传感器实际输入输出数据,利用MATLAB编写递推最小二乘法程序,得到纱线张力传感器系统的阶跃响应曲线和幅频曲线,从而计算出纱线张力传感器的动态特性指标。 In order to acquire the voltage signal of the yarn tension sensor, the acquisition and transmission of the sensor data is done through the microcontroller and serial port, and at the same time, the stable output of the data waveform is improved by writing a program. At the same time, based on the basic principle of recursive least squares (RLS) for system identification, a recursive least squares program is written using MATLAB to obtain the step response curve and amplitude frequency curve of the yarn tension sensor system, given the actual input and output data of the yarn tension sensor, so as to calculate the dynamic characteristic index of the yarn tension sensor.
为了采集纱线张力传感器的电压信号,通过单片机和串口完成了对传感器数据的采集和传输,与此同时,通过编写程序提高了数据波形稳定输出。同时,基于递推最小二乘法(RLS)进行系统辨识的基本原理,给定纱线张力传感器实际输入输出数据,利用MATLAB编写递推最小二乘法程序,得到纱线张力传感器系统的阶跃响应曲线和幅频曲线,从而计算出纱线张力传感器的动态特性指标。
递推最小二乘法,MATLAB,纱线张力传感器,动态特性
Jiazhi Cao1, Zhenfeng Xu1, Xiaoluan Yu2
1School of Advanced Manufacturing Engineering, Hefei University, Hefei Anhui
2School of Mechanical Engineering, Zhejiang Sci-Tech University, Hangzhou Zhejiang
Received: Dec. 7th, 2022; accepted: Jan. 3rd, 2023; published: Jan. 12th, 2023
In order to acquire the voltage signal of the yarn tension sensor, the acquisition and transmission of the sensor data is done through the microcontroller and serial port, and at the same time, the stable output of the data waveform is improved by writing a program. At the same time, based on the basic principle of recursive least squares (RLS) for system identification, a recursive least squares program is written using MATLAB to obtain the step response curve and amplitude frequency curve of the yarn tension sensor system, given the actual input and output data of the yarn tension sensor, so as to calculate the dynamic characteristic index of the yarn tension sensor.
Keywords:Recursive Least Squares, MATLAB, Yarn Tension Sensor, Dynamic Characteristics
Copyright © 2023 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
发展至今,人们对纱线张力传感器静态特性的研究比较全面和成熟,但对其动态特性研究较少。传感器静态性能与动态性能一般分开研究,研究动态性能时认为静态性能是理想的 [
参考文献 [
纱线张力的时域动态特性用单位阶跃信号作为输入信号时输出的曲线来表示,如图1所示。上升时间和响应时间是表征传感器响应速度的参数,超调量是表征传感器稳定性能的参数。时间域动态性能指标通常定义:
1) 上升时间 t r :响应从稳定值的x%变化到y%所需时间。x一般取0或10,y一般取90或100。
2) 响应时间 t s :响应曲线从刚开始变化到稳定值范围内的时间。稳定值范围一般为稳定值的2%或5%。
3) 超调量 σ = y m − y ( ∞ ) y ( ∞ ) × 100 % :响应曲线最大值与稳定值之差与稳定值的百分比。
频率特性包括幅频特性和相频特性,传感器频率特性一般关注幅频特性。频率域动态性能指标一般为工作频带,即幅值误差为±2%或±5%时的工作频带,如图2中 ω 1 和 ω 2 。
图1. 阶跃输入时的动态响应
图2. 传感器幅频特性曲线
最小二乘法是应用最广泛的系统辨识方法,但存在一些缺点,比如:预先选取的观测值越多,系统参数估计的精度越高,但矩阵求逆的计算量也越大,需要的储存空间也会越大 [
{ θ ^ ( k ) = θ ^ ( k − 1 ) + K ( k ) [ z ( k ) − h T ( k ) θ ^ ( k − 1 ) ] K ( k ) = P ( k − 1 ) h ( k ) [ h T ( k ) P ( K − 1 ) h ( k ) + 1 ] − 1 P ( k ) = [ I − K ( k ) h T ( k ) ] P ( k − 1 )
辨识是从一组模型中选择某个模型,按照一定准则,使其能最好的拟合实际过程中的静态特性或动态特性。系统辨识的基础是模型结构,所以需要选择出与系统输入输出特性最等价的数学结构模型。参考文献 [
由于纱线张力较小,纱线张力传感器采集纱线张力首先需经过放大模块放大一定倍数,其次通过单片机进行AD转换,最终由串口传输至上位机。数据采集流程图如图3所示。
图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[
HAL_Delay(时间a);//延时,a为任意整数,可根据实际情况调整
}
ADC_Re = 0;//读取ADC转换结果
num =((ADC_ConvertValue[
HAL_UART_Transmit(&huart1,(uint8_t*)str,strlen(str),HAL_MAX_DELAY);//串口发送AD转换数据
}
采集过程中发现,上位机上实时采集曲线波动过大,通过调节采样频率等操作发现可能存在的原因是,采样频率远大于传感器信号输出频率,为此采集一定时间内的数据后取平均数,发现上位机监测波形较为稳定。部分程序如下:
last20press[i] = ADC_ConvertValue[
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为任何整数,可根据上位机波形进行调节
}
系统辨识包括两个方面:结构辨识和参数估计。图4为递推最小二乘法流程图,图5为纱线张力传感器受到激励后的输出响应,将激励信号和输出信号分别作为输入数据和输出数据,可作为观测数据 [
图4. 递推最小二乘法流程图
图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);
将纱线张力传感器的输入输出数据导入MATLAB中进行分析后可得传感器的传递函数为
G ( s ) = 0.9797 s + 6304 s 2 + 6293 s + 5.239 e 07 。MATLAB计算可得出其阶跃响应曲线和幅频特性曲线,分别如图6和图7。
由此可以求出纱线张力传感器的动态特性指标。
时间域动态性能指标:超调量 σ ≈ 42.5 % ,峰值时间 t m ≈ 0.309 ms ,上升时间 t r ≈ 0.122 ms ,响应时间为 t s ≈ 1.39 ms ;频率域动态性能指标:幅值误差±5%时的工作频率为 ω 1 ≈ 808 Hz ,幅值误差 ± 2%时的工作频率为 ω 2 ≈ 470 Hz 。
由结果分析可知,从时间域性能指标中的峰值时间和响应时间可以看出纱线张力传感器响应快,能够快速反应张力值的大小;振荡周期且次数少,表征纱线张力传感器的波动小。从频率域性能指标可以看出纱线张力传感器谐振频率大小,能够提前了解纱线张力传感器的谐振频率,在实际工况中应避免纱线张力传感器与外界环境产生共振,保证纱线张力传感器的稳定性。通过动态性能指标可以反映出传感器在动态测试时的性能,能够更加精确的测量纱线张力,同时此方法对应变式传感器均有效,具有普适性。
图6. 纱线张力传感器阶跃曲线
图7. 纱线张力传感器幅频特性曲线
本文针对纱线张力传感器对张力的采集进行了编程,依据纱线张力小的特性在程序中对其电压信号进行了倍数放大,并且依据上位机显示波形波动大的问题,通过编写程序对一定时间内的电压数据取平均值可有效减小波动幅度。同时,基于递推最小二乘法对纱线张力传感器系统对象进行了动态特性辨识分析,并借助了MATLAB这个计算能力强大的辨识工具,可以便捷准确的实现算法计算,使得参数辨识和参数估计的过程变得轻便易行。此方法可以快捷有效的得到纱线张力传感器的阶跃曲线和幅频曲线,进而得到纱线张力传感器的动态性能指标。通过动态性能指标可以反映出传感器在动态测试时的性能,能够更加精确的测量纱线张力,同时此方法对应变式传感器均有效,具有普适性。
曹家志,徐振峰,余效銮. MATLAB在纱线张力传感器动态性能中的应用Application of MATLAB in the Dynamic Performance of Yarn Tension Sensors[J]. 计算机科学与应用, 2023, 13(01): 49-56. https://doi.org/10.12677/CSA.2023.131005
https://doi.org/10.16525/j.cnki.14-1362/n.2022.08.024
https://doi.org/10.13873/j.1000-97872002.02.004
https://doi.org/10.16545/j.cnki.cmet.2008.05.048
https://doi.org/10.13804/j.cnki.2095-6991.2022.04.007
https://doi.org/10.19358/j.issn.1674-7720.2011.20.033
https://doi.org/10.13788/j.cnki.cbgc.2012.s1.006