PID控制PWM调节直流电机速度(12v)_第1页
PID控制PWM调节直流电机速度(12v)_第2页
PID控制PWM调节直流电机速度(12v)_第3页
PID控制PWM调节直流电机速度(12v)_第4页
PID控制PWM调节直流电机速度(12v)_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、1本次设计主要研究的是PID控制技术在运动控制领域中的应用,纵所周知运动控制系统最主要的控制对象是电机,在不同的生产过程中,电机的运行状态要满足生产要求,其中电机速度的控制在占有至关重要的作用,因此本次设计主要是利用PID控制技术对直流电机转速的控制。其设计思路为:以AT89S51单片机为控制核心,产生占空比受PID算法控制的PWM脉冲实现对直流电机转速的控制。同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,构成转速闭环控制系统,达到转速无静差调节的目的。在系统中采12864LCD显示器作为显示部件,通过44键盘设置P、I、D、V四个参数和正反转控制,启动后通过显示部件了解电机当前的

2、转速和运行时间。因此该系统在硬件方面包括:电源模块、电机驱动模块、控制模块、速度检测模块、人机交互模块。软件部分采用C语言进行程序设计,其优点为:可移植性强、算法容易实现、修改及调试方便、易读等。本次设计系统的主要特点:(1)优化的软件算法,智能化的自动控制,误差补偿;(2)使用光电传感器将电机转速转换为脉冲频率,比较精确的反映出电机的转速,从而与设定值进行比较产生偏差,实现比例、积分、微分的控制,达到转速无静差调节的目的;(3)使用光电耦合器将主电路和控制电路利用光隔开,使系统更加安全可靠;(4)12864LCD显示模块提供一个人机对话界面,并实时显示电机运行速度和运行时间; (5)利用Pr

3、oteus软件进行系统整体仿真,从而进一步验证电路和程序的正确性,避免不必要的损失;(6)采用数字PID算法,利用软件实现控制,具有更改灵活,节约硬件等优点;(7)系统性能指标:超调量8;调节时间4s;转速误差1r/min。1 PID算法及PWM控制技术简介1.1 PID算法控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能主要由控制算法来实现。目前提出的控制算法有很多。根据偏差的比例(P)、积分(I)、微分(D)进行的控制,称为PID控制。实际经验和理论分析都表明,PID控制能2比 例微 分积 分执行机构对象r(t)+-+u(t)c(t)e(t)够满足相当多工业对象的控制要求,至

4、今仍是一种应用最为广泛的控制算法之一。下面分别介绍模拟PID、数字PID及其参数整定方法。1.1.1 模拟PID在模拟控制系统中,调节器最常用的控制规律是PID控制,常规PID控制系统原理框图如图1.1所示,系统由模拟PID调节器、执行机构及控制对象组成。 图1.1 模拟PID控制系统原理框图PID调节器是一种线性调节器,它根据给定值与实际输出值构成的)(tr)(tc控制偏差: = )(te)(tr)(tc(1.1)将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进行控制,故称为PID调节器。在实际应用中,常根据对象的特征和控制要求,将P、I、D基本控制规律进行适当组合,以达到对被控

5、对象进行有效控制的目的。例如,P调节器,PI调节器,PID调节器等。模拟PID调节器的控制规律为 )()(1)()(0dttdeTdtteTteKtuDtIp(1.2)式中,为比例系数,为积分时间常数,为微分时间常数。PKITDT简单的说,PID调节器各校正环节的作用是:(1)比例环节:即时成比例地反应控制系统的偏差信号,偏差一旦产生,调)(te节器立即产生控制作用以减少偏差;(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强;ITIT(3)微分环节:能反映偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中

6、引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。3由式1.2可得,模拟PID调节器的传递函数为 )11 ()()()(STSTKSESUSDDIP(1.3)由于本设计主要采用数字PID算法,所以对于模拟PID只做此简要介绍。1.1.2 数字PID在DDC系统中,用计算机取代了模拟器件,控制规律的实现是由计算机软件来完成的。因此,系统中数字控制的设计,实际上是计算机算法的设计。由于计算机只能识别数字量,不能对连续的控制算式直接进行运算,故在计算机控制系统中,首先必须对控制规律进行离散化的算法设计。为将模拟PID控制规律按式(1.2)离散化,我们把图1.1中、)(tr)(te、在

7、第n次采样的数据分别用、表示,于是式)(tu)(tc)(nr)(ne)(nu)(nc(1.1)变为 := )(ne)(nr)(nc(1.4)当采样周期T很小时可以用T近似代替,可用近似代替,dt)(tde) 1()(nene“积分”用“求和”近似代替,即可作如下近似 Tnenedttde) 1()()((1.5) tniTiedtte01)()((1.6)这样,式(1.2)便可离散化以下差分方程 01)1()()()()(uneneTTneTTneKnuniDIP(1.7)上式中是偏差为零时的初值,上式中的第一项起比例控制作用,称为比例(P)项0u,即 )(nuP )()(neKnuPp(1.

8、8)4第二项起积分控制作用,称为积分(I)项即)(nuI niIPIieTTKnu1)()((1.9)第三项起微分控制作用,称为微分(D)项即)(nuD )1()()(neneTTKnuDPD(1.10)这三种作用可单独使用(微分作用一般不单独使用)或合并使用,常用的组合有:P控制: 0)()(ununuP(1.11)PI控制: 0)()()(unununuIP(1.12) PD控制: 0)()()(unununuDP(1.13)PID控制: 0)()()()(ununununuDIP(1.14)式(1.7)的输出量为全量输出,它对于被控对象的执行机构每次采样时)(nu刻应达到的位置。因此,式

9、(1.7)又称为位置型PID算式。由(1.7)可看出,位置型控制算式不够方便,这是因为要累加偏差,不)(ie仅要占用较多的存储单元,而且不便于编写程序,为此对式(1.7)进行改进。根据式(1.7)不难看出u(n-1)的表达式,即 011)2() 1()() 1() 1(uneneTTneTTneKnuniDIP(1.15)将式(1.7)和式(1.15)相减,即得数字PID增量型控制算式为) 1()()(nununu )2() 1(2)()()1()(neneneKneKneneKDIP(1.16) 从上式可得数字PID位置型控制算式为5PID位置算法控制器被控对象r(t)+-e(t)uc(t)

10、PID增量算法控制器被控对象r(t)+-e(t)uc(t) )(nu0)2() 1(2)()()1()(uneneneKneKneneKDIP(1.17)式中: 称为比例增益;PK 称为积分系数;IPITTKK 称为微分系数1。TTKKDPD数字PID位置型示意图和数字PID增量型示意图分别如图1.2和1.3所示:图1.2 数字PID位置型控制示意图 图1.3 数字PID增量型控制示意图1.1.3 数字PID参数整定方法如何选择控制算法的参数,要根据具体过程的要求来考虑。一般来说,要求被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输出应能保持在给定值,操作变量不宜

11、过大,在系统和环境参数发生变化时控制应保持稳定。显然,要同时满足上述各项要求是很困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。PID调节器的参数整定方法有很多,但可归结为理论计算法和工程整定法两种。用理论计算法设计调节器的前提是能获得被控对象准确的数学模型,这在工业过程中一般较难做到。因此,实际用得较多的还是工程整定法。这种方法最大优点就是整定参数时不依赖对象的数学模型,简单易行。当然,这是一种近似的方法,有时可能略嫌粗糙,但相当适用,可解决一般实际问题。下面介绍两种常用的简易工程整定法。(1)扩充临界比例度法6这种方法适用于有自平衡特性的被控对象。使用这种方法整定数字调节器参

12、数的步骤是:选择一个足够小的采样周期,具体地说就是选择采样周期为被控对象纯滞后时间的十分之一以下。用选定的采样周期使系统工作:工作时,去掉积分作用和微分作用,使调节器成为纯比例调节器,逐渐减小比例度()直至系统对阶跃输入的响应PK/1达到临界振荡状态,记下此时的临界比例度及系统的临界振荡周期。KkT选择控制度:所谓控制度就是以模拟调节器为基准,将DDC的控制效果与模拟调节器的控制效果相比较。控制效果的评价函数通常用误差平方面积表02)(te示。 控制度 模拟)()(0202dttedtteDDC(1.18)实际应用中并不需要计算出两个误差平方面积,控制度仅表示控制效果的物理概念。通常,当控制度

13、为1.05时,就可以认为DDC与模拟控制效果相当;当控制度为2.0时,DDC比模拟控制效果差。根据选定的控制度,查表1.1求得T、的值1。PKITDT表1.1 扩充临界比例度法整定参数(2)经验法经验法是靠工作人员的经验及对工艺的熟悉程度,参考测量值跟踪与设定值曲线,来调整P、I、D三者参数的大小的,具体操作可按以下口诀进行:控制度控制规律TPKITDT1.05PI0.03KT0.53K0.88KT1.05PID0.014KT0.63K0.49KT0.14KT1.20PI0.05KT0.49K0.91KT1.20PID0.043KT0.047K0.47KT0.16KT1.50PI0.14KT0

14、.42K0.99KT1.50PID0.09KT0.34K0.43KT0.20KT2.00PI0.22KT0.36K1.05KT2.00PID0.16KT0.27K0.40KT0.22KT7参数整定找最佳,从小到大顺序查;先是比例后积分,最后再把微分加;曲线振荡很频繁,比例度盘要放大;曲线漂浮绕大湾,比例度盘往小扳;曲线偏离回复慢,积分时间往下降;曲线波动周期长,积分时间再加长;曲线振荡频率快,先把微分降下来;动差大来波动慢,微分时间应加长。下面以PID调节器为例,具体说明经验法的整定步骤:让调节器参数积分系数=0,实际微分系数=0,控制系统投入闭环运行,IKDK由小到大改变比例系数,让扰动信号

15、作阶跃变化,观察控制过程,直到获得满PK意的控制过程为止。取比例系数为当前的值乘以0.83,由小到大增加积分系数,同样让扰PKIK动信号作阶跃变化,直至求得满意的控制过程。积分系数保持不变,改变比例系数,观察控制过程有无改善,如有改IKPK善则继续调整,直到满意为止。否则,将原比例系数增大一些,再调整积分系PK数,力求改善控制过程。如此反复试凑,直到找到满意的比例系数和积分系IKPK数为止。IK引入适当的实际微分系数和实际微分时间,此时可适当增大比例系数DKDT和积分系数。和前述步骤相同,微分时间的整定也需反复调整,直到控制过PKIK程满意为止。PID参数是根据控制对象的惯量来确定的。大惯量如

16、:大烘房的温度控制,一般P可在10以上,I在(3、10)之间,D 在 1左右。小惯量如:一个小电机闭环控制,一般P在(1、10)之间,I在(0、5)之间,D在(0.1、1)之间,具体参数要在现场调试时进行修正。1.2 PWM脉冲控制技术PWM(Pulse Width Modulation)控制就是对脉冲的宽度进行调制的技术。即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。1.2.1 PWM控制的基本原理8abcdabii(t)i(t)e(t)RL0在采样控制理论中有一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。冲量即指窄脉冲的面积。

17、这里所说的效果基本相同,是指环节的输出响应波形基本相同。如果把各输出波形用傅立叶变换分析,则其低频段非常接近,仅在高频段略有差异。例如图1.4中a、b、c所示的三个窄脉冲形状不同,其中图1.4的a为矩形脉冲,图1.4的b为三角脉冲,图1.4的c为正弦半波脉冲,但它们的面积(即冲量)都等于1,那么,当它们分别加在具有惯性的同一环节上时,其输出响应基本相同。当窄脉冲变为如图1.4的d所示的单位脉冲函数时,环节的响应即为该环节的脉冲过渡函数。)(t图1.4 形状不同而冲量相同的各种窄脉冲图1.5a的电路是一个具体的例子。图中为窄脉冲,其形状和面积分别如)(te图1.4的a、b、c、d所示,为电路的输

18、入。该输入加在可以看成惯性环节的R-L电路上,设其电流为电路的输出。图1.5b给出了不同窄波时的响应波形。)(ti)(ti从波形可以看出,在的上升段,脉冲形状不同时的形状也略有不同,但其)(ti)(ti下降段几乎完全相同。脉冲越窄,各波形的差异也越小。如果周期性的施加上)(ti述脉冲,则响应也是周期性的。用傅立叶级数分解后将可看出,各在低频)(ti)(ti段的特性非常接近,仅在高频段有所不同2。 图1.5 冲量相同的各种窄脉冲的响应波形1.2.2 直流电机的PWM控制技术f(t)0tf(t)0t0tf(t)0tf(t)0t0t a bcd9U(t)0tTt0U直流电动机具有优良的调速特性,调速

19、平滑、方便,调速范围广,过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程自动化系统各种不同的特殊运行要求,在许多需要调速或快速正反向的电力拖动系统领域中得到了广泛的应用。直流电动机的转速调节主要有三种方法:调节电枢供电的电压、减弱励磁磁通和改变电枢回路电阻。针对三种调速方法,都有各自的特点,也存在一定的缺陷。例如改变电枢回路电阻调速只能实现有级调速,减弱磁通虽然能够平滑调速,但这种方法的调速范围不大,一般都是配合变压调速使用。所以在直流调速系统中,都是以变压调速为主。其中,在变压调速系统中,大体上又可分为可控整流式调速系统和直流PWM调速系统两种。直流PW

20、M调速系统与可控整流式调速系统相比有下列优点:由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好、稳速精度高、调速范围宽。同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,因此主电路损耗小、装置效率高;直流电源采用不可控整流时,电网功率因数比相控整流器高。正因为直流PWM调速系统有以上优点,并且随着电力电子器件开关性能的不断提高,直流脉宽调制( PWM) 技术得到了飞速的发展。随着科学技术的迅猛发展传统的模拟和数字电路已被大规模集成电路所取代,这就使得数字调制技术成为可能。目前,在该领域中大部分应用的是

21、数字脉宽调制技术。电动机调速系统采用微机实现数字化控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现全数字化,并且结构简单、可靠性高、操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。下面主要介绍直流电机PWM调速系统的算法实现。根据PWM控制的基本原理可知,一段时间内加在惯性负载两端的PWM脉冲与相等时间内冲量相等的直流电加在负载上的电压等效,那么如果在短时间T内脉冲宽度为,幅值为U,由图1.6可求得此时间内脉冲的等效直流电压为:0t10U(t)0tTt0U2T2t03T3t04t0nT (n+1)t0 图1.

22、6 PWM脉冲,若令,即为占空比,则上式可化为: TUtU00Tt0 (U为脉冲幅值) UU0(1.19)若 PWM 脉冲为如图1.7所示周期性矩形脉冲,那么与此脉冲等效的直流电压的计算方法与上述相同,即 (为矩形脉冲占空比) UTUtnTUntU000(1.20)图1.7 周期性PWM 矩形脉冲由式1.20可知,要改变等效直流电压的大小,可以通过改变脉冲幅值U和占空比来实现,因为在实际系统设计中脉冲幅值一般是恒定的,所以通常通过控制占空比的大小实现等效直流电压在0U之间任意调节,从而达到利用PWM控制技术实现对直流电机转速进行调节的目的。2 设计方案与论证2.1 系统设计方案根据系统设计的任

23、务和要求,设计系统方框图如图2.1所示。图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。在运行过程中控制器产生PWM脉冲送到电机驱动电路中,经过放大后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。11键盘模块控制器模块显示模块电机驱动模块直流电机速度检测模块PWM脉冲图2.1 系统方案框图系统各模块采用的方案如下:(1)控制模块: 采用AT89S51单片机;(2)电机驱动模块:采用直流电机驱动芯片L29

24、8N实现;(3)速度采集模块:采用光电传感器;(4)显示模块: 采用12864LCD液晶显示模块;(5)键盘模块: 采用标准的44矩阵式键盘;(6)电源模块: 采用7805、7812芯片实现。3 单元电路设计3.1 硬件资源分配本系统电路连接及硬件资源分配见图3.1所示。采用AT89S51单片机作为核心器件,转速检测模块作为电机转速测量装置,通过AT89S51的P3.3口将电脉冲信号送入单片机处理,L298作为直流电机的驱动模块,利用12864LCD显示器和44键盘作为人机接口。P0.0P0.712864LCD显示模块P2.7P2.6电机驱动模块P2.0P0.5544键盘P1.0P1.3P1.

25、4P1.744L0L3H0H3P3.2/INT0AT89S51P3.3/INT1电机转速检测四输入与门12U7C20.33FC60.33FVin1GND2+5V3U47805Vin1GND2+12V3U37812C30.1FC70.1F+5v+12v1234U6C820FC53300FC420FC13300F12J1220V图3.1 系统电路连接及硬件资源分配图3.2 电源电路设计电源是整个系统的能量来源,它直接关系到系统能否运行。在本系统中直流电机需要12V电源,而单片机、显示模块等其它电路需要5V的电源,因此电路中选用7805和7812两种稳压芯片,其最大输出电流为1.5A,能够满足系统的

26、要求,其电路如图3.2所示。图3.2 电源电路3.3 电机驱动电路设计驱动模块是控制器与执行器之间的桥梁,在本系统中单片机的I/O口不能直接驱动电机,只有引入电机驱动模块才能保证电机按照控制要求运行,在这里选用L298N电机驱动芯片驱动电机,该芯片是由四个大功率晶体管组成的H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,通过调整输入脉冲的占空比,调整电动机转速。其中输出脚(SENSEA和SENSEB)用来连接电流检测电阻,Vss接逻辑控制的电源。Vs为电机驱动电源。IN1-IN4输入引脚为标准TTL 逻辑电平信号,用来控制H桥的开与关即实现电机的正反转

27、,ENA、ENB引脚则为使能控制端,用来输入PWM信号实现电机调速。其电路如图3.3所示,利用两个光电耦合器将单片机的I/O与驱动电路进行隔离,保证电路安全可靠。这样单片机产生的PWM脉冲控制L298N的选通端7,使电机在PWM脉冲的控制下正常运行,其中四个二极管对芯片起保护作用。13A1A2SE N111Y 121Y 23Vs41A 151E N61A 27GN D8Vcc92A 1102A 2122E N112Y 1132Y 214SE N215U5L298ND4D3D1D2C1020FC920F+5V+12V+12VR1470R25KR45KR3470R5470MG 1P2.7P2.6P

28、2.5图3.3 电机驱动电路3.4 电机速度采集电路设计在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较,通过偏差进行PID运算,因此速度采集电路是整个系统不可缺少的部分。本次设计中应用了比较常见的光电测速方法来实现,其具体做法是将电机轴上固定一圆盘,且其边缘上有N个等分凹槽如图3.5(a)所示,在圆盘的一侧固定一个发光二极管,其位置对准凹槽处,在另一侧和发光二极光平行的位置上固定一光敏三极管,如果电动机转到凹槽处时,发光二极管通过缝隙将光照射到光敏三极管上,三极管导通,反之三极管截止,电路如图3.4(b)所示,从图中可以得出电机每转一圈在P3.3的输出端就会产生N个低电平。这样就

29、可根据低电平的数量来计算电机此时转速了。例如当电机以一定的转速运行时,P3.3将输出如图3.5所示的脉冲,若知道一段时间t内传感器输出的低脉冲数为n,则电机转速v=r/s。圆盘 光敏三极管发光二极管+5VP3.3470200R1R214VSSVDDVORSR/WEDB0DB1DB2DB3DB4DB5DB6DB7CS1CS2/RSTVEEAK1234567891011121314151617181920 (a) (b)图3.4 电机速度采集方案图3.5 传感器输出脉冲波形3.5 显示电路设计 根据设计要求要对系统各项参数和电机运行状态进行显示,因此在电路中加入显示模块是非常必要的。在系统运行过程

30、中需要显示的数据比较都,而且需要汉字显示,在这里选用12864液晶显示器比较适合,它是一种图形点阵液晶显示器,主要由行驱动器/列驱动器及12864全点阵液晶显示器组成,可完成汉字(1616)显示和图形显示共有20个引脚8,其引脚名称及引脚编号的对应关系如图3.6,引脚功能如表3.1所示。 图3.6 12864LCD引脚分布表3.1 12864液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1芯片选择左边64*64点2VDD电源正+5V16CS2CS2=1芯片选择右边64*64点3VO液晶显示驱动电源17/RST复位(低电平有效)4RSH:数据

31、输入;L:指令码输入18VEELCD驱动负电源150123456789传传传传传传传传传传传传传H0H1H2H3L0L1L2L3P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RX D10P3.1/TX D11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119GN D20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728RSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.33

32、6P0.237P0.138P0.039VCC40U189S511234567891011121314151617181920LCDPO T110KR710KR847+5C15220F123456789RN 85K+5v+5v+5vP2.5P2.6P2.75R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚12864液晶显示器与单片机的连接电路如图3.7所示:图3.7 显示模块电路图3.6 键盘电路设计根据设计需求,本系统中使用了44键盘用以实现对P、I、D三个参数和电机正反转的设定,以及对电机启动、

33、停止、暂停、继续的控制,其电路原理图如图4.8所示。图中L0L3为44键盘的列信号,H0H3为44键盘的行信号。在本系统中,用P1.0P1.3连接键盘的列信号L0L3;用P0.4P0.7连接键盘的行信号H0H39。按照要求设计操作面板如图3.8所示:16图3.8 键盘模块键盘操作说明:在系统开始运行时,12864LCD将显示开机界面,若按下设置键显示屏进入参数设置界面,此时按1、2、3、4进入相应参数的设置的状态,输入相应的数字即可完成该参数的设置,待所有量设置完成后按正/反控制键设置正反转,最后按启动键启动系统,在运行过程中可按下相应键对电机进行暂停、继续、停止运行的控制。4 软件设计4.1

34、 算法实现4.1.1 PID算法本系统设计的核心算法为PID算法,它根据本次采样的数据与设定值进行比较得出偏差,对偏差进)(ne行P、I、D运算最终利用运算结果控制PWM脉冲的计算e(n)计算KIe(n)计算KP(e(n)-e(n-1)计算KD(e(n)-2e(n-1)+e(n-2)计算u(n)计算u(n)u(n-1)e(n-1)e(n-2)e(n)e(n-1)u(n)u(n-1)返回图4.1PID程序流程17开始初始化调用清屏子程序开始界面显示设置键按下?调用清屏子程序设置界面显示根据设置计算参数启动键按下?调用清屏子程序电机运行状态显示PWM脉冲输出YNYN0)2() 1(2)()()1(

35、)(uneneneKneKneneKDIPt=0.5s?计算r=n/120计算v=(r/0.5)*60返回NY占空比来实现对加在电机两端电压的调节10,进而控制电机转速。其运算公式为:)(nu因此要想实现PID控制在单片机就必须存在上述算法,其程序流程如图4.1所示。4.1.2 电机速度采集算法本系统中电机速度采集是一个非常重要的部分,它的精度直接影响到整个控制的精度。在设计中采用了光电传感器做为测速装置,其计算公式为: v= r/min60tNn从这里可以看出速度v的误差主要是由圆盘边缘上的凹槽数的多少决定的,为了减少系统误差应尽量提高凹槽的数量,在本次设计中取凹槽数N为120,采样时间t为

36、0.5s,则速度计算具体程序流程如图4.2所示。 图4.2 测速程序流程4.2 程序流程 4.2.1 主流程图在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4.3所示。18延时去抖动P1口低四位置1读P1口低四位数据到KEYLKEYL、KEYH相与为KEYP1口高四位置1读P1口高四位数据到KEYHKEY=0XEE ?KEY=0XEB ?KEY=0XED ?KEY=0XE7 ?KEY=0XDE ?KEY=0XDD ?KEY=0XDB ?KEY=0XD7 ?KEY=0XBD ?KEY=0XBE ?KEY=0

37、XBB ?KEY=0XB7 ?KEY=0X7E ?KEY=0X7D ?KEY=0X7B ?KEY=0X77 ?数字键0数字键1数字键2数字键3数字键4数字键5数字键6数字键7数字键8数字键9正/反功能键暂停功能键继续功能键启动功能键停止功能键设置功能键RETIYNNNNNNNNNNNNNNNNYYYYYYYYYYYYYYY图4.3 主程序流程4.2.2 键盘程序程序流程 键盘中断程序是用来设在系统相应参数和控制系统进入相应的运行状态,其程序流程图如图4.4所示。19脉冲计数时间0.5s?速度计算PID运算显示数据刷新定时器T0赋初值RETI各变量重新赋值YN 图4.4 键盘程序流程4.2.3

38、定时程序流程 在本系统中定时器T0中断子程序是用来控制电机运行时间和进行速度计算和PID 运算,其程序流程如图4.5所示。20图4.5 定时程序流程4.2.4 显示程序流程显示模块是实现人机对话的重要部分,在这里选用12864LCD显示器可实现对汉字和字符的显示,该显示器的引脚功能在上面已经做了说明,下面介绍12864LCD的相关指令。(1)读取状态字当R/W=1,D/I=0时,在E信号为高的作用下,状态分别输出到数据总线上。状态字是了解模块当前工作状态的唯一的信息渠道,在每次对模块操作之前,都要读出状态字判断BUSY是否为“0” 。若不为“0” ,则计算机需要等待,直至BUSY =0为止。(

39、2)显示开关设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB0000011111DD=1:开显示;D=0关显示。(3)显示起始行设置D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)指令表中DB5DB0为显示起始行的地址,取值在03FH(164行)D/IR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ONOFFRST000021范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。(4)页面地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00010111Page(07)页面地址是DDRAM的行地

40、址。8行为一页,DDRAM共64行即8页,DB2-DB0表示0-7页。(5)列地址设置 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB00001Yaddress(063)列地址是DDRAM的列地址。共64列,DB5-DB0取不同值得到0-3FH(1-64),代表某一页面上的某一单元地址,列地址计数器在每一次读写数据后它将自动加一。(6)写显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1DB010显 示 数 据该操作将8位数据写入先前已确定的显示存储器的单元内。操作完成后列地址计数器自动加一。 (7)读显示数据 D/IR/WDB7DB6DB5DB4DB3DB2DB1D

41、B011显 示 数 据该操作将12864模块中的DDRAM存储器对应单位中的内容读出,然后列地址计数器自动加一。根据上面指令结合系统要实行的功能,其显示子程序流程如图4.6所示。22图4.6 显示程序流程4.3 系统Proteus仿真4.3.1 Proteus软件简介Proteus是英国Labcenter electronics公司研发的EDA设计软件, 是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。 Proteus不仅可以做数字电路、模拟电路、数模混合电路的仿真,还可进行多种CPU的仿真,涵盖了51、PIC、AVR、HC11、ARM等处理器,真正实现了在计

42、算机从原理设计、电路分析、系统仿真、测试到PCB板完整的电子设计,实现了从 概念到产品的全过程。以下为本系统在Protues中的仿真流程:(1)新建文件:打开Protues点File,在弹出的下拉菜单中选择New Design,在弹出的图幅选择对话框中选Default。(2)设置编辑环境:按上述的方法对Protues的设计环境进行设置。(3)元器件选取:按设计要求,在对象选择窗口中点P,弹出Pickdevices对话框,在Keywords中填写要选择的元器件,然后在右边对话框中选中要选的元器件,则元器件列在对象选择的窗口中如初始化循环次数j2 ?写入数据字节数i16?设置显示起始页、起始列调用

43、写入数据子程序j=j+1;i=0i=i+1RETIYNNY初始化循环次数j2 ?写入数据字节数i8?设置显示起始页、起始列调用写入数据子程序j=j+1;i=0i=i+1RETIYNNYa) 写入16*16汉字程序流程b)写入8*16数字23图4.7所示。本设计所需选用的元器件如下: AT89C51:单片机RES、RX8、RESPACK-8:电阻、排阻、上拉电阻 图4.7 Proteus元器件选取界面CRYSTAL:晶振 CAP、CAP-ELEC:电容、电解电容7805、7812:5V、12V三端稳压块IN4007:二极管AMPIRE128 64:液晶显示器OPTOCUPLER-NPN:光电耦合

44、器BOUTTON:按键MOTOR-ENCODER:直流电机放置元器件、放置电源和地、连线,得到附录所示的系统整体电路,最后进行电气检测。(4)程序编译点菜单SourceAdd/Remove sou rce Files”在出现的对话框如图4.8中,选择ASEM51编辑器,将上面的汇编源程序SEKED.ASM添加。再点菜单SourceBuild ALL编译汇编源程序,生成目标代码文件SWLED.HEX。 (5)程序加载 图4.8 程序添加界面在编辑环境左击单片机然后右击,在弹出的对话框中将编译生成的HEX文件加载到芯片中,设单片机的时钟工作频率为12MHZ。(6)电路仿真 点仿真按键,按照前面介绍

45、的系统使用方法进行仿真。5 系统测试与分析为了确定系统与设计要求的符合程度,需要进行系统测试与分析,但是由于试验调节的制约和时间的限制,不能完成此次制作,只能通过软件仿真进行验证,在24这里使用的是英国的Proteus软件进行测试,有关改软件的使用在前面的章节已经介绍,在这里不再重复。根据第1章PID参数整定方法的介绍与分析,对于本系统采用经验法进行参数整定,该方法调试的原则为:先是比例后积分,最后再把微分加;曲线振荡很频繁,比例度盘要放大;曲线漂浮绕大湾,比例度盘往小扳;曲线偏离回复慢,积分时间往下降;曲线波动周期长,积分时间再加长;曲线振荡频率快,先把微分降下来;动差大来波动慢,微分时间应

46、加长。下面以PID调节器为例,具体说明经验法的整定步骤:让调节器参数积分系数=0,实际微分系数=0,控制系统投入闭环运IKDK行,由小到大改变比例系数,让扰动信号作阶跃变化,观察控制过程,直到获PK得满意的控制过程为止。取比例系数为当前的值乘以0.83,由小到大增加积分系数,同样让扰PKIK动信号作阶跃变化,直至求得满意的控制过程。积分系数保持不变,改变比例系数,观察控制过程有无改善,如有改IKPK善则继续调整,直到满意为止。否则,将原比例系数增大一些,再调整积分系PK数,力求改善控制过程。如此反复试凑,直到找到满意的比例系数和积分IKPK系数为止。IK引入适当的实际微分系数和实际微分时间,此

47、时可适当增大比例系数DKDT和积分系数。和前述步骤相同,微分时间的整定也需反复调整,直到控制PKIK过程满意为止。PID参数是根据控制对象的惯量来确定的。大惯量如:大烘房的温度控制,一般P可在10以上,I在(3、10)之间,D 在 1左右。小惯量如:一个小电机闭环控制,一般P在(1、10)之间,I在(0、5)之间,D在(0.1、1)之间,具体参数要在现场调试时进行修正。根据上诉方法,通过软件仿真系统得出数据如表5.1所示,通过观察得出该系统比较合适的P、I、D三者的参数值为: =2, =2.2, =0.2。并且可以反PKIKDK映25表5.1 测试数据表次数设定PK设定IK设定DK设定(r/m

48、in)超调量调节时间(s)误差122.20.210084%1232.20.2100155%2342.20.21002211%5412.20.210056%3502.20.2100112%6621.10.210068%27200.21002%15%9823.30.210085%1924.40.210097%21022.20.110086%11122.201006%5%51222.20.31007%5%11322.20.41006%7%4出PID调节器各校正环节的作用是:(1)比例环节:值的选取决定于系统的响应速度。增大能提高响应速PKPK度,减小稳态误差;但是,值过大会产生较大的超调,甚至使系统

49、不稳定减小PK可以减小超调,提高稳定性,但过小会减慢响应速度,延长调节时间;PKPK(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强;ITIT(3)微分环节:能反映偏差信号的变化趋势(变化速率) ,并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。通过上诉的数据分析可知,该系统完成了设计的任务及要求,证实了设计方案的可行性和设计方法的正确性。26附录 部分源程序一、主程序:main( ) zf=0; flag1=0; EA=1; IT0=1; EX0=1; count=0

50、; en=0; en1=0; en2=0; U0=200; Un=0; cc=0; zanting=0; pwm1=0; pwm2=0; P1=0 xF0; Init_lcd(); /设置液晶显示器 Clr_Scr(); /清屏 left();Disp_Chinese(0,0,dan); /单 left();Disp_Chinese(0,16,pian); /片 left();Disp_Chinese(0,32,ji); /机 left();Disp_Chinese(0,48,de); /的 right();Disp_Chinese(0,0,shu); /数 right();Disp_Chin

51、ese(0,16,zi); /字 right();Disp_Digit(0,32,dp); /P right();Disp_Chinese(0,40,di); /I right();Disp_Digit(0,56,dd); /D27 left();Disp_Chinese(3,16,dian); /电 left();Disp_Chinese(3,32,ji); /机 left();Disp_Chinese(3,48,tiao); /调 right();Disp_Chinese(3,0,shu0); /速 right();Disp_Chinese(3,16,xi); /系 right();Dis

52、p_Chinese(3,32,tong); /统 left();Disp_Chinese(6,48,heng); /横线 right();Disp_Chinese(6,0,heng); /横线 right();Disp_Chinese(6,16,jia); right();Disp_Chinese(6,32,xiao); right();Disp_Chinese(6,48,wei); flag0=0; for( ; ; ) /等待设置键按下 if(flag0=1) break; Clr_Scr(); /清屏 left();Disp_Chinese(0,32,can); left();Disp_

53、Chinese(0,48,shu); right();Disp_Chinese(0,0,she); right();Disp_Chinese(0,16,zhi); left();Disp_Chinese(2,4,Kp); left();Disp_Digit(2,20,maohao); left();Disp_Digit(2,28,s0); left();Disp_Digit(2,36,s0); left();Disp_Digit(2,44,dian0); left();Disp_Digit(2,52,s0); right();Disp_Chinese(2,4,Ki); right();Disp

54、_Digit(2,20,maohao); right();Disp_Digit(2,28,s0); right();Disp_Digit(2,36,s0);28 right();Disp_Digit(2,44,dian0); right();Disp_Digit(2,52,s0); left();Disp_Chinese(4,4,Kd); left();Disp_Digit(4,20,maohao); left();Disp_Digit(4,28,s0); left();Disp_Digit(4,36,s0); left();Disp_Digit(4,44,dian0); left();Dis

55、p_Digit(4,52,s0); right();Disp_Chinese(4,4,V); right();Disp_Digit(4,20,maohao); right();Disp_Digit(4,28,s0); right();Disp_Digit(4,36,s0); right();Disp_Digit(4,44,s0); left();Disp_Chinese(6,4,zhuan); left();Disp_Chinese(6,20,xiang); left();Disp_Digit(6,36,maohao); left();Disp_Chinese(6,44,zheng); fla

56、g1=0; for(set=0;) /等待启动键按下 switch(set) case 0:break; case 1: left();Disp_Digit(2,28,s0); left();Disp_Digit(2,36,s0); left();Disp_Digit(2,52,s0); Kpp=0; for(flag=0,n=0;) left();Disp_Digit(2,28,kong); Delay12864(1000); left();Disp_Digit(2,28,sn);29 Delay12864(2500); if(flag=1) break; left();Disp_Digit

57、(2,28,sn); Kpp+=10*n; for(flag=0,n=0;) left();Disp_Digit(2,36,kong); Delay12864(1000); left();Disp_Digit(2,36,sn); Delay12864(2500); if(flag=1) break; left();Disp_Digit(2,36,sn); Kpp+=n; for(flag=0,n=0;) left();Disp_Digit(2,52,kong); Delay12864(1000); left();Disp_Digit(2,52,sn); Delay12864(2500); if

58、(flag=1) break; left();Disp_Digit(2,52,sn); Kpp+=0.1*n; set=0; break; case 2:right();Disp_Digit(2,28,s0);30 right();Disp_Digit(2,36,s0); right();Disp_Digit(2,52,s0); Kii=0; for(flag=0,n=0;) right();Disp_Digit(2,28,kong); Delay12864(1000); right();Disp_Digit(2,28,sn); Delay12864(2500); if(flag=1) bre

59、ak; right();Disp_Digit(2,28,sn); Kii+=10*n; for(flag=0,n=0;) right();Disp_Digit(2,36,kong); Delay12864(1000); right();Disp_Digit(2,36,sn); Delay12864(2500); if(flag=1) break; right();Disp_Digit(2,36,sn); Kii+=n; for(flag=0,n=0;) right();Disp_Digit(2,52,kong); Delay12864(1000); right();Disp_Digit(2,5

60、2,sn); Delay12864(2500);31 if(flag=1) break; right();Disp_Digit(2,52,sn); Kii+=0.1*n; set=0; break; case 3:left();Disp_Digit(4,28,s0); left();Disp_Digit(4,36,s0); left();Disp_Digit(4,52,s0); Kdd=0; for(flag=0,n=0;) left();Disp_Digit(4,28,kong); Delay12864(1000); left();Disp_Digit(4,28,sn); Delay1286

温馨提示

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

评论

0/150

提交评论