2023电赛H题小结

本文概述了作者参加电赛H题的经历,涉及加法器设计、STM32AD转换、FFT分析、DA输出同步等步骤,重点讲述了如何利用STM32F1的AD模块、FFT库和DMA技术来实现信号处理和频率调整以达到同频显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2023电赛H题小结

一、导入

  参加了今年的电赛,赛前也准备了许久,各种驱动、外设的使用、pid等等,等到时候正式参赛再学习具体需要哪方面的逻辑进行组合,可惜,最后还是有所欠缺,没能获奖,但是基本还是做了许多,不是很甘心最后的结果,最近也没有什么机会能重新继续进行下去,便于此先行小结。

大致流程描述如下:
加法器叠加->stm32的AD转换->fft->DA输出->AD与DA进行比较延时实现同频

二、题目重述

原题位置:https://res.nuedc-training.com.cn/topic/2023/topic_102.html
在这里插入图片描述

  简要概括就是将两个信号通过加法器进行相加,再通过分离电路分离出来两个信号,最后将输入与恢复的输出同频显示在示波器上。
  输入信号为三角波和正弦波,频率10k~100kHz,步进为5kHz,峰峰值不小于1V。
  *能控制A’和B’的初相位差(均为正弦波,且频率A是B的整数倍),分辨率5°,0~180可调。

三、解决办法

3.1 加法器

  这部分简单,网上随便就能找到,主要问题就是要选个合适的运放,因为100kHz也不低,需要带宽够避免失真,一般直插的TL082、5532就行。注意要双电源供电,一般这种运放只有双电源时才有最好的效果,单电源等效的双电源也不行(可能当时是我电路有问题,各位到时可以自己试试);而且输入信号是正弦波有负值的。双电源可以用芯片max7660或是max660产生,或是供电就是双的。
  叠加后要送入单片机,一般都是0-3.3V或是0-5V的供电,所以要给输入一个直流偏置,运放实现。

3.2 分离装置

  通过单片机的AD、DA实现,由于当时只会stm32F1系列,故基于此进行之后流程,F4系列有更高级的DSP库可以更简单实现相应功能,同时也有全硬件、dds的处理方法。

3.2.1 AD

  首先是AD,默认的时钟是72M,而stm32F1的AD时钟频率要低于14M,所以分频后最快为12M,按照采样时间计算公式计算T=1.5+12.5个周期,最少14个周期,所以最后采样频率为$ \frac{12}{14} $kHz,不方便计算同时容易丢失精度,所以将默认72M改为56M,这样按照上述方法就可得到1M的采样率,这样即使是最高100K的输入每周期也能有10个采样点。
  由于这个操作是不断进行的所以要使用DMA不断地读入才能保证1M的采样率还不影响主程序的进行。

3.2.2 fft

  对输入的叠加后的信号进行fft变换即可得到两个峰值,即对应的两个频率,可以用matlab先行仿真保证逻辑正确再写入单片机的程序内,避免将来产生问题时困惑。
  其次stm官方也提供了fft的库,直接下载导入对应位置即可使用,这里直接采用256个点的fft。

3.2.3 DA

  得到频率后就可以进行输出了,同样设置输出的频率为1M,输出模拟量时有个技巧,不在输出的时候现算,提前设置静态数组,将对应频率的波形数据写入,用空间换时间(速度),输出时直接调用。

3.2.4 同频

  这样的输出还是有问题,由于信号发生器与单片机并不同源,所以不可能同频,会有几十Hz的差异从而产生飘移。
  解决方法采用卷积。将输入信号的波形与标准波形进行卷积,即可知道差距是多少,因为只有两波形完全重合之时卷积结果才是最大的,找准这个点就可知道要如何调节,即延时(周期-最大值位置)后重新输出。不断进行此操作即可同频。但同时还要注意会有半个相位的问题。
  这些处理过程切记要写在DMA之外,不然…呵呵

四、资源备份

单片机程序:点击跳转◔.̮◔✧

引用[1]:大二第一次正式组队培训,目为2017的H(远程幅特性测试装置)。由于能力不足,出老师将大二组的难度降了一个维度。实际上这是一道高目(1M-40M),然而我们大二做的仅仅是处理1k-40kHz部分的信号。这道刚拿到手,虽然指导老师讲解了一遍,但是脑子里还是一头雾水,不知从何下手,经过我们一群小伙伴后来的讨论,才逐渐理解了目的意思。从一无所知到有所收获,与一群志同道合的朋友一起进步,一起成长,比起奖项,或许这才是吸引人的地方。由于个人能力有限,还是个敲代码的,对于硬件原理也只是半知半解,故纰漏处望大家指正。[1] 引用[2]:至此关于此硬件部分的内容写的大致完毕了。作为一道高,这不能通过面包板搭建以及软件仿真方法来调试路,给硬件整体的路调试环节带来了很多麻烦,我们小组也是屡屡碰壁,不过最后也是能做出成品,还是有些感慨的,也欢迎大家来讨论。[2] 引用[3]:我们搭的这个玩意主要分为两个部分,磁炮路部分和控制路部分,还有一块源部分,当然其实测试现场是提供学生源的,我们纯粹是吃饱了撑的。磁炮部分:包括两个开关(一个充,一个放),一个高压容,一个升压模块,一个线圈与炮管。控制部分:两个舵机 云台,一块F407(带触控屏),两个继器,一块OpenMV,一个超声波模块。[3] 根据引用内容,2023H是一道关于远程幅特性测试装置的目。这是一道高,但我们大二组只处理了1k-40kHz部分的信号。在解过程中,我们遇到了一些困难,但通过小组的讨论,逐渐理解了目的意思。在硬件部分的设计中,我们分为磁炮路部分和控制路部分,还有一个源部分。磁炮部分包括开关、高压容、升压模块、线圈和炮管。控制部分包括舵机云台、F407开发板、继器、OpenMV和超声波模块。由于这是一道高,无法通过面包板搭建和软件仿真来调试路,给整体的路调试带来了一些麻烦。但最终我们还是成功完成了装置的制作。欢迎大家一起来讨论这道目。[1][2][3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值