全国一等奖,H题:用电器分析识别装置

2023-05-16

大家好,我是张巧龙,今天继续给大家带来电赛题目:用电器分析识别装置。

01 

 

视频展示

【全国一等奖】21年电赛H题:用电器分析识别装置

02 

 

方案设计

2.1  系统总体方案

通过对赛题的仔细分析研究,实现此设计有以下几点需要注意:

1)用电器分析识别装置由220VAC市电供电,而单片机供电为3.3VDC直流电压。因此要给单片机供电,需要把220VAC市电经AC—DC变换后,再进行DC—DC降压,得到我们想要的电压。且整个装置的工作电流要小于15mA,需要对装置功耗有所考虑。

2)实时显示特征参数的响应速度要快,因此要求单片机对数据的处理速度要快。

3)电流电压信号检测需要精度高,功耗较低的芯片。

4)要通过无线传输把数据传输到手机上显示,可以用蓝牙模块进行数据传输。

经过上述分析,将系统分为5个基本模块,包括主控模块、电源模块、电流电压信号检测模块、蓝牙模块、显示模块。

系统的总体设计框图如图1所示。

c69ac2cf7a5da08a3d2d3ab474148177.png

图1 系统整体方案框图

2.2  电参数测量方案

采用INA114精密仪表放大器和SUI-101A电能采集模块组合使用,INA114是一种通用仪用放大器,尺寸小、精度高、价格低廉,和电流互感器配合使用,可测量相位。

只需一个外部电阻就可以设置1至10000之间的任意增益值,内部输入保护能够长期耐受±40V,失调电压低(50μV),漂移小(0.25μV/℃),5V单电源系统,静态电流最大为3mA。

SUI-101是一款互感器隔离的高精度多功能交流变送器,可实时测量交流电流、电压、有功功率、累计电量、频率、功率因素等参数,提供标准通信接口(TTL异步串口),可选的标准协议(Modbus协议)及自定义协议。

其中电流和电压的变送精度可达0.2级的超高精度。采用全隔离采集方案,实现高低压完全隔离。

通信接口采用3.3VTTL异步串行接口,同时兼容5V的TTL接口。支持自定义简易协议和Modbus双协议自动识别,也可以自动输出。

108c3e5f3f298c35f5e5f399e64be0c0.png

03 

 

理论分析与计算

3.1 理论分析与计算

如图2所示,电参数检测模块是采用电流型电压互感器和电流互感器将高压大功率端和低压信号处理端完美隔离,通过采样电阻后将采集到的电压和电流值接入HLW8032。

PF和TX直接接入到CPU的输入端,通过公计算出电压有效值、电压流效值和有功功率值的大小。

7e8355d0946201c29157f4ae8901dd36.png

图2 电参数检测模块

电压有效值计算:

2d65e0162499b7bc4a1548e2fb7579d3.png

电压系数:根据以上电路图中左侧电压采集电路,电流型电压互感器一次侧为R8=150k电阻,则一次侧电流为Vin/R8,二次侧电流等于一次侧电流,VP = Vin/R8 × R7;故电压系数 = Vin/(Vp * 100) = R8/(R7 * 1000) = 3.006

电流有效值计算:

2f1a6da7cc65e65075ea621b81cfd86b.png

电流系数∶根据以上电路图中右侧电流采集电路,电流互感器一次侧电流Iin,互感器匝数比为N=1000:1,二次侧电流等于Iin/N,IP - IN = Iin /N * R10;

故:

983b225f12e4854e89a85056f3af0903.png

3.2  傅里叶变换公式采集信号的分析计算

我们想过了许多方案,想过从各种电信号特征的不同作为突破口,最后确定利用FFT-傅里叶变换求出信号中的谐波从而来做识别电器的主要特性。

首先我们要了解傅里叶变换:傅立叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。

在不同的研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。最初傅立叶分析是作为热过程的解析分析的工具被提出的。

如果单单只通过人为去利用傅里叶变换公式计算可想而知计算量是何其的庞大了,所以我们在本次设计为了更加方便的利用傅里叶去求解出信号谐波,我们运用了AD7606模块的8个数据通道,通过DMA存入PS DDR,再通FFT对8个通道的数据进行FFT傅里叶变换。这样通过单片机去求解就变得简单得多了。

理论要与实践相结合的。单片机虽然让傅里叶公式的计算一步到位,但是没有主要的公式支撑,那也不过是得出错误的结果。

本次设计一部分傅里叶变换公式的计算:

如果是周期为T的连续信号,且满足Dirichlet条件,可展成傅里叶级数:

660b86a2d13937eb0a8fb25ae913c857.png

6b1436d81e6df1468e60bc4ac15bac7c.png

3.3  其他参数计算

bab988f022f674eed0392ae63e234fca.png

04 

 

程序设计

4.1  软件基本结构

软件程序由信号采集和数据处理两部分组成,顶层的控制部STM32F103VCT6单片机作为核心,采用C语言编程,执行效率高,通过ADC7606与电能模块对电能进行数据采集;

数据处理通过快速傅立叶变换程序,将采集到的电流波形进行变换与运算,可以得到电流的谐波与相位,然后通过电流、电压、阻抗、谐波参量、相位等参数对电器进行识别。

5242b937f42c725b4d97a893d4ad64d4.png

程序流程图

4.2 快速傅里叶变换分析

快速傅里叶变换,即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称。有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长序列。

但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换(FFT). FFT的基本思想是把原始的N点序列,依次分解成一系列的短序列。

充分利用DFT计算式中指数因子 所具有的对称性质和周期性质,进而求出这些短序列相应的DFT并进行适当组合,达到删除重复计算,减少乘法运算和简化结构的目的。

通过按键进入学习模式,在该模式下,首先将不同电器的信号经AD转换后的256点序列x(n)存入数组,利用FFT的蝶形算法进行傅里叶变换,得出变换的频谱X(k),将其记录。

edd15b032c40997bbbb6e12d50991b6a.png

FFT流程图

05 

 

最后

由于篇幅有限,过多的细节在此不放了,本篇H题的设计报告以及代码,都已经放到知识星球了,星球的朋友们可以直接获取下载链接。

be0ea14a60f83b8f32e804b96743d069.png

之前有关公众号上的所有项目以及21年电赛题目代码方案也会同步到知识星球。

顺带着推荐下知识星球,之前发了朋友圈想做个付费平台,至于为什么要做?

1. 答疑。

很多朋友都在微信上给我留言咨询一些问题,一般我都会回复,但看到一些朋友提问表达的方式:

我想学单片机该从哪里下手?

我想参加比赛,该如何学习?

我想转行硬件,但软件也不想丢,该咋办?

这些问题太大了,真的无法回答。

其次,很多都是重复性的问题,反复回答,真的累死人。

大家可能不知道我微信总共加了多少人,三个微信号,共1.6w人。可想而知,光回答问题我每天的工作量都很大了。

这也就导致为什么很多消息回复不及时,我也有自己的工作,不可能时时刻刻守着微信给大家回消息。

也正因为回复消息不及时,许多朋友会觉得我不礼貌,直接就删除好友,我也哭笑不得。

这就可以引出第二点:沉淀知识。

2. 与微信群相比,更容易沉淀知识

知识星球会更容易用来做知识沉淀,有问答、打卡、作业、文件、图片等功能。

微信群的缺点大家都知道,信息容易遗漏、分享的文件容易失效,无法积累。知识星球则弥补了这些缺点。而且微信群、QQ群加入的人形形色色,发广告的,闲聊的,乱七八糟的一大堆。

知识星球对比微信社群的好处是,它更像一个社区,每天更新的内容更容易沉淀且搜索,且价值度更高。

。。。。。。

3. 搭建一个圈子。

想做一个电子相关的圈子,付费加入的朋友,肯定都是想来提升自己,付费之后肯定会更珍惜,并且更注重知识方便的学习。

希望能在圈子里让更多的球友建立联系,内推、招聘、工作经验分享,对于学生,学校保研、比赛、等等。

同时也会邀请一些大厂的工程师、高校老师、优秀的学长学姐加入星球。

。。。

还有一些后面再说,星球刚上线,现在价格199元/年,未毕业的学生,提供学信网截图,99元/年,因为精力有限,可以维护的人数也是有限的,所以不会开放太多人。

价格贵?也就一两毛一天。

不贵?也需要199块钱。

就看大家如何去看待。

85621d3550e60ebff852fbf10ded94a2.png

-END-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全国一等奖,H题:用电器分析识别装置 的相关文章

  • Jetson Nano 入坑之路 ---- (6)GPIO使用(输入输出与回收)

    1 安装 Jetson GPIO 库 Jetson GPIO库 已经预装在Nano xff0c 如果卸载或者丢失 xff0c 就需要自己重新安装一次了 sudo pip install Jetson GPIO sudo pip3 insta
  • Liunx下的Cmake编译C/C++程序方法精要

    前言 我们在很多第三方库中都能够看到CMakeLists txt的身影 这就是我们熟悉的Cmake编译方法所需要的文件 本篇博客就来讲解一下此文件大致需要如何撰写和使用 如果后续有需要 xff0c 会再写个 详解 本例程是笔者项目中所用的内
  • FPGA入门实验-基于状态机实现串口回环收发

    任务目标 基于状态机实现串口回环收发 最近生产实习的FPGA培训课程内容 xff0c 还是挺简单的 具体原理其他文章应该都烂大街了 xff0c 重点是状态机的写法 xff0c 还是很少博主写 xff0c 没怎么看到 xff0c 基本上都是时
  • Linux C/C++之TCP / UDP通信

    目录 1 什么是网络 1 1 网络的定义 1 2 网络的实质 1 3 主机的类型 1 4 信息的传递 2 网络分层 2 1 五层模型 2 2 七层模型 xff08 OSI Open System Interconnection xff09
  • 什么是栈,栈及其特点和应用详解

    同顺序表和链表一样 栈也是用来存储逻辑关系为 一对一 数据的线性存储结构 如图 nbsp 1 所示 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp
  • 四款经典3.7v锂电池充电电路图详解 - 全文锂电池的内部结构所致,必须保留一部分锂离子在负极,锂电池不能过放电

    3 7v锂电池充电电路图 xff08 一 xff09 1 锂电池的充电 xff1a 根据锂电池的结构特性 xff0c 最高充电终止电压应为4 2V xff0c 不能过充 xff0c 否则会因正极的锂离子拿走太多 xff0c 而使电池报废 其
  • USART_ClearITPendingBith和 USART_ClearFlag的区别

    一个是清除标志 xff0c 判断中断是否处理完 一个是清除中断标志位 xff0c 根据标志位来执行相应的中断函数 一个是在入口 xff08 是否触发某个中断 xff09 xff0c 一个是在出口 xff08 是否完成某个中断 xff09 起
  • HAL_UART_IRQHandler(UART_HandleTypeDef *huart)里面的中断接收函数(作者自己生成的函数代码,中间有关闭接收中断,但是原子教程中没有关闭中断的语句注意区别)

    前言 1 UART Receive IT 2 HAL UART Receive 3 HAL UART Receive IT 前言 看了很长时间串口中断的HAL库 xff0c 最容易混淆的就是函数的名称 xff0c 主要集中在UART Rec
  • STM32 HAL库串口发送函数HAL_UART_Transmit()分析

    STM32 HAL库串口发送函数HAL UART Transmit 分析 硬件平台 xff1a STM32F103VET6 软件平台 xff1a STM32CubeMX 4 22 MDK 5 23 HAL库版本 xff1a FW F1 V1
  • 我在STM32单片机上跑神经网络算法

    01 前言 为什么可以在STM32上面跑神经网络 xff1f 简而言之就是使用STM32CubeMX中的X Cube AI扩展包将当前比较热门的AI框架进行C代码的转化 xff0c 以支持在嵌入式设备上使用 目前使用X Cube AI需要在
  • slambook2+ch7+orb_self 源码的一点小问题

    slambook2 43 ch7 43 orb self 源码的一点小问题 43 解读 源码详细解读小错误调试 xff0c 有的真的属实自己菜运行结果 源码详细解读 下面是一些个人的见解内联代码片 span class token comm
  • 运行相机与vins_Fusion

    安装相机的SDK git clone https github com slightech MYNT EYE D SDK git cd MYNT EYE D SDK make init make all 这里由于没有添加依赖 xff0c O
  • 无刷无霍尔BLCD电机控制

    声明 xff1a 本文出自百度文库无刷无霍尔电机控制 xff0c 因为该文为繁体 xff0c 看起来特别别扭 xff0c 特此翻译 文库网址 xff1a https wenku baidu com view b99217dca0116c17
  • stl的中常用几个容器的介绍与特点。

    lt 1 gt vector容器 vector容器是一个动态数组的结构 xff0c 在内存中有一个指针指向一块连续的内存 类似数组结构一样 它的特点支持随机访问数据 xff0c 因为其在内存中的单元是连续 如此之外 xff0c 还可以vec
  • 关闭优化选项

    这里没有调用拷贝构造函数 xff0c 按照C 43 43 机制 xff0c 应该是会调用的 想起来 xff0c 以前最初写拷贝构造函数的时候也是跟预想的调用不一致 记得编译器会自动优化掉临时对象的 比如 在一个函数中 return list
  • WIFI学习一(socket介绍)

    一 什么是socket socket译为 插座 xff0c 在计算机通信领域 xff0c socket被翻译为 套接字 xff0c 它是计算机之间进行通信的一种约定或一种方式 通过这种方式 xff0c 一台计算机可以接受其他计算机的数据 x
  • 两台电脑实现串口通信

    本文主要介绍串口传输文件的练习 将两台笔记本电脑 xff0c 借助 usb转rs232 模块和杜邦线 xff0c 建立起串口连接 然后用串口助手等工具软件 xff08 带文件传输功能 xff09 将一台笔记本上的一个大文件 xff08 图片
  • VScode前进和后退按钮,非快捷键

    在网上找了半天 xff0c 不喜欢用快捷键 xff0c 喜欢鼠标点击 xff0c 费了好长时间发现这个插件 Back amp Forth xff0c 安装后可以在右上角出现前进和后退按钮 xff0c 如下图
  • Nonce验证

    验证可能会涉及 span class token keyword def span span class token function getNonce span span class token punctuation span span
  • DJI飞行器 精准降落功能测试

    概述 xff1a 该功能仅在自动返航至起飞点 Auto RTL 时生效 xff0c 飞行器降落环境需要足够的照明和没有障碍物的区域 使用该功能后 xff0c 飞行器将使用底部的两个视觉传感器记录起飞时的地形纹理信息 xff0c 并根据记录的

随机推荐

  • 带学生参加电赛,5个国一,2个国二!15个省奖!

    大家好 xff0c 我是张巧龙 xff0c 转眼21年的各省电赛就结束了 xff0c 今年的电赛确实让人难忘 xff0c 不管是题目还是比赛形式 xff0c 亦或是比赛时间一拖再拖 国赛结果也在前段时间公示了 xff0c 参与人数再次增长
  • 【JAVA基础篇】内部类

    定义在一个类内部的类称为内部类 内部类访问权限可以是public protected default或private xff0c 可以声明为abstract供其他内部类或外部类继承 xff0c 可以声明为static final xff0c
  • CURL 是什么

    cURL是一个利用URL语法在命令行下工作的文件传输工具 xff0c 1997年首次发行 它支持文件上传和下载 xff0c 所以是综合传输工具 xff0c 但按传统 xff0c 习惯称cURL为下载工具 cURL还包含了用于程序开发的lib
  • STM32F103C8T6 gps串口数据处理

    基于stm32f10x系列单片机demo程序修改 配置串口 void USART1 Config void GPIO InitTypeDef GPIO InitStructure USART InitTypeDef USART InitSt
  • RS-485总线布线规则及方法

    摘要 xff1a 本文阐述了RS 485双向串行总线的特点 RS 485总线在实际应用中的布线规则 拓扑结构和匹配电阻的连接方法 可供有关技术人员在RS 485总线设计和施工时做参考 关键词 xff1a RS 485 总线 规则 方法 前言
  • jetson nano 基础设置

    关闭图像界面 span class token function sudo span systemctl set default multi user target 开启图像界面 span class token function sudo
  • Android JNI Java/C++互相调用

    一 xff0c Java 调用 C 1 xff0c 首先我们创建一个文件名字叫做 xff0c JNI 其实你不创建也行 看自己 public class JNI 加载本地C语言文件库 库名字为你写的C语言文件名 static System
  • STM32串口空闲中断,中断标志位无法清除

    本节目录 今天想使用STM32的串口空闲中断作接收 xff0c 调了1个小时 xff0c 发现串口空闲中断无法被清除 xff0c 网上搜索半天发现 xff0c 能用清除的库函数清除该中断 我又回头看了一下手册 果真如此 xff0c 问题已解
  • CMake系列(八) CMake 多级目录

    CMake系列 xff08 八 xff09 CMake 多级目录 文章目录 CMake系列 xff08 八 xff09 CMake 多级目录目录结构结构说明调用关系 源文件CMakeLists txt最外层CMakeListsmain的CM
  • 【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

    01 前 言 大家好 xff0c 我是张巧龙 xff0c 今天给大家带来关于21年F题的分享 xff1a 智能送药小车 xff0c 出了这个题目之后 xff0c 咋一看 xff0c 好像比较简单 不过大家慢慢做 xff0c 越往后做越发现
  • ZYNQ系列(十二)linux的DMA使用

    ZYNQ系列 xff08 十二 xff09 linux的DMA使用 文章目录 ZYNQ系列 xff08 十二 xff09 linux的DMA使用前言开发环境准备工作petalinux工程建立建立工程配置内核1 配置DMA2 配置CMA 修改
  • gtest学习笔记(四)gtest自带的sample3---Test Fixture减少测试冗余

    文章目录 前言源码学习utest语法运行 前言 第一章中已经编译出自带的sample例子 xff0c 在build googletest目录下可以看到sample的各种例子的可执行程序 Google Test 附带了10个单元测试用例 xf
  • VSCODE 系列(六)使用Plantuml插件制作UML类图

    文章目录 前言下载和安装支持文件格式支持绘制类型导出 语法申报要素UML类图关系参考例子参考 前言 软件设计中 xff0c 有好几种图需要画 xff0c 比如流程图 类图 组件图等 xff0c 我知道大部分人画流程图一般都会用微软的visi
  • MDK配色方案更改

    文章目录 WIN10更改护眼背景MDK软件配色方案更改 设置常用关键字参考 WIN10更改护眼背景 按windows 43 R快捷键 xff0c xff0c 打开运行 xff0c 在弹出来的输入框中写上regedit xff0c 点确定或回
  • VSCODE 系列(七)格式化工具clang-format

    文章目录 一 VS Code中使用生成 clang format文件VS Code设置 参考 一 VS Code中使用 VS Code 中自带clang format exe 生成 clang format文件 使用命令 span clas
  • MDK的格式化代码工具及添加快捷方式

    文章目录 Astyle介绍插件安装参数设置格式化整个工程参数说明快捷键设置参考 Astyle介绍 Astyle 即Artistic Style xff0c 是一个可用于C C 43 43 C 43 43 CLI Objective C C
  • cURL命令详解

    cURL是什么 cURL是用于数据传输的命令行工具 xff0c 支持多种传输协议 xff0c 包括HTTP HTTPS SCP FTP SFTP TELNET FILE SMTP POP3等等 可以使用cURL进行HTTP HTTPS请求
  • 关于单片机栈空间的总结

    1 如果定义成全局数组 xff0c 则此数组就会自动初始化为0 但如果定义成局部数组 xff0c 则必须要先初始化 2 局部变量一定要初始化 局部变量初始化 是指在使用这个局部变量前 xff0c 要对其进行初始化 这是因为局部变量是从内存堆
  • rplidar使用

    rplidar的使用 新上手的激光雷达 xff0c 第一次使用 根据网上的教程 xff0c 先搭建环境跑起来 安装rviz sudo apt get install ros kinetic rviz 通过apt get安装rviz xff0
  • 全国一等奖,H题:用电器分析识别装置

    大家好 xff0c 我是张巧龙 xff0c 今天继续给大家带来电赛题目 xff1a 用电器分析识别装置 01 视频展示 全国一等奖 21年电赛H题 xff1a 用电器分析识别装置 02 方案设计 2 1 系统总体方案 通过对赛题的仔细分析研