电力电子课程设计报告 直流电机驱动DOCWord下载.docx
《电力电子课程设计报告 直流电机驱动DOCWord下载.docx》由会员分享,可在线阅读,更多相关《电力电子课程设计报告 直流电机驱动DOCWord下载.docx(16页珍藏版)》请在冰豆网上搜索。
长期以来,直流电动机一直占据着调速控制的统治地位。
由于它具有良好的线性调速特性,简单的控制性能,高的效率,优异的动态特性;
尽管近年来不断受到其他电动机(交流变频电机、步进电机等)的挑战,但到目前为止,它仍然是大多数调速控制电动机的优先选择。
近年来,直流电动机的结构和控制方式都发生了很大变化。
随着计算机进入控制领域以及新型的电力电子功率元件的不断出现,使采用全控型的开关功率元件进行脉宽调制(PulseWidthModulation,简称PWM)控制方式已成为绝对主流。
这种控制方式很容易在单片机控制中实现,从而为直流电动机控制数字化提供了契机。
1.2、课题背景及研究意义
当今,自动化控制系统已经在各行各业得到了广泛的应用和发展,而直流驱动控制作为电气传动的主流在现代化生产中起着主要作用。
长期以来,直流电动机因其转速调节比较灵活,方法简单,易于大范围平滑调速,控制性能好等特点,一直在传动领域占有统治地位。
它广泛应用于数控机床、工业机器人等工厂自动化设备中。
二、设计任务
1)主电路的设计,器件的选型;
2)驱动电路、检测电路和保护电路设计;
3)辅助电源设计,要求提供5V控制电源;
4)控制电路的设计,正反转及调速的实现;
5)制作驱动和主电路;
6)利用提供的控制信号,完成直流电机的脉宽调速电源的驱动和主电路和调试。
三、设计方案选择及论证
3.1、控制电路的方案选择
方案一、选用AT89S51单片机作为控制电路。
方案二、选用STM32作为控制电路
方案论证:
上述两种方案中,AT89S51是一款基于8051内核的单片机,利用其定时器中断功能去操作IO口可以输出PWM波。
STM32是一款基于ARM的Cortex-M3内核的单片机,其具有丰富的内部资源和外设接口,且其内部具有多个通用定时器和高级定时器,只要对这些定时器做出相应的配置就可以让STM32自动输出两路互补的PWM。
除此之外,STM32的工作频率高到72MHz,其内部还有多路ADC,可以方便的应用检测保护电路中,这也是AT89S51所无法相提并论的,所以,在本次设计中采用STM32作为控制电路。
3.2、辅助电源的方案选择
方案一:
使用LM7805芯片进行稳压输出得到所需要的辅助电源
方案二:
使用LM2596开关电源芯片获取所需的辅助电源
论证:
虽然两种电源芯片都能得到所需的+5V电源,但是由于7805能承受的输入电压太小(5V到18V),无法达到相应指标,因此还是选用更为合适的LM2596-5芯片,它可自行稳压输出5V的电源。
3.3、过电流检测电路的方案选择
方案一、通过ADC采样BTN7971反馈引脚上的电流,计算出实际电流值
方案二、采用专门的集成芯片AD8418
AD8418是一款高压、高分辨率分流放大器。
设定初始增益为20V/V,在整个温度范围内的最大增益误差为±
0.15%。
缓冲输出电压可以直接与任何典型转换器连接。
AD8418在输入共模电压处于−2V至+70V范围时,具有出色的输入共模抑制性能;
它能够在分流电阻上进行双向电流的测量,适合各种汽车和工业应用,包括电机控制、电池管理和电磁阀控制等。
运用集成芯片AD8418可以行之有效地解决课题中的过电流检测问题,但是需要额外增加电路,增加了电路的复杂程度。
而利用BTN7971管脚上的电流反馈,利用ADC采样该管脚上的电压,进行计算后即可得到实际的电流值,这样一来,相较于利用集成芯片AD8418电路更为简单。
因此,在本次设计中采用方案一进行过电流检测。
3.4、主电路的方案选择
方案一、采用四个独立的MOS管组成H桥
方案二、采用集成芯片BTN7971
方案一选择功率MOSFET作为开关器件。
此处,需要四个功率MOSFET组成全桥。
而且需要另外设计过流采样电路,需要在软件上设置死区时间,在驱动MOSFET工作时,还需要特定的芯片和隔离电路,电路结构相对复杂,元件比较多,整个系统的尺寸较大。
而IPM(智能功率模块)BTN7971,它是将输出功率器件IGBT和驱动电路、多种保护电路集成在同一模块内,与普通MOSFET相比,在系统性能和可靠性上均有进一步提高,而且由于IPM通态损耗和开关损耗都比较低,使散热器的尺寸减小,故整个系统的尺寸减小。
其内部含有门极驱动控制、故障检测和多种保护电路。
保护电路分别检测过流、短路、过热、电源欠压等故障,当任一故障出现时,内部电路会封锁驱动信号并向外送出故障信号,以便外部的控制器及时处理现场,避免器件受到进一步损坏。
因此,在本次设计中采用芯片BTN7971。
3.5、驱动电路的方案选择
方案一、采用光耦驱动
方案二、采用74HC244芯片驱动
驱动电路需要实现电平转换,也要防止驱动芯片上大电流的倒灌进入单片机的引脚,而光耦的作用有可用于电气上的隔离,也可用于电压电平转换。
因此,驱动电路采用光耦。
光耦隔离也是一种简单、低成本的方法。
由于采用STM32普通I/O口输出PWM波,理论上可以直接用STM32普通I/O口直接与BTN7971相连,但是驱动电路需要实现电平转换,也要防止驱动芯片上大电流烧坏单片机,所以可以加个74HC244芯片隔离一下。
因此,在本次设计中,方案一和方案二均满足要求,最终采用方案一进行设计
四、总体电路设计
直流电机
辅助电源
直流电源
STM32控制电路
基于BTN7971的主电路
过电压、电流检测电路
5V电源供电
PWM输出
ADC采样
光耦
本次设计的总体框图如上图所示。
电源部分由直流电源端输入15V或者更高电压的直流电,然后经辅助电源降压成5V之后,用来供给STM32控制电路(该控制电路自带一块LM1117-3.3的线性稳压芯片,可以将5V电源降成3.3V供给STM32使用);
除此之外,直流电源还直接将电源供给主电路,用于驱动电机运转。
控制电路在本次设计中具有两个作用:
第一、产生PWM信号,来控制BTN7971芯片;
第二、最为过电流、电压检测的ADC采样功能,从而计算出电流和电压值,进行过电流、过电压的保护。
五、功能电路设计
5.1、辅助电源的设计
辅助电源芯片采用LM2596-5开关电源芯片。
电路原理图如下图5-1所示:
图5.1-1辅助电源原理图
5.2、驱动电路的设计
驱动电路芯片采用光耦POD817。
电路原理图如下图5-3所示:
图5.2-2驱动电路原理图
查阅POD817光耦资料可知,开关速度需要满足一定的条件,因为输入端PWM波的频率为25KHz,因此该光耦速度必须满足要求。
5.3、控制电路的设计
本次设计的控制电路采用STM32f103系列的单片机,其最小系统电路图如下图所示:
图5.3-1STM32f103最小系统
本次设计中利用STM32的定时器输出两路互补的PWM波,其频率为25KHz,占空比可根据实际情况进行调节,实现正反转的控制功能。
除此之外,利用STM32内部自带的12位ADC可以采样电流反馈信号,和输入电压,实现过电流和过电压的监测。
在此给出STM32定时器的配置程序,其源代码如下:
voidPWM_Init(void){
GPIO_InitTypeDefGPIO_InitStructure2;
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
TIM_OCInitTypeDefTIM_OCInitStructure;
TIM_BDTRInitTypeDefTIM_BDTRInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB
|RCC_APB2Periph_TIM1|RCC_APB2Periph_AFIO,ENABLE);
GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure2.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&
GPIO_InitStructure2);
GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_13;
GPIO_Init(GPIOB,&
TIM_TimeBaseStructure.TIM_Period=2880-1;
TIM_TimeBaseStructure.TIM_Prescaler=0;
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM1,&
TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_Pulse=500;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_High;
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;
TIM_OC1Init(TIM1,&
TIM_OCInitStructure);
TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Disable;
TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Disable;
TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_OFF;
TIM_BDTRInitStructure.TIM_DeadTime=0x90;
TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High;
TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;
TIM_BDTRConfig(TIM1,&
TIM_BDTRInitStructure);
TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM1,ENABLE);
TIM_Cmd(TIM1,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);
}
5.4、检测电路的设计
本次检测电路分为过电压检测和过电流检测,过电流检测利用主电路中BTN7971芯片的电流反馈引脚引出,下拉一个阻值为的电阻,ADC采样引脚处的电压值,以电压除以电阻值就可以得到电流的反馈值,就可以计算出实际的输出电流。
电压检测的原理图如下图所示:
图5.4-1电压检测原理图
图5.4-1输入电压检测
此次设计的电压检测经过两个电阻分压,利用ADC采样两电阻之间的电压值,就可以计算出输入电压的电压值,随后通过控制PWM占空比,就可以改变输出电压的平均值,防止过电压。
5.5、主电路的设计
主电路的电路原理图如下图5.5-1所示
查阅BTN7971的芯片手册,可知官方给出了典型运用说明,如下图5.5-2所示:
参考典型运用,在管脚2-IN处连接电阻阻值大小为10K,管脚3-INH处连接电阻阻值大小为10K,管脚5-SR处连接电阻阻值大小为0.51K,管脚6-IS处连接电阻阻值大小为0.47K。
并且在SR引脚上增加ADC采样,作为过电流检测和保护。
图5.5-1
主电路原理图
图5.5-2典型应用图
六、电路制作与焊接
本次设计完成了驱动电路和主电路的PCB绘制,其具体的PCB图如下图所示
图6-1PCB顶层图图6-2PCB底层图
如上图所示其中P3为电源接口,从此处引入直流电源,P1为输出接口,接直流电机两端,P2为PWM输入和电流检测信号的输出,此处连接STM32单片机相应的I/O口,以输入PWM波控制信号,并且引出ADC采样点,将电压信号送至单片机。
七、调试与总结
7.1、实际调试
7.1.1、调试过程
在实际的调试过程中,我们遭遇了很多问题,首先,由于学得不够深入,对于很多知识的了解很不深入,甚至一直以来知道的内容还有错误,比如对于光耦的作用的认知等等。
在实际课设开始之前,我们就已经开始了相关的工作,在课设正式开始的前一天,我们各自通过网络、图书馆等方式查阅了大量的资料,并且查阅了前人在这方的研究。
当课设实际开始之后,我们针对选定的课题进行了初步的讨论,并且进行了相应的分工,并且确定了大致的设计方案。
随后,我们根据我们的分工和手头现有的资料进行了深入的研究。
在本次设计中,我负责设计过电流、过电压的检测,以及STM32控制电路的设计及其程序的编写。
首先,由于分工的原因,BTN7971并不在我的分工范围内,所以我并不了解其电流反馈,所以根据自己之前查找的资料,初步选定了用AD8418作为过电流检测,并且采用LM393电压比较器,作为过电压的检测。
当确定方案之后,便是根据数据手册提供的参考电路,利用AltiumDesigner完成了电路的绘制。
第二天,我们小组成员完成各自的设计内容也如期的完成了,我们得到了一个大致的设计方案,并且和老师进行了探讨。
结果令我们非常的失望,由于学艺不精,我们在设计中犯了很多错误。
经过老师的指点之后,我们开始修正各自的设计方案,由于BTN7971具有电流反馈的输出引脚,因此,就不需要使用AD8418来进行过电流检测,大大简化了电路设计,并且由于根据驱动电路的原理,不需要检测过电压,只需要利用ADC去采样输入电压,再去调控占空比即可,也就省去了电压比较器,再度简化了电路的设计。
由于我设计的过电压、过电流检测电路相对来说比较简单,因此,在完成这一项工作之后,因为之前接触过STM32的编程,也研究过电路图,且直接利用现成的STM32最小系统板,控制电路的设计就很快完成。
于是,我就开始了程序的编写,而组内其他成员则继续优化改进他们的设计。
因为之前有过类似的经历,所以编程的难度也不是很大,并且,因为BTN7971自己带有死区时间,所以在设计PWM输出的程序时,不需要留出死区时间。
经过调试之后就实现了两路互补的PWM输出,并经示波器查看,正确无误。
第三天也就是最终验收的前一天,时间已经比较紧张了,我开始了绘制驱动电路的PCB的工作,而其他成员则将之前的内容开始汇总,并最终成为一个完整的设计。
随后,我们又和老师进行了交流讨论,进一步改进设计中存在的缺陷。
然后,在这一天即将结束的时候,我们首次进行了实物的调试。
因为之前在学校创新学院参与过相关的竞赛,因此直接就使用了当时的硬件电路,进行测试,由于这个电路虽然和我们的设计大致一样,但是仍然存在一些细节上的差异,比如一些特定的电阻阻值等细节性的参数。
因此在实际测试时,大致实现了设计的内容,但是出现了死区时间过长的问题,需要进一步改进。
最后,终于到了验收的那一天,经过对于组织的修正,我最终得到了比较完美的波形,并通过了验收。
7.1.2、输出波形及说明
图7.1.1-1STM32输出波形
上图为首次测试时从STM32的I/O输出的两路互补的PWM波形,其频率约为25KHz,占空比约为50%。
图7.1.1-2驱动电路输出波形1
上图为首次测试时从驱动电路的输出波形,从上图可以看出,已经输出可正常的驱动波形,但是很想然由于电阻阻值选取不当,死区时间过长,影响了整体的效率。
图7.1.1-3驱动电路输出波形2
上图为第二次测试时驱动电路两端的输出波形,本次测试时,我们改小了死区时间控制电阻的大小,将原来的10K的电阻减小为3.3K,可以明显地看出死区时间减小,提高直流电机的工作效率,并且将PWM的占空比改为小于50%,使电机工作在正转状态。
图7.1.1-4驱动电路输出波形3
如上图所示波形为PWM占空比大于50的情况,电机工作在反转状态。
7.1.3、实物图
图7.1.3-1实物调试图
上图为实物照片,利用开关电源供电,STM32输出PWM波给驱动电路,从而带动电机运转。
7.2、总结与收获
这次课程设计可以说是一次史无前例的体验,虽然从大学至今做过了不少课程的课程设计,比如模电、数电、单片机等等,但是这些课设基本都是有现成的成品或者半成品。
然而本次课程设计却是依靠自己去查找各种数据手册、参考文献等内容,从而完成本次设计,这与以往的课程设计有本质的区别。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
从这次的课程设计中,我不仅巩固了课本的知识,尤其是最近学习的《电力电子技术》、《电子设计CAD》等,还学到了许许多多其他的知识。
其次我了解到团队合作很重要,每个人都有分工,但是又不能完全分开来,还要合作,所以设计的成败因素中还有团队的合作好坏。
设计过程中,我们将本次的设计细分为主电路设计、控制电路的设计、辅助电源的设计等等模块,最终相互整合,最终完成一次完整的设计。
这次课程设计让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
这次课程设计必将成为我人生旅途上一个非常美好的回忆!
八、参考文献
[1]游志宇,杜杨,张洪,董秀成.基于场效应管的直流电机驱动控制电路设计[J].国外电子元器件,2008,02:
3-6.
[2]李军.直流电机驱动EGR阀控制系统的研究[D].吉林大学,2011.
[3]胡发焕,杨杰,邱小童.大功率直流电机驱动电路的设计[J].机械与电子,2009,10:
77-80.
[4]高春艳.电动高尔夫球车他励直流电机驱动系统研究[D].重庆大学,2007.
[5]余晓填,杨曦,陈安,解辉,黄泽毅.基于移动机器人直流电机驱动电路的设计与应用[J].微电机,2011,11:
37-40.
[6]焦玉朋.基于51单片机的PWM直流电机调速系统[D].内蒙古大学,2013.
九、附录
9.1总体电路原理图
总体电路原理图如下图所示:
图9-1总体电路图
9.2、BOM表