2023年全国赛C题《 电容电感测量装置》设计报告

news2024/12/27 15:26:24

测量原理

参考下面网站的方案

bookmark

参考LCR测试仪,基本工作原理为给DUT加上正弦激励信号,然后测得该DUT两端的电压和流过DUT的电流,即可通过计算得到DUT的性质和参数。

1720858696834.png

对于一个理想电容,电流相位应该超前电容两端电压90°。然而实际的电容存在损耗,可以等效为一个理想电容 C p C_p Cp和一个理想电阻 R p R_p Rp的并联,因此电流超前电压的相位将小于90°,这个角度差即为损耗角。

2024after4202407131621163.png

假设DUT两端电压 V ˙ = V cos ⁡ ( ω t ) \dot{V}=V\cos(\omega t) V˙=Vcos(ωt),流过DUT的电流为 I ˙ = I s i n ( ω t − φ ) \dot{I}=I sin(\omega t - \varphi) I˙=Isin(ωtφ),电流在虚轴上的投影为流过理想电容的电流,在实轴上的投影为流过损耗电阻的电流。

因此可以计算出并联电容的容抗为 X C p = V I c o s φ X_{Cp}=\frac{V}{I cos\varphi} XCp=IcosφV,容值 C P = 1 ω X C p = I c o s φ ω V C_P=\frac{1}{\omega X_{Cp}}=\frac{I cos \varphi}{\omega V} CP=ωXCp1=ωVIcosφ

损耗电阻的值为 R p = V I s i n φ R_p=\frac{V}{Isin\varphi} Rp=IsinφV

定义元件消耗的无功功率和有功功率之比为元件的Q值,Q值的倒数为D值(损耗角正切)

Q = R P X C p = c o t φ , D = 1 Q = t a n φ Q=\frac{R_P}{X_{Cp}}=cot \varphi, D=\frac{1}{Q}=tan \varphi Q=XCpRP=co,D=Q1=tanφ

上述需要的参数可以借助正交算法求得:

I sin ⁡ ( ω t − φ ) ⋅ V cos ⁡ ( ω t ) = 1 2 V I sin ⁡ ( 2 ω t − φ ) − 1 2 V I sin ⁡ φ I sin ⁡ ( ω t − φ ) ⋅ V sin ⁡ ( ω t ) = − 1 2 V I cos ⁡ ( 2 ω t − φ ) + 1 2 V I cos ⁡ φ \begin{align}I\sin(\omega t-\varphi)\cdot V\cos(\omega t) & = \frac12VI\sin(2\omega t-\varphi)-\frac12VI\sin\varphi\\I\sin(\omega t-\varphi)\cdot V\sin(\omega t) & = -\frac12VI\cos(2\omega t-\varphi)+\frac12VI\cos\varphi \end{align} Isin(ωtφ)Vcos(ωt)Isin(ωtφ)Vsin(ωt)=21VIsin(2ωtφ)21VIsinφ=21VIcos(2ωtφ)+21VIcosφ

相乘以后经过低通滤波器后即可得到直流成分 − 1 2 V I s i n φ 和 1 2 V I c o s φ -\frac{1}{2} VI sin\varphi 和\frac{1}{2} VI cos\varphi 21VIsinφ21VIcosφ,即可求得题目要求的损耗角正切

t a n φ = V I s i n φ V I c o s φ tan\varphi = \frac{VI sin \varphi}{VI cos \varphi} tanφ=VIcosφVIsinφ

同时可求得以下参数

并联形式的理想电容的容抗  X c p = V I cos ⁡ φ = V 2 V I cos ⁡ φ ,电容为  C p = 1 ω X c p , 并联形式的损耗电阻 R p = V I sin ⁡ φ = V 2 V I sin ⁡ φ 。其中  V 2 可以通过电压自乘后滤除高频成分后得到。 \text{并联形式的理想电容的容抗 }X_{cp}=\frac V{I\cos\varphi}=\frac{V^2}{VI\cos\varphi} \text{,电容为 }C_p=\frac1{\omega X_{cp}},\text{并联形式的损耗电阻}\\R_{p}=\frac V{I\sin\varphi}=\frac{V^2}{VI\sin\varphi}\text{。其中 }V^2\text{可以通过电压自乘后滤除高频成分后得到。} 并联形式的理想电容的容抗 Xcp=IcosφV=VIcosφV2,电容为 Cp=ωXcp1,并联形式的损耗电阻Rp=IsinφV=VIsinφV2。其中 V2可以通过电压自乘后滤除高频成分后得到。

参数仿真

现有的ADC的输入电压范围为0~2V,输入偏置为1V;DAC的输出电压范围为1V峰峰值,同时可以加偏置,

1721052590800.png

电容容值为1nF-100nF,检流电阻为0.33Ω时,输出电压峰峰值为4-200mv。测量电感时频率为1MHz,电感感值为10uF-100uF时,输出电压峰峰值为15-150mv。由于ADC模块的输入范围为0~2V,因此对信号进行9倍放大,峰峰值放大到1.8V左右。

调试记录

DAC输出的信号和LC滤波器阻抗不匹配,导致LC滤波器的输入端信号幅值较低

待测元件检测电路上电后输入端有-500mv的偏置

LC滤波器设计如下,DAC输出1MHz的信号时高次谐波较为严重,因此设计一个通带为1.2MHz的LC低通滤波器滤除高次杂波。

1721448168186.png

1721448231710.png

PCB设计

初代

其中R8是用来连接测试夹具的,激励信号从P1输入,经过R8上的待测电容或电感后电流经过C5流入后级电流检测电路,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1721560509597.png

这样设计的话,电路的输入阻抗为测量夹具上的待测元件的在特定频率下的阻抗值,而前级放大器的输出阻抗为50Ω,会导致输入信号的幅值不是期望的幅值。

改进

将前级放大器的输出端用于阻抗匹配的50Ω电阻拆掉,利用运放输出阻抗很低的特性,使得输出的信号的电压全都加在上面电路的输入端。

这样改进的原因是运放后级不带容性负载、LC滤波器、长同轴电缆的话输出端不需要接匹配电阻。

FPGA程序设计

根据上面的原理,需要两个ADC采集电流和电压信号,1个DAC生成激励信号。因此选择DE0nano,有两个扩展的40pin排针,可以接入两个ADDA模块。

2024after4202407231614021.bmp

FPGA的晶振频率为50MHz,通过PLL分频出20MHz和80MHz,其中ADC的时钟为20M,DAC的时钟为80M。然后分别连接到ADC_Interface和DAC_Interface。

ADC部分采集到的信号位宽为10,舍弃低两位以便于后续对信号的处理,同时每采1024个样点后暂停0.5秒,然后再进行下次采集。

DAC部分采用一个NCO生成正弦波信号,通过拨码开关切换频率字,输出到DAC_interface后左移1位后输出,再通过一个同相放大器放大2倍,增强信号的驱动能力。

ADC采集到的电流和电压的数据存放到RAM中,通过改变起始的取地址来实现移相。使用的ADC的采样率为20M,采集100K的信号时,每个周期采集200个点,因此想要移相 π 2 \frac{\pi}{2} 2π时,只需要从50开始读取RAM里的数据,读出的信号即为从0开始读取的RAM的读出的信号进行 π 2 \frac{\pi}{2} 2π移相后的信号。

经ADC采集的数据为无符号数,做乘法滤波会和计算结果不匹配,因此再加入一级无符号转有符号数的module,转成有符号数后做乘法,再送入低通滤波器后即可获得需要的数值。对低通滤波器的输出进行截断,只保留高16位的数据,降低抖动的直流信号对结果的影响。

测量结果

1721657082949.png

第一个Lowpass的输出为 V I c o s ϕ VIcos\phi VIcosϕ,第二个Lowpass的输出为 1 2 V I c o s φ \frac{1}{2}VIcos \varphi 21VIcosφ,第三个Lowpass的输出为 V 2 V^2 V2,容抗的计算过程如下:

根据仿真的输入电流和输出电压的拟合关系可得,在输出采集的电压的幅值等于电流÷0.305,因此容抗为 第三个输出÷2÷第一个输出÷0.305

电路展示

2024after4202407231606426.jpg

后续计划

利用spi进行FPGA和TI开发板的通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1947636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java结合uniapp实现验证码(附Demo)

目录 前言1. Java2. uniapp 前言 对于Java的知识点推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 本次的Demo主要以图片验证码的方式输入和接…

抖音矩阵管理系统功能说明:一站式掌握

在当下这个信息爆炸的时代,抖音作为短视频领域的佼佼者,其用户规模持续扩大,影响力日益增强。对于内容创作者和营销人员来说,如何高效管理抖音账号,实现内容的多平台分发和精准触达,成为了亟待解决的问题。…

【JAVA多线程】线程的状态控制

目录 1.JDK中的线程状态 2.基础操作 2.1关闭 2.2中断 2.3.等待、唤醒 2.4.阻塞、唤醒 1.JDK中的线程状态 在JDK的线程体系中线程一共6种状态: NEW(新建): 当线程对象创建后,但尚未启动时,线程处于新建状态。RUN…

代码随想录算法训练营day8 | 344.反转字符串、541.反转字符串 II、卡码网:54.替换数字

文章目录 344.反转字符串思路 541.反转字符串 II思路 卡码网:54.替换数字思路复习:字符串 vs 数组 总结 今天是字符串专题的第一天,主要是一些基础的题目 344.反转字符串 建议: 本题是字符串基础题目,就是考察 revers…

链式法则和自动求导

向量链式法则 说明: 1.第一个式子, y是标量,u是标量,x是n维向量 2.第二个式子,y是标量,u是k维向量,x是n维向量,所以y对u求导是k维的行向量,u对x求导是k行n列的矩阵&…

Node 版本控制工具 NVM 的安装和使用(Windows)

遇到了一个项目,前端的node版本很低,需要我去降低node版本才能下载依赖运行,我当然不是傻乎乎的降版本了,而是使用node版本控制工具 NVM。 NVM(Node Version Manager) nvm 是一个命令行工具,用于…

【OSS对象存储】Springboot集成阿里云OSS + 私有化部署Minio

【OSS对象存储】Springboot集成阿里云OSS 私有化部署Minio 一、摘要二、POM依赖三、配置文件四、表结构设计五、代码实现5.1 代码包结构5.2 API封装5.3 增删改查 六、扩展6.1 Minio配置https访问 一、摘要 掌握阿里云OSS、私有化部署Minio两种对象存储的使用方式运用工厂策略…

STM32-寄存器ADC配置指南

目录 输入方式: 模拟看门狗功能: ADC中断 配置一个Demo 设置时钟 自校准 通道选择 采样时间选择 转换模式选择 断续模式 启动转换 软件触发 外部触发 转换结束 关于DMA 模拟看门狗 ​编辑ADC数据位置​编辑 在STM32F中,ADC可…

FM与AM的特点

1.是什么? FM(调频):通过改变载波频率来传递信息AM(调幅):通过改变载波的振幅来传递信息 2.分别有什么特点? 抗干扰能力: FM:由于FM信号的传输不依赖于载波的…

c++初阶知识——string类详解

目录 前言: 1.标准库中的string类 1.1 auto和范围for auto 范围for 1.2 string类常用接口说明 1.string类对象的常见构造 1.3 string类对象的访问及遍历操作 1.4. string类对象的修改操作 1.5 string类非成员函数 2.string类的模拟实现 2.1 经典的string…

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)或持续交付(Continuous Delivery)的缩写,它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍

自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍 自动驾驶系列—智能巡航辅助功能中的车道变换功能介绍 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍 自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍 文章目录 2. 功能定义3. 功能原理4. 传感器架构5. 实…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的: 广义的"集群":表示由多台主机构成的分布式系统,称为"集群"狭义的"集群":指的是redis提供的一种集群模式&…

牛客JS题(二)直角三角形

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; repeat格式化字符串 题干&#xff1a; 我的答案 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"></head><body><div classtriangle><…

C++树形结构(1 基础)

目录 一.基础&#xff1a; 1.概念&#xff1a; 2.定义&#xff1a; Ⅰ.树的相关基础术语&#xff1a; Ⅱ.树的层次&#xff1a; 3.树的性质&#xff1a; 二.存储思路&#xff1a; 1.结构体存储&#xff1a; 2.数组存储&#xff1a; 三.树的遍历模板&#xff1a; 四.信…

【BUG】已解决:NameError: name ‘python‘ is not defined

NameError: name ‘python‘ is not defined 目录 NameError: name ‘python‘ is not defined 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于…

【TortoiseGit】合并单个commit(提交)到指定分支上

0、前言 当我们用Git的时候经常用到多个分支&#xff0c;会经常有如下情况&#xff1a;一个dev分支下面会有多个test分支&#xff0c;而每个test分支由不同的开发者。而我们会有这样的需求&#xff1a; 当某个test分支完成了相应功能验证&#xff0c;就要把成功验证的功能代码…

【Git】上传代码命令至codeup云效管理平台

通过git命令上传本地代码库至阿里的codeup云效管理平台的代码管理模块&#xff0c;使用方便&#xff0c;且比github上传网络环境要求低&#xff0c;超大文件&#xff08;>100M&#xff09;的文件也可以批量上传&#xff0c;且上传速度喜人。 目录 &#x1f337;&#x1f33…

[Vulnhub] Acid-Reloaded SQLI+图片数据隐写提取+Pkexec权限提升+Overlayfs权限提升

信息收集 IP AddressOpening Ports192.168.101.158TCP:22,33447 $ nmap -p- 192.168.101.158 --min-rate 1000 -sC -sV Not shown: 65534 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Ubuntu 5ubuntu1.3 (Ubuntu Lin…

【NOI-题解】1009 - 数组逆序1162 - 数组元素的删除1211 - 数组元素的插入1161. 元素插入有序数组1159. 数组元素的移动

文章目录 一、前言二、问题问题&#xff1a;1009 - 数组逆序问题&#xff1a;1162 - 数组元素的删除问题&#xff1a;1211 - 数组元素的插入问题&#xff1a;1161. 元素插入有序数组问题&#xff1a;1159. 数组元素的移动 三、感谢 一、前言 本章节主要对数组问题中数组元素移…