文献标识码: A
DOI:10.16157/j.issn.0258-7998.190306
中文引用格式: 李纬良,肖辉,方鹏飞. 基于STM32的扬声器定心支片顺性测量系统设计[J].电子技术应用,2019,45(7):102-106,116.
英文引用格式: Li Weiliang,Xiao Hui,Fang Pengfei. Design of a loudspeaker spider compliance measuring system based on STM32[J]. Application of Electronic Technique,2019,45(7):102-106,116.
0 引言
定心支片是扬声器的核心部件之一,它用于保证扬声器工作时,音圈在磁隙中处于正确的位置,并且保证音圈在振动过程中仅沿轴向作往复运动[1-2]。受到制作材料和设计形状的影响,在扬声器工作时,定心支片会产生一定程度的非线性失真。因此,要求在有效的振动范围内,定心支片的受力和形变需要有良好的线性关系。
扬声器行业中用定心支片的顺性来表征一个定心支片的特性,即定心支片弹性系数的倒数。较为普遍的测量方法是施加固定负载(50 g或者100 g标准砝码)后根据定心支片的变位来判断定心支片的顺性[3-4]。传统的定心支片顺性测量仪通常基于这一方法来实现,但是使用过程中,只能粗略地判断一个定心支片的线性范围,不能反映定心支片运动过程中的受力情况,且不能测量定心支片的最大线性范围,对于后续的研究与分析具有很大的局限性。
针对以上问题,本文结合前人的工作,基于STM32F407单片机开发了一种定心支片顺性测量系统。该系统结合步进电机、数显游标卡尺和压力传感器,实现了自动控制定心运动并检测位移和受力大小的功能,并使用滑动均值滤波算法和最小二乘拟合算法对数据进行处理,使得测量结果更加精确。最后通过对顺性曲线进行计算来查找被测定心支片的线性范围。
1 硬件设计
1.1 系统结构设计
定心支片在持续受到一个方向的外力作用时会产生一定的塑性形变而无法自动复原,而在扬声器工作中,定心支片的受力的大小与方向实际上是一个持续变化的过程,因而需要动态地对其进行测量,才能准确反映其运动时的真实受力情况。基于以上分析,本系统使用步进电机和线性滑轨对测量系统进行搭建,既可以模拟定心支片运动的过程,又可以通过单片机对运动状态进行控制,来模拟不同的工作场景。另外,在运动过程中通过单片机对各模块进行数据采集和计算,即可得到扬声器工作时定心支片的运动参数。
系统的结构示意图如图1所示,使用精度为0.01 mm的数显游标卡尺与滑轨连接,用于采集定心支片的位移数据。压力传感器固定于滑轨之上,用于采集压力数据。另外,使用高精度的滚珠丝杆作为步进电机和滑轨的联动轴使得系统运行更加精确。
1.2 电路设计
本系统的硬件电路的设计从性能、功耗、稳定性与可靠性这几个方面来综合考虑,并按照实现的功能对电路模块进行了分类,使用模块化的设计方法降低了电路系统设计的风险,并且易于修改和测试。电路整体设计框图如图2所示,电路系统以STM32F407单片机作为主控芯片,对各类模块进行控制。其中数据采样模块使用了低纹波的线性直流稳压电源,来降低电源噪声对采样电路的影响,而功耗较大的TFT驱动模块和步进电机驱动模块则使用了开关型稳压电源,降低了电路系统的整体功耗。
1.2.1 线性稳压电源设计
采样电路供电模块的稳定性决定了采样结果的正确性,因此,需要低电压纹波的线性直流稳压电源来为数据采样模块供电[5]。本系统的线性直流稳压电源使用增加电压压降的设计方式来提升输出电压的稳定性,并且使用多路级联的方式来分散热功耗对单个稳压模块的影响。另外针对工作过程中可能出现的负载波动,设计了较宽的电流范围,并且使用三极管对稳压芯片进行并联扩流,既提升了电路的带负载能力,又不会增加芯片的发热量,提升了电路的可靠性。
线性直流稳压电源的设计如图3所示,使用集成三端稳压芯片LM317为核心,并使用可控精密稳压源TL431作为基准稳压源来对直流稳压电源进行设计。两者都具有低噪声、高纹波抑制比的优点,非常适合线性稳压电源的设计。前级电路使用NPN管Q1对LM317芯片进行扩流,可有效降低芯片的热功耗,后级电路使用TL431芯片作为基准,降低了输出电压纹波。另外,使用PNP管Q2与负载并联,降低了负载波动对稳压效果的影响,提升了电路的带负载能力。
1.2.2 压力采样电路设计
本系统的压力传感器为平行梁式铝合金测力传感器SBT430,该传感器为压阻式应变传感器,其输出信号为一微弱的差分信号,需要对其进行放大和滤波处理后才能进行A/D转换。
压力采样电路使用单一模块的设计方式,避免了多路放大与A/D转换模块级联带来的噪声叠加和温度漂移。选择集成有低噪声可编程放大器、稳压电源以及片内时钟振荡器的HX711芯片来进行设计,可以直接控制STM32F407单片机对其进行采样,既提高了采样稳定性,又简化了电路设计。压力信号采集电路如图4所示。
1.2.3 步进电机驱动电路设计
系统的运动使用57系列步进电机来进行运动控制,该系列步进电机具有运行平稳、可靠性高的特点。工业生产中常使用集成驱动块来对步进电机进行驱动,使用拨码开关对其工作模式进行设定可以应对大部分的工作场景,但是本系统的运动控制需要有较高的灵敏度和更加多样的工作方式。为此,本文使用驱动芯片加STM32F407单片机直接驱动的方式来对步进电机的驱动电路进行设计和优化,针对不同的工作状态,使用单片机来自动选择不同的细分方式、驱动电流和驱动电压频率,使得控制方式更加灵活。步进电机驱动电路如图5所示。
2 软件设计
本文的软件系统主要实现的功能有数据采集、数据发送和系统校正。根据不同电路模块的驱动特点和工作方式的需要,使用模块化编程的思想对各驱动模块、运动控制模块和采样模块进行设计和组合,节省了开发时间,而且便于后期调试和维护。系统设计中将数据采集模块和数据发送模块进行分离,避免了数据发送中的时延对采样等待时间造成的影响,使得采样速度更快。另外,使用自动校正压力传感器压力值和定心支片起始点的设计,节省了仪器校准的时间,并使得系统的输出结果更加准确。系统的软件设计流程如图6所示。
2.1 压力采样值滤波
受电源噪声和外界电磁干扰的影响,对一固定负载进行连续采样时,HX711芯片的输出值会有较大波动。使用数字滤波法来对数据噪声进行滤波处理可以快速去除数据中的噪声干扰,并且不会占用过多的系统资源。常用的数字滤波法有限幅滤波法、中位值滤波法、算术平均法、滑动均值滤波法以及几种方法组合之后的滤波方法[6-8]。结合各滤波法的优缺点和本系统的采样特点,本文采用滑动均值滤波法和中位值滤波法相结合的方式来对压力信号进行处理。滤波算法的实现过程是构建一个长度为N的FIFO(First Input First Output)存储空间,对采样值进行存储,每获得一次数据就对存储空间中的数据做一次中位值滤波(去掉N个数据中的最大值和最小值后,对剩下的N-2个数据做一次算术平均),其结果就为此次滤波后的结果。此方法对信号中的脉冲干扰有很好的抑制效果,且实现简单,占用系统资源较少。
2.2 数据拟合算法设计
由于实验数据的离散性,采集的数据常需要进行拟合或者插值等处理后才能得到反映变量之间相互关系的曲线。本文使用最小二乘法对数据进行拟合[9-12],可以降低数据误差带来的影响,提高拟合优度。
为找出压力值p与位移l之间的关系曲线,需要依据s个实验样本来构造一个函数(l),使得压力计算值(li)与实测值pi的偏差的平方和达到最小。
设n次多项式拟合函数为:
则s个实验样本与拟合函数的残差为:
2.3 最大线性位移查找算法设计
系统计算得到拟合函数后,使用最大线性位移查找算法可以计算得到定心支片的最大线性位移。该算法使用线性逼近法来实现,将顺性曲线的与其切线进行对比,计算得出低于误差阈值ε(ε>0)的最大位移值,即为定心支片的最大位移。
设定心支片的顺性曲线为:
从0 mm开始,以0.01 mm为最小单位,对式(9)进行计算,便可以计算出低于误差阈值的最大位移。另外,通过最大线性位移和拟合曲线可以计算出最大线性受力范围。该方法实现速度快,通过修改阈值可以应用于不同的场合,可移植性好。
2.4 上位机软件设计
本系统的上位机软件设计使用Visual Stdio2010软件来实现,并从系统控制、数据接收和系统通信三个方面来进行设计。系统控制和数据接收主要完成用户指令获取和数据保存的功能。系统通信主要完成上位机软件与单片机之间的指令和数据的传输功能,设计中使用了将数据变量转换成对应的字符进行传输的方法来对数据进行传输,并使用特殊符号标记的方法来区分不同的指令和数据,避免了字符串扰带来的影响,提高了数据传输的可靠性。上位机软件设计界面如图7所示。
3 系统测试
3.1 整体测试
使用本系统对一个5英寸的定心支片进行采样测试来检验系统的测量功能。在上位机软件中设置采样范围为-2.00 mm~2.00 mm,设置线性判断误差阈值为0.004 N,使用上位机软件控制系统进行采样,并对数据进行接收。采样结果和拟合曲线如图8所示,右侧的文本窗显示了被测定心支片的线性范围。
可以得到在线性误差阈值为0.004 N时,该定心支片的位移线性范围为-0.62 mm~0.85 mm,线性受力范围为-0.419 N~0.552 N,可见该定心支片在该阈值下的线性范围并不是上下对称。
3.2 压力测量误差分析
为检验压力采样的准确性,将压力测量值与实际值进行比较。使用不同质量的标准砝码来检测压力采样的精度,采样结果如表1所示。通过对比可知,采样值的最大误差为0.15 g,即压力采样值的误差在0.002 N以内,具有较高的压力采样精度。
4 结论
本文介绍了一种基于STM32F407单片机的扬声器定心支片顺性测量系统,该系统使用动态测量的方式解决了传统定心支片顺性测量仪对定心支片的运动状态把握不准确以及无法获得定心支片的最大线性范围的问题,方便扬声器设计人员对其进行后续的研究和分析,具有一定的使用价值。
参考文献
[1] 王以真.实用扬声器技术手册[M].北京:国防工业出版社,2003.
[2] 王以真.实用扬声器工艺手册[M].北京:国防工业出版社,2006.
[3] 王文建,沙家正.扬声器定心支片的非线性失真研究[J].应用声学,1999(5):24-28.
[4] 闫秉耀.扬声器定心支片的顺性测量仪[J].电声技术,2006(5):29-32,36.
[5] 李承炜,韩俊南,杜欣,等.基于ADS1293的穿戴式心电检测装置设计与实现[J].电子技术应用,2017,43(9):8-12.
[6] 郭健忠,程峰,谢斌,等.改进型限幅递推平均滤波法在燃油表中的应用[J].科学技术与工程,2018,18(16):62-67.
[7] 周继裕,陈思露,符少文.基于均值滑动滤波算法和STM32电子秤的设计[J].现代电子技术,2017,40(10):10-12,15.
[8] 郭富智,杜红棉,李肖姝,等.乒乓球/羽毛球运动状态识别手表的设计[J].电子技术应用,2018,44(4):73-76.
[9] 田子林,陈家新.基于最小二乘法与霍夫变换的虹膜定位算法[J].电子技术应用,2019,45(2):75-79.
[10] 王淳,郭静波,刘红旗,等.基于最小二乘的极低频微弱信号实时检测方法[J].仪器仪表学报,2009,30(12):2468-2473.
[11] 黄静,刘琴琴.基于曲线拟合改进算法的水质生物毒性研究[J].仪表技术与传感器,2017(7):105-107,120.
[12] 贾小勇,徐传胜,白欣.最小二乘法的创立及其思想方法[J].西北大学学报(自然科学版),2006(3):507-511.
[13] 同济大学数学系.线性代数[M].北京:高等教育出版社,2007.
作者信息:
李纬良,肖 辉,方鹏飞
(武汉大学 物理科学与技术学院,湖北 武汉430072)