分享

基于单片机的PWM调速系统

 lixinhecom 2017-08-14

摘 要

本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。文章中采用了专门的芯片组成了PWM信号的发生系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。另外,本系统中使用了测速发电机对直流电机的转速进行测量,经过滤波电路后,将测量值送到A/D转换器,并且最终作为反馈值输入到单片机进行PI运算,从而实现了对直流电机速度的控制。在软件方面,文章中详细介绍了PI运算程序,初始化程序等的编写思路和具体的程序实现。

关键词: PWM信号   测速发电机    PI运算

前 言

本文主要研究了利用MCS-51系列单片机,通过PWM方式控制直流电机调速的方法。

冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。

PWM控制的基本原理很早就已经提出,但是受电力电子器件发展水平的制约,在上世纪80年代以前一直未能实现。直到进入上世纪80年代,随着全控型电力电子器件的出现和迅速发展,PWM控制技术才真正得到应用。随着电力电子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM控制技术获得了空前的发展。到目前为止,已经出现了多种PWM控制技术。

PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。

本文就是利用这种控制方式来改变电压的占空比实现直流电机速度的控制。文章中采用了专门的芯片组成了PWM信号的发生系统,然后通过放大来驱动电机。利用直流测速发电机测得电机速度,经过滤波电路得到直流电压信号,把电压信号输入给A/D转换芯片最后反馈给单片机,在内部进行PI运算,输出控制量完成闭环控制,实现电机的调速控制。

第一节   系统总体设计框图及单片机系统的设计

1.1.1                 系统总体设计框图

1.1.2               8051单片机简介

1.8051单片机的基本组成

   8051单片机由CPU和8个部件组成,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式,但在功能单元的控制上采用了特殊功能寄存器的集中控制方法。其基本组成如下图所示:

  

2.CPU及8个部件的作用功能介绍如下

中央处理器CPU:它是单片机的核心,完成运算和控制功能。

内部数据存储器:8051芯片中共有256个RAM单元,能作为存储器使用的只是前128个单元,其地址为00H—7FH。通常说的内部数据存储器就是指这前128个单元,简称内部RAM。

特殊功能寄存器:是用来对片内各部件进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的RAM区,位于内部RAM的高128个单元,其地址为80H—FFH。

内部程序存储器:8051芯片内部共有4K个单元,用于存储程序、原始数据或表格,简称内部ROM。

并行I/O口:8051芯片内部有4个8位的I/O口(P0,P1,P2,P3),以实现数据的并行输入输出。

串行口:它是用来实现单片机和其他设备之间的串行数据传送。

定时器:8051片内有2个16位的定时器,用来实现定时或者计数功能,并且以其定时或计数结果对计算机进行控制。

中断控制系统:该芯片共有5个中断源,即外部中断2个,定时/计数中断2个和串行中断1个。

振荡电路:它外接石英晶体和微调电容即可构成8051单片机产生时钟脉冲序列的时钟电路。系统允许的最高晶振频率为12MHz。

3.8051单片机引脚图

                 

1.1.3 单片机系统中所用其他芯片简介

1.地址锁存器74LS373

74LS373片内是8个输出带三态门的D锁存器。其结构如下图所示:

当使能端G呈高电平时,锁存器中的内容可以更新,而在返回低电平的瞬间实现锁存。如果此时芯片的输出控制端 为低,也即是输出三态门打开,锁存器中的地址信息便可以通过三态门输出。以下是其引脚图:

              

2.程序存储器27128

(1)芯片引脚

                   

(2)功能表

     引脚           

工作方式

(片选)

(允许输出)

VPP

(编程控制)

输出

L

L

VCC

H

数据输出

维持

H

*

VCC

*

高阻

编程

L

H

VPP

L

数据输入

编程校验

L

L

VPP

H

数据输出

编程禁止

H

*

VPP

*

高阻

3.数据存储器6264

(1)芯片引脚

                  

(2)芯片功能表

     引脚

工作方式

I/O0­—I/O7

未选中

H

*

*

*

高阻

未选中

*

L

*

*

高阻

输出禁止

L

H

H

H

高阻

L

H

L

H

数据输出

L

H

H

L

数据输入

L

H

L

L

数据输入

1.1.4  8051单片机扩展电路及分析

接线分析

P0.7---P0.0:这8个引脚共有两种不同的功能,分别使用于两种不同的情况。第一种情况是8051不带片外存储器,P0口可以作为通用I/O口使用,P0.7---P0.0用于传送CPU的I/O数据。第二种情况是8051带片外存储器,P0.7---P0.0在CPU访问片外存储器时先是用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。

P2.7---P2.0:这组引脚的第一功能可以作为通用的I/O使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但是并不能像P0口那样还可以传送存储器的读写数据。

P3.7---P3.0:这组引脚的第一功能为传送用户的输入/输出数据。它的第二功能作为控制用,每个引脚不尽相同,如下表所示:

P3口的位

第二功能

注释

P3.0

RXD

串行数据接收口

P3.1

TXD

串行数据发送口

P3.2

外中断0输入

P3.3

外中断1输入

P3.4

T0

计数器0计数输入

P3.5

T1

计数器1计数输入

P3.6

外部RAM写选通信号

P3.7

外部RAM读选通信号

   VCC为+5V电源线,VSS为接地线。

ALE/ :地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,8051CPU在P0.7---P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/ 线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7---P0.0引脚线去传送随后而来的片外存储器的读写数据。在不访问片外存储器时,8051自动在ALE/ 线上输出频率为1/6 fOSC的脉冲序列。该脉冲序列可以用作外部时钟源或者作为定时脉冲源使用。

 / VPP:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是片外ROM。如果 =1,那么允许使用片内ROM;如果 =0,那么允许使用片外ROM。

:片外ROM选通线,在执行访问片外ROM的指令MOVC时,8051自动在 线上产生一个负脉冲,用于片外ROM芯片的选通。其他情况下, 线均为高电平封锁状态。

RST/VPD:复位备用电源线,可以使8051处于复位工作状态。

XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接8051片内OSC的定时反馈电路。石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以便于8051片内的OSC电路按石英晶振相同频率自激振荡,电容C1、C2可以帮助起振,调节它们可以达到微调fOSC的目的。

第二节   PWM信号发生电路设计

1.2.1  PWM的基本原理

PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。

在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。

如下图所示:

              

设电机始终接通电源时,电机转速最大为Vmax,设占空比为D= t1 / T,则电机的平均速度为Va = Vmax * D,其中Va指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;D = t1 / T是指占空比。

由上面的公式可见,当我们改变占空比 D = t1 / T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。严格来说,平均速度Vd 与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。

1.2.2 PWM信号发生电路设计

  

PWM波可以由具有PWM输出的单片机通过编程来得以产生,也可以采用PWM专用芯片来实现。当PWM波的频率太高时,它对直流电机驱动的功率管要求太高,而当它的频率太低时,其产生的电磁噪声就比较大,在实际应用中,当PWM波的频率在18KHz左右时,效果最好。在本系统内,采用了两片4位数值比较器4585和一片12位串行计数器4040组成了PWM信号发生电路。

两片数值比较器4585,即图上U2、U3的A组接12位串行4040计数输出端Q2—Q9,而U2、U3的B组接到单片机的P1端口。只要改变P1端口的输出值,那么就可以使得PWM信号的占空比发生变化,从而进行调速控制。

12位串行计数器4040的计数输入端CLK接到单片机C51晶振的振荡输出XTAL2。计数器4040每来8个脉冲,其输出Q2—Q9加1,当计数值小于或者等于单片机P1端口输出值X时,图中U2的(A>B)输出端保持为低电平,而当计数值大于单片机P1端口输出值X时,图中U2的(A>B)输出端为高电平。随着计数值的增加,Q2—Q9由全“1”变为全“0”时,图中U2的(A>B)输出端又变为低电平,这样就在U2的(A>B)端得到了PWM的信号,它的占空比为(255 -X / 255)*100%,那么只要改变X的数值,就可以相应的改变PWM信号的占空比,从而进行直流电机的转速控制。

使用这个方法时,单片机只需要根据调整量输出X的值,而PWM信号由三片通用数字电路生成,这样可以使得软件大大简化,同时也有利于单片机系统的正常工作。由于单片机上电复位时P1端口输出全为“1”,使用数值比较器4585的B组与P1端口相连,升速时P0端口输出X按一定规律减少,而降速时按一定规律增大。

1.2.3  PWM发生电路主要芯片的工作原理

1.芯片4585

(1)芯片4585的用途:

对于A和B两组4位并行数值进行比较,来判断它们之间的大小是否相等。

(2)芯片4585的功能表:

输入

输出

比较

级取

A3、B3

A2、B2

A1、B1

A0、B0

A<B

A=B

A>B

A<B

A=B

A>B

A3>B3

*

*

*

*

*

1

0

0

1

A3=B3

A2>B2

*

*

*

*

1

0

0

1

A3=B3

A2=B2

A1>B1

*

*

*

1

0

0

1

A3=B3

A2=B2

A1=B1

A0>B0

*

*

1

0

0

1

A3=B3

A2=B2

A1=B1

A0=B0

0

0

1

0

0

1

A3=B3

A2=B2

A1=B1

A0=B0

0

1

0

0

1

0

A3=B3

A2=B2

A1=B1

A0<B0

1

0

0

1

0

0

A3=B3

A2=B2

A1<B1

*

*

*

*

1

0

0

A3=B3

A2<B2

*

*

*

*

*

1

0

0

A3<B3

*

*

*

*

*

*

1

0

0

(3)芯片4585的引脚图:

         

2.芯片4040

芯片4040是一个12位的二进制串行计数器,所有计数器位为主从触发器,计数器在时钟下降沿进行计数。当CR为高电平时,它对计数器进行清零,由于在时钟输入端使用施密特触发器,故对脉冲上升和下降时间没有限制,所有的输入和输出均经过缓冲。

芯片4040提供了16引线多层陶瓷双列直插、熔封陶瓷双列直插、塑料双列直插以及陶瓷片状载体等4种封装形式。

(1)芯片4040的极限值:

电源电压范围:-0.5V—18V

输入电压范围:-0.5V—VDD+0.5V

输入电流范围:±10mA

贮存温度范围:-65°C—150°C

(2)芯片4040引出端功能符号:

CP: 时钟输入端   CR:清除端   Q0—Q11:计数脉冲输出端  

VDD: 正电源   VSS: 地端

(3)芯片4040功能表:

输入

输出

CP

CR

*

L

L

H

保持

计数

所有输出端均为L

(4)芯片4040的引脚图:

          

第三节  功率放大驱动电路设计

该驱动电路采用了IR2110集成芯片,该集成电路具有较强的驱动能力和保护功能。

1.3.1  芯片IR2110性能及特点

IR2110是美国国际整流器公司利用自身独有的高压集成电路以及无闩锁CMOS技术,于1990年前后开发并且投放市场的,IR2110是一种双通道高压、高速的功率器件栅极驱动的单片式集成驱动器。它把驱动高压侧和低压侧MOSFET或IGBT所需的绝大部分功能集成在一个高性能的封装内,外接很少的分立元件就能提供极快的功耗,它的特点在于,将输入逻辑信号转换成同相低阻输出驱动信号,可以驱动同一桥臂的两路输出,驱动能力强,响应速度快,工作电压比较高,可以达到600V,其内设欠压封锁,成本低、易于调试。高压侧驱动采用外部自举电容上电,与其他驱动电路相比,它在设计上大大减少了驱动变压器和电容的数目,使得MOSFET和IGBT的驱动电路设计大为简化,而且它可以实现对MOSFET和IGBT的最优驱动,还具有快速完整的保护功能。与此同时,IR2110的研制成功并且投入应用可以极大地提高控制系统的可靠性。降低了产品成本和减少体积。

1.3.2 IR2110的引脚图以及功能

引脚1(LO)与引脚7(HO):对应引脚12以及引脚10的两路驱动信号输出端,使用中,分别通过一电阻接主电路中下上通道MOSFET的栅极,为了防止干扰,通常分别在引脚1与引脚2以及引脚7与引脚5之间并接一个10KΩ的电阻。

引脚2(COM):下通道MOSFET驱动输出参考地端,使用中,与引脚13(Vss)直接相连,同时接主电路桥臂下通道MOSFET的源极。

引脚3(Vcc):直接接用户提供的输出极电源正极,并且通过一个较高品质的电容接引脚2。

引脚5(Vs):上通道MOSFET驱动信号输出参考地端,使用中,与主电路中上下通道被驱动MOSFET的源极相通。

与引脚6(V­­B):通过一阴极连接到该端阳极连接到引脚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:为空引脚。

芯片参数:

1.IR2110的极限参数和限制:

最大高端工作电源电压VB: -0.3V至525V

门极驱动输出最大(脉冲)电流IOMAX:2A

最高工作频率fmax:1MHz

工作电源电压Vcc:-0.3V至25V

贮存温度Tstg:-55至150°C

工作温度范围TA:-40至125°C

允许最高结温Tjmax:150°C

逻辑电源电压VDD:-0.3V至VSS+25V

允许参考电压Vs临界上升率dVs/dt:50000V/μs

高端悬浮电源参考电压Vs:VB-25V至VB+0.3V

高端悬浮输出电压VHO:Vs-0.3V至VB+0.3V

逻辑输入电压VIN:Vss-0.3V至VDD+0.3V

逻辑输入参考电压Vss:Vcc-25V至Vcc+0.3V

低端输出电压VLO:-0.3V至Vcc+0.3V

功耗PD:DIP-14封装为1.6W

2.IR2110的推荐工作条件:

高端悬浮电源绝对值电压VB:Vs+10V至Vs+20V

低端输出电压VLO:0至Vcc

低端工作电源电压Vcc:10V至20V

逻辑电源电压VDD: Vss+5V至Vss+20V

逻辑电源参考电压Vss: -5V至+5V

          

第四节   主电路设计

1.4.1  延时保护电路

利用IR2110芯片的完善设计可以实现延时保护电路。

IR2110使它自身可对输入的两个通道信号之间产生合适的延时,保证了加到被驱动的逆变桥中同桥臂上的两个功率MOS器件的驱动信号之间有一互琐时间间隔,因而防止了被驱动的逆变桥中两个功率MOS器件同时导通而发生直流电源直通路的危险。

1.4.2 主电路

从上面的原理可以看出,产生高压侧门极驱动电压的前提是低压侧必须有开关的动作,在高压侧截止期间低压侧必须导通,才能够给自举电容提供充电的通路。因此在这个电路中,Q1、Q4或者Q2、Q3是不可能持续、不间断的导通的。我们可以采取双PWM信号来控制直流电机的正转以及它的速度。

将IC1的HIN端与IC2的LIN端相连,而把IC1的LIN端与IC2的HIN端相连,这样就使得两片芯片所输出的信号恰好相反。

在HIN为高电平期间,Q1、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端输入高电平,Q2、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-t1。HIN信号的占空比为D=t1/T。设电源电压为V,那么电枢电压的平均值为:

Vout= [ t1 - ( T - t1 ) ] V / T

   = ( 2 t1 – T ) V / T

   = ( 2D – 1 )V

定义负载电压系数为λ,λ= 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,电机正转全速运行。

1.4.3 输出电压波形

第五节  测速发电机

测速发电机是输出电动势与转速成比例的微特电机,分为直流与交流两种。其绕组和磁路经过精确设计,输出电动势E和转速n成线性关系,即E=kn,其中k是常数。改变旋转方向时,输出电动势的极性即相应改变。

当被测机构与测速发电机同轴连接时,只要检测出输出电动势,即可以获得被测机构的转速,所以测速发电机又称速度传感器。测速发电机广泛应用于各种速度或者位置控制系统,在自动控制系统中作为检测速度的元件,以调节电动机转速或者通过反馈来提高系统稳定性和精度。

第六节  滤波电路

         

第七节  A/D转换

1.7.1  芯片ADC0809介绍

ADC0809是8位、逐次比较式A/D转换芯片,具有地址锁存控制的8路模拟开关,应用单一的+5V电源,其模拟量输入电压的范围为0V---+5V,其对应的数字量输出为00H---FFH,转换时间为100μs,无须调零或者调整满量程。

1.7.2  ADC0809的引脚及其功能

ADC0809有28个引脚,其中IN0---IN7接8路模拟量输入。ALE是地址锁存允许, 接基准电源,在精度要求不太高的情况下,供电电源就可以作为基准电源。START是芯片的启动引脚,其上脉冲的下降沿起动一次新的A/D转换。EOC是转换结束信号,可以用于向单片机申请中断或者供单片机查询。OE是输出允许端。CLK是时钟端。DB0---DB7是数字量的输出。ADDA、ADDB、ADDC接地址线用以选定8路输入中的一路,详见下图。

        

ADDC

ADDB

ADDA

选通输入通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

第二章                 系统软件部分的设计

第一节                    PI 转速调节器原理图及参数计算

按照典型II型系统的参数选择方法, 转速调节器参数和电阻电容值关系如下:

Kn = Rn/ R0      Γn = Rn/ Cn     Ton = 1/4 R0 * Con

参数求法: 电动机 P=10KW  U=220V  I=55A  n=1000转/分  电枢电阻R=0.5欧姆   取滤波电路中Ro=40千欧  Rn=470千欧  Cn=0.2uF  Con=1uF  则:

Umax=220V

Umin=(220/0.9)*0.5=122V

Yi-1=0         W=1000转/分

P=Kp=Rn/Ro=11.7

I=Kp*T/Ti=125

第二节   系统中的部分程序设计

2.2.1   单片机资源分配

工作寄存器0组

RO-R7                        00H-07H

数据缓冲区                   30H-7FH

PSW.4(RS1=0)    PSW.3(RS0=0)    ;选中工作寄存器0组

P0口地址                     80H

P1口地址                     90H

P2口地址                     A0H

P3口地址                     B0H

堆栈(SP)                    81H

定时器/计数器控制       TCON     88H

定时器/计数器方式控制   TMOD     89H

定时器/计数器0 低字节   TL0   8AH     高字节   TH0    8CH

定时器/计数器1 低字节   TL1   8BH     高字节    TH1   8DH

中断1——PI采样(ui

中断0——A/D采样  P1口预置  W

                    P0口测量值(实测Y)

主程序:

0000         AJMP      START

START:CLR    PSW.4

        CLR    PSW.3        ;选中工作寄存器0组

        CLR    C

        MOV  R0 ,4FH

        MOV  A ,30H

CLEAR1:CLR   A

         INC    A

         DJNZ   R0 ,CLEAR1       ;清零30-7FH

         SETB   TR0                ;定时器/计数器0工作

         MOV  TMODE ,#01H      ;定时器/计数器工作在方式1

         SETB   EA                 ;总中断开放

         SETB   IT0                   ;置INTO为降沿触发

         SETB   IT1                   ;置INT1为降沿触发

LJMP        MAIN

LJMP        CTCO

LCALL     SAMPLE

.

.

.

Fosc=12MHZ,用一个定时器/计数器定时50ms,用R2作计数器,置初值14H,到定时时间后产生中断,每执行一次中断服务程序,让计数器内容减1,当计数器内容减为0时,则到1s。

PI控制算法:

Ui=Ui-1+Kp(ei-ei-1)+(Kp*T/Ti)*ei

令P=KP   I=KP*T/T I

则Ui=Ui-1+P(ei-ei-1)+I*ei

T——采样周期              Ti=RnCn             Kp=Rn/R0

PI程序:

SETB    EX1                        ;开放中断1

MOV    R0,90H                    ;P1口(W)送R0,预设

MOV    R1,80H                    ;P0口(Y)送R1,实测

MOV    A,R0                      ;W给A

MOV    B,R1                      ;Y给B

SUBB    A,B                      ;ei给A

MOV    7FH,A                     ;ei 给7FH

MOV    7EH,#00H                  ;ei-1=0给7EH

MOV    7BH,Umax                  

MOV    7AH, Umin

AJMP     IN                          ;积分项

AJMP     P                           ;比例项

MOV     A,R2                       ;Pi给A

ADD      A,R3                      ;Pi+Pp给A

MOV     7DH,#00H                  ;Ui-1=0给7DH

ADD      A,7DH                     ;Ui-1+Pi+Pp=Ui给A

MOV      7CH,A                      ;Ui给7CH

MOV      7DH,7CH                  ;Ui给Ui-1

MOV      A,7BH                     ;Umax给A

CJNE      A,#Ui,LOOP2              ;Ui〉Umax转移

MOV      A,#Ui

CJNE      A,7AH,LOOP3             ;Ui<Umin转移

MOV      90H,7CH                    ;输出Ui到P1口

LOOP2:MOV      A,7CH              ;Ui给A

CLR       C

SUBB      A,#Umax

RETI

LOOP3:MOV       A,7CH              ;Ui给A

        CLR        C

        SUBB       A,#Umin

        RETI

IN:MOV  6FH,#I

    MOV  A,6FH                   ;I给A

    MOV  B,7FH                   ;ei给B

    MUL   AB                      ;Pi=I*ei给A

    MOV  R2,A                    ;Pi给R2

    RETI

P:MOV   6EH,#P

    CLR   C

    MOV   A,7FH                  ;ei给A

    SUBB   A,7EH                 ;ei-ei-1给A

    MOV    7EH,7FH              ;ei给ei-1

    MOV    B,6EH

    MUL    AB                      ;(ei-ei-1)*P给A

    MOV    R3,A                   ;Pp给R3

    RETI

2.2.2 程序流程图

结论

本文所述的直流电机闭环调速系统是以低价位的单片微机8051为核心的,而通过单片机来实现电机调整又有多种途径,相对于其他用硬件或者硬件与软件相结合的方法实现对电机进行调整,采用PWM软件方法来实现的调速过程具有更大的灵活性和更低的成本,它能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。而在软件方面,采用PLD算法来确定闭环控制的补偿量也是由数字电路组成的直流电机闭环调速系统所不能及的。曾经也试过用单片机直接产生PWM波形,但其最终效果并不理想,在使用了少量的硬件后,单片机的压力大大减小,程序中有充足的时间进行闭环控制的测控和计算,使得软件的运行更为合理可靠。

结束语

在这次毕业设计中,要特别感谢机电学院的张自强教授给予的耐心细致的指导,对于在设计过程中所遇到的许多具体问题,他均提出了相应的解决方案。这对于毕业设计的顺利完成起到了十分重要的作用。

参考文献

[1] 王离九,黄锦恩编著,晶体管脉冲直流调速系统,华中理工大学出版社出版

[2] 丁元杰主编,上海市教育委员会组编,单片微机原理及应用,机械工业出版社

[3] 李荣生主编,电气传动控制系统设计指导,机械工业出版社

[4] 吴守箴,臧英杰 编著, 电气传动的脉宽调制控制技术,机械工业出版社

[5] 陈伯时主编,自动控制系统---电力拖动控制,中央广播电视大学出版社

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多