摘要
本次设计采用STM32F407VET6为主控制核心,搭建典型的BUCK电路,通过单片机采集输出电压,与目标值比较,控制占空比,产生稳定的直流输出电压;构建H桥电路,通过单片机输出SPWM波,直流电压逆变成交流电压。通过调试,BUCK输出电压能在4V-7V的范围内以步长为0.5V的大小调节,带载能力在4Ω及以上;H桥逆变电压的输出频率能在50HZ-200HZ范围内以步长为50HZ的大小调节。
关键词:STM32F407VET6、BUCK闭环电路、H桥逆变电路
1.课程设计要求
搭建典型的BUCK电路,通过单片机采集输出电压,与目标值比较,控制占空比,产生稳定的直流输出电压;构建H桥电路,通过单片机输出SPWM波,直流电压逆变成交流电压。
要求做到:
1.BUCK电路闭环,在一定的负载范围内,电压保持稳定。
2.交流逆变,电压、频率可调。
2.要求分析
1.BUCK降压电路通过控制驱动开关管通断的PWM波占空比,达到调节输出电压的目的。
2.要求负载变化时,输出电压能够稳定,要设置反馈环节:反馈的输入是BUCK电路的输出电压,反馈的输出是控制PWM波的占空比。
3.H桥电路是典型的直流逆变交流电路,负载位于两组桥臂之间,通过配合四个桥臂的通断达到更改负载两端电压极性的目的。
4.遵循有效值相等的原则,直流电压的开通与关断时间应按照正弦关系变化。控制策略有许多种,其中查表的方法耗时较少,适合于stm32平台。
5.H桥输出电压仍为高低电平,为得到较好的交流电压波形,需要加大电容、大电感滤波。
3.硬件设计
3.1 BUCK主电路
BUCK电路搭建如图3-1所示,MOSFET型号选用为IRFP-460,耐压值较大。电感L1感值为5mH,输出滤波电容容值为470uF,续流二极管型号为1N4007。BUCK电路的带载能力与开关管频率、电容值、电感值有关。

图3-1 BUCK主电路图
3.2 H桥电路
H桥主电路搭建如图3-2所示,MOSFET型号选用为CSD18532KSC,为大功率MOS管。输出滤波电感选为1.5mH,电容选型为金属化聚丙烯膜电容器,容值为22uF。

图3-2 H桥主电路
3.3驱动电路
STM32串口输出的PWM波不能直接控制开关管的开通与关断,需要加上驱动电路放大PWM波信号,以保证其驱动的能力。选用IR2104驱动芯片,芯片有使能端口和自带死区,可以避免短路的情况发生。

图3-3 驱动电路图
3.4 OLED显示电路
OLED即有机发光二极管,由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、使用温度范围广等优点,被认为是下一代平面显示器新兴运用技术。本次设计采用0.96寸OLED屏,有三色可以显示,且分辨率较高。
0.96寸OLED模块原理图如图3-4所示。其外扩引脚CON4,引脚1为GND引脚,使用时接地,引脚2为Vcc引脚,使用时接+5V电源。该OLED模块使用I2C方式通讯,引脚3、4分别为SCL、SDA引脚,与STM32的I/O口相连,实现通讯的功能。

图3-4 OLED显示模块
3.5稳压电路
LM7812、LM7805三端稳压集成电路IC芯片元器件,适用于各种电源稳压电路,输出稳定性好、使用方便、输出过流、过热自动保护。电路中STM32需要5V供电、OLED需要5V供电、IR2104半桥驱动需要12V供电,需在电路中构建如图3-5的稳压电路供电。

图3-5 稳压电路
3.6 STM32F4引脚电路
STM32F4是由ST(意法半导体)开发的一种高性能微控制器。其采用了90 纳米的NVM 工艺和ART(自适应实时存储加速器)。根据前面硬件电路的控制需求,配置相关的引脚如图3-5所示。在应用中,所有元器件引脚必须共地才能正常工作。

图3-6 STM32F4引脚电路图
4.软件设计
4.1主程序

图4-1 主程序框图
如图4-1为主程序的框图。STM32上电后,进行定时器、I2C通讯、按键引脚初始化等配置,最后进入程序主循环。
4.2 AD采集
STM32F4系列一般都有3个ADC,这些ADC可以独立实用。STM32F4的ADC是12位逐次逼近型的模拟数字转换器,它有19个通道,可测量16个外部源、2个内部源。这些通道的A/D转换可以单次、连续、扫描或间断模式执行,ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
在此次设计中只使用了1个ADC通道转换,在非扫描模式下,关闭连续转换,右对齐方式存储。反馈通道上产生的误差无法消除,因此需要对采集到的ADC信号做滤波处理,以避免AD采集中可能出现的波动对程序控制产生影响。
4.3 PID调节

图4-2 PID控制原理框图
当负载变化时,要求BUCK电路的输出能稳定在设定值,则需引进反馈控制。本次选用增量式PID控制,PID控制的原理框图如图4-2所示。
比例环节的作用是对偏差瞬间作出反应。偏差一旦产生,控制器立即产生控制作用,使控制量向减小偏差的方向变化。控制作用的强弱取决于比例系数
,比例系数
越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;但是
越大,也越容易产生振荡,破坏系统的稳定性。故而,比例系数
选择必须恰当,才能使过渡时间小的同时,静差小而稳定。
只要存在偏差,则积分部分的控制作用就不断增加;只有在偏差
0时,它的积分才能是一个常数,控制作用才是一个不会增加的常数。积分部分可以消除系统的偏差,但是也会降低系统的响应速度,增加系统的超调量。积分常数
越大,积分的积累作用越弱,这时系统在过渡过程中不会产生振荡;但是增大积分常数
会减慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提高系统的稳定性。
微分环节的作用是阻止偏差的变化。它根据偏差变化的趋势(变化速度)进行控制。偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于稳定,特别对高阶系统非常有利,它加快了系统的跟踪速度。但微分的作用对输入信号的噪声很敏感,对那些噪声较大的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波。
代码实现中,需要将读到的AD值与目标值进行比较,对偏差部分通过乘系数、累加等方式达到PID控制的目的。使用PID对驱动MOS管的PWM波进行调制时,需要将输出值进行限幅,避免出现溢出而导致的程序问题。
4.4 OLED显示
OLED显示模块也采用I2C通讯方式与单片机通讯。I2C通讯只需要两个引脚,一个数据线,一个时钟线。数据线用来传递数据,时钟线决定数据传输的速度。当时钟线为高电平时,数据线上的数据才会被认为是有效的。数据线的数据有四种状态,分别为高电平、低电平、下降沿和上升沿,当时钟线为高电平时,这四种状态分别表示1、0、起始位和停止位。
在不发送任何数据的时候,数据线和时钟线都为高电平。当开始发送数据时,时钟线位高电平同时数据线从高电平变为低电平,发送一个下降沿,表示开始发送数据。发送完起始位后,时钟线变为低电平,在发送的每一位的数据之前时钟线都有一段低电平,目的是为了给数据线电平变化做准备。当时钟线变为高电平时,此时数据线若是高电平,则传输1;此时数据线若是低电平,则传输0。传输完一位后时钟线继续变为低电平,位数据线的电平变化做准备。当时钟线为高电平,数据线发送上升沿时,表示数据停止发送。
OLED模块显示之前需要初始化,相关初始化的要求模块的使用手册中已经给出。根据本次设计的要求,需要显示的内容有测量的电压值及目标电压值。因为OLED显示中文字符串较难,占用的空间较大,而显示英文有专门的码表可以查询,因此显示信息全采用英文显示。
4.5硬件开关
为实现改变BUCK电路输出电压值、控制H桥逆变频率的功能,将硬件开关接入STM32的I/O口。设置输出电压值、逆变频率为相关标志位,当按键开关按下时,单片机收到底电平,对相应的标志位改变,从而实现改变状态的功能。
5.调试
5.1 BUCK闭环降压电路的调试
将BUCK电路的输出端连接至电子负载,通过调整电子负载的阻值,观察电路输出电压能否稳定的情况。从图5-1可以看出,负载为600Ω时输出电压可以稳定在目标值4V。

图5-1 目标输出4V负载600Ω
负载阻值改变后,调整时间短,PID控制起到了良好的效果。将负载的阻值降至3.9Ω时,此时输出电流为1A,输出电压无法继续调整,BUCK电路开始失压,如图5-2所示。

图5-2 目标输出4V负载3.9Ω
按下按键,更改输出电压的目标值,观察输出电压能否稳定在目标值附近,图5-3、5-4、5-5、5-6、5-7、5-8输出电压的目标值分别为4.5V、5V、5.5V、6V、6.5V和7V。

图5-3 目标输出4.5V负载100Ω

图5-4 目标输出5V负载100Ω

图5-5目标输出5.5V负载100Ω

图5-6 目标输出6V负载100Ω

图5-7 目标输出6.5V负载100Ω

图5-8 目标输出7V负载100Ω
5.2 H桥逆变电路的调试
接示波器观察STM32输出端口的两路PWM波,发现其符合互补且占空比呈正弦规律变化的趋势。

图5-9 I/O口输出PWM波形

图5-10 两路I/O口输出的互补波形
电路上电后,接示波器观察其输出电压的波形,如图5-11所示,可以看出输出电压具有良好的正弦波波形。调整示波器的时间轴,观察输出波形的局部图像,如图5-12所示。可以观察到细小的开关通断产生的尖峰脉冲。

图5-11 输出50HZ波形

图5-12 50HZ输出局部放大波形
按下按键,更改逆变输出电压的频率,图5-13、5-14、5-15的输出电压频率分别为100HZ、150HZ、200HZ。随着输出电压频率的升高,输出电压的峰峰值也在同步减小,分析可能是由于频率升高导致的输出LC滤波效果增强,导致电容充电时间减少,输出波形峰峰值下降。

图5-13 输出100HZ波形

图5-14 输出150HZ波形

图5-15 输出200HZ波形
6.心得体会
因对电源电路的搭建有着浓厚的兴趣,所以抓住ARM课程设计的机会,对两种典型的拓扑电路——BUCK电路、H桥逆变电路进行调试。要求BUCK电路具有闭环的效果,当负载变化时输出电压可以稳定;要求H桥逆变电路能够输出波形较好的交流电压,且电压、频率可调。电路的搭建完成了预期的效果。
在调试的时候也出现了许多问题,这些问题是之前理论学习的过程中没有出现过的:
1.空载时BUCK电路的输出电压很难稳定
最开始BUCK电路搭建完毕后,在没有带载的情况下调试,发现输出电压的振荡非常大。因为加了PID环节,所以怀疑是PID参数整定的稳定。但是在不断地更改PID值之后,发现效果还是不明显,振荡仍然非常大。遂加载调试,结果加载之后BUCK电路的输出稳定效果非常好。再对BUCK基本拓扑进行分析的时候发现,之前理论要求时都是求额定负载下电路的电感、电容、控制信号占空比参数。在没有带载的情况下,储能电路部分所流过的电流很小,且电感L与输出电容C之间容易产生振荡,因此很难稳定BUCK电路空载的输出电压。
2.BUCK电路带载能力较差
在电路带负载测试时,PID调节的效果较好。但是在电路负载阻值减小时,发现电路的输出电压不能稳定在输出值,阻值越小,失压越严重。经查阅资料和向老师同学请教,怀疑是电感值太小、储能小的原因。因此后期改为三个功率电感的并联,带载能力有所提高。
3.H桥逆变输出电压的平滑
H桥逆变电路的输出电压在没有滤波之前与STM32输出口的波形相似,只是幅值的变大。为了得到目标的正弦电压波形,在H桥的输出端加了大电容、大电感滤波。另外在调频的过程中,频率升高后,交流电压的输出峰峰值在变小。分析是开关频率增大后,电感的储能时间减小,LC滤波环节的效果更明显,导致输出电压的峰峰值减少。
通过这次有意义的动手实践,我明白了从书本到实际还是有一定的距离这个道理。ARM嵌入式系统课程的学习让我受益匪浅,顾敏明老师授课认真负责,特别是在身体抱恙的情况坚持授课,体现了教师的高尚品德。ARM的学习也让我掌握了一门新的控制技能,希望能在之后的比赛、工作中能发挥更大的作用。
附录
主电路图:

作品图:
