还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要在国民生产中,随着现代技术的发展,电力电子技术已得到了全面的发展,其技术已应用到各个领域在各类机电系统中由于直流电机具有良好的启动、制动和调速性能直流电机调速系统已广泛运用于工业、航天领域的各个方面最常用的直流调速技术是脉宽调制PWM直流调速技术具有调速精度高、响应速度快、调速范围宽和损耗低的特点.而利用计算机数字控制也成了直流调速的一种手段数字控制系统硬件电路的标准化程度高控制软件能够进行复杂运算可以实现不同于一般线性调节的最优化、自适应、非线性、智能化等控制规律此外还拥有信息存储、数据通信和故障诊断等模拟系统无法实现的功能关键字AT89C51单片机;PWM技术;编码器;直流电动机AbstractInthenationalproductionalongwiththedevelopmentofmoderntechnologyelectronictechnologyhasbeenacomprehensivedevelopmentthetechnologyhasbeenappliedinvariousfields.InallkindsofmechanicalsystemduetothedcmotorhasagoodstartbrakeandtheperformanceofspeeddcmotorcontrolsystemhasbeenwidelyusedinindustryspaceflightmostcommonlyuseddcspeedcontroltechnologyisapulsewidthmodulationPWMdcspeedcontroltechnologywhichhasahighprecisionfastresponsetimehighspeedrangeandwidthofthelowlosscharacteristicsanduseofcomputerdigitalcontrolhasbecomeakindofmethodofdcspeedcontrolsystemthehardwarecircuitofahighdegreeofstandardizationcontrolsoftwaretocarryoutcomplexoperationcanberealizeddifferentfromthegenerallinearoptimizationandadjustmentoftheadaptivenonlinearintelligentcontrollawalsohaveinformationstoragedatacommunicationandfaultdiagnosiscannotachievesuchsimulationsystemKeywords:AT89C51microcontroller;PWMtechnology;encoder;DCMotor目录TOC\o1-3\h\z\u
1.引言
12.系统方案论证
22.1系统总方案论证与选择
22.2设计模块方案比较与分析
32.
2.1电机调速控制模块
32.
2.2PWM调速工作方式43硬件部分
43.1单片机的选型
43.2PWM控制技术
83.3驱动电路
93.
3.1芯片IR2110性能及特点
93.
3.2IR2110的引脚图以及功能
93.4PWM控制H桥双极性主电路
113.5检测回路
133.
5.1光电编码盘
143.6键盘及显示电路
153.
6.1键盘/显示芯片8279简介
153.
6.3显示器设计164模块的原理与应用
174.1PWM调脉宽方式
174.2定时器/计数器
174.3直流电机调速原理
184.4PWM基本原理及实现方法
184.5PWM在直流调速中的应用
184.6桥式可逆PWM变换器
194.7M/T法测速原理215软件部分
225.1主程序及系统初始化模块
225.2模块程序设计
235.
2.1外部中断0模块设计
235.
2.2外部中断1模块设计
235.
2.3内部定时器T0溢出中断设计
235.3中断子程序模块
245.4键盘/显示模块设计
245.5数字PID流程图
265.6源程序29谢辞35参考文献
361.引言在电气传动领域中,随着各项技术水平的不断提高,使得传统工艺有了深层次的提高,对人类的生产与生活,产生了深刻且深远的影响,已经与我们息息相关由于直流电动机具有良好的起动、制动性能适宜在大范围内平滑调速因此在许多需要调速或快速正反向的电力拖动系统中得到了广泛的应用而且从控制的角度来看直流调速还是交流调速,都用到拖动系统的基础早期直流电动机的控制均以模拟电路为基础由运算放大器、非线性集成电路以及少量的数字电路组成控制系统的硬件部分非常复杂功能单一而且系统非常不灵活、调试困难触发精度易受电网电压波动的影响,触发脉冲不对称度较大,调节器中的运算放大器,因网压和温度变化引起的漂移会产生运算误差,模拟器件老化也会引起运算误差,甚至使已经整定好的系统性能变差,这些都阻碍了直流电动机控制技术的发展和应用范围的推广随着单片机技术的日新月异使许多控制功能及算法可以采用软件技术来完成不但为直流电动机的控制提供了更大的灵活性而且使系统能达到了更高的性能从而大大节约了人力资源降低了系统成本有效地提高了工作效率因为单片机具有小巧灵活、成本低、易于产品化、可靠性好、适应温度范围宽、易扩展、控制功能强等优点,用单片机取代模拟电路作为电动机的控制器,使电路更简单,模拟电路为了实现控制逻辑需要许多电子元件使电路复杂使用单片机微处理器后绝大多数控制逻辑可通过软件实现可以实现较复杂的控制单片机有更强的逻辑功能运算速度和精度高、有大容量的存储单元因此有能力实现复杂的控制灵活性和适应性强单片机的控制方式是由软件完成的如果需要修改控制规律一般不必改变系统的硬件电路只需修改程序即可在系统调试和升级时可以不断尝试选择最优参数非常方便无零点漂移控制精度高、数字控制不会出现模拟电路中经常遇到的零点漂移问题无论被控量的大小都可以保证足够的控制精度可提供人机界面多机联网工作等优点所以在电气传动实时控制系统中受到重视和普遍应用利用单片机逻辑功能强和软件灵活的优点,不仅可使很多控制硬件软件化,便于参数的设定和调整,而且可以同时对系统工作中的各种信息数据进行诊断、检测和及时处理,加强了实时维护和提高了控制系统的可靠性它的发展趋势将是向大容量、高性能化、外围电路内装化等方面发展
2.系统方案论证
2.1系统总方案论证与选择方案一直接加直流电源来控制电机的转动速度;根据电动机在其额定电压时,电动机有一定的额定转速根据其输入电压的减小,其转动速度也相应的减小从而在传统的改变电动机的转速问题中,就是利用所给电动机的电压的不同,而达到人们所需要的大约速度方案二以单片机AT89C51为中心通过D/A转换器将单片机数字量转换为模拟量,从而起到控制电动机的转速问题其中在单片机控制部分通过按键直接从程序中调出所需要速度的值,同时输到数码显示部分和D/A转换部分以实现电动机的调速图1电路组成框图方案三采用AT89C51单片机进行控制本设计需要使用的软件资源比较简单,只需要完成编码器采样部分、键盘控制部分以及显示输出功能采用AT89C51进行控制比较简单、易控制、可靠性高、抗干扰能力强、精度高且体积大大减小输出速度的调节是通过键操作,显示速度AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器.具有4K字节可编程闪烁存储器可擦除的的只读存储器PEROMATMEL的AT89C51是一种高效微控制器.AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和电模式、片内振荡器和时钟电路电路框图如图2#0;��������#0;����#0;������#0;PWM����#0;��������#0;������#0;������#0;����������#0;图2电路组成框图方案分析方案一只能以减小所给电压值而能使电动机的转速有相应的减小,此方案操作性差且不安全方案二不能及时的从电动机那里得到相应的转动速度,而是直接从程序哪儿调用相应的数值给数码显示所以,此处的电路在速度的显示上失去了其真实性方案三在可操作性与实时性方面都都结合了本专业特点,从控制理论与控制技术出发,充分发挥与应用本学科特点所以,设计采用方案三
2.2设计模块方案比较与分析
2.
2.1电机调速控制模块方案一采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难方案二采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高方案三采用由达林顿管组成的H型PWM电路用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术兼于方案三调速特性优良、调整平滑、调速范围广、过载能力大,因此本设计采用方案三
2.
2.2PWM调速工作方式方案一双极性工作制双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速方案二单极性工作制单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速由于单极性工作制中,应用相对简单易于实现与操作,所以我们采用了单极性工作制3硬件部分
3.1单片机的选型Wln$L AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISPIn-systemprogrammable的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案
3.
1.1主要特性+{‑a}Pm Xp7{s7hSP · 8031CPU与MCS-51兼容{3-RR ~f2b{uc9H·4K字节可编程FLASH存储器寿命1000写/擦循环d0x.^- 全静态工作0Hz-24KHzeF@-daIx e92zofQR·三级程序存储器保密锁定hf!{R‑ ·128*8位内部RAMP]SN JA;^9W ·32条可编程I/O线hZ!KUy bp8xkfT# ·两个16位定时器/计数器RsgT5; YT·6个中断源R|b%Lsa= Bh#K3B|O ·可编程串行通道Y}^`{qQ a]7By$z ·低功耗的闲置和掉电模式%W$Wy~9+ W[2^Z ·片内振荡器和时钟电路mh\^`5~ a\Y|6 qV13 ·图3单片机芯片
3.
1.2.管脚说明gqzCLQ unAd20b*p VCC供电电压-i..bm [h^xy0:m GND接地UGR`QR %B}I;w9 P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P1口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高xqdee:RD n4xR3^|z P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故在FLASH编程和校验时,P1口作为第八位地址接收p}o{0Z L@#-\V
6. P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号eF^qL]T: 2LzI2Dn P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平,并用作输入作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故hv9PGg6 qh*5s P3口也可作为AT89C51的一些特殊功能口,如下表所示1-jf* C‑eNWlM=W口管脚备选功能v6w8=T-
6.T/Kj$DWa P
3.0RXD(串行输入口)]W
8.]oLh m38*sx P
3.1TXD(串行输出口)EOBh0$!e -MpHSho$ P
3.2/INT0(外部中断0)#!Id%=P2 WE]+VsP
3.3/INT1(外部中断1)9o[4%I [tI39P
3.4T0(记时器0外部输入)s_oMyCVC Z2p^Pmx P
3.5T1(记时器1外部输入)zN;u.8h0 @;g!P
3.6/WR(外部数据存储器写选通)z=IkMktD luo/u‑ P
3.7/RD(外部数据存储器读选通)gh~;6t*a ddtRfXUN P3口同时为闪烁编程和编程校验接收一些控制信号5V/y4 ]/Uw]%4s I/O口的内部结构如图4 |2pRdn^ **;rVNGw_#-图4内部结构I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心:\Hs600 ]h`wM` 读引脚时也就是把端口作为外部输入线时首先要通过外部指令把端口锁存器置1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能‑w%oQ+ @!nt2e RST复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间g|DXz/‑K2yiD\ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用另外,该引脚被略微拉高如果微处理器在外部执行状态ALE禁止,置位无效%mc bNIX%r%7 /PSEN外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现Jxe|wh3 M=VrrD /EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)2pvyNYGV _\Ko|I XTAL1反向振荡放大器的输入及内部时钟工作电路的输入:d#o0 249}V‑. XTAL2来自反向振荡器的输出2y*daG
3.
1.8kxx1/}=3振荡器特性nyC@5^n1 \ XTAL1和XTAL2分别为反向放大器的输入和输出该反向放大器可以配置为片内振荡器石晶振荡和陶瓷振荡均可采用如采用外部时钟源驱动器件,XTAL2应不接有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度z13T}D09{~ [OkN
3.
1.4芯片擦除9[i678EMM! `/-Lxa 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行kZ4;`^Psp ^AIALg\ 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式在闲置模式下,CPU停止工作但RAM,定时器,计数器,串口和中断系统仍在工作在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止
3.2PWM控制技术PWM是PulseWidthModulation的缩写即脉冲宽度调制是通过对一系列脉冲的宽度进行调制来等效地获得所需要波形含形状和幅值.调速可分为直流调速和交流调速尽管直流电机比交流电机结构复杂、成本较高、维修保养贵,但是其调速性能好,所以在调速传动领域中一直占主导地位
3.3驱动电路该驱动电路采用了IR2110集成芯片,该集成电路具有较强的驱动能力和保护功能
3.
3.1芯片IR2110性能及特点IR2110是美国国际整流器公司利用自身独有的高压集成电路以及无闩锁CMOS技术,于1990年前后开发并且投放市场的,IR2110是一种双通道高压、高速的功率器件栅极驱动的单片式集成驱动器它把驱动高压侧和低压侧MOSFET或IGBT所需的绝大部分功能集成在一个高性能的封装内,外接很少的分立元件就能提供极快的功耗,它的特点在于,将输入逻辑信号转换成同相低阻输出驱动信号,可以驱动同一桥臂的两路输出,驱动能力强,响应速度快,工作电压比较高,可以达到600V,其内设欠压封锁,成本低、易于调试高压侧驱动采用外部自举电容上电,与其他驱动电路相比,它在设计上大大减少了驱动变压器和电容的数目,使得MOSFET和IGBT的驱动电路设计大为简化,而且它可以实现对MOSFET和IGBT的最优驱动,还具有快速完整的保护功能与此同时,IR2110的研制成功并且投入应用可以极大地提高控制系统的可靠性降低了产品成本和减少体积
3.
3.2IR2110的引脚图以及功能引脚1(LO)与引脚7(HO)对应引脚12以及引脚10的两路驱动信号输出端,使用中,分别通过一电阻接主电路中下上通道MOSFET的栅极引脚2(COM)下通道MOSFET驱动输出参考地端,使用中,与引脚13(Vss)直接相连,同时接主电路桥臂下通道MOSFET的源极引脚3(Vcc)直接接用户提供的输出极电源正极,并且通过一个较高品质的电容接引脚2引脚5(Vs)上通道MOSFET驱动信号输出参考地端,使用中,与主电路中上下通道被驱动MOSFET的源极相通与引脚6(VB)通过一阴极连接到该端阳极连接到引脚3的高反压快恢复二极管,与用户提供的输出极电源相连,对Vcc的参数要求为大于或等于—
0.5V,而小于或等于+20V引脚9(VDD)芯片输入级工作电源端,使用中,接用户为该芯片工作提供的高性能电源,为抗干扰,该端应通过一高性能去耦网络接地,该端可与引脚3(Vcc)使用同一电源,也可以分开使用两个独立的电源引脚10(HIN)与引脚12(LIN)驱动逆变桥中同桥臂上下两个功率MOS器件的驱动脉冲信号输入端应用中,接用户脉冲形成部分的对应两路输出,对此两个信号的限制为Vss-
0.5V至Vcc+
0.5V,这里Vss与Vcc分别为连接到IR2110的引脚13(Vss)与引脚9(VDD)端的电压值引脚11(SD)保护信号输入端,当该引脚为高电平时,IR2110的输出信号全部被封锁,其对应的输出端恒为低电平,而当该端接低电平时,则IR2110的输出跟随引脚10与12而变化引脚13(Vss)芯片工作参考地端,使用中,直接与供电电源地端相连,所有去耦电容的一端应接该端,同时与引脚2直接相连引脚
8、引脚
14、引脚4为空引脚图7IR2110管脚图IR2110采用HVIC和闩锁抗干扰CMOS工艺制作,具有独立的高端和低端输出通道;逻辑输入与标准的CMOS输出兼容;浮置电源采用自举电路,其工作电压可达500V,du/dt=±50V/ns,在15V下的静态功耗仅有
1.6mW;输出的栅极驱动电压范围为10~20V,逻辑电源电压范围为5~15V,逻辑电源地电压偏移范围为-5V~+5VIR2110采用CMOS施密特触发输入,两路具有滞后欠压锁定推挽式驱动输出峰值电流≥2A,负载为1000pF时,开关时间典型值为25ns两路匹配传输导通延时为120ns,关断延时为94nsIR2110的脚10可以承受2A的反向电流图8IGBT驱动电路
3.4PWM控制H桥双极性主电路从上面的原理可以看出,产生高压侧门极驱动电压的前提是低压侧必须有开关的动作,在高压侧截止期间低压侧必须导通,才能够给自举电容提供充电的通路因此在这个电路中,Q
1、Q4或者Q
2、Q3是不可能持续、不间断的导通的我们可以采取双PWM信号来控制直流电机的正转以及它的速度将IC1的HIN端与IC2的LIN端相连,而把IC1的LIN端与IC2的HIN端相连,这样就使得两片芯片所输出的信号恰好相反在HIN为高电平期间,Q
1、Q4导通,在直流电机上加正向的工作电压其具体的操作步骤如下当IC1的LO为低电平而HO为高电平的时候,Q2截止,C1上的电压经过VB、IC内部电路和HO端加在Q1的栅极上,从而使得Q1导通同理,此时IC2的HO为低电平而LO为高电平,Q3截止,C3上的电压经过VB、IC内部电路和HO端加在Q4的栅极上,从而使得Q4导通电源经Q1至电动机的正极经过整个直流电机后再通过Q4到达零电位,完成整个的回路此时直流电机正转在HIN为低电平期间,LIN端输入高电平,Q
2、Q3导通,在直流电机上加反向工作电压其具体的操作步骤如下当IC1的LO为高电平而HO为低电平的时候,Q2导通且Q1截止此时Q2的漏极近乎于零电平,Vcc通过D1向C1充电,为Q1的又一次导通作准备同理可知,IC2的HO为高电平而LO为低电平,Q3导通且Q4截止,Q3的漏极近乎于零电平,此时Vcc通过D2向C3充电,为Q4的又一次导通作准备电源经Q3至电动机的负极经过整个直流电机后再通过Q2到达零电位,完成整个的回路此时,直流电机反转因此电枢上的工作电压是双极性矩形脉冲波形,由于存在着机械惯性的缘故,电动机转向和转速是由矩形脉冲电压的平均值来决定的设PWM波的周期为T,HIN为高电平的时间为t1,这里忽略死区时间,那么LIN为高电平的时间就为T-t1HIN信号的占空比为D=t1/T设电源电压为V,那么电枢电压的平均值为Vout=[t1-T-t1]V/T=2t1–TV/T=2D–1V定义负载电压系数为λ,λ=Vout/V那么λ=2D–1;当T为常数时,改变HIN为高电平的时间t1,也就改变了占空比D,从而达到了改变Vout的目的D在0—1之间变化,因此λ在±1之间变化如果我们联系改变λ,那么便可以实现电机正向的无级调速当λ=
0.5时,Vout=0此时电机的转速为0;当
0.5λ1时,Vout为正,电机正转;当λ=1时,Vout=V电机正转全速运行图9电机驱动电路
3.5检测回路检测回路利用光电编码器将转速直接转换成数字信号送入单片机进行处理编码器是把角位移或直线位移转换成电信号的一种装置前者成为码盘,后者称码尺.按照读出方式编码器可以分为接触式和非接触式两种.接触式采用电刷输出,一电刷接触导电区或绝缘区来表示代码的状态是“1”还是“0”;非接触式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件时以透光区和不透光区来表示代码的状态是“1”还是“0” 按照工作原理编码器可分为增量式和绝对式两种增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关图5光电编码器实物图
3.
5.1光电编码盘光电编码盘是将测得的角位移转换成为相应的电脉冲信号输出的数字传感器,本设计采用增量式光电编码器来采样转速信号,如图8所示增量式编码器是专门了用来测量转动角位移的累计量这里以三相编码器为例来介绍增量式编码器的工作原理及其结构图6编码器原理图增量式光电编码器在圆盘上有规则地刻有透光和不透光的线条,在圆盘两侧安放发光元件和光敏元件当圆盘随电机旋转时,光敏元件接受的光增量随透光线条同步变化,光敏元件输出波形经过整形后变成脉冲码盘上有向标志,每转一圈z相输出一个脉冲此外,为判断旋转方向,码盘还提供相位相差90°的两路脉冲信号将A、B两相脉冲中任何一相输入计数器中,均可使计数器进行计数编码盘输出的z相脉冲用于复位计数器,每转一圈复位一次计数器编码盘的旋转方向可以通过D触发器的输出信号Q来判断整形后的A、B两相输出信号分别接到D触发器的时钟端和D输入端,D触发器的CLK端在A相脉冲的上升沿触发由于A、B两相的脉冲相位相差90°,当电机正转时,B相脉冲超前A相脉冲90°,触发器总是在B脉冲为高电平时触发,这时D触发器的输出端Q输出为高电平当电机反转时,A相脉冲超前B相脉冲90°,则D触发器总是在B脉冲为低电平时触发,这时Q输出端输出为低电平,由此确定电机的转动方向转速检测的精度和快速性对电机调速系统的静、动态性能影响极大为了在较宽的速度范围内获得高精度和快速的数字测速,本设计使用每转1024线的光电编码器作为转速传感器,它产生的测速脉冲频率与电机转速有固定的比列关系,微机对该频率信号采用M/T法测速处理
3.6键盘及显示电路键盘在单片机应用系统中能实现向单片机输入数据、传诵命令等功能,是人工干预单片机的主要手段.单片机应用系统中,键盘扫描只是CPU的工作内容之一CPU在忙于各项工作任务时,如何兼顾键盘的输入,取决于键盘的工作方式键盘的工作方式的选取应根据实际应用系统中CPU工作的忙、闲情况而定其原则是既要保证能及时响应按键操作,又要不过多占用CPU的工作时间
3.
6.1键盘/显示芯片8279简介Intel公司的8279是键盘/显示模块的核心控制器如图10所示它是一种实现键盘输入和段式数码显示控制的专用智能芯片采用该芯片可以大大简化单片机控制系统的软硬件设计并且减轻CPU的负担简单地说它有以下一些功能:与微处理器接口简单;能自动实现按键的“去抖”和重键处理;能以中断或查询两种方式工作;能按FIFO先进先出方式实现8个键值的缓冲;常规情况下能同时管理64个物理键和16个八段数码管其引脚定义如下:DB0~DB7:双向数据总线/RD、/WR:读写选通信号/CS:片选信号RESET:复位信号CLK:时钟信号A0:命令/状态或数据识别信号A=1为写命令或读状态;A=0为数据IRQ:中断请求信号SL0~SL3:矩阵扫描线RL0~RL7:检测输入线/BD:显示消隐信号SHIFT:扩展键位的换档信号带上拉电阻CTRL/STB:控制键输入/选通信号输入带上拉电阻
3.
6.2键盘设计采用4*4式键盘,分数字部分和控制部分,如图下表所示数字部分用来输入给定转速,控制部分用来控制电机的运行0123456789取消确认测速停车图10显示器图输入给定转速时应注意的几个问题
(1)转速不足四位时,在前面加拨0凑够四位;
(2)转速输入错误时,按取消键,显示器清空,重新输入值;
(3)转速输入完成后,按确认键
3.
6.3显示器设计采用共阴极的发光二极管构成可以显示4位十进制的显示器,运行中显示当前的实际转速值如上图示8279与单片机、键盘和显示器的外围总接线如图11示#0;#0;#0;AT89S51#0;图11显示器/键盘驱动电路4模块的原理与应用
4.1PWM调脉宽方式调脉宽的方式有三种定频调宽、定宽调频和调宽调频我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便4BE|‑
44.2定时器/计数器由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同因此,首先必须明确定时器的定时初值与定时时间的关系如果单片机的时钟频率为f,定时器/计数器为N位,则定时器初值与定时时间的关系为式中,TW—定时器定时初值;N—一个机器周期的时钟数N随着机型的不同而不同在应用中,应根据具体的机型给出相应的值这样,我们可以通过设定不同的定时初值TW,从而改变占空比,进而达到控制电机转速的目的
4.3直流电机调速原理根据励磁方式不同,直流电机分为自励和他励两种类型不同励磁方式的直流电机机械特性曲线有所不同对于直流电机来说,人为机械特性方程式为分析1式可得.当分别改变UN、和Rad时,可以得到不同的转速n,从而实现对速度的调节由于Ф=FIf,当改变励磁电流If时,可以改变磁通量Ф的大小,从而达到变磁通调速的目的但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流If,和磁通量Ф只能在低于其额定值的范围内调节,故只能弱磁调速而对于调节电枢外加电阻Rad时,会使机械特性变软,导致电机带负载能力减弱理想空载转速n0随电枢电压升降而发生相应的升降变化不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速.
4.4PWM基本原理及实现方法其方法是通过改变电机电枢电压接通时间与通电周期的比值即占空比来控制电机速度这种方法称为脉冲宽度调制,简称PWM.调速原理如图所示通过控制脉冲占空比来改变电机的电枢电压.Vd=Vmax*D2由公式2可见,当我们改变占空比D=t1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的严格地讲,平均速度与占空比Vd并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系
4.5PWM在直流调速中的应用PWM广泛应用于直流调速系统,例如,以往普遍应用的晶闸管相控整流—直流电机调压调速系统,现在也发展了全波步控整流PWM斩波—直流电压调速系统,开关磁阻电动机也是有直流斩波器供电的PWM控制技术是利用半导体开关器件的导通与关断把直流电压变成电压脉冲序列,并通过控制电压脉冲宽度或周期以达到变压目的,或者控制电压脉冲宽度和脉冲序列的周期以达到变压变频目的的一种控制技术直流电动机转速n的表达式为n=Ua-IaΣRa∕Ce-φ(r/min)式中Ua—电枢端电压(V)Ia—电枢电流(Α)ΣRa—电枢电路总电阻(Ω)Φ—每级磁通量(Wb)Ce—与电机结构有关的常数由式可知,直流电动机转速n的控制方法可分为两类,即励磁控制法与电枢电压控制法励磁控制法控制励磁通Φ,其控制功率虽然小,但低速时受到磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制而且由于励磁线圈电感较大,动态响应较差所以常用的是电枢电压控制法Ua=Ud-IaR,虽然调节电阻R即可改变端电压达到调速目的,但这种方法效率很低随着电力电子技术的进步,可由PWM斩波器进行斩波调压本文主要介绍PWM实现的直流调速系统
4.6桥式可逆PWM变换器脉宽调制器的作用是用脉冲宽度调制的方法,把恒定的直流电源电压调制成频率一定宽度可变的脉冲电压序列,从而平均输出电压的大小,以调节电机转速桥式可逆PWM变换器电路如图12所示这是电动机M两端电压的极性随开关器件驱动电压的极性变化而变化图12桥式可逆PWM变换器电路双极式控制可逆PWM变换器的四个驱动电压波形如图6所示图13PWM变换器的驱动电压波形他们的关系是在一个开关周期内,当时,晶体管、饱和导通而、截止,这时当时,、截止,但、不能立即导通,电枢电流经、续流,这时在一个周期内正负相间,这是双极式PWM变换器的特征,其电压、电流波形如图2所示电动机的正反转体现在驱动电压正、负脉冲的宽窄上当正脉冲较宽时,,则的平均值为正,电动机正转,当正脉冲较窄时,则反转;如果正负脉冲相等,,平均输出电压为零,则电动机停止双极式控制可逆PWM变换器的输出平均电压为如果定义占空比,电压系数则在双极式可逆变换器中调速时,的可调范围为0~1相应的当时,为正,电动机正转;当时,为负,电动机反转;当时,,电动机停止但电动机停止时电枢电压并不等于零,而是正负脉宽相等的交变脉冲电压,因而电流也是交变的这个交变电流的平均值等于零,不产生平均转矩,徒然增大电动机的损耗这是双极式控制的缺点但它也有好处,在电动机停止时仍然有高频微震电流,从而消除了正、反向时静摩擦死区,起着所谓“动力润滑”的作用双极式控制的桥式可逆PWM变换器有以下优点1)电流一定连续2)可使电动机在四象限运行3)电动机停止时有微震电流,能消除静摩擦死区4)低速平稳性好,每个开关器件的驱动脉冲仍较宽,有利于保证器件的可靠导通
4.7M/T法测速原理M/T法测速原理是在对光电编码器输出的测速脉冲数m1进行计数的同时对时钟脉冲的个数m2也进行计数原理如图14图14M/T法测速原理测速时间Td由测速脉冲来同步,即由图8电路实现Td等于整m1个脉冲周期设从图9上a点开始,计数器分别对m1和m2计数,到达b点,预计的测速时间Tc到,微机发出停机指令,但因为Tc不一定恰好等于整数个编码输出脉冲周期,所以计数器仍对时钟脉冲计数,直到c点时,可以利用下一个转速脉冲上升沿(即c点)触发数字测速硬件电路使计数器停止计数这样,m2代表了m1个测速脉冲周期的时间设时钟脉冲频率为f0,光电编码器每转发出p个脉冲,则电机转速的计算公式为n=60*m1*f0/z*m25软件部分
5.1主程序及系统初始化模块主程序——完成实时性要求不高的功能,完成系统初始化后,实现键盘处理、刷新显示、与上位计算机和其他外设通信等功能,如图15初始化子程序——完成硬件器件工作方式的设定、系统运行参数和变量的初始化等,如图16text#0;text#0;#0;��������#0;������#0;����������#0;������#0;������������#0;����������#0;������������PWM������������������#0;����������������#0;����I/O������������������������������#0;����#0;��������#0;Y#0;N#0;图15主程序流程图图16初始化子程序主程序主要完成键盘/显示芯片
8279、内部定时/计数器T
0、T1测速和变量的初始化此程序共有2个中断源外部中断0,用于电机故障处理;外部中断1,用于键盘输入处理
5.2模块程序设计
5.
2.1外部中断0模块设计外部中断0是故障中断,优先级最高当电机出现问题时向CPU申请中断响应中断后封锁PWM输出,使电机停转
5.
2.2外部中断1模块设计外部中断1是键盘输入中断,高优先级当键盘有输入值时,8279向CPU申请中断读取键值,按其实际功能进行操作
5.
2.3内部定时器T0溢出中断设计转速测定为M/T式编码盘测速,要通过测取给定时间内的编码盘输出的脉冲数T0用来定时,T1用来计数,T0和T1均工作与方式1T0定时50ms,单片机的时钟频率为12MHz,机器周期为1us,
5.3中断子程序模块中断服务子程序完成实时性强的功能,如故障保护、PWM生成、状态检测和数字PID调节等中断服务子程序由相应的中断源提出申请,CPU实时响应#0;��������#0;��������#0;��������#0;��������#0;��������#0;��������#0;��������#0;#0;����PWM����#0;������������������#0;��������#0;������������#0;图17转速调节中断子程序框图图18故障保护中断子程序框图当故障保护引脚的电平发生跳变时申请故障保护中断,而转速调节采用定时中断两种中断服务中,故障保护中断优先级别最高,,转速调节中断级别次之
5.4键盘/显示模块设计键盘/显示模块核心控制器件是8279,由软件设置为8字符显示,左端送入,编码扫描键盘,双键互锁,内部时钟频率设置为100KHz按键操作由终端导入,静态显示方式图19显示子程序图20测速子程序
5.5数字PID流程图数字PID控制算法可以分为位置式PID和增量式PID控制算法将模拟的PID算式用求和的方式代替积分;用增量的方式代替微分.则可作如下近似k=012……..进行离散处理有这便是增量式PID算式,由于它的每次输出均与过去有关,计算时要对Ek进行累加,故工作量特别大因此一般不用位置式PID对三式稍作推导即可得到下式式中B=由式看出,如果计算机采用恒定的采样周期T一旦确定了ABC只要使用前三次测量值的偏差,就可以由式求出控制增量如图21所示.图21PID流程图图22调速软件系统框图
5.6源程序///*************************************************************************///直流电机的pwm控制程序///功能直流电机的速度控制,速度测试,速度显示///*************************************************************************#includereg
51.h///包含头文件#includeabsacc.h#definegwDBYTE[0X40]///定义显示缓冲区个位#defineswDBYTE[0X41]//////////////////十位#definebwDBYTE[0X42]//////////////////百位#defineqwDBYTE[0X43]//////////////////千位#defineunintunsignedint///自定义变量#defineucharunsignedcharsbitin1=P3^0;///控制位定义sbitin2=P3^1;sbitena=P3^7;ucharcodezm
[12]={0X3F0X060X5B0X4F0X660X6D0X7D0X070X7F0X6F0x730x71};///在程序存储区定义字型码表ucharcodewm
[4]={0xfe0xfd0xfb0xf7};///在程序存储区定义字位控制码表uchara=8;///占空比控制字ucharn=1;///速度增减量一ucharm=2;///速度增减量二unintspeedbuf=0;///速度值ucharzc=0;unintys=0;key;///子函数声明display;control;delays;speedcan;///*************************************************************************************************************///主函数///*************************************************************************************************************main{gw=sw=bw=qw=0;///显示初始化P0=0xc0;P2=0;in1=0;///电机控制的初始化in2=0;ena=1;TMOD=0X15;///定时器1为定时模式使用方式2;定时器0为计数模式使用方式2TH1=0Xfa;///装定时器初值TL1=0X24;TH0=0;///装计数器初值TL0=0;EA=1;///开总中断ET0=1;///允许定时器0中断ET1=1;///允许定时器1中断TR0=1;///开计数器TR1=1;///开定时器while1///无限循环{key;///调用按键扫描程序control;///调用电机控制程序display;///调用显示程序speedcan;///调用速度处理程序}}///*************************************************************************///中断处理程序实现输出方波占空比控制///*************************************************************************timer_1interrupt3using1///定时器1中断使用寄存器组1{TR1=0;///停止定时zc++;///中断次数加1ys++;control;speedcan;TH1=0Xfa;///重装定时初值TL1=0X24;TR1=1;}///*************************************************************************///脉宽控制程序实现PWM的输出///*************************************************************************control{ifzc==a{ena=0;}ifzc==15{zc=0;ena=1;}}///*************************************************************************///显示子函数显示当前电机的速度///*************************************************************************display{uchari;gw=speedbuf%10;///求速度个位值送各位显示缓冲sw=speedbuf/10%10;///求速度十位值送十位显示缓冲bw=speedbuf/100%10;///求速度百位值送百位显示缓冲qw=speedbuf/1000;///求速度千位值送千位显示缓冲fori=0;i4;///循环选中数码管的每一位{P2=wm[i];ifi==0///显示个位{P0=zm[gw];delays;}elseifi==1///显示十位{P0=zm[sw];delays;}elseifi==2///显示百位{P0=zm[bw];delays;}elseifi==3///显示千位{P0=zm[qw];delays;}i++;}}///*************************************************************************///读速度值子函数从计数器0中读计数值经过计算求出当前速度值///*************************************************************************speedcan{ifys==500{TR0=0;///停止计数speedbuf=TH0*256+TL0*8/3;///读计数器ys=0;TH0=0;///重装计数初值TL0=0;TR0=1;///开计数器}}///*************************************************************************///延时子函数///*************************************************************************delays{uchari;fori=80;i0;i--;}///*************************************************************************///键盘扫描子函数实现电机的方向速度的控制///*************************************************************************key{uchari;P1=0xff;///拉高P1口的电平i=P1;///读P1口ifi==0xfe///第一个键按下{delays;///延时去抖动ifi==0xfe///再判断按键是否按下{in1=0;///电机顺时针转动in2=1;}}ifi==0xfd///第二个键是否按下{delays;///延时去抖动ifi==0xfd///再判断按键是否按下{in1=1;///电机逆时针转动in2=0;}}ifi==0xfb///第三个键是否按下{delays;ifi==0xfb{a=a+n;///速度加慢速ifa=15a=15;}}ifi==0xf7{delays;ifi==0xf7{ifa3///速度减慢速a=a-n;elsea=3;}}ifi==0xef{delays;ifi==0xef{a=a+m;///速度加快速ifa=15a=15;}}ifi==0xdf{delays;ifi==0xdfifa3///速度减快速a=a-m;elsea=3;}ifi==0xbf{delays;ifi==0xbf{in1=0;///停止转动in2=0;}}ifi==0x7f{delays;ifi==0x7fa=5;///回到中间速度}whileP1!=0xff;///等待按键放下}谢辞感谢参考文献
[1]王兆安等.电力电子技术[M].北京.机械工业出版社.2000年.
[2]周渊深.交直流调速系统与MATLAB仿真[M].北京.中国电力出版社,2007年.
[3]陈伯时.运动控制系统[M].北京.机械工业出版社.2003年.
[4]黄家善等.电力电子技术[M].北京.机械工业出版社.2007年.
[5]孙立志.PWM与数字化电动机控制技术应用[M].北京.中国电力出版社.2008年.
[6]杨素行.模拟电子技术基础[M].高等教育出版社.2003年.
[7]陈明荧.8051单片机基础教程[M].科学出版社.2003年.
[8]康华光.电子技术基础数字部分[M].高等教育出版社.2004年.
[9]李广第.单片机基础[M].北京航空航天大学出版社.1999年.降速N转取ΔNK整数N计算BNK存入4FH—51H计算ANK+BNK存入4CH—4EH计算CBNK-2存入4FH—51H计算ΔNK存入4CH—4EH计算ANK存入4CH—4EH计算NK存入46H—48H开始返回开始记数重装记数初值求出此时电机速度值读计数器值停止记数否是提速N转是否显示完毕延时分解速度值到显示缓冲区延时延时延时返回显示千位显示百位显示十位显示个位否是选通个位否是选通个位否是选通个位否是选通个位XTAL串行口存储器扩展控制器并行口RAM/SFP片内振荡器CPU中断控制器运算器定时/计数器EPROM/ROM存储器I/O电动机D/A0832转换数码显示AT89C51单片机键盘YN重新设定定时器/计数器的初值并启动重新设定定时器/计数器的初值并启动返回中断将实际转速转换成十进制,送入显示RAM显示保存运算结果调用转速调节器运算给出PID运算参数TI、TD、KP计算实际转速n=60M/ZTc累加20次的计数值是否计够20次?存放计数器T1中的值保护现场返回AT89C51提速N转ΔNK0取ΔNK整数N更新NK-1NK-2PAGEI。