2023电赛参赛感悟+H题思路+给萌新的建议

2024-03-22 08:10

本文主要是介绍2023电赛参赛感悟+H题思路+给萌新的建议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

感悟分享 

    2023电赛终于落下了帷幕,经历了四天三夜的奋战,我们小组也取得了一个比较满意的成果——省二。这对于刚接触电赛的我们来说已经是一个很不错的结果了,虽然有一点小遗憾,不过大家整体都很满意。

 

2023H题思路

    我们组选择的是H题:信号分离装置。据我所知,这道题我们学校选的人挺多的,别的学校选的人似乎也不少,所以竞争还是比较激烈的。

    这道题的难点在于,分离出的两路信号需要连续稳定同频显示。由于要实现的是随机频率的信号分离,所以完全的模电方案是不现实的。而数电方案需要用到FPGA,但我们不会用,所以只能将两者结合,用stm32实现。

    相信了解相关算法的同学应该能猜到我们的思路了。没错,就是先AD采样,然后用FFT算法得到A和B的频率。再根据实部和虚部求得幅度,以此判断信号是正弦波还是三角波。最后用DDS模块发出两路信号。

    如果你之前联系过2021年A题,那么FFT算法不是难点(如果不懂的可以在评论区里问我,问的人多的话我专门写一篇介绍FFT)。这道题的难点在于“同频显示”,即必须控制DDS模块发出信号A' B' 与输入信号A B 的频率差控制在一个很小的范围

    举个例子。输入信号A的频率为50000.01Hz,输出信号A'的频率为50001.01Hz,那么二者的频率差就是1Hz,同频显示时每1s会步进一个周期,那就是频漂相当严重了,基本算是寄了。

    我们使用的DDS模块为AD9833,它的工作范围为1k~1MHz,满足题目要求(20k~100k)。但它的步进为0.14Hz(商家给的,实际应该也差不多),不考虑信号源的误差,那么我们人为调整的话,能把频率差控制在0.07Hz以内,对应的就是14s漂一个周期。虽然没那么严重,但也是挺漂的,哈哈。

    所以本题的难点就是要提高DDS模块的精度。试想,如果我们把频漂控制在100s一个周期,那是不是跟本没法看出来?毕竟测评时间是有限的,老师不可能盯着你的信号看上一分钟。如果频漂控制在300s一个周期,那不就是没有漂移?

    总而言之,如果你找到了控制A与A'、B与B'的频率差的好办法,你基本上就能拿到省二了。当然,除了频漂,信号也不能有明显失真呦。

    至于具体的方案,我这里就不细说了。等我哪天有时间再发一章,感兴趣的可以去我的投稿里找一找,毕竟这是我第一次写这种类型的博客,哈哈。

一点建议

    之后就是给萌新的一些小建议了。毕竟两个月前,我们组三个人也是纯纯的萌新,既没接触过电赛,也没碰过stm32,数电没学过,模电还稀烂。在这样槽糕的条件下,靠着大家的相互鼓励和顽强毅力,硬是创出了一片天,说出去还是挺自豪的。

    1、要培养自学能力。据我了解,大多数学校在电赛备战期间能给大家提供的帮助真的很有限,所以绝对不能什么都指望老师和学长。像我们学校,这次的国赛的集训是没有集中培训的。学校只给你提供实验室,然后有一两个学长能给你答疑解惑,学长大部分时间还有事,基本全都得靠自己。这就需要你能熟练运用互联网,从网上找到各种教学。

    2、找到适合自己的教程。现在B站有很多教你嵌入式开发的视频,什么正点原子、野火之类的,CSDN上也有很多教学,但不一定适合你。我们学校一开始给我们推荐了正点原子的视频,emmm,说真的,我只建议你们看前三集。这玩意对初学者来说已经不是依托答辩了,而是依托陈年答辩。都啥年代了还在教你别用cube...说真的,我们组跟着正点原子的视频浪费了一个礼拜的时间,现在想想都后悔。

    那有没有适合初学者的教学呢?有的,我这里分享几个链接,适合新入坑的小白学习。也欢迎大家在评论区里分享自己认为不错的教学。

电控入门教程/STM32系列教程.md · pocket/RoboWalker战队信息汇总 - Gitee.com

这是我初学stm32看的教程,非常棒。手把手教你怎么用cube配置ADC、DAC、PWM、串口通信、定时器中断等等。自己跟着他的教学过一遍,你就算入门stm32了。

[10-1] I2C通信协议_哔哩哔哩_bilibili

基础搞定了,下面就是进阶了。如果你是做小车的,那你学会串口通信、定时器什么的就够了。但如果你想做信号题,那你还得学复杂一点的通信协议:I2C 和 SPI 。这俩的话看江协科技的教学会比较好。不过他的教学是没用cube的,所以我建议你先学一学cube怎么配置,然后用cube完成I2C和SPI的配置。

STM32CUBEMX配置教程(十二)STM32的定时器触发的固定频率ADC采样(使用DMA)_stm32的adc采样的dma模式开启次数_怡步晓心l的博客-CSDN博客

     至于其他的教程其实都是直接在CSDN上搜的,我没保存,就用这个做个例子。我建议小白不要上来直接用Keil写所有代码,试着学一学Cube会方便很多。如果没用过Keil但是学过C语言编程的,可以试试CLion,也可以用cube配置,在代码补全方面比Keil好很多。

    3、确定研究方向。在对stm32有了初步了解后,小组成员就应该确定你们的选题方向了。电赛的类型主要有四类:自控信号电源其他

     自控主要是小车和无人机,信号分为两类:高频和低频。低频主要是仪器仪表类,难度适中,适合新手入门;高频主要是无线电,即信号的调制与解调,需要有数电基础,且能熟练运用FPGA,难度较大。电源要看你们学校有没有相关资源,据我所知是有难度的。其他包括机器学习、物联网之类的,今年应该没考。

     最后,祝所有参加电赛的同学们取得好成绩!

这篇关于2023电赛参赛感悟+H题思路+给萌新的建议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834891

相关文章

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

为何我建议你学会抄代码?

文章目录 为何我建议你学会抄代码?一、引言二、抄代码的艺术1、理解抄代码的真正含义1.1、抄代码的好处 2、如何有效地抄代码2.1、发现问题2.2、整理需求2.3、造轮子标准流程 三、抄代码的实践案例1、发现问题2、整理需求3、设计重试机制4、实现重试工具类5、使用重试工具类6、优化和扩展 四、总结 为何我建议你学会抄代码? 一、引言 在编程的世界中,“抄代码” 常被视为一

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

将添加功能的抽屉剥离,在父组件调用思路

一、新建组件 新建AddRoleEditerDrawer.vue <template><div><el-drawer v-model="dialog" title="添加角色" :before-close="handleClose" direction="rtl" @colse="cancelForm"class="demo-drawer" modal-class="add-drawer">

【Linux】萌新看过来!一篇文章带你走进Linux世界

🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、初识Linux💥1.1 什么是操作系统?💥1.2 各种操作系统对比💥1.3 现代Linux应用💥1.4 Linux常用版本 💥2、Linux 和 Windows 目录结构对比💥2.1 文件系统组织方式💥2.2