毕业设计(论文)-基于Freescale_MKV10Z32的三项无刷直流电机驱动器.doc_第1页
毕业设计(论文)-基于Freescale_MKV10Z32的三项无刷直流电机驱动器.doc_第2页
毕业设计(论文)-基于Freescale_MKV10Z32的三项无刷直流电机驱动器.doc_第3页
毕业设计(论文)-基于Freescale_MKV10Z32的三项无刷直流电机驱动器.doc_第4页
毕业设计(论文)-基于Freescale_MKV10Z32的三项无刷直流电机驱动器.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于freescale mkv10z32单片机的三相无刷直流电机驱动器郑州轻工业学院本科毕业设计(论文)题 目 基于freescale mkv10z32单片机的三相无刷直流电机驱动器学生姓名 专业班级 电子科学与技术11-01 学 号 院 (系) 物理与电子工程学院 指导教师(职称) 完成时间 2015 年06月04日 郑州轻工业学院毕业设计(论文)任务书 题目 基于freescale mkv10z32单片机的三相无刷直流电机驱动器 专业 电子科学与技术 学号 姓名 一、主要内容、基本要求1直流无刷电动机具有交流电动机的结构简单、运行可靠、维护方便等一系列优点,制作基于freescale mkv10z32单片机的无刷直流电动机驱动器,以保证其运行可靠。 2由微处理器控制,通过pid算法控制电机的转速。3mcu通过串口和pc通信。4由pc可设定转速,5由显示装置显示转速曲线。二、主要参考资料1非电量电测技术吴道悌 主编 西安交通大学出版社 2002年4月 第八章 光传感器2非电量测量与传感器应用蒋敦斌,李文英 编著 国防工业出版社出版 2005年1月第1版 第一章 非电量测量与传感技术 第二章 传感器电子学基础 第七章 光敏传感器及其应用3光电传感器应用技术 王庆有 编著 机械工业出版社出版 2007年10月第1版4光机电一体化系统设计仿建军,田建君,郑清春等 编著 化学工业出版社出版 2004年10月第1版 第二章 传感器与信号处理5红外热释电与超声波遥控电路肖景和,赵健 编著 人民邮电出版社 2003年9月第一版 2005年9月第二次印刷 第一章 红外线遥控电路完 成 期 限: 2015年06月10日 指导教师签章: 专业负责人签章: 2015年02月06日目 录中文摘要英文摘要1 绪论11.1 背景和意义11.2 无刷直流电机的研究11.2.1 无刷直流电机的结构11.2.2 无刷直流电机的工作原理21.2.3 无刷直流电机换相的实现41.2.4 无刷直流电机转子位置的检测51.2.5 无刷直流电机的速度控制62 无刷直流电机驱动器的硬件设计72.1 电源电路72.1.1 电源输入电路72.1.2 电源稳压模块82.2 三相桥驱动模块92.2.1 功率开关管选择92.2.2 三相电桥外围电路102.3 功率管驱动模块102.4 霍尔信号检测电路132.5 电流信号检测电路143 无刷直流电机驱动器的程序设计153.1 控制程序整体概述153.2 电机驱动的实现153.2.1 换相的实现153.2.2 电机的起始和停止状态163.2.3 有感驱动算法173.2.4 有感电机启动183.2.5 有感速度测定193.3 pid调速的实现203.4 上位机命令解析224 上位机设计244.1 方案对比244.1.1 用visual basic语言编写上位机软件244.1.2 用c#语言编写上位机软件244.1.3 用labview开发环境开发上位机244.2 上位机编程语言方案论证总结255 总结与展望26致 谢27参考文献28附 录29三相无刷直流电机驱动器摘 要本设计使用mkv10z32单片机作为控制器在工作现场驱动无刷直流电机,使用uart总线实现无刷直流电机驱动板与上位机的通信。该无刷直流电机驱动器具有驱动电机正反转、速度调节和运行参数设定等功能,实现了有传感器驱动、无传感器驱动两种驱动方式;使用pid算法调节转速,实现了转速闭环的控制。经测试,电机运行稳态误差较小,而且有良好的动态特性。上位机将驱动器的设定及控制方式集成在一个界面中,能实时控制电机的运行状态。上位机同时也支持波形显示,能实时显示无刷直流电机的运行情况,包括对转速的实时监控。 关键词 无刷直流电机/pid/uartithree phase brushless dc motor driveabstract this design uses mkv10z32 microcontroller as the controller in the work field brushless dc motor, the use of uart bus brushless dc motor drive board and the pc communications. the brushless dc motor driver with driving motor positive inversion and speed regulation and operation parameter settings and other functions, to achieve a sensor driven, the sensorless drive two drive modes; use pid algorithm to adjust the speed, to realize the speed closed-loop control. after testing, the motor running steady error is small, and has good dynamic characteristic. the host computer integrated the drive and control mode into an interface, and can control the running state of the motor in time. the upper computer also supports the waveform display, can real-time display brushless dc motor running situation, including real-time monitoring of the speed of the motor.keywords brushless dc motor ,pid,uartii1 绪论1.1 背景和意义近年来随着电力电子的发展和新型永磁材料的出现,无刷直流电机得到了迅速发展。无刷直流电机以电子换相代替了机械电刷和换相器实现电机的换相,既具备交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具备直流电动机的运行效率高、调速性能好等诸多优点,同时克服了有刷直流电机由机械电刷带来的噪声、火花、无线电干扰以及寿命短的弊病,无刷直流电机还具备诸多独特优点,如重量轻、体积小、动态性能好、输出力矩大、设计简便等,故其应用遍及各个领域。因此,直流无刷电机的应用和研究受到高度的重视。而电力电子技术、微处理器以及现代控制理论的发展,为无刷直流电机的电子换相以及复杂的控制算法提供了软硬件保障。机电一体化的进程在加快,融合了机械技术、电子技术和信息技术,目前bldc的应用越来越普遍,国内近年来在无刷直流电机的设计和控制方面有很多研究,但与国外成熟的产品相比还是有很多地方需要提高,所以在bldc方面做出积极的研究是很有意义的。1.2 无刷直流电机的研究1.2.1 无刷直流电机的结构本次研究使用的无刷电机是三相二极内转子无刷直流电机,所以以下论述均基于三相二极内转子无刷直流电机。无刷直流电机采用了定子绕组和转子磁极代替了传统的有刷直流电机。通常来说,定子的三相绕组有“星形联结”和“三角形联结”两种方式,但以“三相星形联结的二二导通方式”最为常用。图1-1 无刷电机内部结构显示了定子绕组的联结方式(转子未画出),三个绕组通过中心的连接点以“y”型的方式被联结在一起。整个电机就引出三根线a,b,c。当它们之间两两通电时,有6种情况,分别是ab, ac, bc, ba, ca, cb。1.2.2 无刷直流电机的工作原理无刷直流电机的定子是线圈绕组,转子是永磁体。当只给电机的两端通固定电流时,电机的定子绕组只能产生不变的磁场,转子永磁体在此不变磁场的作用下会转动到相应的位置,但是电机转子不能持续的转动起来。这时就需要对电机的三相端变换通电的顺序,以产生变化的磁场。如图1-2为电机的通电相序图,描述了使无刷直流电机连续转动的三相端通电相序。图1-2 无刷电机通电相序无刷直流电机的转动可以理解为定子磁场和转子磁场的相互作用。由无刷直流电机的结构,可以知道永磁体转子的磁场是固定的,而定子线圈的磁场是通过三相端的通电情况来确定和控制的。如图1-2中的子图1,三相线圈未加粗的线表示未通过电流,加粗的线圈表示正在通过电流,弧线段箭头表示通电电流的方向,细直线段箭头表示对应相线圈产生磁场的方向,粗直线段箭头表示当前通电各相产生合磁场的方向。当电机三相端的u相和v相通电,分别连接到电源正负极,构成了电流回路。这时电源电流从u相流入,从v相流回到电源地。通过这两相的电流分别在u相和v相的线圈绕组上产生了各自的磁场,它们的合磁场方向如图中所示。在合磁场的作用下,永磁体转子向相应位置转动,使转子的磁场线方向和定子合磁场的方向一致,于是就得到了uv相序的电流、定子和转子之间的关系。同样的,当按照图1-2中的相序以此通电时,转子又会依次到达相应的位置,如此无刷直流电机就不断地转动起来了。1.2.3 无刷直流电机换相的实现由上一节可知,依次给无刷直流电机的三相端通电,无刷直流电机就可以转动起来,这个过程就是无刷直流电机的换相。普通的有刷电机是通过电刷和换向器来实现直流电机的换相的,但由于无刷直流电机没有电刷和换向器,其换相就需要外部来实现。本设计采用的是三相全桥来实现无刷直流电机三相端的换相。为了实现设计中对相电流大小的控制和相电流方向的控制,本设计采用了三相全桥驱动无刷直流电机。三相全桥的基本结构如图1-3所示,u、v、w代表三相全桥对应三相无刷直流电机的三相端,功率管pwm0、pwm2、pwm4为三相全桥的上半桥,pwm1、pwm3、pwm5为三相全桥的下半桥。由于不断换相的要求,这里的功率管需要按照上文中的顺序开启和关断,如通电相序uv表示当前时刻只有u相的上半桥和v相的下半桥两只功率管导通,其他四只功率管都处于关断状态,此时电机u相通过功率管pwm0连接到电源正极电机的v相端通过功率管pwm3连接到电源地。图 1-3 三相桥驱动电路1.2.4 无刷直流电机转子位置的检测通过前文可知,依次换相可以实现电机的转动,且相序和电子转子的位置有关,正确的换相可以使电机更加平稳高效的转动,所以换相的重点就在转子位置的检测。在无刷直流电机控制过程中常见的转子位置检测分为“有传感器检测”和“无传感器检测”两种,即所说的“有感驱动”和“无感驱动”。本次毕业设计采用的是“有传感器检测”,即把3个开关型霍尔传感器呈120度分布在电机底端。霍尔传感器是根据霍尔效应制作的一种磁场传感器。电机转动过程中三个霍尔传感器的电平变化如图1-4所示。图 1-4 霍尔传感器信号该方法最重要的就是得出三个霍尔传感器的输出值和电机通电相序的对应关系表。这里可以采用固定通电相序,实时读取霍尔传感器的方法确定,霍尔输出值和电机通电相序的对应关系。该方法分为三步:首先,按照某一相序给电机其中两相通较小的电压,并保持通电,这时电机会转动到该相序对应的转子位置,霍尔传感器将会输出与转子位置对应的值,如此按照下一相序给电机通电并保持,再记录霍尔输出值,就可以记录所有相序下霍尔的输出值;然后,改为手动转动电机,依次记录霍尔传感器的输出值;最后,将第一步中得到的相序和霍尔输出值与第二步中得到的霍尔传感器的顺序输出值对应到一起。 该方法最终得出的转子位置、通电相序和霍尔传感器的关系如表1-1所示。表 1-1 霍尔传感器输出编码表当前相输出码(w-v-u)当前相序t1 001 2 t2 011 3 t3 010 4 t4 110 5 t5 100 6 t6 101 7 1.2.5 无刷直流电机的速度控制电机的速度控制最基本的可以分为正反转控制和转速控制。而无刷直流电机的正反转控制则是由换相顺序决定,改变换相次序,即可改变电机正反转。速度控制采用脉冲宽度调制。即通过改变电机三相端的有效电压从而改变电机线圈的电流大小,由左手定则可知,转子所受力矩和电流大小有关。“脉冲宽度调制”英译为“pulse width modulation”,下文简称为pwm控制。pwm控制又分为“开环控制”和“闭环控制”。开环控制就是直接在电机的三相端直接加载固定占空比的脉冲。但是开环控制缺点就是受外界因素干扰大,所以本次设计采用了pid算法进行闭环控制,具体原理会在下文介绍。采用pid速度闭环控制实时性好,抗干扰能力强,尤其是在负载变化时依然可以保持一个恒定的转速。2 无刷直流电机驱动器的硬件设计图2-1是驱动器的整体框图,驱动器应该具备以下功能:u 功率开关管三相桥电路,通过正确换相,驱动电机运转; u 功率开关管驱动电路,提供足够的栅极开启电压,使功率开关管开启、关断; u mcu及其外围电路,控制功率开关管驱动电路,驱动三相电桥正确换相; u 有传感器转子检测电路,通过霍尔传感器检测电机转子位置; u 电源输入电路,为输入电源滤波稳压,防止电路过流、过压,防反接; u 电源转换电路,提供mcu、驱动电路、检测电路的电源。 图2-1 整体框图2.1 电源电路本次毕业设计采用的是直流24v输入电源供电,由于各个模块电路所需电压不同,比如mcu需要3.3v供电,而功率管驱动电路需要15v供电。所以需要进行dc-dc转换。2.1.1 电源输入电路电源输入电路部分有防浪涌电压,群脉冲和改善emc作用。主要有压敏电阻,瞬态电压抑制二极管,共模电感,以及保险管组成,电路如图2-2所示。图2-2 电源输入电路电源输入电路中元件的作用及选择如下: 压敏电阻:在供电网络中,电网波动、大功率设备起停或是雷击都有可能造成瞬时浪涌过压。压敏电阻通过过压瞬间的电阻急剧降低,将电压迅速拉低,来防止这种过电压对后级电路的影响。因为这里的供电电源是24v,电路中使用的压敏电阻的压敏电压为30v。当过电压超过30v时,压敏电阻起电压抑制作用。 瞬态电压抑制二极管:和压敏电阻类似主要是防止浪涌过压,但是瞬态电压抑制二极管由于开关速度更高,能抑制瞬时脉冲过压。这里瞬态电压抑制二极管的反向导通电压也是30v。 保险管:防止驱动板短路过流,当系统发生短路时,电流异常增大时,保险管将烧断,达到保护电路板不受过流损坏。由于电机的额定电流大约为2.5a,这里保险管的过流保护电流为5a,留有一定的瞬时过流余量。 二极管:防反接,当电源意外接反时,由于二极管的单向导通性,电源将不能导通,从而避免了后级电路的意外损坏。2.1.2 电源稳压模块在电压转换中,采用了2片lm2596稳压芯片,将24v的电源输入分别稳压至15v和5v。15v用来给功率管驱动电路供电,5v给霍尔传感器供电和mcu供电。具体电路如图2-3所示。图2-3 电源稳压电路lm2596系列是德州仪器(ti)生产的3a电流输出降压开关型集成稳压芯片,它内含固定频率振荡器(150khz)和基准稳压器(1.23v),并具有完善的保护电路、电流限制、热关断电路等。利用该器件只需极少的外围器件便可构成高效稳压电路。2.2 三相桥驱动模块图2-4 三相桥驱动电路2.2.1 功率开关管选择 选择功率管时,首先要考虑无刷直流电机的功率参数。本设计中所要驱动的无刷直流电机额定电压为24v,功率50w,即在额定电压下,电源所提供的电流约为2a。这里选择的功率管型号为irlr024n场效应管,其参数为:最大耐压值vds = 55v,导通阻抗rds(on) = 0.065,最大电流id = 17a,完全能够满足设计需求。这里需要注意,为了减少功率管发热,减小功率管功耗,应尽量选择导通阻抗较小的功率管;漏源极最大耐压值和漏极最大导通电流均需要能够满足电机的驱动要求。 功率管的另外一个重要参数是栅源极电压,即场效应管的开启电压。查阅数据手册可得,此种场效应管的开启电压为2-16v。开启电压越高时,漏极可导通电流越大。由于功率管的开通和关断是由3.3v电平的单片机控制的,开启电压3.3v时,漏源极可导通电流不足以驱动电机正常运行。所以这里对场效应管的驱动应选择适当的驱动电路,为其提供较大的开启电压,保证为电机供应较大的电流。对于功率开关管的驱动电路,将在后续章节介绍。对于三相桥电路,还有一点需要注意,三相桥中的同相上下半桥在任意时刻都不能同时导通。如果同时导通,由于场效应管的通流能力较大,上下半桥类似于短路,较大电流通过可能烧毁场效应管。这就需要在驱动电路或是程序编写时,注意防止上下半桥的同时导通。 2.2.2 三相电桥外围电路 如图2-4中,d5为30v的瞬态电压抑制二极管,用于吸收电机的三相线圈电感在电机频繁换相时,产生的开关脉冲,防止对电源和其他敏感低压数字电路的干扰,甚至严重时对其他电路模块的损坏。电容c25用来滤除高频干扰。电阻r36为电流采样电阻,把电流转换成电压输送给电流信号处理电路处理,最后反馈到单片机进行计算、控制。2.3 功率管驱动模块三相桥中的六只功率管需要在单片机的控制下,进行正确的换相,来驱动无刷直流电机转动。但是mkv10z32单片机输出电压为3.3v,而功率管的栅源极电压必须到达一定值才能提供较大的电流,让电机正常运行。为了使功率管能完全导通,必须保证vgs12v。为了保证这个电压条件,需要为功率管提供驱动电路。本设计中使用高压栅驱动芯片ir2101,利用泵电容充放电原理实现三相桥电路中某一相上下半桥功率管的各自开关。其驱动电路如图2-5所示,图中只列出了对三相桥v相的驱动电路,其他两相与此类似。图2-5 ir2101驱动电路一、 高压栅极驱动芯片选择 ir2101高压栅极驱动芯片。它有以下三个主要的特性: 具有防止上下桥臂同时导通的功能,当上下桥都输入有效时,能自动关断上下桥臂。我们从上一小节知道三相电桥的同相上下半桥是不能同时导通的,否则较长时间的同时导通将造成功率开关管导通极大电流,这将烧毁功率管。此芯片能在上下桥同时切换导通时,自动添加100ns死区时间。当控制端控制上下半桥同时导通时,两个功率管控制输出端都将保持低电平。 该芯片可提供10-20v的驱动电压。本设计中三相桥选用的功率开关管驱动电压在12v左右时,可通过的电流就完全能够满足电机的驱动电流要求。所以该芯片能满足驱动功率管的要求。 该芯片控制端能兼容3.3v和5v逻辑电平。各种类型的单片机均可用来控制其开关,进而驱动功率管。 这里我们利用ir2101组成的电路对泵电容进行充放电的原理,来实现对三相桥同相上下半桥的各自导通和截止控制。二、 泵电容充放电原理实现 本设计采用芯片ir2101对泵电容进行充放电,实现三相全桥上下半桥的通断控制,如图2-6和图2-7所示。图2-6 上半桥控制原理第一步:当驱动芯片的hin输入低电平,lin输入高电平,此时驱动芯片内ho和vs连通,功率管q1(上半桥功率管)关断,而下半桥的lo和vcc连通,q2管的栅极电压为15v,则q2管(下半桥功率管)导通。如果泵电容c1的两端电压小于15v(忽略d1和d2的压降),d1导通,电源就会通过d1和q2对泵电容充电。当c1将充电到15v,电压方向为上正下负。图2-7 下半桥控制原理第二步:泵电容放电过程其实就是提供上半桥导通电压的过程。当泵电容c1充电后,它的两端电压为15v,这是往驱动芯片的hin输入高电平,lin输入低电平,那么驱动内部的lo与gnd连通,q2截止;vb与ho连通,相当于泵电容c1的正极在q1管的栅极,负极接在了q1管的源极,因为电容c1的电压为15v,足够使q1管导通。 经过以上两步的控制和泵电容的充电放电,就顺利实现了三相电桥同相上下半桥的各自导通。2.4 霍尔信号检测电路本设计中霍尔传感器输出信号为5v电平,在信号送入到3.3v电平的单片机之前,需要进行相应的电平转换。图2-8所示是霍尔传感器输出信号的处理电路。图2-8 霍尔信号检测电路信号处理电路,首先是通过电阻上拉,增强信号的输出能力和稳定性。再通过具有一个施密特特性的反相器74lvc2g14对波形进行整定,最后输出波形经过电阻分压、电容滤波之后,和单片机的外部中断模块连接。 单片机通过将通用io配置为外部中断,并检测霍尔信号的上升跳变沿沿和下降跳变沿,响应中断对电机进行相应换相、计算和控制。2.5 电流信号检测电路电流信号检测部分将采集到的电流经过运算放大器至一个合适的值供单片机处理。如图2-9所示:图2-9 电流检测电路3 无刷直流电机驱动器的程序设计3.1 控制程序整体概述本设计使用了arm公司的keil mdk集成开发工具,进行控制程序的设计,方便程序编写和功能调试,另外mdk支持jlink的在线仿真调试,能实时观察程序的各种运行状态。 驱动板的控制程序主要包括四个方面:系统配置部分,电机控制部分,电机状态检测部分,上位机uart通信部分。 系统配置部分包括:单片机i/o设置,pwm产生设置,uart通信设置,adc采样设置等。 电机控制部分包括:pwm的输出控制,电机换相,电机状态控制等。 电机状态检测部分包括:霍尔传感器检测,无感检测和位置估算等。上位机uart通信部分包括:uart数据收发,控制协议解析等。3.2 电机驱动的实现无刷直流电机的驱动重点在于恰当的换相控制。本设计采用了单片机mkv10z32中使用灵活、功能强大的状态可配置定时器(ftm)来产生电机控制所需要的pwm波形。三路pwm输出配合三路i/o输出共同完成三相桥的换相和电机电压的控制。 3.2.1 换相的实现 本设计采用上半桥pwm调制,下半桥只控制通断不调制的三相桥换相控制方法,所以在换相控制时,上半桥由pwm输出控制,下半桥由单片机i/o口只控制通断。在程序实现时,换相程序就分成了pwm产生控制和i/o输出配置两部分。 本设计采用mkv10z32中的状态可配置定时器(ftm)来产生电机控制所需要的pwm波形。mkv10z32的ftm模块不同于传统单片机内部的定时器或是pwm模块,它是由多组输出匹配/输入捕获、事件、状态、输出等构成的,通过对这三者的配置,组合出千变万化的相互关系,从而来控制输入输出。 pwm的输出配置实质上是采用定时器的输出匹配功能,即计数器到达相应匹配寄存器的计数值,输出做出相应的变化,通过不同匹配寄存器的配合实现pwm波形周期、占空比的设定。程序相应的配置如程序3-1所列,pwm周期使用ftm0模块。程序3-1 ftm配置3.2.2 电机的起始和停止状态 本设计中的三相桥驱动电路采用的是泵电容充放电的原理实现的。从该原理中可以看出,三相桥的上半桥是泵电容提供的开启电压,而下半桥是由电源的正负端提供的开启电压。在驱动板上电初期,泵电容由于没有充电,此时两端电压不足以完全驱动上半桥开启。如果在这种情况下就对三相桥做出换相控制,很可能导致堵转。所以在驱动板初始化完成后,电机运行前,需要首先开启三相下半桥为泵电容充电,给三相桥的顺利换相做准备。另一方面,当电机长时间停止,换相停止时,泵电容也可能慢慢放电,达不到使功率管完全开启的电压,所以电机停止的状态也要保持泵电容保持一定的电压。 从驱动板上电初期和换相长时间停止这两方面考虑,三相桥对应电机的起始和停止均要保持下半桥开启,下半桥关断的状态,如程序3-2所示。 程序3-2 电机停止状态配置3.2.3 有感驱动算法对于有霍尔传感器的驱动方式,电机转子的位置与霍尔传感器的输出值是一 一对应的。如图3-1为霍尔传感器的输出波形与驱动pwm波形关系图,可以看出,当霍尔传感器输出发生跳变时,说明电机需要换相,读取三个霍尔的组合值,判断下一通电相序。所以对有感的驱动方式,最重要的是对霍尔传感器输出边沿跳变的捕获和输出值的读取。在接口程序初始化时,单片机的i/o口配置为双边沿的触发中断就可以检测传感器的边沿,如程序3-3 外部中断接口配置所示,传感器接口用到单片机的外部中断channel0、channel1、channel2,初始化成双边沿触发中断,在霍尔传感器输出发生跳变时,就可以立即进入相应外部中断服务函数,所以有感驱动的一大优点就是换相响应及时。图3-1 霍尔传感器输出与pwm调制波形程序3-3 外部中断接口配置在霍尔传感器输出跳变发生时,外部中断的双边沿跳变中断就会检测到,并发生中断执行中断服务函数。如程序3-4 外部中断服务程序所示,中断服务程序主要包括读取当前霍尔传感器的输出值,查询下一通电相序,执行换相程序。程序3-4 外部中断服务程序3.2.4 有感电机启动无刷直流电机的有感驱动方式相对简单,转子位置在任何时候都是可以通过传感器检测到的。所以在电机启动时,只要读取当前霍尔传感器输出值,查询下一通电相序,执行换相就可以了。只要给出的pwm占空比足够大,电机就可以开始顺利的转动了,当电机的转子转动霍尔传感器输出边沿跳变,即可进入外部中断服务函数进行正常的电机转动换相了。 由于启动时无法获知电机的负载多大,所以在启动初期,当给定的占空比不能顺利使电机转动时,就需要逐渐增大pwm的占空比,在第一次进入中断服务程序之前pwm的占空比都应该是逐渐增大的。如果pwm占空比接近100%,仍然未能进入第一次外部中断服务程序,说明电机的负载太大或是电机出现故障,此时电机的启动失败。上述的有感驱动方式下,电机的启动流程如图3-2所示。图3-2 有感启动流程3.2.5 有感速度测定由于无刷直流电机的换相时间和转子的位置变化有对应的关系,速度测定时,只要计算出换相之间的间隔时间就可以计算出电机的实际转速。电机转速控制的pwm周期是一定的,在程序设置时,将pwm的周期也就是单片机ftm单元的match0定义为定时器中断触发条件。每当一个pwm周期完成时,在中断服务函数中统计两次换相之间的pwm周期数,这就得到了换相的间隔时间。 有感驱动的三个霍尔传感器的安装可能并不均匀,由于有感驱动是换相程序在霍尔传感器的边沿跳变中断中完成的,这种不对称的霍尔传感器分布在测算两次换相间隔时间时,可能导致转速计算的抖动和不准确。为了避免这种可能的不对称带来的误差,本设计采用计算六次换相之间的间隔时间,来计算转速。这种采用多次换相来计算转速的方法,实际上就是求多次相邻换相之间的平均值。如程序3-5和程序3-6所示,为换相程序中的uv通电相序部分,每当uv相换相时都将转速计算标志置位,当下一次pwm周期中断到来时,将停止换相时间间隔计数,计算转速并清空间隔计数。程序3-5 电机换相程序程序3-6 转速的计算3.3 pid调速的实现本设计使用了pid算法对无刷直流电机的转速进行调节,使转速稳定在上位机给出的设定值,即使负载变化时也能给出恰当的调节,使转速稳定不变。 pid算法的实现中需要注意pid算式中几个变量的选取。首先是控制量,本设计中pid需要控制的是转速,而转速是由单片机ftm单元配置输出的pwm波形的占空比决定的,所以这里选取了控制pwm波形的ftm匹配通道match0的输出匹配寄存器的值作为pid的控制量;其次是设定量和反馈量,因为这里使用pid控制的是转速,所以设定量和反馈量为电机的转速,为了使pid算式的输出量的大小和控制量的大小相匹配,这里转速的单位使用的是转/分钟。如图3-3为pid的控制结构图。图3-3 pid控制结构图由于本设计中选取的单片机没有浮点运算单元,如果这里直接使用浮点运算进行pid运算,一次的运算时间会较长,而无刷直流电机的实时性要求较高,长时间的pid运算势必对电机的实时控制产生严重影响。为了减小pid的运算量,同时也为了上位机和驱动板之间的数据传输方便,pid参数使用了以一个char类型变量代替两位十进制数的方法实现的,比如pid比例参数分为khp和klp,前者代表参数的整数部分0-100,后者代表参数的小数部分0.00-0.99。这样在最终计算pid输出值时,只需在每部分进行一次整型的除法即可。pid的整个计算过程如程序3-7所示。程序3-7 pid控制算法3.4 上位机命令解析除了对无刷直流电机的驱动控制外,本设计还要实现上位机对驱动板的通信,使上位机能够实时观察和控制电机的运行状态。控制程序部分必须能够根据上位机发送的信息设置控制程序中的相应变量或是执行相应的功能函数。对上位机控制命令的解析如程序3-8所示,上位机发送信息的第一个字节data0表示了后续字节信息的含义。程序3-8 上位机命令解析程序4 上位机设计经过以上所有章节的描述,本系统电机驱动版块的结构和原理已经描述完毕,一个简介易用,设计优秀的系统必然包含出色的人机交互界面。不同于传统中在电机驱动板上加装输入输出设备的做法,本系统利用了上位机丰富的资源以及稳定的性能,设计了一款上位机软件,完成对电机驱动板的控制。如今用户体验已经成为了消费类电子领域的热门词汇,与此同时,工控产品也逐步开始追求良好的用户体验,本次设计可以充分运用高级语言自带的丰富控件以及第三方控件设计出友好的控制界面,添加更多人性化的功能。4.1 方案对比4.1.1 用visual basic语言编写上位机软件visual basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。它的程序是一种基于窗体的可视化组件安排的联合,窗体控件的增加和改变可以用拖放技术实现,每个控件都有自己的属性和事件。同时因为越来越多组件的出现,程序员可以选用自己需要的扩展库,vb也提供了建立、使用和重用第三方控件的方法。4.1.2 用c#语言编写上位机软件c#是一种安全、稳定、简单、优雅的,由c和c+衍生出来的面向对象的编程语言。它在继承c和c+强大功能的同时去掉了一些它们的复杂特性,综合了vb简单的可视化操作和c+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的特点,成为.net开发的首选语言。4.1.3 用labview开发环境开发上位机labview是一种图形化编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程生动有趣。labview尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,是一个面向客户很实用的工具。使用它进行原理研究、设计、测试并实现仪器系统以及数据采集时,可以大大提高工作效率。4.2 上位机编程语言方案论证总结根据三种开发语言的特点可知,labview较之vb和c#可以编译出更加友好的界面,在改善工控产品的用户体验方面有更多的发挥空间。同时labview用来进行原理研究、设计和测试,与另外两种语言相比,labview语言的特点与本次设计要改善上位机用户体验的目的更加吻合,故选择labview作为上位机软件开发的高级语言。如图4-1所示,是本次毕业设计的上位机控制程序。图4-1 上位机控制界面5 总结与展望开发出性能可靠的产品需要付出巨大的努力。在开发初期对整个产品的定位至关重要,决定了后期开发的投入和方向。 本设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论