Software Engineering and Applications
Vol. 09  No. 06 ( 2020 ), Article ID: 39132 , 11 pages
10.12677/SEA.2020.96053

基于STM32的单相在线式不间断电源系统

张西晨*,金海#

浙江理工大学信息学院,浙江 杭州

收稿日期:2020年11月22日;录用日期:2020年12月7日;发布日期:2020年12月14日

摘要

本设计以STM32单片机为核心,采用PWM调制和SPWM调制技术分别对双向DC-DC和单相逆变电路进行控制,并通过PID算法对整体的硬件电路做了闭环调节,从而实现了可以输出固定频率和稳定电压的UPS电源系统。本系统主要包括变压器模块、双向DCDC模块、单相逆变模块、AD637交流采样模块。该UPS实现了可以输出固定频率和幅值的正弦交流电的功能,效率可以达到86%。

关键词

STM32单片机,PWM,SPWM,AD637交流采样,闭环控制

STM32-Based Single-Phase Online Uninterruptible Power Supply System

Xichen Zhang*, Hai Jin#

School of Information, Zhejiang Sci-Tech University, Hangzhou Zhejiang

Received: Nov. 22nd, 2020; accepted: Dec. 7th, 2020; published: Dec. 14th, 2020

ABSTRACT

This design is based on STM32 single-chip microcomputer, using PWM modulation and SPWM modulation technology to control the two-way DCDC and single-phase inverter circuit respectively, and the overall hardware circuit is closed loop adjusted by PID algorithm, so as to realize the output of fixed frequency and Stable voltage UPS power system. This system mainly includes transformer module, two-way DCDC module, single-phase inverter module, AD637 AC sampling module. The UPS realizes the function of outputting sinusoidal alternating current with a fixed frequency and amplitude.

Keywords:STM32, PWM, SPWM, AD637 AC Sampling, Closed Loop Control

Copyright © 2020 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

UPS电源系统是一种电源储能设备,可以不断地向一些关键设备(铁路和民航的售票系统、互联网数据中心、医院的生命维护设备、银行的清算中心等)提供频率稳定、精度高、失真度小的高质量正弦波 [1]。然而传统的逆变电源多为模拟控制,虽然模拟控制技术已经非常成熟,但模拟电路存在电路复杂,灵活度不够,调试困难,产品升级慢等缺点。伴随着高速单片机和数字信号处理器的出现,使逆变电源的数字化控制成为现实,数字化控制也成为了UPS未来发展的一大趋势 [2]。而本设计以直流电源代替蓄电池为前提条件,设计出一款可以稳定输出频率50 Hz,幅值有效值为30 V的UPS电源系统。

2. UPS不间断电源系统的总体设计

本设计在硬件结构上利用双向DCDC模块来实现直流升压的功能,利用单相全桥逆变电路来实现直流逆变交流的功能;在软件上采用STM32单片机实现PWM波输出和SPWM波的输出,并利用采样和PID算法调节实现了整体电路的闭环控制。由此,软硬件的结合组成了单相在线式不间断电源系统,本系统在输入交流电压一定的条件下,可以输出固定频率和幅值的正弦交流电。利用PWM调制技术对双向DC-DC电路进行控制,对36 V的电压升到60 V左右,再利用设置固定调制比0.724的SPWM调制技术对单相逆变电路进行控制,通过AD637有效值采样电路对输出的正弦波进行采样,通过PID算法对PWM波的占空比实现闭环控制,从而得到稳定的UPS电源系统。系统的总体框图如图1所示。

Figure 1. Overall system framework

图1. 系统总体框架

3. UPS不间断电源模块设计与选择

3.1. 主控单片机的选用

此次电路设计采用STM32单片机实现控制功能,此芯片具有72 MHz的速度和高达1 MB的闪存。该处理器功耗低、性价比高、应用广泛。具有电源管理电路,处理器运行电压可从2 V到3.6 V,具有多种复位保护措施 [3]。从性能上考虑,STM32单片机处理速度快且自带功能多使用比较方便,整个系统对精度要求比较高,STM32的ADC采样是12位采样,采样位数足够并且其性价比比同等的处理芯片高。并且相对于其他单片机而言,低能耗、集成广、主频高、操作简单、适应强、调试方便、稳定性高。它能通过内置定时器产生占空比不同的PWM波,改变PWM波的频率,实现实时监测和调节 [4]。

3.2. AC-DC整流模块的选择

对于整流电路,选择桥式全桥整流,如图2所示,通过对交流电的正负半周电流都加以利用,输出的脉动电流是将交流电的副半周也变成正半周,再经过电容滤波得到直流电压。桥式全波整流的电流利用率为100%,且桥式电路的二极管的负载电流为半波整流的一半,又因为要求的高效率问题,所以采用全桥电路。对于滤波电路,选用LCπ型滤波电路。对于交流电,使更多的交流分量电压更多地降在L上;对于直流,L的直流电阻很小,是更多的直流分量降在负载上,最终使得输入和输出电压满足 U o = U C 1 1.2 U 2 [5]。

Figure 2. AC-DC rectifier circuit diagram

图2. AC-DC整流电路图

3.3. 驱动电路设计

对于双向DC-DC电路采用IR公司的IR2103芯片驱动,而对于后面的单相逆变电路,选用IR2110芯片驱动。对于IR2103驱动电路如图3所示,C1为IR2103的逻辑电源的滤波电容,C2为高边MOS驱动电源自举电容,各个引脚的逻辑关系 [6] 如图5(左图)所示。对于IR2110驱动电路如图4所示,IR2110采用先进的自举电路和电平转换技术,各电平管脚的输入输出关系如图5(右图)所示,同时这大大简化了逻辑电路对功率器件的控制要求,使得每对MOSFET (上下管)可以共用一片IR2110,并且所有的IR2110可共用一路独立电源,因此我们对于逆变电路的控制选用了两片IR2110进行驱动 [7]。

Figure 3. IR2103 drive circuit

图3. IR2103驱动电路

Figure 4. IR2110 drive circuit

图4. IR2110驱动电路

Figure 5. IR2103 (left picture), IR2110 pin level output logic relationship

图5. IR2103 (左图)、IR2110管脚电平输出逻辑关系

3.4. 升压模块的设计

升压模块拓扑采用Buck/Boost型双向DC-DC变换器,此电压变换器具有电感电流断续和连续模式下变压比保持不变的特性,有利于动态调节。本设计需要将29~43 V电压升压至60 V左右,考虑到开关管的耐压问题,我们选择耐压值为200 V的IRF640,对于电路最基本的双向DC-DC电路拓扑结构如图6所示。

Figure 6. Bidirectional DC-DC main circuit structure

图6. 双向DC-DC主电路结构

因为仅采用boost模式,当系统运行在Boost模式时,从右侧输入电压29~43 V,开关管T2和二极管D2导通,T1和D1截止。要求变换器输出电压为60 V,输出电流1 A。设定开关频率80 kHz,假设电压纹波为10 mV,并以此为基础计算功率传输电路的器件参数 [8]。

D = 1 V i n V o = 60 43 60 = 0.283 (1)

满载时输入电流平均值为:

I a v = P o η U i ( min ) = 60 × 1 0.95 × 29 = 2.178 A (2)

按设计经验取最大纹波电流:

Δ I = 0.2 I a v = 0.2 × 2.178 = 0.4356 A (3)

电感L的值为:

L b o o s t = ( U o u t U i n ) ( 1 D ) Δ I f = 349 μ H (4)

在半个开关周期内,输出电容上电荷变化量为:

Δ Q = Δ I T 2 = Δ I 1 2 f = 2.723 μ C (5)

输出电容为:

C b o o s t Δ Q Δ U = 2.723 μ C 0.01 V = 272.3 μ F (6)

综合设计要求:为保证合适的纹波电压,输出电容选择470 μF的电解电容,电容的C值留足裕量。对于电感的选择,L值过大会导致带负载能力会下降,L值过小会导致电流纹波太大而且极容易饱和,给系统带来严重的影响。综合考虑,我们选用500 μH的电感。

3.5. 单相逆变模块的设计

对于单相逆变模块的设计,我们采用单相逆变电路的基本拓扑结构,如图7所示。UG1、UG2、UG3、UG4分别是四个功率管的驱动电压波形,UG1、UG3和UG2、UG4的波形是互补的。当UG1、UG3为高电平时,设电流i为正,G1、G3两个三极管导通。电流流向为:电源正极→G1→L→RC→G3→电源负极,此时电压为Uin。一段时间后,UG1、UG3变为低电平,G1、G3关断,UG2、UG电平变高。若电流iL为正,电流流向为:电源负极→G2→L→RC→G4→电源正极,这时电压为-Uin,具体的电路拓扑图如图7所示。

Figure 7. Single-phase inverter circuit

图7. 单相逆变电路

同理因为考虑到耐压值的问题,我们采用耐压值为200 V的开关管IRF640,滤波电感选择4 mH,滤波电容选择交流滤波电容CBB106 [9]。

3.6. 交流采样模块的设计

对于交流采样的功能,我们采用集成芯片AD637进行采样。具体的电路图如图8所示。逆变出来的50 Hz的正弦交流电通过电压互感器送到AD637芯片的输入端,把转换好的有效值数据送入单片机中进行PID控制,从而实现稳压的功能。

Figure 8. AD637 effective value detection circuit

图8. AD637有效值检测电路

通过AD637有效值转换电路,有以下几个优点:

1) 无论真有效值的输出波形复杂程度如何都能计算, 还可以输出分贝值。

2) 频带宽,量程可调;当输入Uin = 200 mV时,上限频率为600 kHz,当Uin大于1 V时,上限频率可达8 MHz;

3) 常情况下不需要外部元件,唯一的外接元件是平均电容Cav,当接上Cav时,构成低通滤波器, 只要滤波时间常数RC远远大于输入信号的周期,输出信号值就是任意输入信号的真有效值,若不接平均电容Cav,AD637就进行绝对值计算。

4) AD637芯片内部有独立的缓冲放大器,可作为输入缓冲器来用,还可构成有源滤波器来减小纹波,提高测量精度。

5) 输出端有过压保护电路,当输入超过电源电压,基本不会烧坏器件,所以不需要限幅电路来保护,并且电源电压宽,为±3 V~±18 V [10]。

4. UPS不间断电源系统的软件设计

4.1. 软件整体设计

软件编程选择Keil软件开发环境和C语言编程,本次软件共用3个定时器。正如图5流程图所示,首先通过STM32单片机的高级定时器Timer1产生PWM基波。采用通用过定时器Timer2的中断,通过查表法,控制单片机IO口输出2组互补的SPWM波,从而控制单相逆变电路输出固定幅值和频率的正弦波。利用单片机的通用定时器Timer3使PB5口生成PWM波,通过控制PWM波的占空比来调节双向DC-DC电路的升压比。对于稳压控制,我们采用一级调节即控制SPWM波的调制比不变,通过AD637有效值采样电路读取出正弦交流电的有效值,并利用PID算法调节控制双向DC-DC升压比,从而间接地控制输出正弦交流电的电压幅值。具体的软件框图如图9所示。

Figure 9. The overall framework of software design

图9. 软件设计整体框架

4.2. 稳压控制算法实现

稳压控制的重点在于PID算法调节,即通过比例算法P、积分算法I和微分算法D来控制,因为本系统利用PI调节就相对来说较为稳定,所以本设计只采用PI调节的方法。通过电压互感器和AD637有效值采样电路将采集的电压值送到单片机的采样口,将采集的电压值和基准值进行比较,利用PID算法进行调节,从而实现稳压。调节结果的稳定性很大程度上取决于PID的参数设置。经典的PID算法控制规律为

u ( t ) = K p ( e ( t ) + 1 T t 0 t e ( t ) d t + T D d e ( t ) d t ) (7)

Kp表示比例增益,Tt表示积分时间常数,TD表示微分时间常数,u(t)表示输出的信号,e(t)表示采样值和基准值的偏差。而在软件的实现中,采用队列的思想,读取10个值差值,去掉最原始的差值,保留最新的差值,根据公式计算出差的值即可,具体的流程图如图10所示。

4.3. PWM和SPWM调制技术

对于双向DC-DC电路的升压功能,利用单片机高级定时器Timer3对PB5引脚进行初始化,并将此IO口设置为复用推挽输出功能使其可以输出一定占空比的PWM波。当输出高电平时,MOS管导通,当输出低电平时,MOS管关断,从而可以使硬件电路到达升压的功能。同时对于STM32单片机来说,PWM波的频率和占空比可以分别由ARR寄存器和CCR寄存器的值决定。 对于控制单相逆变主电路的SPWM输出我们采用单极性控制,首先利用高级定时器Timer1产生PWM基波,之后再在定时器Timer2中通过中断服务函数和查表法改变PWM波的占空比,从而产生具有正弦规律变化的SPWM调制波。整个系统的SPWM调制技术采用单极性调制,4个IO分别输出互补的波,通过IR2110驱动电路从而对单相逆变实现控制。SPWM波生成的流程图如图11所示。

Figure 10. Flow chart of voltage stabilization algorithm

图10. 稳压算法流程图

Figure 11. SPWM wave generation

图11. SPWM波生成

程序片段如下:

if(i<201)

{

TIM_SetCompare1(TIM1,(u16)(Period_percent*spwm1[i++])); //修改TIM1通道1的PWM占空比,后者为捕获/比较寄存器1的值

}

else if(i>200&&i<400)//一周期采样400个点

{

TIM_SetCompare1(TIM1,0);

i++;

}

else if(i== 400)

i = 0;

if(j<400)//一周期采样400个点

TIM_SetCompare3(TIM1,(u16)(Period_percent*spwm2[j++]));

else if(j== 400)

j = 0 ;

}

4.4. ADC采样

本设计共有一路采样,即正弦交流电的有效值检测采样,通过采样处理将整个电路做成PID闭环控制。对于采样函数做一定的滤波处理,即滑动平均滤波法,设计一个队列,将采样到最新数据放到队尾,并扔掉原来队首的一次数据,把队列的N个数据进行算数平均计算从而得到最新的滤波结果 [11]。

void Get_Adc_Average2_init(u8 ch)

{

for (i=0;i<10;i++)

{

value[i]=Get_Adc2(ch);

temp_val1=temp_val1+value[i];

}

}

u16 Get_Adc_Average2(u8 ch)

{

if(i==10)i=0;

temp_val1=temp_val1-value[i];

value[i]=Get_Adc2(ch);

temp_val1=temp_val1+value[i];

i++;

return temp_val1/10;

delay_ms(5);

}

5. 测试方案与结果

测试结果

1) 测试Ui = 36 V, Io = 1 A时输出电压Uo和频率f,结果见表1

Table 1. Record of output voltage and frequency under AC power supply

表1. 交流供电下输出的电压和频率记录

2) 通过调整负载,输出电流Io为0.1 A、1 A时对应的输出电压Uo,结果见表2

Table 2. Adjust the load output current and voltage record

表2. 调整负载输出电流电压记录

3) 测试负载调整率,Ui为43 V、29 V时对应的输出电压Uo,结果见表3

Table 3. Adjust voltage output current and voltage record

表3. 调整电压输出电流电压记录

4) 断开交流电,即时切换至直流(储能器件侧)供电,Ud = 24 V,输出交流电流Io = 1 A时,输出交流电压Uo = 30 V ± 0.2 V,频率为f = 50 Hz ± 0.2 Hz,结果见表4

Table 4. DC power supply inverter voltage record

表4. 直流供电逆变电压记录

5) 硬件实物图如图12所示。

Figure 12. Physical picture of the overall circuit

图12. 整体电路实物图

6. 结论

本文设计的基于STM32的单相在线式不间断电源系统,详细介绍了各硬件电路选用和设计以及软件的处理思路。通过实验验证,该系统可用于交流和直流供电的情况,并具有良好的扩展性和可升级性,效率可达到86%左右,可以充当银行的清算中心、互联网数据中心等应用情景下的UPS电源。

文章引用

张西晨,金 海. 基于STM32的单相在线式不间断电源系统
STM32-Based Single-Phase Online Uninterruptible Power Supply System[J]. 软件工程与应用, 2020, 09(06): 456-466. https://doi.org/10.12677/SEA.2020.96053

参考文献

  1. 1. 唐剑青. 数字化不间断电源的研究[D]: [硕士学位论文]. 杭州: 浙江大学, 2006.

  2. 2. 李伟. 数字控制逆变电源的研究与实现[D]: [硕士学位论文]. 武汉: 武汉理工大学, 2007.

  3. 3. 张凌雪. 基于STM32F103的智能小车设计[J]. 农家参谋, 2020(23): 106.

  4. 4. 厉俊, 郑佳蕙. 基于STM32的开关电源模块并联供电系统[J]. 软件工程, 2020, 23(3): 4-8.

  5. 5. 刘波粒, 刘彩霞. 模拟电子技术基础[M]. 北京: 高等教育出版社, 2016.

  6. 6. 申浩锋, 高宁波. 基于IR2103的步进电机全桥驱动电路设计[J]. 微电机, 2016, 49(10): 67-71.

  7. 7. 贺根华, 祁承超, 柳鑫. 基于DSP28335 + IR2110芯片的移相全桥驱动电路设计[J]. 惠州学院学报, 2018, 38(3): 67-70.

  8. 8. 于玉军, 王亚君, 陈垚. 小型高效数字式双向DC/DC变换器设计[J]. 电子器件, 2020, 43(5): 1029-1034.

  9. 9. 程星, 黄要然, 艾皓, 谢作生. 基于tms320f28027的逆变电源制作[J]. 电子制作, 2019(1): 12-14+5.

  10. 10. 余海宁, 邵红艳, 邱望标. 非正弦波中频强磁场测量方法及装置[J]. 机械与电子, 2017, 35(8): 45-49+53.

  11. 11. 崔建伟. 基于嵌入式系统的数字滤波器、倾角传感器设计[D]: [硕士学位论文]. 北京: 北京邮电大学, 2008.

  12. NOTES

    *第一作者。

    #通讯作者。

期刊菜单