基于STM32的电梯应急电源设计 | ![]() |
电梯应急电源是在电梯发生事故突然停止时可以对电梯进行应急供电的装置, 它能够在这种情况下对电梯供电, 保障电梯内部的人员安全。一般应急电源采用+12 V电池供电, 通过变压器升压经过一系列模拟电路调制为工频交流电。但是模拟电路系统复杂, 易受到干扰, 并且适应能力较差[1-3]。
电力电子和单片机技术飞速发展, 逆变电源也从原先的模拟电源发展为现在的数字电源。通过SPWM技术, 可以对外输出高质量、高功率密度、高效率的工频交流电[4-6]。本设计采用STM32芯片作为本应急电源的主控芯片, STM32运算速度快、外设接口丰富, 并且相对于DSP、FPGA等具有较高的性价比, STM32可以使用库函数进行开发, 省去了繁琐的寄存器配置, 因此在工业场合中有着广泛的应用[7]。
1 基于STM32的电梯应急电源总体设计 1.1 STM32F103RBT6芯片介绍STM32F103RBT6芯片为意法半导体公司(ST)使用Cortex-M3内核生产的嵌入式芯片, 最高工作频率为72MHZ, 具有20KB的SRAM。该芯片还拥有丰富的外设, 内部高速DMA传输通道有效的节省了CPU, 12位高精度ADC为电压采样提供了外设, 内部的高级定时器和6路PWM输出端口为SPWM技术的实现提供了条件[8]
本次设计采用C语言进行开发, 通过Keil V5软件对STM32进行编程, 通过使用标准库函数, 有效降低了开发时间和成本。
1.2 系统整体结构设计系统整体结构如图 1所示, 供电电源为3个+12 V电池串联成+36 V电源, 主电路为三相H桥电路, 为了进行有效的逆变输出, 选择MOS管作为功率器件。本系统由STM32最小系统、驱动电路、采样电路、限流保护电路和电源电路组成。其中主控芯片STM32F103RBT6不仅要对外输出SPWM波从而对外部驱动器件进行控制, 由采样电路实时检测母线电压, 对于电压进行反馈调节。
![]() |
图 1 应急电源系统结构图 |
1.3 SPWM波的设计 1.3.1 规则采样法[9]
一般的计算方法是通过三角波对于正弦波进行调制, 产生SPWM波形。此方法需要求解复杂的超越方程, 对于STM32的CPU占用较大, 所以本次设计采用规则采样法。规则采样法的主要思路是按固定的时间采样需要调制的正弦波, 并且保持载波的大小和频率不变。规则采样方法可以减小计算的难度, 并且所造成的误差很小, 实现相对简单, 所以选用规则采样法作为本系统的采样方法。
1.3.2 使用STM32产生SPWM波本次设计采用了规则采样的方法, 采用单片机STM32中的高级定时器TIM1产生PWM信号, 使用在线查表法的方式在线改变PWM信号的占空比, 将PWM转换为SPWM信号进行输出[10]。定时器1时钟为72MHZ(TIM_CLK), 通过预分频器(TIMx_PSC)分频后为计数器(TIMx_CNT)提供时钟信号, 此时重装载寄存器(TIMx_ARR)和输出比较寄存器(TIMx_CCRx)所产生的数值进行对比, 在线调节比较寄存器的数值, 使得比较值发生变化, 最终改变输出的PWM波形成为SPWM。PWM波的脉宽P的计算公式为式(1):
$ P = \frac{{ {\rm{TIM}}\_{\rm{CLK}}}}{{ {\rm{TIM}}\_{\rm{PSC}}* {\rm{TIM}}\_{\rm{CRR}}}} $ | (1) |
程序预设的载波比为N=360, 没有预分频, 重装载寄存器TIMx_ARR设定自动装载周期值为3 999, 可以确定SPWM波的输出频率f如式(2)所示, 可以计算出输出的SPWM频率为工频50 Hz。
$ f = \frac{{ {\rm{TIM}}\_{\rm{CLK}}}}{{N* {\rm{TIM}}\_{\rm{ARR}}}} $ | (2) |
本次设计使用STM32F103RBT6单片机中的高级定时器TIM1发出SPWM波, 具体配置程序如下(“//”后为中文注释):
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //使能TIM1外设
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6 | GPIO_Pin_7| GPIO_Pin_8;//使能输出引脚
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //配置引脚为复用功能
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //输出速度为50MHZ
GPIO_Init(GPIOA, & GPIO_InitStructure);
TIM_TimeBaseStructure.TIM_Period=3 999;//设置自动重装载周期值
TIM_TimeBaseStructure.TIM_Prescaler=0;//设置预分频值不分频
TIM_TimeBaseStructure.TIM_ClockDivision=0;//不设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //TIM向上计数模式
TIM_TimeBaseInit(TIM1, & TIM_TimeBaseStructure); //根据指定的参数初始化TIM1
1.4 H桥式主电路设计[11]本次系统的主电路为H桥主电路, 如图 2所示, 采用MOS管作为开关元件, 便于控制。在MOS管的栅极和漏极之间安装了10 Ω的上拉电阻和10 kΩ的分压电阻, 这是为了使栅极到漏极产生管压降, 便于MOS管导通,10 kΩ分压电阻作用为释放MOS产生的静电。
![]() |
图 2 H桥逆变主电路图 |
1.5 驱动电路设计
本次设计选用的驱动芯片是EG2104, 驱动电路设计如图 3所示, EG2104是一款带有外部锁定功能的MOS驱动芯片, 其芯片内部集成元件众多, 此芯片带有电平移位、滤波、死区控制等功能。EG2104最高工作电压为600 V, 最低工作电压为VCC电压, 芯片的静态损耗为1 μA。驱动电路带有的自举电路由C90、D90、R90、C91组成, 如图 3所示, 功率管开通时充电C90, C91储存电能, 功率管关闭C90放电, 由于D90的存在组织C91对地放电, 同时C90的电能一部分给C91再次充电, 因此在功率管反复的导通与关断过程中C9的端电压被不断地抬高, 使得U1信号始终高电平, 完成驱动。
![]() |
图 3 驱动电路图 |
1.6 采样电路的软硬件设计
采样电路的核心和LM358运算放大器组成的电压跟随电路, 输入电压UI经过3.6 MΩ的电阻分压, 然后接入由R10、R11两个20 kΩ的电阻组成的分压电路中。这样的电路设计可以保证电压采样值得范围在0~3.3V之间, 满足STM32中ADC的采样电压范围。Uin与STM32的引脚直接相连, 通过配置ADC外设接收需要采样的电压, 并由DMA通道进行传输, 从而节省CPU。相关的DMA配置如下(“//”后为中文注释):
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //使能DMA传输
DMA_DeInit(DMA1_Channel1);//将DMA的通道1寄存器重设为缺省值
DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t) & ADC1->DR; //设置DMA外设基地址
DMA_InitStructure.DMA_MemoryBaseAddr=(u32)&ADC_ConvertedValue; //设置DMA的内存基地址
DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC; //数据传输方向, 从内存读取发送到外设
DMA_InitStructure.DMA_BufferSize=Sample_Num*Channel_Num; //DMA通道的DMA缓存的大小
DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable; //外设地址寄存器不变
DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable; //内存地址寄存器递增
DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord; //外设数据宽度为8位
DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord; //存储数据宽度为8位
DMA_InitStructure.DMA_Mode=DMA_Mode_Circular; //工作在循环模式
DMA_InitStructure.DMA_Priority=DMA_Priority_High; //DMA通道x拥有高优先级
DMA_InitStructure.DMA_M2M=DMA_M2M_Disable; //DMA通道x没有设置为内存到内存传输
DMA_Init(DMA1_Channel1, & DMA_InitStructure); //初始化相关DMA参数
DMA_Cmd(DMA1_Channel1, ENABLE); //DMA使能
![]() |
图 4 采样电路图 |
2 系统测试分析 2.1 SPWM输出波形测试
依据预定得到设计要求, 必须输出电压为220 V, 频率为50 Hz的工频三相交流电。所以STM32中PWM端口输出的驱动信号必须达到50 Hz的频率。图 5、图 6分别是STM32产生的SPWM波形和滤波和产生的正弦波形, 可以看到波形的频率为50 Hz, 周期为20 ms, 符合设计要求。
![]() |
图 5 SPWM波形图 |
![]() |
图 6 SPWM等效正弦波图 |
2.2 驱动波形调试
本次设计采用了EG2104驱动芯片, 相比于其它驱动芯片, EG2104的驱动能力更强, 发出的驱动波形也更加稳定。如图 7所示, 其它芯片的驱动信号明显含有谐波, 用来驱动MOS管可能造成输出电压中谐波的出现。EG2104产生的上升沿和下降沿减小了谐波的影响, 作为对MOS管的驱动更加稳定可靠。
![]() |
图 7 驱动波形对比图 |
2.3 硬件保护性能测试
设计了采用74LS74双D触发器作为主电路的保护电路。它的作用是检测上管的开关状态, 防止造成大电流烧坏MOS管。从图 8可以看出, 加入了驱动保护电流后SPWM波形畸变更小, 系统的稳定性和可控性增强。
![]() |
图 8 加入驱动保护后对比图 |
3 结束语
经过试验验证, 该电梯用逆变电源达到设计要求, 其设计成品如图 9所示。规则采样调制后的SPWM波可以给电梯驱动电路提供稳定的驱动信号, 进而给电梯提供三相应急电源, 同时该电源还具有在线调节电压和自保护功能。通过对于后续系统的完善, 设计出了一种可靠、安全、性价比高的电梯用应急电源。
![]() |
图 9 电梯应急电源成品图 |
[1] |
王永虹, 徐炜, 郝立平. STM32系列ARM Cortex2-M3微控制器原理与实践[M]. 北京: 北京航空航天大学出版社, 2008.
|
[2] |
胡应洪, 靳光明. 用于逆变器SPWM电路设计[J]. 湖北第二师范学院学报, 2011, 28(2): 97-100. DOI:10.3969/j.issn.1674-344X.2011.02.030 |
[3] |
蒿书利, 庹先国, 王洪辉, 等. 基于STM32的SPWM逆变电源控制信号电路设计[J]. 电源技术, 2012, 36(9): 48-73. |
[4] |
张凯, 王祥. 基于STM32的新型SPWM逆变电源[J]. 电气自动化, 2012, 34(3): 52-54. DOI:10.3969/j.issn.1000-3886.2012.03.018 |
[5] |
张倩, 黄晓林. 基于TMS320F2812的逆变电源控制器的设计与研究[J]. 电子设计工程, 2013, 21(1): 14-16. |
[6] |
宣丽萍. 基于DSP的逆变电源系统[J]. 黑龙江科技学院学报, 2009, 19(1): 46-49. |
[7] |
曾荣登.电梯应急系统的研究与设计[D].厦门: 厦门大学, 2009. http://d.wanfangdata.com.cn/Thesis/Y1520584
|
[8] |
胡慧慧.基于空间矢量控制的三电平逆变器的研究[D].北京: 中国石油大学, 2008. http://cdmd.cnki.com.cn/Article/CDMD-10425-2008199264.htm
|
[9] |
李定宣. 开关稳定电源设计与应用[M]. 北京: 中国电力出版社, 2006.
|
[10] |
何跃春. 电梯检验中控制系统的常见问题分析[J]. 中国工程设备, 2018, 6(3): 79-80. |
[11] |
杨华. 电梯应急处置平台体系建设研究[J]. 安全与环境工程, 2018, 8(1): 115-119. |