## **1.前言**
听到举办立创搞电赛征集令,我赶紧报了名,认认真真开始搞这个项目,这个题目是2021本科组国赛题,这个题目全部用stm32写完,希望做到大部分人都可以跟着一起做,本作品只要有兴趣的都可以跟着一起做,我把技术细节和源代码全部开源,第一次开源没有什么经验,有不足的希望大家多多指教,互相学习。这里还要感谢一下嘉立创打样,所有作品都经过嘉立创打样才有更好的指标。
## **2.个人介绍**
**卞YC**
江苏南通
即将毕业于某二本学校
获奖经历
2020年参加TI杯获得省一
2021年参加TI杯获得国一
## **3.项目分析**
1.1基本要求
设计并制作三端口 DC-DC 变换器,其结构框图如图 1 所示。
变换器有两种工作模式:模式I,模拟光伏电池向负载供电的同时为电池组充电(IB>0);模式II,模拟光伏电池和电池组同时为负载供电(IB<0)。
根据模拟光照(US 的 大小)和负载情况,变换器可以工作在模式I 或模式II,并可实现工作模式的自动转换,在各种情况下均应保证输出电压UO稳定在30V。
![image.png](//image.lceda.cn/pullimage/VDWjqMbQhEJFvpQAjljU0qTHQbkW5DXQefs9YzeI.png)![image.png](//image.lceda.cn/pullimage/grFmbf7BVb13EEnIFomlEEMCEbbuL3gx7VSvWQMn.png)
![image.png](//image.lceda.cn/pullimage/VEcq4aRG40pI6829w70mgq6tnadbO77YD5r811VI.png)
根据题目要求我们来分析一下这个题目各项指标该如何完成
主电路采用两块DCDC电路
第一块DCDC将电源输出的电压升压到稳定的30V,实现30V稳压输出
第二块DCDC电路用于控制电池充放电,通过控制充放电速率,改变电路的等效电阻,实现最大功率点追踪
电流检测模块用于电池充放电电流监测
辅助电源用于给单片机及电路芯片供电首先是基础部分,稳压输出为30V,输出电流需要1.2A,选择2个50欧姆电阻并联作为负载,通过改变第二块DCDC工作状态,改变池的充电功率,来实现输出电压稳定30V.
由于基础部分不考虑最大功率点,所以只需要控制电池充电一路的功率即可实现稳压输出.其次是发挥部分.通过采集输入电压Uin 输入电流Iin,以及已知输入电阻=10R,单片机可实时可计算得到输入电压Us.
通过改变第一块DCDC电路的占空比,改变升压比例,实现输功率点追踪,使得输入电压Uin达到二分之一Us,同时保证输出电压稳定在30V,即可完成全部要求.
人机交互方面采用OLED屏,简便且低功耗,对系统占用也比较少.
**5.理论分析与计算**
最大功率点可全程追踪,即可避免基础发挥功能切换的问题.输入电压在最大功率点都低于30V,所以DCDC1一直工作在升压状态.
电池充放电有一个临界状态,占空比的改变是连续的,模式切换只需要稳定30V输出,在单片机的闭环内可连续实现.
### **4.结构框架**
![12F649C3A96C0000E57D07B1E7E30350.jpg](//image.lceda.cn/pullimage/YNfRfancGw6TO76AcTIZncjsSNkfC0uSEidiIzY1.jpeg)
电路总体模块如图所示。
###
![image.png](//image.lceda.cn/pullimage/2oNQe5cr01m0Zv0nLnCExgsjdpUIqqH8Rtmw22Gn.png)
DC-DC主电路 原理图
![image.png](//image.lceda.cn/pullimage/GZX1fAQd7tcBnypMzS0zSwVkqDijesZKyxdB7BkW.png)
DC-DC主电路 PCB
DCDC电路采用IR2109作为mos驱动,mos选择IRF3205,耐压55V,足以满足题目要求
![image.png](//image.lceda.cn/pullimage/kV3v19Mxi7Y2cotYBMiA0aSnxPjL66UtkiiqO3TV.png)
双向电流检测电路 原理图
![image.png](//image.lceda.cn/pullimage/Tt0USb7qFCvzz6mP6ArL2YS3Lm4d89EjoBN7Gwqb.png)
双向电流检测电路 PCB
电流检测模块用于计算输入电流,以及电池充放电状态的监测
一个电流检测为洞洞板焊接,原理图与此相同
### 4.辅助电源
![image.png](//image.lceda.cn/pullimage/VVhZc0APMgcI2YDAKU46PKDskdCBZXrS6QeitqQV.png)
辅助电源 原理图
![image.png](//image.lceda.cn/pullimage/xnOlSwWhdSr28kMy92pU5iJdlR3uyFniOMIoTKz5.png)
辅助电源 PCB
将Uin转换为适合单片机以及芯片所需的电压
###
### 5.程序控制逻辑
系统软件设计分析
5.1 系统总体工作流程
① 首先对电路初始化,计算输入适合电路开始工作的pwm波并使能电路。
② 通过PID法调节下方DCDC的PWM波占空比,是输出电压稳定在30V
③ 在30V稳定的基础上,使用MPPT法调节上方DCDC的PWM波占空比实现寻找最大功率因素点。此后输出电压会改变,回到操作②,如此往复,电路会停在一个输出电压稳定,并且功率因素最大的点上
④ 在③稳定实现的基础上,通过电路反馈值判断电池充放电状态以得知电路处于模式1,还是模式2。并完成题目要求的某些需要单片机控制的指标。
5.2 主要模块程序设计
由于题目发挥部分和基础题某些指标需要追踪最大功率因素点,因此用到了光伏系统中常用的MPPT算法,MPPT具体使用方案具体方案——干扰观测法
干扰观测法,通过将电路的输出功率和上次的相比较,来确定增加或减少太阳能电池板工作电压来实现MPPT。
设在某一时刻t1,电池板的输出功率为P1,处理器输出信号使太阳能电池板工作电压增大ΔV,一段时间Δt后,在时刻t2(t2=t1+Δt)检测到太阳能电池板的输出功率为P2。若 ΔP(ΔP=P1-P2)为正,则应该使太阳能电池板工作电压继续增大ΔV,直到ΔP=0;若ΔP为负,则应该使太阳能电池板工作电压减小ΔV,直到ΔP=0。
对于ΔV,应选取合适的值。如果ΔV的值太大,太阳能电池板的输出会在最大功率点左右浮动;如果ΔV的值太小,虽然可以保证了跟踪精度,但是需要更多的时间,当最大功率点变化频繁时效果会变差。
5.3 关键模块程序清单(加注释)
caiyang() 对题目中采样点进行采样
set_Uo() 根据采样点反馈调节PWM波实现输出电压的稳定
FindMP() 寻找最大功率因素点
show_oled() 将关键数值用oled屏幕显示
**这里只列举调用的函数,具体的函数内容可见附件的源码~~~~**
![image.png](//image.lceda.cn/pullimage/AtCie3AcrgZYynVxUpkxiWroyRTZBQc2roWwjlw2.png)
最大功率的追踪代码段,这段代码用于计算Us并使能电池充放电电路,判断计算值和采集值的差,实现闭环的最大功率点追踪。
![image.png](//image.lceda.cn/pullimage/u28b7qgZrYQ2FAGyOHCj9XBXNDboPxWkVc6ASdCb.png)
我们采用的DCDC驱动芯片,用于降压拓扑,默认下管导通,而用于升压电路,下管导通会导致问题,
所以需要先计算出默认的占空比,输出给驱动电路,再将驱动电路使能,这样能避免下管导通带来的问题
其余代码可见附件的源码,内含注释内容
## **6.实物展示**
![613687BD827B97B2C7CB45469A656ED9.jpg](//image.lceda.cn/pullimage/gqnlMiAY2aMZnXKCVHK8AFahdgrMlfFBw7eFxJje.jpeg)
### 演示视频见附件~~~~
ID |
Name |
Designator |
Footprint |
Quantity |
1 |
DB301V-5.0-2P |
BOOST1,BUCK1,I1,I2,VIN1,VIN2 |
CONN-TH_2P-P5.00_L7.6-W10.0 |
6 |
2 |
0.1u |
C1,C19,C20,C22,C23,C24,C29,C30,C31,C32,C33,C34 |
C0805 |
12 |
3 |
0.1u |
C2,C10,C11,C12,C13,C14,C15 |
C1206 |
7 |
4 |
10uF |
C3 |
CAP-TH_BD5.0-P2.00-D0.8-FD |
1 |
5 |
470uH |
C4,C16,C17 |
CAP-16*25 |
3 |
6 |
470uF |
C5,C6,C7,C8,C9,C18,C21 |
CAP-16*25 |
7 |
7 |
US1M_C268725 |
D1,D2,D3 |
SMA_L4.4-W2.6-LS5.0-RD |
3 |
8 |
SB2060L |
D4,D5,D6 |
TO-277A_L4.7-W6.1-LS6.6-TR |
3 |
9 |
GND |
GND1,GND2 |
HDR-F-2.54_1X4 |
2 |
10 |
HDR-F-2.54_1x2 |
PWM1,SD/-PWM1,VCC1,VO1,VO2 |
HDR-F-2.54_1X2 |
5 |
11 |
IRF3205PBF |
Q1,Q2 |
TO-220-3_L10.0-W4.5-P2.54-L |
2 |
12 |
10R |
R1,R2 |
R0805 |
2 |
13 |
10K |
R3,R4,R6,R8 |
R0805 |
4 |
14 |
190K |
R5,R7 |
R0805 |
2 |
15 |
IR2109 |
U1 |
DIP8 |
1 |
16 |
330uh |
U2 |
220UH 32*17 |
1 |
17 |
GND |
J2 |
HDR-M-2.54_1X4 |
1 |
18 |
HDR-M-2.54_1x2 |
OUT1,VCC2,VCC3 |
HDR-M-2.54_1X2 |
3 |
19 |
1k |
R9,R10 |
R0805 |
2 |
20 |
1k |
R11 |
R2512 |
1 |
21 |
INA282AQDRQ1 |
U3 |
DIP8 |
1 |
22 |
HDR-F-2.54_1x4 |
1V,2V,3.3V,5V,12V,-5V,G1,G2,G3,G4 |
HDR-F-2.54_1X4 |
10 |
23 |
R_3296W_US |
20K |
RES-ADJ-TH_3296W |
1 |
24 |
22uF |
C25,C26,C27,C28,C40,C41 |
C1210 |
6 |
25 |
10uF |
C35,C36 |
C0805 |
2 |
26 |
39pF |
C37 |
C0805 |
1 |
27 |
6.8nF |
C38 |
C0805 |
1 |
28 |
100nF |
C39 |
C1206 |
1 |
29 |
SS56 |
D7 |
SMA_L4.3-W2.6-LS5.2-RD |
1 |
30 |
10uH |
L1 |
IND-SMD_L10.0-W10.0_CLF10060NIT |
1 |
31 |
13k |
R12 |
R0805 |
1 |
32 |
120K |
R13 |
R0805 |
1 |
33 |
162k |
R14 |
R0805 |
1 |
34 |
82k |
R15 |
R0805 |
1 |
35 |
560k |
R16 |
R0805 |
1 |
36 |
AMS1117-3.3_C369933 |
U4 |
SOT-223-4_L6.5-W3.5-P2.30-LS7.0-BR |
1 |
37 |
HT7660 |
U5 |
SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL |
1 |
38 |
HT7550 |
U6 |
SOT-89-3_L4.5-W2.5-P1.50-LS4.2-BR |
1 |
39 |
TPS54360DDA |
U7 |
SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP |
1 |
展开
20
28
收藏到专辑