实战演练-2021年电赛国一之三端口DC-DC变换器

文章目录

  • 前言
  • 一、题目
  • 二、题目分析
    • 1、题目要求解析
    • 2、题目方案选定
      • 方案一(使用buck-boost电路+双向DC-DC电路(前端))
      • 方案二(使用同步整流Boost升压电路+双向DC-DC电路(前端))
      • 方案三(使用同步整流Boost升压电路+双向DC-DC电路(后端))
    • 3、控制方案选择
  • 三、理论分析与计算
    • 1、效率提高的方法
    • 2、优化提升点
    • 3、稳压控制方法
    • 4、双向DC-DC的Buck模式下的电感参数计算
    • 5、双向DC-DC的Boost模式下的电感参数计算
  • 四、原理框图
    • 1、BOOST电路和双向DC-DC电路
    • 2、辅助电源电路
    • 3、高端电流采样电路
    • 4、驱动电路
    • 5、总电路
  • 五、软件思路
  • 总结


前言

所有资料均免费开源到QQ群280730348,进群活跃讨论讨论。

博主今天想分享的是在学校期间参加2021年全国大学生电子设计竞赛并获得全国一等奖的电源方向作品-三端口DC-DC变换器,感觉时光飞逝,转眼之间就过去了快两年了,之前本来开源过这个作品,后因为整理资料的时候不小心把开源项目删掉了,重新打字比较麻烦,所以一直搁置了,今天好好细说一下这个作品。

在比赛期间,博主是负责软件调试和硬件电路设计及调试。最大的感受就是时间特别紧急,弄完硬件设计后继续进行软件设计,不过学校的伙食还是给的挺好的哈哈哈,及时给我补充能量。不过不建议大家一个人把硬件设计和软件设计一起弄,还是得分工协作,到忙的时候我基本上顾不上其它事儿了,打板焊接测试基本上就交给我队友了,帮我分担了很多的压力,感谢我的女朋友哈哈哈,就是我的队友!

伙计们,咱就说打比赛是能找到女朋友的!芜湖起飞~

话不多说直接上图,证明一下不是乱吹的,我分享的电路都是我验证过的!believe me
在这里插入图片描述
在这里插入图片描述


一、题目

在这里插入图片描述
在这里插入图片描述

二、题目分析

1、题目要求解析

我认为这是一道比较常规的比赛题目,相较于电源方向另外一道赛题三相PFC明显要简单一些,我本人由于时间问题没能在备赛期间做出来2013年的PFC功率因数校正电路,所以当年在考虑之下就选择了这道题目。说这道题常规就在于只有直流的变化,不需要对交流信号进行处理,因此检测电路只需要对直流信号进行处理,包括驱动方式也是通过PWM直接进行驱动,不需要像交流信号一样需要进行SPWM波模拟之类的。

仔细分析题目我们可以知道:

1、输出均要稳定在30V,因此输出要采用电压闭环控制。
2、题目中有多项电压电流检测要求,故需制作直流电压电流检测板,其中为了检测总电流需制作高端电流检测板。
3、题目中要求切换工作模式,故要判断输入电压的大小选择合适的工作模式。
4、题目中要求对电池组进行充电放电,故需制作继电器切换电路,控制工作状态。
5、需对最大功率进行跟踪,故利用电池组充放电使得输出功率均衡,并利用电压环和电流环双环追踪最终得到最大功率点跟踪的结果。

我认为其中最重要的点就是在于最大功率点跟踪。在做比赛的第一天我犯了一个错误是我想要做两个电路,一个BOOST电路,一个BUCK电路,通过继电器来切换输入接向BUCK或者是BOOST。会这么想的原因在于,基本要求里面提到了输入是50V,而输出需要稳定在30V,自然而然想到了需要用到BUCK降压电路,使得稳定在30V的输出。而发挥部分里面提到了US由55V减少到25V,其中25V又低于了30V的恒压输出,明显要变成BOOST工作。当时的确步入思维的误区了,觉得这电路不得有两个?后面仔细分析题目,一拍大腿,这尼玛有坑呀!在前面的比赛框图中,模拟光伏电池那一坨里面还有一个电阻,虽说直流稳压电源得调到50V输入,但是电路供电给负载,肯定会产生电流呀,这个电流流经电阻,就会产生电压降,比如1A电流流经10欧姆电阻,就会有10V的压降,2A电流的话就有20V压降,这么一想的话,要是直接电路就有个2A的电流,这变换电路前端的U1不就比UO要小了么?这输入电压一比输出电压低,不就是可以直接用BOOST电路了么?但又有一个问题来了,输出电流才要求1.2A,这明显电流不够用呀,这个时候题目中其实已经隐晦的提醒我们了。

基本要求第一问里面提到了IB要大于等于0.1A。IB是什么?电池的充电电流呀。整个电路中我们不仅仅可以给负载供电,同时我们还能给电池进行供电,那么电池供电的话就可以加大我们的输出电流,且题目里面要求电流只要大于0.1A即可,即理论上充电电流可以随便由我们设置。那么根据这个条件,BOOST电路当占空比为0的时候输出其实等于输入的(当然,考虑到MOS管的续流二极管,或许会略低一点),那么根据这个条件,此时如果我们如果增大充电电流,电路整体的电流就会增加,在模拟光伏电池的电阻上压降就会越大,因此BOOST电路的输入电压就会越低,在这种情况下随着充电电流的增大,最终BOOST电路将会低于30V,故在此情况下就可以对30V输出电压进行追踪。

另外由于在要求中存在电池的充放电,所以对电池进行充电或者放电需要通过一个电路来实现,这个电路就是双向DC-DC电路。其实本质上也就是一个BOOST电路或者是BUCK电路,只取决于端口的流向。由于我们采用的是双管结构,故双向DC电路从左往右可视作BOOST升压电路,从右往左又可以作为BUCK降压电路。

2、题目方案选定

方案一(使用buck-boost电路+双向DC-DC电路(前端))

双向DC-DC电路接入boost-buck电路前端,光伏电池输出直接给双向DC-DC电路供电。充电状态时,光伏电池通过双向DC-DC电路降压对电池组进行恒流充电,同时切换继电器选择buck或boost电路对输出进行恒压控制。当输入电压大于30V时,采用降压拓扑。当输入电压小于30V时,采用升压拓扑。放电状态时,电池组通过双向DC-DC电路升压对buck-boost电路输入端进行恒流放电。但由于充电电路放在输入端,故存在着电压突变,从而会引起充电电流的突变,增加电路的不稳定因素。并且buck-boost电路在继电器切换时会存在一段真空期,效率低,容易引发电池组过流充电的情况。

方案二(使用同步整流Boost升压电路+双向DC-DC电路(前端))

采用Boost升压电路输出恒定30V。由于利用电池组对功率进行补偿和跟踪,故输入电压可以限制在12.5V至27.5V之间,满足Boost升压至30V的条件。且Boost升压电路采用同步整流升压拓扑,通过改变死区时长,有效提高升压拓扑效率。本方案虽然输入电压限制在一个较小的区间段,但仍存在双向DC-DC电路恒流充电时的不稳定性。

方案三(使用同步整流Boost升压电路+双向DC-DC电路(后端))

与方案二不同在于双向DC-DC电路放在了输出端,并联至负载两端。Boost电路对输出进行恒压控制的同时向电池组充放电,通过功率点跟踪和PID控制,实现电池组对整体电路的功率补偿。输出电压波动范围小,提高DC-DC电路充电时的稳定性,且电池组放电时,可通过改变输出电压的大小,进行功率追踪补偿,增加了整个系统的安全性,能够快速的进行最大功率点跟踪。该拓扑结构简单,易于硬件实现,但由于Boost升压电路和双向DC-DC电路均采用同步整流技术,故存在着开关瞬间强制换流的问题,控制相对复杂,电路状态容易波动。

那么经过仔细考虑以后,最终选择方案三进行控制方案。选择方案三最主要的原因是,输出电压要稳定在30V,那么30V的这个电压可以作为双向DC-DC电路的输入端进行充电,输入电压较稳定也容易控制对电池的充电,且在实际过程中为了减少损耗,电池充电的输入端并不加限流的电阻,所以电压有很大波动的话容易出现电池过流充电的现象,比赛的话还是求稳一点,平时可以疯狂点,比赛的时候找个稳定一点的方案,比赛的时候做得很好结果最后一天炸机的例子比比皆是,电源这个东西说不准的。

3、控制方案选择

在上面主电路拓扑结构的基础上,存在如下几种控制方法:
方案一:利用DSP或者ARM控制器,使用电压环对输出进行稳压,电流环对电池组充放电进行恒流控制。
方案二:利用DSP或者ARM控制器,电压环对输出进行稳压控制,电池组充电时利用电流环进行功率补偿。电池组放电时,利用电压环对放电电压进行恒压控制,以最大功率点跟踪为目标,进行恒压功率补偿。
综合比较,方案二能更好地实现题目中要求。

三、理论分析与计算

1、效率提高的方法

当时比赛的时候做的比较匆忙,加上考研期间断了三个月左右,所以很多东西都没有准备好,许多都是现场直接打板的板子,做的比较粗糙。现在回想起来,其实有很多可以优化效率改进的地方,在这里我提几点,大家可以按照这个方向去优化。

1、屏幕选用OLED屏幕进行显示(我用的LCD屏幕,耗电大)。
2、能用集成化的板子就用集成化的板子,我因为时间不足所有的模块基本都是分开的,连线到处绕。
3、管子用好一点,毕竟功率电路损耗无非就是开关和导通损耗。
4、可以调整死区,尽量让损耗的区域小一点,不过这个用处貌似不大。
5、电池组那里大胆点,我当时做的方案其实比较普通了,用个二极管切换防止电流倒灌,其实也损耗了很多充电功率,直接去掉二极管,反正有电池保护,干就完事儿了。
6、电源砖辅助电源可以换成芯片辅助供电,提高效率。

2、优化提升点

1、可以选用外置的电压基准芯片给最小系统板的ADC参考电压引脚供电,这样采出来会稳定一点。
2、用好一点的运放芯片吧,把噪声压下来,也可以多考虑一下滤波的单元,滤除噪声干扰采样。

3、稳压控制方法

根据题目要求,输入电压范围为25V-55V,负载电压在任何时刻要稳定在30V,若不采用最大功率点跟踪,则存在输入电压大于或小于30V两种状态,故需要使用两种拓扑电路。但考虑到两种拓扑切换过程中存在着一段真空期,因此采用直接最大功率点跟踪方案,拓扑选择同步整流Boost升压电路,通过最大功率点跟踪将BOOST输入电压限制至30V以下,以实现输出稳压30V。
系统的稳压能力主要体现在动态和静态两个方面。为提高系统的动态响应能力,可以通过提高控制器开关频率、输入电压前馈检测、控制器单位延时补偿等方式提高整流器的动态响应能力。在静态稳压能力提高方面可以通过加入积分控制实现系统输出无静态误差,消除稳态误差。

4、双向DC-DC的Buck模式下的电感参数计算

在Buck模式下,从电感电流连续模式(CCM)进行讨论,根据电感的伏秒平衡原理,在MOS管导通和关断状态下可得:
在这里插入图片描述

5、双向DC-DC的Boost模式下的电感参数计算

在这里插入图片描述

四、原理框图

如图所示,在本题目中光伏电池通过直流稳压源+电阻构成,光伏电池输出口的电压是经过了电阻以后的降压电压,要让这个电压等于输入的一半,才算做最大功率点。电流就是电路输入的总电流。因此在输入端需要通过高端电流检测模块检测输入总电流,从而判断出压降大小,将压降加上此处的输入电压检测以后就可以得到光伏电池的输入电压。后级接一个BOOST电路升压稳定在30V,同时电池组通过双向DC-DC电路实现电池充电和电池放电功能,继电器的功能是为了切换充电和放电的方向,充电状态下通过一个二极管接向电池,一定程度上限制电流,避免电池电流的陡然上升。放电状态下切换继电器通过电池放电,再经过双向DC-DC电路升压,跟BOOST电路争夺功率,实现第二种状态的控制。
在这里插入图片描述

1、BOOST电路和双向DC-DC电路

都是同一个电路,因为BOOST电路反过来看其实就是一个BUCK电路。电路采用的是隔离式的双向DC-DC,使用的是两个IRF540Nmos管,并且利用同步整流控制法来控制MOS管的关断,从左到右是Boost拓扑结构,从右到左是Buck结构,升压时,开关管Q4为主功率元件,决定电路变比;Q3实现同步整流,替代二极管,减小导通损耗。1N4148(D7)、10Ω(R36)、10KΩ(R37)加速IRF540N的栅极、源极之间的寄生电容放电。具体怎么用的请参考我之前的文章,关于BOOST电路的详解。
在这里插入图片描述

2、辅助电源电路

辅助电路用的金升阳的电源砖模块,前文也提到了,这个地方其实是一个效率损耗点。我用的金升阳电源砖是隔离的电源,挺稳定的,用了很久都没有出过问题,所以也就一直用了下去,当时没有仔细去想过效率的问题。建议换成开关电源的芯片供电,供电口是在光伏电池经过电阻降压了以后的地方取电,我记得当时题目好像有个要求是不能从输入取来着,时代久远忘记了,建议好好考证一下。
在这里插入图片描述

3、高端电流采样电路

之前的文章也提过,用的是INA282芯片,实测电流线性度还可以。后面的运放是用的OPA2188,作用是带你丫跟随,降低阻抗。
在这里插入图片描述

4、驱动电路

BOOST电路用的光耦驱动,双向DC-DC用的IR2104,这个其实都可以通用,当时是实在没时间了,手头模块只有单独的几个,所以随便选的,光耦会更保险一点。
在这里插入图片描述
在这里插入图片描述

5、总电路

如图所示,这是根据记忆还原的图,大致的电路结构如图所示。VDC代表的是直流电源输入,经过一个二极管(这个二极管是比赛要求的),再经过降压电阻(10欧姆的大铁壳电阻),然后流经10mΩ采样电阻后(此处主要是采集高端直流电流),然后到达了BOOST输入电路的前端,前端有一个V_In的检测,就是检测BOOST前端输入电压,这个电压我们要让他稳定在输入电压的一半。BOOST电路输出后面跟着电压检测和电流检测,电流检测没啥太多的用处,主要是电压检测,要稳定在30V,此处用电压环去稳定。BOOST电路输出端电压为VOUT,VOUT作为双向DC-DC的输入端,B1是电池,这里没有加入继电器,实际上有继电器的存在。就如我前文所说的一样,我们需要切换充电和放电两种状态,充电状态下VOUT通过右向左降压给电池充电,此时L1电感的左边应该是通过继电器连接一个二极管再连接到B1的1号端口,放电状态下,通过继电器将B1的1号端口直接连接到L1的左端,相当于电池直接做了一个boost升压到负载端口,也就是VOUT口。这样的话既能够保证电池充电的稳定性,有能够保证电池放电的稳定性。
在这里插入图片描述

五、软件思路

软件中采用了最大功率点跟踪算法,在不同的输入电压范围内,实现电池组充电和放电两种模式的切换。电池充电时,通过采集输入电压,输入电流,得出输入电压。进入PID调节环后,以作为目标值,作为检测值,实现实时跟踪最大功率点。由于充电时所需能量完全由输入提供,故输入功率=负载功率+电池充电功率,当电池充电电流增大时,输入电流增大,由于电压保持不变,故会降低,输入电流减小时,会升高,通过此类关系,通过调节PID跟踪目标值,即可实现最大功率点的跟踪。同样,放电模式也是如此,电流增大时,输入电流减小,会升高,由此来调节对应的PID,实现追踪最大功率点。

通过设定不同的电压范围从而实现不同工作模式的切换,并由于硬件检测存在着一定的误差,因此通过软件上面多程度的拟合加软件滤波,增强数据检测的可靠度。设置了校正功能,主要体现在大范围的电压变化而导致的输出电压所含纹波大小的不同,影响到输出电压的检测。
在这里插入图片描述

总结

总结一下这个赛题,如果想要复刻,请遵循如下:
1、首先把我的基础电路解析看了,比如我博文里面提到的采样、基础拓扑结构,了解的基础上再去复现。
2、新学的建议先从两个方向入手。第一个方向是BOOST升压电路的设计,目标就是稳定在30V附近。第二个方向是先把15年电池双向DC-DC电路打通,我的对电池的充放电就是按照那个来的,只不过是作为我的电路中的一部分实现的。电池充放电就按照15年国赛题来了,这道题的电池作为功率分配的部分就稳了。
3、此题核心在于功率分配,第一种状态的时候,通过加大或者减小电池充电电流,从而实现输出稳定30V的同时,同时向负载供电。第二种状态的时候就是通过电池放电与BOOST电路输出端直流并网,抢夺输出功率,电池放电电压越大,所占的电流就越大,因此就可以降低BOOST那边的总电流,从而控制BOOST的输入电压接近光伏电池输入电压的一半。
4、请务必把小模块复现好,这里面的有供电模块、直流电压电流检测,电流检测又包括高端和低端的,驱动电路、继电器电路等等。
5、电池一定要有保护装置,请务必小心,我这个仅代表我个人方案,有风险,谨慎复刻。
6、还可以参考西北大学的2021年这道赛题,做得很好。

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

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

相关文章

二叉搜索树大冒险:寻找-插入-删除

OK,看我们题目就可知道啦,今天要分享学习的一种数据结构就是二叉搜索树。 内容题目也说了三个大概的,分别是寻找、插入、删除。 讲这个之前呢,那么就先讲讲这个二叉搜索树是何方神圣呢? 二叉搜索树: 又…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(五)-同时支持无人机和eMBB用户数据传输的用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

全网最详细单细胞保姆级分析教程(二) --- 多样本整合

上一节我们研究了如何对单样本进行分析,这节我们就着重来研究一下如何对多样本整合进行研究分析! 1. 导入相关包 library(Seurat) library(tidyverse) library(patchwork)2. 数据准备 # 导入单样本文件 dir c(~/Desktop/diversity intergration/scRNA_26-0_filtered_featur…

【香橙派 Orange pi AIpro】| 开发板深入使用体验

目录 一. 🦁 写在前面二. 🦁 愉快的安装流程2.1 安装前准备2.2 流程准备2.2.1 烧录镜像2.2.2 开机2.2.3 连网2.2.4 SSH远程连接开发板 2.3 体验 AI 应用样例 三. 🦁 写在最后 一. 🦁 写在前面 大家好,我是狮子呀&…

医疗级微型导轨:保障医疗行业手术安全!

微型直线导轨能成为一种专为医疗行业设备运用的高精度线性运动设备,在现代医疗领域,精准的位置控制和平稳的运动对于确保医疗设备的高效性能至关重要。那么,医疗行业对微型导轨有哪些要求呢? 1、精度:在手术过程中&…

C++客户端Qt开发——开发环境

一、QT开发环境 1.安装三个部分 ①C编译器(gcc,cl.exe……) ②QT SDK SDK-->软件开发工具包 比如,windows版本QT SDK里已经内置了C的编译器(内置编译器是mingw,windows版本的gcc/g) ③QT的集成开发…

智慧园区规划建设解决方案PPT(40页)

智慧园区规划建设解决方案摘要 1. 园区定义与发展历程 园区,亦称开发区,是在特定产业和区域政策指导下形成的区域。它们通过提供基础设施和生产空间,吸引投资,形成技术、资本密集区,推动经济发展。园区发展经历了四代…

Docker 部署 ShardingSphere-Proxy 数据库中间件

文章目录 Github官网文档ShardingSphere-Proxymysql-connector-java 驱动下载conf 配置global.yamldatabase-sharding.yamldatabase-readwrite-splitting.yamldockerdocker-compose.yml Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为…

【qt】TCP客户端信息的接受和发送

当有信息时的槽函数关联 跟服务端收到信息一样,当可以读一行的时候,就从套接字读一行. 发送信息也是和服务端如出一辙,通过write(). 运行结果:

Spring MVC 中的文件上传 和 文件下载

Spring MVC 中的文件上传 和 文件下载 文章目录 Spring MVC 中的文件上传 和 文件下载1. Spring MVC 中的文件上传2. Spring MVC 中的文件下载3. 总结:4. 最后: 1. Spring MVC 中的文件上传 文件上传是:浏览器端向服务器发送文件&#xff0c…

C 语言结构体

由于近期项目需求,需使用到大量的指针与结构体,为更好的完成项目,故对结构体与指针的内容进行回顾,同时撰写本博客,方便后续查阅。 本博客涉及的结构体知识有: 1.0:结构体的创建和使用 2.0: typedef 关…

解锁音乐密码,人工智能创作动人歌词

在音乐的神秘世界里,每一段旋律都像是一把等待开启的密码锁,隐藏着无尽的情感与故事。而如今,人工智能正以其独特的智慧和创造力,帮助我们解锁这些音乐密码,创作出动人的歌词。 “妙笔生词智能写歌词软件(…

Provider(1)- 什么是AudioBufferProvider

什么是AudioBufferProvider? 顾名思义,Audio音频数据缓冲提供,就是提供音频数据的缓冲类,而且这个AudioBufferProvider派生出许多子类,每个子类有不同的用途,至关重要;那它在Android哪个地方使…

访问 Postman OAuth 2.0 授权的最佳实践

OAuth 2.0 代表了 web 安全协议的发展,便于在多个平台上进行授权服务,同时避免暴露用户凭据。它提供了一种安全的方式,让用户可以授权应用程序访问服务。 在 Postman 中开始使用 OAuth 2.0 Postman 是一个流行的API客户端,支持 …

探索4D毫米波雷达和摄像头在自动驾驶中的潜力

随着自动驾驶技术的快速发展,关于各种传感器的必要性,尤其是LiDAR(激光雷达)与毫米波雷达结合摄像头的作用,激发了激烈的讨论。在这篇博客中,我们将探讨4D毫米波雷达和摄像头的组合是否可能成为自动驾驶车辆…

将vue项目整合到springboot项目中并在阿里云上运行

第一步&#xff0c;使用springboot中的thymeleaf模板引擎 导入依赖 <!-- thymeleaf 模板 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 在r…

聊聊接入Arbitrum的正确姿势

本文首发于公众号&#xff1a;Keegan小钢 前言 我们知道&#xff0c;目前最主流的 Ethereum Layer2 方案中&#xff0c;主要有 Optimistic Rollup 和 ZK Rollup 两大类。而 Optimistic Rollup 的实现方案中&#xff0c;则是 Optimism 和 Arbitrum 最受关注。而我们最近接入了 …

Java套红:指定位置合并文档-NiceXWPFDocument

需求&#xff1a;做个公文系统&#xff0c;需要将正文文档在某个节点点击套红按钮&#xff0c;实现文档套红 试了很多方法&#xff0c;大多数网上能查到但是实际代码不能找到关键方法&#xff0c;可能是跟包的版本有关系&#xff0c;下面记录能用的这个。 一&#xff1a;添加依…

redis-cli 连接Redis

Redis-cli介绍 redis-cli 是原生 Redis 自带的命令行工具&#xff0c;您可以在云主机或本地设备上通过 redis-cli 连接 Redis 数据库&#xff0c;进行数据管理。 redis-cli 客户端的使用方法&#xff0c;请参考官方文档。 连接命令 redis-cli -h <redis_instance_address…

一个极简的 Vue 示例

https://andi.cn/page/621516.html