您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于STM32的直流电机PWM调速控制
电动摩托车控制器中的电机PWM调速1电动摩托车控制器中的电机PWM调速摘要:随着“低碳”社会理念的深入,新型的电动摩托车发展迅速,逐渐成为人们主要的代步工具之一,由于直流无刷电机的种种优点,在电动摩托车中也得到了广泛应用,因此,本文控制部分主要介绍一种基于STM32F103芯片的新型直流无刷电机调速控制系统,这里主要通过PWM技术来进行电机的调速控制,且运行稳定,安全可靠,成本低,具有深远的意义。1.总体设计概述1.1直流无刷电机及工作原理直流无刷电机(简称BLDCM),由于利用电子换向取代了传统的机械电刷和换向器,使得其电磁性能可靠,结构简单,易于维护,既保持了直流电机的优点又避免了直流电机因电刷而引起的缺陷,因此,被广泛应用。另外,由于直流无刷电机专用控制芯片价格昂贵,本文介绍了一种基于STM32的新型直流无刷电机控制系统,既可降低直流无刷电机的应用成本,又弥补了专用处理器功能单一的缺点,具有重要的现实意义和发展前景。工作原理:直流无刷电机是同步电机的一种,其转子为永磁体,而定子则为三个按照星形连接方式连接起来的线圈,根据同步电机的原理,如果电子线圈产生一个旋转的磁场,则永磁体的转子也会随着这个磁场转动因此,驱动直流无刷电机的根本是产生旋转的磁场,而这个旋转的磁场可以通过调整A、B、C三相的电流来实现,其需要的电流如图1所示随着我国经济和文化事业的发展,在很多场合,都要求有直流电机PWM调速系统来进行调速,诸如汽车行业中的各种风扇、刮水器、喷水泵、熄火器、反视镜、宾馆中的自动门、自动门锁、自动窗帘、自动给水系统、柔巾机、导弹、火炮、人造卫星、宇宙飞船、舰艇、飞机、坦克、火箭、雷达、战车等场合。1.2总体设计方案总体设计方案的硬件部分详细框图如图1所示。电动摩托车控制器中的电机PWM调速2图1总体方案系统框图该方案主要运行状况如下:通过摩托车车把的转动来改变其机械位置,然后这个变量通过ADC转换后,传送其调速信号给STM32F103,另外,霍尔传感器将其对电机速度的检测信号也传送给STM32,在STM32中,首先根据ADC的值改变PWM波形,并且与霍尔传感器的检测信号进行叠加,最终输出叠加后的PWM波形给功率驱动电路,从而驱动电机并对其进行速度的控制和调节。2.系统硬件设计2.1总体硬件框图系统的硬件电路选用STM32F103为主控芯片,作为电机控制的核心,通过霍尔位置传感器检测位置信号,结合功率驱动电路以实现对电机的驱动。此外,还有电流检测电路可根据电机的状态以调整转速和实现过流保护功能系统的硬件框图如图2所示:PWM电流检测三相控制霍尔检测图2系统硬件框图STM32F103功率驱动电路ADC模块霍尔传感器电机STM32F103功率驱动电路BLDCM电动摩托车控制器中的电机PWM调速32.2电机功率驱动电路设计直流无刷电机是将直流有刷电机的机械换向改进成电子换向而来的,要使其转动,就必须通过电子换向的方法调整电流,按照转子所在的位置产生转动磁场,主控芯片控制H半桥驱动电路产生电机转动的换向电流,以产生转动的磁场,驱动电路如图3所示驱动电路的作用是将控制电路输出的脉冲放大到足以驱动功率晶体管或MOSFET管,所以单从原理上讲,驱动电路主要起开关功率放大作用,即脉冲放大器。但随着开关工作频率的提高,驱动电路的优化设计显得越来越重要。驱动电路的最佳驱动特性应具有:功率管开通时,驱动电路提供的基极电流应有快速的上升沿,并一开始有一定的过冲,以加速开通过程,并在集电极电流尖峰时开启驱动基极,从而减小开通损耗;功率管导通期间,驱动电路提供的基极电流在任何负载情况下都能保证功率管处于饱和导通状态,使功率管的饱和压降较低,以保证低的导通损耗;关断瞬时,驱动电路应提供足够的反向基极驱动,以迅速抽出基区的剩余载流子,并加反偏截止电压,使集电极电流迅速下降以减少下降时间。为了增加系统的抗干扰能力,STM32输出的6路PWM信号首先必须经隔离再送到IR2136进行驱动,由于开关速度达到20KHz左右,故设计中选用高速光耦器件HCPL4504,见图3,其最高速度可达1Mbit/s,内部的噪声抑制电路可提供高于15kV/us的共模抑制。IR2136是IR公司的一款功率MOSFET、IGBT专用栅极驱动集成电路,独有的I-IVIC(Highvoltageintegratedcircuit)技术使得它可用作驱动工作在母线电压高达600V的电路中的功率MOS器件。其内部采用自举技术,使得功率驱动元件驱动电路仅需输入一个直流电源,使其实现对功率MOSFET和IGBT的最优驱动,并且它还具有完善的保护功能包括欠压保护和过流保护,以便保证系统安全稳定的工作。故本文选用IR2136作为主功率部分的MOSFET驱动,如图3所示:图3中经IR2136驱动的6路PwM信号被直接送到由6个MOSFET管组成的主功率电路。如图所示,该功率驱动采用三相全控电路,电动机的三相绕组为Y型联结。MOSFET管选用IR公司的IRFZ48,该管导通电阻较低,当连续流过10A电流时,功耗才1.2w,根本不需要散热片就可以稳定工作。电动摩托车控制器中的电机PWM调速4图3功率驱动电路Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11Q12锂电池A1B1C1A1B1C1A2B2C2电机线圈VCC1HIN12HIN23HIN34LIN15LIN26LIN37FAULT8ITRIP9EN10RCIN11VSS12COM13LO314LO215LO11617VS318HO319VB32021VS222HO223VB22425VS126HO127VB128U1IR21361KR91KR10Res11KR11Res1LO1LO2LO3LO1LO2LO3HO1HO2HO1HO2HO3PWM1PWM2PWM3PWM4PWM5PWM61KR61KR21KR71KR3HO31KR81KR41KR181KR141KR191KR151KR201KR16+15VGNDC20.1uFC10.1uFC310uFC410uFC510uFD1MUR160D2MUR160D3MUR1601KR5Res1C60.1uFGND1KR12Res11KR13Res11KR17Res1功率MOSFET驱动电路1KR21Res1故障指示漏极开路低电平有效D4LED01KR1Res1U3Optoisolator1GND任意IO口U4Optoisolator1+5V+3.3V1KR22Res1任意IO口1KR23Res1GND电动摩托车控制器中的电机PWM调速52.3直流无刷电机的调速直流无刷电机调速的原理就是在驱动电机转动的基础上,将驱动电流由PWM信号来控制,改变PWM信号的脉冲宽度,即通过调节MOSFET通断的时间来调节提供给电机三相的电流大小,从而对电机进行调速控制。本方案中MOSFET管的导通是通过STM32的PWM信号来控制的,STM32内部的普通的定时器TIM3和TIM4,每个可以产生四路PWM发生器,这里用TIM3产生4路,TIM4产生两路,共六路可编程的PWM信号,驱动H桥。直流无刷电机的电子换向是基于转子的位置来控制的,本系统采用3个霍尔传感器对直流无刷电机进行位置测量霍尔传感器安装在电机的内部,将转子的位置转换为三路数字信号直接输出到STM32的GPIO口在本设计中可方便地用于通过检测霍尔位置传感器的信号来实现检测转子的位置,然后据此输出相应的PWM信号控制功率管的导通或关断,从而实现电流的换向,在电机内部产生一个转动的磁场,进而驱动电机旋转。另外,车把转动的时候会通过一个DA转换,然后得到调速的标志flag的值,从而根据这个flag值来改变PWM波的占空比,从而进行电机的调速。直流无刷电机旋转时三个霍尔传感器的信号值和输出的PWM信号之间的对应关系如图4所示图4相位与PWM信号的对应关系霍尔传感器的位置反馈信号在可以确定转子位置的同时,也可用来测量电机的转速电机每转动一周,每个霍尔传感器即会产生两次换向,三个霍尔传感器共会有6次换相,这六次换相之间的时间差即为电机运转一周所需的时间,继而可计算出电机的转速根据计算出的电机转速,调整PWM信号的脉冲宽度,从而达到调速的目的电动摩托车控制器中的电机PWM调速63.系统软件设计本系统编程部分工作在keil4开发环境下完成,采用模块化的设计方法,与各子程序作为实现各部分功能和过程的入口,完成PWM脉宽调速的控制。STM32F103资源分配如下表:表1芯片的资源分配1.PWM产生程序:本设计中采用STM32F103的定时器TIM3,TIM4两个定时器来产生PWM波形,程序函数如下:#includetimer.h//通用定时器中断初始化//这里时钟选择为APB1的2倍,而APB1为36M//arr:自动重装值。//psc:时钟预分频数//这里使用的是定时器3voidTimerx_Init(u16arr,u16psc){RCC-APB1ENR|=11;//TIM3时钟使能TIM3-ARR=arr;//设定计数器自动重装值//刚好1msTIM3-PSC=psc;//预分频器7200,得到10Khz的计数时钟//这两个东东要同时设置才可以使用中断TIM3-DIER|=10;//允许更新中断TIM3-DIER|=16;//允许触发中断TIM3-CR1|=0x01;//使能定时器3MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2}voidPWM1_1_Init(u16arr1,u16psc1){//此部分需手动修改IO口设置RCC-APB1ENR|=11;//TIM3时钟使能GPIOA-CRL&=0XF0FFFFFF;//PA6输出GPIOA-CRL|=0X0B000000;//复用功能输出GPIOA-ODR|=16;//PA6上拉TIM3-ARR=arr1;//设定计数器自动重装值TIM3-PSC=psc1;//预分频器不分频TIM3-CCMR1|=74;//CH1PWM2模式TIM3-CCMR1|=13;//CH1预装载使能TIM3-CCER|=10;//OC1输出使能TIM3-CR1=0x8000;//ARPE使能GPIOD4霍尔传感器输出端GPIOA6利用定时器TIM3,TIM4产生的六路PWM输出GPIOA7GPIOD5GPIOB0GPIOB1GPIOD6GPIOB6GPIOB7电动摩托车控制器中的电机PWM调速7TIM3-CR1|=0x01;//使能定时器3}voidPWM1_2_Init(u16arr2,u16psc2){//此部分需手动修改IO口设置RCC-APB1ENR|=11;//TIM3时钟使能GPIOA-CRL&=0X0FFFFFFF;//PA7输出GPIOA-CRL|=0XB0000000;//复用功能输出GPIOA-ODR|=17;//PA7上拉TIM3-ARR=arr2;//设定计数器自动重装值TIM3-PSC=psc2;//预分频器不分频TIM3-CCMR1|=712;//CH2PWM2模式TIM3-CCMR1|=111;//CH2预装载使能TIM3-CCER|=14;//OC2输出使能TIM3-CR1=0x8000;//ARPE使能TIM3-CR1|=0x01;//使能定时器3}voidPWM1_3_Init(u16arr3,u16psc3){//此部分需手动修改IO口设置RCC-APB1ENR|=11;//TIM3时钟使能GPIOB-CRL&=0XFFFFFFF0;//PB0输出GPIOB-CRL|=0X0000000B;//复用功能输出GPIOB-ODR|=10;//PB0上拉TIM3-ARR=arr3;//设定计数器自动重装值TIM3-PSC=psc3;//预分频器不分频TIM3-CCMR2|=74;//CH3PWM2模式TIM3-CCMR2|=1
本文标题:基于STM32的直流电机PWM调速控制
链接地址:https://www.777doc.com/doc-6617214 .html