不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星献给我
#1:1:4:d:d:b:0:b:c:9:9:6:5:c:f:8:d:4:9:0:2:6:a:8:6:e:b:c:9:4:e:8#
#5:c:d:7:1:5:8:1:7:d:4:b:d:6:c:c:7:a:6:4:1:0:3:9:5:3:2:3:e:5:7:1#
达尔闻会在每周三、五推送优秀的电赛方案解析分享,达尔闻说陌陌和达尔闻B站同时上线,敬请关注!下拉文末,即可查看所有电赛方案汇总。
明天分享A题国二作品讯号失真度检测装置,来自上海学院宋晓朋,张广源,王震团队。
在电赛清单发送后,我们就开始提早打算订购元件,并且因为延后可能改题了,去年小球都没用上,出题目时侯好多元件根本不够,不过好在去年的A题不须要提早打算元件,给了好多不便捷买元件的队伍希望。
作品介绍&功能演示
我们团队训练方向好多,主学单片机是STM32系列,做过19年的高频题目,17年控制类题,而且明年货车题目难度很大且元件不足,最后经过比较剖析选择了A题。去年A题难度最低,硬件设计与调试少,解题思路简单,主要是傅里叶变换算法和纹波提取方式的调试和改进,fft算法模板在MSP432的解释器代码中有,难点就是要想做好要用高性能单片机MSP432或则C2000,有的朋友可能事先没学过这种单片机。
解题思路
首先,示波器输出失真波形传给选择放大电路,借助MSP432432EE401401401Y的12位ADC将输入讯号由模拟量转为数字量,之后送入傅里叶变化算法得出频谱,由于最大失真度大于50%,通过选定最急剧值确定杂讯,进而提取2-5次纹波份量。将提取的纹波幅值归一化后,显示在OLED上,并借助并口发送给手机,在手机上显示。一个周期的波形显示则是借助纹波和基波的幅值,傅里叶反变换后显示波形,由于发送的一定是正弦波,只要晓得纹波幅值跟杂讯就可以合成出原波形。
系统硬件组成
由两个单片机MSP432432EE401401401Y(做数据处理)和MSP432432PP401401401R(波形和数据显示),手机发送采用的是HC-05蓝牙支持2.0合同,显示屏是SPI总线的0.96寸液晶显示屏,以及借助A5W-K讯号熔断器和OPA227UA精密运算放大器搭建的电流放大电路。
硬件系统框图:
#b:5:7:c:4:5:c:a:4:0:7:b:9:e:f:8:3:c:b:8:a:6:3:0:6:a:c:7:f:9:7:5#
主控制器MSP432432EE401401401Y程序流程图如图所示:
#e:d:7:b:6:b:4:5:0:1:b:6:9:8:0:e:7:8:d:3:8:a:1:6:7:1:0:a:e:4:a:9#
子控制器MSP432432PP401401401R程序流程图如图所示:
#6:1:b:7:b:b:7:b:7:9:7:a:e:3:1:a:5:b:5:f:8:f:a:8:c:0:d:a:4:1:5:6#
本设计将输入讯号经过放大器判定是否放大后传给单片机,经过单片机的ADC取样转化为数字量,经剖析处理后将频域讯号数据转换成时域讯号数据,提取频域,并按照栅极,估算2-5次纹波份量的值,之后估算出失真度检测值、基波与纹波的归一化幅值等数据,并将数据发送给子控制器MSP432432PP401401401R,子控制器逆傅里叶变换推出一个周期的波形图象,通过OLED显示THDx、基波与纹波的归一化幅值和波形图象,并通过无线模块将各数据及波形发送给手机,于手机端显示。
详尽实现过程
后置放大:
借助一个二极管接单片机电源驱动A5W-K熔断器,当单片机未给高电平时熔断器断掉,输入讯号直连入单片机。当输入讯号幅值大于120mV时,单片机引脚给高电平,讯号熔断器导通,输入讯号通过一个OPA227UA精密运算放大器放大三倍后,输入给单片机,实现后置选择性放大。由于实验室元件有限,临时搭建电路,疗效挺好,小讯号30mV时正好满足题目要求大于百分之三。
#4:a:6:d:0:1:5:4:8:7:9:4:d:d:6:e:6:d:4:7:f:7:f:5:c:f:3:4:6:3:6:1#
后置放大电路原理图
实物电路图:
#4:f:3:c:5:e:8:f:a:6:5:a:4:9:d:0:a:e:c:9:2:f:5:8:f:f:3:1:3:1:7:2#
软件算法部份:
1)快速傅里叶变换
波形数据经主控制器MSP432432EE401401401Y内部ADC通道输入后,因为开始可能存在干扰,会放弃最早采集到的几组数据(我们放弃了前12组数据,实测疗效最好),又由于我们通过ADC通道采集的数据为离散取样的频域数据,未能直接得出所需的各纹波份量,需将频域讯号转换为时域讯号,将要输入讯号当做多个正弦波讯号的叠加,之后求出各正弦波的幅值。
2)扫描窗口提取纹波
在高于50%的失真度前提下,通过搜索最大值的方式可以提取到基波的频度,之后以基波的频度为基准,计算出基波的频度。用1M取样率乘以基波频度作为间隔点,将采集到的数据将采集到的数据以间隔点的整数倍选择性的抽取,提取扫描到的极值为纹波份量。该算法可以防止偏差,确切地提取到各纹波的份量。
3)子控制器MSP432432PP401401401R程序设计
接收到主控制器发送的归一化幅值后,MSP432432PP401401401R通过公式:
#7:f:d:8:7:a:0:d:7:0:b:3:8:d:6:8:8:c:2:2:4:2:7:0:2:b:f:8:d:d:1:4#
估算出讯号失真度。
通过各次纹波的归一化幅值,借助推论公式,
#a:c:d:9:5:d:0:f:7:6:c:1:1:8:4:6:9:7:e:1:b:8:7:d:4:6:a:5:8:4:a:4#
因为OLED可以显示128个点,所以积分公式的上下限为0~128,因而逆推出输入讯号的一个周期的波形。
手机显示:
手机显示波形,为了保证接受数据的确切行,我们在发送的数据包上降低了检错位‘[’和’]’放在起始位跟结束位,保证接收的数据的正确性,这儿手机显示借助蓝牙HC-05的无限透传。
手机的图象显示,我们采用字符画显示方式,原理:手机一次能显示64位数据,我们首先声明一个66个字节的链表(65,66回车换行),我们即将显示的波形取整,限幅在64,按照他的幅值确认他在链表中的第几位,幅值‘*’,其他幅值‘‘,连续发送128个这样的字段给手机,画出一个周期的图形。而且时间紧张,没找到绘图的app,只能这样绘图了,疗效还不错。
作品实物图及检测数据
#9:d:f:6:7:d:4:f:7:0:3:2:4:a:2:2:a:d:d:8:3:1:7:6:2:5:1:c:b:e:9:f#
大赛时现场检测时的数据:
在联赛时评委会随意说出波形,之后给你时间检测,共三组数据,分别是:
基波400mV,U3=80mV,U5=60mV,f=1kHz;
基波200mV,U3=30mV,U5=16mV,f=50kHz;
基波40mV,U5=4mV,f=100kHz。
下边是我组检测的数据:
第一组:理论值为THDx=25%,检测值为23.8%,偏差为2%
第二组:理论值为THDx=17%,检测值为15.2%,偏差为2%
第三组:理论值为THDx=10%,检测值为9.7%,偏差为2%
下边介绍一下我们拿来增强精确度和算力的创新点:
1)采用单通道单次取样而非单通道循环取样,避免接收到的数据发生溢出,
解决运算速率不足的问题。
2)将采集到的4096个取样讯号通过FFT估算出各次纹波份量,多次取样取
纹波的平均值,使波形逐步向中间靠拢,牺牲了空间复杂度换取数值的确切度充
分借助MSP432高速率的性能。
3)采用两个单片机同时工作的方法,来提升系统运作的速率,借助一个单片
机进行频谱剖析,另一个单片机进行波形合成,达到快速剖析失真度并快速显示
的疗效。
4)通过给输入讯号降低适当的直流偏置(我们用的函数讯号发生器是DG2052),使函数值坐落X轴上方,以便进行ADC采集。
赛后总结
我们的系统可以稳定检测1-100kHz杂讯范围,30-600mV电流,失真度大于50%的波形,测得的数据都在题目要求的偏差之内,而且可以精准检测频度。但还有改进的地方,例如可以采用性能更高的单片机C2000,由于ADC取样速度越高,检测越确切,可以在FFT变换后的卷积波形加窗函数,这样可以很大程度上减轻偏差,假如事先做过一些后置放大,也可以用来用用滤出噪音,除了是讯号源须要检波,你的电源也要紧密,低噪音,假若采用充电宝供电,建议不要采用带电源灯的,led灯闪动的时侯,也会导致轻微的电源干扰。
总的来说,A题涉及的硬件部份较少,结构简单,但是相比于货车,基础部份十分简单,前两问都是直接调讯号发生器就可以,所以在完成所有问的同时最好能降低一些创新功能,或则将题目要求范围扩大,这样才有可能拿国奖。
最后谢谢指导老师团队的辛劳指导和大学校区的大力支持!
END