0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32F407单片机开发了一种定心支片顺性测量系统

SwM2_ChinaAET 来源:lq 2019-10-01 17:09 次阅读

摘要:

针对传统的扬声器定心支片顺性测量仪线性范围判断不准确以及无法进行动态测量的问题,设计了一种定心支片顺性测量系统。该系统以STM32F407单片机为核心,硬件部分通过运动控制电路和数据采集电路实现了自动测量的功能,并使用低电压纹波的线性直流稳压电源使得采样结果更加准确。软件部分通过滑动均值滤波算法来减小输出误差,并采用了最小二乘法来提高拟合优度,最后通过线性逼近法来获得定心支片的线性范围。实验结果表明,该系统具有较高的分辨率,能准确获得定心支片的顺性曲线和线性范围。

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.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632768
  • 测量系统
    +关注

    关注

    2

    文章

    532

    浏览量

    41353
  • 硬件电路
    +关注

    关注

    39

    文章

    240

    浏览量

    29189

原文标题:【学术论文】基于STM32的扬声器定心支片顺性测量系统设计

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32单片机基于rt-thread 的 littlefs 文件系统 的使用

    作者:嵌入式学习和实践开发环境介绍硬件:基于野火stm32f407开发板软件:基于rt-threadv4.1.1版本的stm32f407
    的头像 发表于 11-06 08:04 292次阅读
    <b class='flag-5'>stm32</b><b class='flag-5'>单片机</b>基于rt-thread 的 littlefs 文件<b class='flag-5'>系统</b> 的使用

    STM32F407作USB host驱动声卡,USB就会出错的原因?

    我用STM32F407 作USB host,配置为FS。用它接声卡。如果STM32F407 单向给 声卡传送音频,输出声音正常。或者 407单向接收声卡的音频,工作也正常。但是同时发送和接收声音(即
    发表于 07-04 06:56

    STM32单片机有哪几种常见的开发环境?

    STM32单片机款广泛应用于嵌入式系统开发单片机,针对其开发,有以下几种常见的方式:
    的头像 发表于 05-18 08:04 2888次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>单片机</b>有哪几种常见的<b class='flag-5'>开发</b>环境?

    stm32f407是否可以采用别的I/O口,与TFT液晶实现连接啊?

    新手求助:stm32f407与TFT液晶接口时,TFT液晶为并口(D0~D15等),stm32f407芯片必须使用FSMC—D0~FSMC—D15等接口与其连接吗?看了开发板的原理
    发表于 05-17 07:39

    STM32F407 ADC采样IO口无法实现钳位的原因?

    最近做个项目,STM32F407 ADC采样。STM32F407电源电压和参考电压是都是2.5V(两个独立电源),因为设计需要(换挡采样,测试小量程,调大增益),采样电压可能会超出2.5V
    发表于 04-10 08:19

    有什么办法能用STM32F407进行正弦波信号的频率测量

    请问有什么办法能用STM32F407进行正弦波信号的频率测量,麻烦具体点,万分感谢
    发表于 03-28 07:57

    STM32F407 3线SPI如何配置?

    现在需要3线SPI进行通信,也就是从的MOSI和MISO为根线。 我在参考手册看到,STM32F407可以满足双向数据线 请问ST官方有没有peripheral libraries或者例程可供参考?
    发表于 03-26 07:16

    STM32F407单片机上使用多块不连续空间实现堆的软件方法介绍

    在嵌入式系统设计中,需要根据系统的功能需求选择相应的单片机。笔者参与开发款中央空调主控制板选用了意法半导体公司的
    的头像 发表于 03-20 10:43 3067次阅读
    在<b class='flag-5'>STM32F407</b><b class='flag-5'>单片机</b>上使用多块不连续空间实现堆的软件方法介绍

    关于stm32单片机存储擦除的疑问求解

    之前用的stm32f1系列单片机,写数据时是按页擦除的,后来跟换stm32f407后发现写数据的时候会占用单片机很长时间,后来发现这款单片机
    发表于 03-14 06:55

    如何在STM32F407上移植lwip?

    如题,使用rt-thread操作系统,在STM32F407上如何移植lwip,下载了最新的rt-thread代码,不知如何入手。 谁能帮帮我吗,或者有没有移植手册发我看看。
    发表于 03-05 08:32

    STM32F407+PCM5102APWR+SD卡内播放wav或mp3音乐如何实现?

    ,我们需要连接硬件组件。将STM32F407开发板的引脚连接到PCM5102APWR的相应引脚上。这些引脚包括I2S时钟、I2S数据、I2S位时钟、I2S帧同步、音频时钟和地线。使用适当的连接线将
    的头像 发表于 01-16 17:11 2524次阅读

    stm32f407 double类型

    篇文章中,我们讨论STM32F407的双精度浮点数(Double)类型。 首先,让我们先了解什么是双精度浮点数。双精度浮点数是一种浮点数表示形式,它使用双精度浮点数格式来表示实数。在STM
    的头像 发表于 01-07 16:45 2920次阅读

    stm32f407 LAN8720A速率调整

    STM32F407款基于ARM Cortex-M4内核的高性能微控制器,而LAN8720A是款高速以太网PHY芯片。它们的组合可以实现在STM32F407上使用以太网功能。 调整
    的头像 发表于 01-05 13:54 3472次阅读

    stm32f407浮点运算速度

    支持硬件浮点运算单元(FPU),可以提供快速和高效的浮点运算性能。本文将详细介绍 STM32F407 的浮点运算速度。 浮点运算是很多应用中常用的一种运算类型,特别是对于需要进行较复杂计算的任务,如图像处理、信号处理和物理模拟等。传统的处理器对于浮点运算的支持有限,需要通
    的头像 发表于 01-04 10:58 3244次阅读

    你用过哪些编程语言开发单片机

    C语言是最常用的一种用于单片机开发语言,也是一种高级编程语言,具有较好的可移植和可读。对于
    发表于 12-04 10:18 1275次阅读