《基于Proteus的直流无刷电机控制仿真(共75页).doc》由会员分享,可在线阅读,更多相关《基于Proteus的直流无刷电机控制仿真(共75页).doc(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上江苏科技大学本 科 毕 业 设 计(论文)学 院 机电与汽车工程 专 业 机械电子工程 学生姓名 李佳男 班级学号 指导教师 张鹏 二零一四年五月专心-专注-专业江苏科技大学本科毕业论文基于Proteus的直流无刷电机控制仿真Simulation of brushless dc motor control based on the Proteus 中文摘要直流无刷电动机是在有刷直流电动机的基础上发展起来的。目前为止,虽然在传动应用领域当中占据主导的地位是各种交流电动机以及直流电动机,但是直流无刷电动机正在迅猛发展,日益受到人们广泛的关注。BLDC电机具有直流电机方便调
2、速的优点,但它没有机械换向的种种问题,同时扩大了调速的范围。此外还有很多有优点,比如噪音比较低,效率高以及转矩波动较小,具有重要的研究意义。本文在学习Proteus仿真软件的基础上,利用dsPIC33FJ12MC202单片机进行了直流无刷电机的控制研究,实现了仿真的硬件电路及单片机程序的仿真。通过MPLAB软件对代码进行编写和调试,并且结合Proteus软件的硬件仿真。最终得到实验结果。以此为基础,通过程序实现了开环控制、PID控制、门限值控制等不同方案的设计;通过进行这些比较,得出开环控制难以获得较好的控制效果,而PID控制与门限值控制相比PID控制的灵活性及控制精度更高。关键词:直流无刷电
3、机;单片机;Proteus;仿真AbstractBrushless DC motor is based on the development of the brush DC motor . So far, although the transmission occupy the dominant position of application fields are various ac motor and dc motor, brushless dc motor is growing rapidly, however, is becoming more and more attention b
4、y people. BLDC motor has the advantages of convenient dc motor speed control motors, but it has no problems of mechanical commutation, at the same time expanding the scope of speed control. There are a lot of advantages , such as low noise, high efficiency and torque ripple is lesser, have important
5、 research significance. In this paper, based on the study of Proteus simulation software, using dsPIC33FJ12MC202 single-chip microcomputer for the study of brushless dc motor control . Realize the simulation of the hardware circuit and program. Through MPLAB software to write and debug code, and the
6、 combination of Proteus software hardware simulation . Finally the experimental results are obtained. On this basis, through the application implements open loop control and PID control, threshold control, different schemes of design; Through the comparison, it is concluded that open loop control is
7、 difficult to achieve good control effect, and compared with the threshold control PID control, PID control more flexibility and higher control precision. Keywords: Brushless DC motor; single-chip microcomputer; Proteus; simulation 目 录9参考文献附录A系统原理总图及分图附录B开环控制源代码附录C闭环控制源代码第一章 绪论1.1选题的目的和意义大家都知道,有刷直流电
8、机驱动采用机械换向器的方法,方法非常的简单。有刷直流电机主要由转子、定子、电刷和换向器等构成1。换向器和电刷对直流电机来讲非常重要,但它们自身却存在如下四方面的不足:(1)复杂的结构,带来高昂的制造成本;(2)换向时非常容易产生电火花,限制了使用的范围;(3)对环境要求比较高,工作的可靠性较低;(4)还非常容易损坏,增加了维护成本等。 直流无刷电机(BLDCM)的出现,解决了有刷直流电机的很多不足。BLDC电机一方面有直流电机不错的调速性能等,另一方面还有交流电机结构相对比较简单和运行相对可靠等优点。BLDC电机与直流电机比较有如下四方面的特点:(1)因为没有电刷的机械摩擦,使其具有高效率、无
9、噪声和较广的调速范围等优点;(2)从与ASMS电机比较来看,直流无刷电机控制比较简单,成本比较低;(3)但力矩波动比直流电机和ASMS电机都大;(4)适应于对性能要求不是特别高,制造成本较低的场合2。本文的研究采用的是单片机作为控制器,而由单片机作为直流无刷电机的控制器又具有以下几个优点:1、可以实现复杂的控制,具有实现复杂的控制能力。2、通过微机处理后,逻辑电路得到简化,大部分的控制逻辑都能够用软件来实现。3、它的微处理的控制是由软件来完成的,使用灵活。如果需要修改控制方法,一般情况下,不需要修改系统的硬件电路,只要修改一下程序就行,减少了很多麻烦。除了以上三点之外,还有没有零点漂移,控制精
10、度比较高;可以提供人机界面,多机联网工作等优点。通过仿真软件Proteus来设计完善BLDC电机控制,用虚拟的系统来仿真模拟真实的硬件和软件,不仅达到了目的,而且节约成本,同时,有错误可以方便修改。和matlab等仿真软件比较来看,通过Proteus能够在虚拟的环境中绘制硬件电路,并利用Mplab 软件来编写真实的单片机程序,调试各种控制算法,能够比较容易地观测到控制结果。对实际的应用系统的设计开发大有裨益。一方面省时省钱,另一方面提高了设计的效率。因此,本文采用dsPIC33FJ12MC202单片机,通过Proteus结合MPLAB,完成了BLDC电机仿真控制。完成了硬件仿真电路的设计和程序
11、尤其是控制代码的编写和调试,实现了转速开环控制、闭环PID控制以及门限控制,给实际系统的设计提供了很大的帮助。所以说,基于Proteus进行直流无刷电机控制仿真,既可以节约资金成本,又方便快捷而且效率比较高。具有重要意义。1.2国内直流无刷电机控制研究现状近年来,国内和国外都对直流无刷电动机的研究的产生了浓厚的兴趣。随着科学技术的不断发展,人们不断钻研发明,出现了很多新事物。比如微电子技术和现代控制理论等等。现在的直流无刷电机系统已经发展成为集软件与硬件于一体的产品,非常的高效可靠,它包含了许许多多的最新研究成果,越来越受到大家的关注。在功率逆变电路方面:由于现代科技的发展,对BLDC电机控制
12、技术的发展影响非常的大。电力电子功率器件从半控发展为全控的变化,控制方法也从相控电流转变为PWM。在较长时间里,半控型功率器件在电机控制市场一直占有很大份额。普通的晶闸管开始被淘汰,这种全控型功率器件开始崭露头角。以前的相控变流器有功率因数比较差等缺点,所以逐渐地被斩波器或PWM变流器取代,使电机的调速范围显著变大。紧接着第三代的功率器件开始出现,比如功率场效应管以及绝缘栅双极晶体管等,是那个年代研究最多的功率器件。现在大家在经常使用的是第四代功率集成电路。它把很多电路集成在了一块芯片上,并不断地被智能化。半导体功率器件也奔着智能化的方向发展,它的体积越来越小,功能越来越强大。它把多个电路集成
13、,做成混合模块。所有的这些功率器件的发展都带动了直流无刷电机控制技术的发展3。在转子位置检测方面:在电机换相时,转子的位置信号通过位置传感器获得。位置传感器有很多类型,其中包括磁敏式、光电式以及谐族式等等。由于位置传感器的使用有以下四方面缺点:(1)会增大电机的尺寸;(2)因为传感器信号传输线过多,所以容易造成干扰信号的产生;(3)在恶劣的工作环境下(比如空气中灰尘要少),传感器的可靠性会降低;(4)直流无刷电机的运行性能还受传感器安装精度的影响等等,因为有的时候电机根本没办法安装位置传感器。它的转子位置信号的取得有很多方法,也是现在研究的热门。在换向控制电路方面:数字信号传感器对直流无刷电机
14、的发展要很大的促进。过去的直流无刷电机大部分是单片机连接很多种接口设备构成,结构上比较复杂,而且限制处理速度,同时也不容易扩展。在实时性上,DSP比普通的微处理器的效果都好,能够实现用软件代替模拟器件进行比较可靠的控制,能够容易地修改控制方法,控制参数的修改也很容易,除此之外,还能够实现自诊断、故障监测以及上位机管理与通讯等功能。使用DSP来控制直流无刷电机比较可靠。存在问题:1、实验台的研制耗费较多的资金且修改不易;2、如果我们要用matlab的来进行直流无刷电机的仿真,很难实现真实单片机的控制过程。1.3本文主要研究内容在Proteus硬件仿真环境下结合MPLAB软件开发平台,在学习BLD
15、C控制原理的基础上,投入较多的精力学习了Proteus这一工具软件,并结合以上两方面,在其平台上设计以dsPIC33FJ12MC202单片机为主控制器的直流无刷电机仿真控制系统,完成了软件的调试,并由此进行了较为简单的BLDC开闭环控制的对比实验研究。本文要对开环控制和闭环控制作比较,得出了开环控制下的直流无刷电机的调速性能是怎么样的,闭环控制下的直流无刷电机的调速性能是怎么样的,这两者之间的差别是怎样的。闭环控制就是采用PID控制策略,实现对直流无刷电机进行调速。同时,我又采用了门限控制策略,通过比较PID 控制策略与门限控制策略,看哪种控制策略对直流无刷电机的调速更好。通过实验结果表明,所
16、设计的系统能够满足直流无刷电机转速控制的设计要求,将会对实际的直流无刷电机的生产制造起到很大的帮助。第二章 直流无刷电机的结构和工作原理2.1直流无刷电机的结构与有刷直流电机不同,BLDC电机具有固定的电枢与旋转的磁场。因此,BLDC电机无需像有刷直流电动机那样使用换向器和电刷来使电机转动。它的主要组成:电机本体、转子位置传感器以及电子换相电路4。直流无刷电机的实物图如图2-1:图 2-1 直流无刷电机5图2-2直流无刷电机的逆变器(电子换相电路)结构图5电机本体的主要部件是定子和转子。首先来讲一下定子部分。与有刷电机不同,直流无刷电机的定子最主要的部件就是线圈绕组了。它的工作原理,电机要把电
17、能转化为机械能,就要把转子动起来,转子转起来就可得到相互作用的磁场,当直流无刷电机接上电源后,电流就会接入线圈,就会得到磁动势,和转子的磁场相互作用,就会得到电功率,从而实现电机把电能转化为机械能的这一过程。直流无刷电机的转子对电机来讲有比较重要的地位,它是产生励磁磁场的主要器件之一。直流无刷电机要能够转动起来,除了电机本体以外,还需要电子换相电路与转子位置传感器的共同配合。这当中,使用转子位置传感器的目的是来检测转子磁极的位置,并将这个位置信号及时传给电机控制器,让它能够正确地驱动电子换相电路。电子换相电路(如图2-2所示)由六只晶体管组成,它在电机运转当中有着至关重要的作用。2.2 直流无
18、刷电机工作原理直流无刷电机是由电机主体和驱动器两部分组成。由于没有电刷,所以要将转子制作成永磁体,而将线圈绕组放在定子上去,这样修改后的结构正好与一般直流电动机恰恰相反;然而,如果只给直流无刷电机通入固定的直流电流,那么直流无刷电机只可以产生不变的磁场,直流无刷电机不能转动起来,为了能够使电动机转动起来,只有实时检测直流无刷电机转子的位置,再根据转子的位置给直流无刷电机的不同相通以对应的电流,使定子能够产生方向均匀变化的旋转磁场,电机6步通电顺序如图所示,每步三个绕组中一个绕组流入电流,一个绕组流出电流,一个绕组不导通。通电顺序如下: 1.A+B- 2.C+B- 3.C+A- 4.B+A- 5
19、. B+C- 6.A+C-磁场开始旋转,吸引转子磁极跟着旋转。磁场顺时针旋转的时候,电机顺时针旋转的顺序:123456;磁场逆时针旋转的时候,电机顺时针旋转的顺序:654321。图2-3电机6步通电顺序7通过六只晶体管组成的换相电路,来给电机供电。它的换相过程如图2-4所示:图2-4换相过程7霍尔传感器输出的二进制编码控制6个功率管的导通,它由逻辑电路或软件编程实现。此外,我们可以通过改变定子绕组电压的大小来改变电机速度。最终实现了BLDC电机的调速控制。了解清楚电机的工作原理,为下文的硬件设计和软件编译打下了基础,为我们的设计提供了很大帮助。2.3直流无刷电机电机特性2.3.1机械特性在机械
20、特性的表达式上,BLDC电机的机械特性和一般直流电机相比,并没有什么差别。这说明它们的都具有比较好的机械特性。机械特性曲线簇,如图24所示:图2-4机械特性曲线簇直流无刷电机在转矩较低时机械特性最好,在转矩较大、转速较小的情况下机械特性有所变化。曲线向下弯曲的原因是,在转矩很大、转速较小的情况下。电流会变得很大,造成管压降变化加快,使电压减小。机械特性曲线就会偏离原来的直线。2.3.2调节特性BLDC电机的调节特性如图25所示图2-5调节特性从图2-5上能够看出,BLDC电机具有较好的调节特性。较好的机械特性和调节特性为BLDC电机良好的调速性能打下了基础。第三章 硬件设计3.1 Proteu
21、s软件介绍本文设计所用到是Proteus软件。它是大家常用的EDA工具软件。这个软件功能比较强大,可以说它是到当前最好的单片机仿真软件。所以我采用其来绘制直流无刷电机的电路原理图。虽然国外已经有较长的使用历史,但国内使用还比较少,我相信不久的将来Proteus会受到大家的喜爱。3.2 Proteus软件特点Proteus 的使用已经有较长的时间了,拥有非常多的使用者。是大家比较常用的硬件仿真软件。Proteus 软件可以和MPLAB软件连接调试。Proteus 可以对原理图、电路仿真和微控制器仿真13。基于Proteus的这些特点,本文选择它来绘制直流无刷电机的硬件电路图,并对直流无刷电机进行
22、调速仿真控制。 3.3 直流无刷电机的Proteus仿真模型BLDC电机的Proteus仿真模型是在根据直流电机模型的基础上建立起来的,模型中具有三个霍尔,它们的作用是来转子位置的检测。设计的时候我在元器件库中选取BLDC-STAR,这个三相星型连接方式的无刷直流电机有8个引脚,下面来一一介绍。Load是仿真负载的输入端,omega是转子角速率的输出端,a、b、c是线圈的输入端。sa、sb、sc是霍尔的输出端。3.4 Proteus中硬件电路搭建过程本文使用Proteus软件来绘制直流无刷电机的硬件电路图,这是学习软件的基础上,并参考原理图绘制的。通过不断地学习和尝试,使得最终理解该软件的原理
23、,并完成了电路的简化绘制搭建过程。首先绘制直流无刷电机,点击(挑选元件按钮)按钮,业面会出现挑选元件对话框,在对话框的KEYWORDS中输入BLDC,得到如下结果,如图3-1所示: 图3-1然后点击按钮,关闭对话框,单击左键,这样BLDC-STAR就被放到Root sheet1原理图编辑窗口中了。同样的方式选取BUUTTON、POT-HG、RES40等元件。点击,绘制输入、输出和功率,如图3-2所示:图3-2选取元件之后,就是电路的连接了,直接点击鼠标左键开始连接,再点击鼠标左键结束。最后再进行元件参数设置,最终得到的结果如图3-3所示:图3-3系统显示电路在系统显示电路的原理图中,S1是启动
24、按钮,S2是换向按钮,S3是暂停按钮,RV1(滑动变阻器)用来实现仿真负载大小的调控。直流无刷电机在转动的时候会显示速度的大小,我们可以通过它来观察速度调节的状况,是我们判断代码是否正确地依据,为我们修改C语言的代码程序提供了帮助。驱动电路采用了集成块元件,从中选择,点击新建页面(N),会出现一个新页面Root sheet2,在Root sheet2的原理图编译窗口,根据以上方法绘制系统驱动主电路如图3-4所示:图3-4系统驱动主电路驱动的电子换相电路采用了系统所给的CCT004元件,由于电路比较复杂可以先把它集中到一块,然后绘制比较复杂的子电路,这样便于系统的运行,不会因为过于复杂而降低系统
25、的可靠性,而会提高系统的效率。看来设置集成块电路是非常有必要的。左击鼠标,选取CCT004元件,然后鼠标右击,选择“转到子页面”选项,会出现一个空白页面,在原理图编译窗口,根据BLDC电路原理图和上述绘图方法绘制驱动电路子图,更具体描述驱动电路连接设置,如图3-5所示,由原理图绘制电路图如图3-6所示。图3-5 BLDC换相电路原理图图3-6 Proteus自带驱动子电路因为dsPIC33FJ12MC202单片机输出的电流非常小,所以,我们有必要加一个驱动电路对其进行放大。接着,创建页面Root sheet3,就根据以上方法绘制系统缓冲器电路,如图3-7和3-8所示。图3-7图3-8系统缓冲器
26、电路采用74HC244芯片来对输入的数据作较长的时间的保存。它可以构成三态数据缓冲器,用于简单接口的扩展。大家知道,dsPIC33F系列单片机是使用并口进行编程的,但是在一些情况下就不行了,比如电路板没有做好,就有可能把计算机并口连带着一起烧坏,造成很大的损失,因此非常有必要加74HC244芯片来缓冲一下。最后是系统主控制器电路的绘制,单击“P”按钮,在KEYWORDS中输入dsPIC33FJ12MC202,得到如下结果,如图3-9所示。图3-9选择单片机根据上面的方法,绘制主控制器原理图。霍尔R,Y,B分别接入RB5,RB6,RB7引脚。当发生IC中断时,会读取三个霍尔值,之后通过查Stat
27、eTable表获得换相的状态,就这样完成了对直流无刷电机进行换相任务。图3-10系统主控制器电路本文把dsPIC33FJ12MC202单片机作为主控制器。它具有最多3个16位定时器,1个定时器可以作为实时时钟来使用。所以说,选择了正确的单片机为仿真成功奠定了基础。整个电路图如图4-11所示:图4-113.5 Proteus代码写入方法如果Proteus绘制的原理图能够正常运行,我们就要要把MPLAB编译的代码(在第四章中将会有详细描述)写进dsPIC33FJ12MC202单片机,下面详细介绍一下单片机代码写进的过程。在Proteus中编译窗口中,单击dsPIC33FJ12MC202单片机,会跳
28、出下面的窗口,如图3-12所示:图3-12在Program File栏中,点击图标,然后选择mplab2014-4.hex选项,点。具体操作如下面图3-13和图3-14所示:图3-13选择文件图3-14加载代码这样,直流无刷电机的C语言程序代码就被加载到了单片机当中,如果程序和电路连接没问题,电机就会按照预想的情况运行。代码的载入并不难,需要自己慢慢熟练,掌握软件的每一步操作过程,有助于我们的进度,比较节约时间。代码的写入会在第五章中用到,我先在这介绍了,在第五章就不再赘述。3.6 PCB板的制作过程电路原理图已经由Proteus绘制好,在上文对绘制电路原理图有详细地描述,仿真调试也应经成功,
29、在本文第五章对此也有详细描述,这一步我已经做好。3.6. 加载网络表及元件封装点击中的ARES图标,进入PCB的设计界面,会出现如下窗口,如图3-15所示:图3-15选择封装时,没有封装库的元器件可以选择替代封装,也可以手工绘制封装,本设计既有手工绘制封装也有替代封装,选择手工绘制封装的有直流无刷电机M1、与非门U3-U8以及开关SW1-SW6,滑动变阻器RV1选择替代封装,封装类型PRE-HMIN。3.6.规划电路板并布局制作PCB的时候,首先要设计工作区域,选择当前板层为Board Edge。然后单击2DGroaphics,拉出PCB的编辑板层。点击(度量模式),可以设置黄色框图的大小。我
30、设置的黄框,宽是160mm,高是233.4 mm。接下来我们就可以进行手动布局了,点击(元件模式),把所有的元器件放到黄色框图内,得到结果如图3-16所示:图3-163.6.布线并调整紧接上面的步骤,我们来进行布线并进行调整。点击,查看原理图,把漏掉的线连接起来。点击(设计规则管理器),来进行设置,选择网路种类为SIGNAL等,过孔类型选择V40 ,如图3-17所示,最后调整过的结果如图3-18所示:图3-17图3-18接下来就可以自动布线了,点击(自动布线),就会得到下图。图3-193.6.输出及制作PCB选择输出菜单。然后点击3D预览选项,就会得到预览效果。如图3-20所示:图3-20 3
31、D预览图接下来,选择Bottom Copper以及Board Edge这两个选项。那么输出比例我们要选择100%,如图3-21所示:图3-21经过以上步骤,最终输出PCB图,如图3-22所示:图3-22 PCB布线图PCB在实际生产生活中有广泛的应用,它避免了人工接线容易出的差错,可以实现自动检测和自动焊锡等功能。PCB布线图采用双层布线,由于我能力有限,存在许多缺陷。第四章 软件设计4.1 软件介绍MPLAB是dsPIC系列单片机常用的的开发平台8。MPLABIDE以比较简单的操作实现了代码的编译和仿真。使用MPLAB对代码编译,节约了资金,又减少了开发的工作任务,同时节省了很多的时间。MP
32、LAB是C语言编程常用的软件。基于以上原因,所以选择MPLAB来对直流无刷电机的C语言代码进行编译。dsPIC33F系列单片机采用的是C语言编程,还需要特别安装C语言编译器MPLABC30。我们以直流无刷电机的闭环控制为例,来说明MPLAB代码编译的过程,设计闭环控制程序代码的主要的步骤如图4-1所示:图4-1程序流程图4.2单片机概述本文采用的是dsPIC33FJ12MC202单片机,这个单片机是高性能的16位数字信号控制器9,它的主要功能如下:(1)工作范围:最高40MIPS的工作速度(3.0-3.6V)。(2)高性能DSC CPU:具有C编译器优化的指令集,可以24位宽指令等。(3)定时
33、器/捕捉/PWM:16位捕捉输入功能。输出比较最多有2路通道,具有16位无毛刺PWM模式。(4)中断控制器:中断响应为五个周期。(5)数字I/O:外设引脚选择功能。(6)片上闪存和SRAM:闪存程序存储器(12KB);数据SRAM(1024字节);闪存程序存储器的引导和通用安全性。(7)系统管理:上电延时定时器;振荡器起振定时器/稳定器;故障保护时钟监视器。(8)功耗管理:片上2.5V稳压器;实时时钟源切换;可快速唤醒的空闲、休眠和打盹模式。(9)电机控制外设:有6通道16位电机控制PWM;2通道16位电机控制PWM;正交编码器接口模。(10)模数转换器(ADC):具有6路带自动扫描功能的输入
34、功能。(11)CMOS闪存技术:低功耗高速闪存技术;全静态设计;3.3V工作电压;工业级和扩展级温度;低功耗。(12)通信模:UART,检测到位时产生中断;出现UART错误时产生中断;检测到启动位时将器件从休眠模式唤醒;LIN总线支持。(13)封装:20引脚SDIP/SSOP;28引脚SDIP/SOIC/QFN。下面是三个图标全面展示单片机的构造,dsPIC33FJ12MC202 28引脚SDIP/SOIC封装图如图4-2所示, dsPIC33FJ12MC202 28引脚QFN封装图如图4-3所示,dsPIC33FJ12MC202 方框图如图4-4所示。图4-2 dsPIC33FJ12MC20
35、2 28引脚SDIP/SOIC封装图10图4-3 dsPIC33FJ12MC202 28引脚QFN封装图10图4-4 dsPIC33FJ12MC202框图104.3直流无刷电机的控制策略4.3.1控制策略选取考量在BLDC电机的控制中,不仅仅要求系统具有良好的稳定性,而且能够对指令信号有较好的跟踪能力,以最快的速度和指令信号保持一致。不受扰动的影响,能够比较准确地输出信号。BLD电机一定要选择合适的控制策略,用来提高控制系统的准确性。 对于一个控制系统怎么样,我们一般用稳定性、快速性、准确性和抗干扰性来描述。这四个性能指标,如果在同一个系统当中也会相互的影响,降低系统的可靠性。不同的控制对象对
36、系统的性能要求也是不一样的,我们要选择合适的控制方法,才能使控制系统准确可靠。本文主要采用PID控制策略,通过与门限控制策略进行对比,看哪种效果更好。下面我略微详细地介绍一下PID控制(PID控制是一种应用比较广的控制策略),简明扼要地介绍一下门限控制。4.3.2 PID控制策略简介对电机控制,我们有多种选择,例如PID控制、门限值控制以及模糊控制等等。我们在大三的时候有一门课叫做控制工程基础,学过PID控制,所以说,我对这块内容还是比较了解,这对做毕业设计很有帮助。下面我就给大家详细地介绍一下PID控制策略,它是本文的重点内容。PID控制器很早就被大家所使用,细细算来已百年历史,时间证明它是
37、一种比较适合生产设计的控制器。和其它控制器相比,采用PID控制没必要采用要求苛刻的系统模型,操作起来也很简单,是一种非常具有实用性的控制器,也是大家最常用的控制器。直流电机控制系统如图4-5所示:图4-5直流电机控制系统从图4-5大家能够看出,采用PID控制器是为了得到电机内部的给定转速n(t)和电机系统的实际转速nr(t)的差值即e(t)。然后进行调节得到u(t)。通过处理输出信号,使直流电机的可靠性得到加强。PID控制原理图如图4-6所示:图4-6 PID控制原理图r(t)代表给定值;y(t)代表输出的真实值;e(t)代表给定值与实际输出值的差值。PID控制有以下四方面的优点:(1)控制原
38、理不复杂,很容易被大家掌握; (2)通过比例、积分以及微分的参数整定,得到较好的实验结果;(3)PID控制具有非常强的适应能力,所以能够在各个领域中都有比较广泛的应用; (4)能够根据不同的需要,然后根据自身的某些不足做适当的修改,得到自己想要的结果。4.4子程序设计4.4.1初始化子程序软件的初始化,包括三方面:配置位的配置、晶振的配置以及电机启动初始化。我们以配置位的配置为例介绍一下软件的初始化。在初始化中,我们先是禁止代码保护设置;接下来是主振荡器模式配置。看门狗定时器(具有监视并恢复程序正常运行的功能)能够通过软件使能/禁止。配置位的代码如下面所下:_FGS(GWRP_OFF & GC
39、P_OFF);/禁止代码保护_FOSCSEL(FNOSC_PRIPLL);/带PLL 的主振荡器 _FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);/ 主振荡器模式配置_FWDT(FWDTEN_OFF);/利用软件使能/禁止看门狗定时器4.4.2转子位置检测子程序为了产生旋转磁场,就要在电机的三相定子当中,同一时间为它们当中的两相通电。程序能够通过使用查表,来找准要对哪两对线圈绕组通电,来把转子转动起来。特别指出的是状态“0”和“7”是无效状态,软件能够检查出它们并且禁止PWM,所以说霍尔只有6个状态,说明直流无刷电机有6个工作区间,直流无刷电机换相
40、图如图4-7所示。图4-7检测霍尔传感器图中实线分别代表霍尔传感器R、Y、B,虚线代表三相各自的绕组;Q3、Q5等等是驱动电路开关;霍尔状态1对应换相控制字0x0210,对应区间是5;霍尔状态2对应换相控制字0x2004,对应区间是3;霍尔状态3对应的换相控制字是0x0204,对应的区间是4;霍尔状态4对应换的相控制字是0x0801,对应的区间是1;霍尔状态5对应换相控制字0x0810,对应区间是6;霍尔状态6对应换相控制字0x2001,对应区间是2;霍尔传感器的输出状态每变化一次经过要180个电角度。驱动表如下,在StateLoTableFwd或StateLoTableAntiRev表中。换
41、相表,数组下标即表示霍尔状态的编码,作用是检测转子位置。unsigned int StateTableFwd = 0x0000, 0x0210, 0x2004, 0x0204,0x0801, 0x0810, 0x2001, 0x0000;/正向unsigned int StateTableRev = 0x0000, 0x2001, 0x0810, 0x0801,0x0204, 0x2004, 0x0210, 0x0000;/反向4.4.3 PWM脉宽调制子程序下面图4-8是电机的驱动电路和绕组连接示意图:图4-8电机驱动电路与绕组连接示意图为了让电机的速度能够变化,就需要把变化的电压加在两相线
42、圈绕组的两端。从数字化的的角度而言,加在直流无刷电机绕组上的PWM 信号的不一样的占空比能够得到变化的电压,这样,可变的电压就可以得到可变的电机速度。 PWM信号由dsPIC33FJ12MC202单片机的电机控制专用的PWM 模块来提供。MCPWM 模块是专为BLDC电机控制的应用而设计的。选取某个值把它装载入PTPER ,人为就能够决定想要的 PWM 的大小。将TCY、PTMR和PTPER分别作比较。直到其中两个匹配时,新的周期才会开始。占空比的控制方法和它差不多,只需要在三个占空比寄存器中装入一个值就行了。InitMCPWM,对PWM 做以下初始化:1. FPWM = 39000 Hz2.
43、 独立的控制通道3. 使用OVDCON控制输出4. Duty Cycle(占空比)与ADC值设置读取5. 将ADC设置由PWM 特殊信号来触发初始化电机的PWM控制模块void InitMCPWM(void) PTPER = FCY/FPWM - 1; /给寄存器计数位赋值(所需计算时间基于CPU速度和PWM频率) PWMCON1 = 0x0700; / 禁止PWMOVDCON = 0x0000; / 允许使用OVD控制PDC1 = 100; /将PWM1初始化为100PDC2 = 100; /将PWM2初始化为100PDC3 = 100; /将PWM3初始化为100SEVTCMP = PTP
44、ER; /特殊触发值等于16 个周期值PWMCON2 = 0x0F00; /后分频比设为1:16PTCON = 0x8000; / 启动PWM 4.4.4 ADC中断服务子程序对于开环控制,ADC 中断用给定的电位计的值来装载PDCx。仅当电机运行时执行这个操作。对于闭环控制,ADC中断保存理想转速最大值的需求。这些只是当电机运行时完成。ADC 中断用于模/数转换。void _attribute_(interrupt, no_auto_psv) _ADC1Interrupt (void) if (Flags.RunMotor) /判断电机是否启动 #ifdef CLOSEDLOOP / 对于闭环控制DesiredSpeed = ADC1BUF0 * POTMULT;/为闭环保存控制速度值 #else / 对于开环控制 P1DC1 = (ADC1BUF0 1);/ 赋值P1DC2 = P1DC1;/ 并装载所有的三个PWMP1DC3 = P1DC1;/ 占空比寄存器#endif/ 重置ADC中断标志IFS0bits.AD1IF = 0;/清除中断标志4.4.5 PID算法子程序BLDC电机速度的给定是电位计来确定的。首先用要求的速度值来确定比例(P)误差和积分(I)误差。通过它们的值,来重新计算占空比。PID算法流程如图4-9所示:图4