采用PWM调制技术实现对直流电机转速的控制_第1页
采用PWM调制技术实现对直流电机转速的控制_第2页
采用PWM调制技术实现对直流电机转速的控制_第3页
采用PWM调制技术实现对直流电机转速的控制_第4页
采用PWM调制技术实现对直流电机转速的控制_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

采用PWM调制技术实现对直流电机转速的控制陈宁坡(河北科技大学信息科学与工程学院)播要:在运动控制系统中,电机转速控制占有至关重要的作用,其控制算法和手段有很多,模拟PID控制是最早发展起来的控制策略之一,长期以来形成了典型的结构,并且参数整定方便,能够满足一般控制的耍求,但山于在模拟PID控制系统中,参数一貝整定好后,在整个控制过程中都是固定不变的,而在实际中,山于现场的系统参数、温度等条件发生变化,使系统很难达到最佳的控制效果,因此釆用模拟PID控制器难以获得满意的控制效果。随着计算机技术与钳能控制理论的发展,数字PID技术渐渐发展起来,它不仅能够实现模拟PID所完成的控制任务,而且具备控制算法灵活、可靠性高等优点,应用而越来越广。关键词:数字PID:PWM脉冲:占空比:无静左调节ThePWMmodulationtecluiiquetoacliievethecontroloftheDC

motorspeedCHENningpo(CollegeofInfonnationScienceandEngineenng,HebeiUmvei'sityofScienceandTechnology)AbstractInthemotioncontrolsystem,thecontrolofelectromotor'srotatespeedisofgreatimportance,therearealotofspeedcontrolarithmeticsandmethods,theanalogPIDcontrolisoneoftheearliestdevelopedcontrolpolicieswhichhasformedtypicalstructure,itsparametricsettingisconvenientandit'seasytomeetnormalcontrol'sdemand,butasthewholecontrolprocessisfixedoncetheparameterhasbeensetwlulepracticallythechangesofthoseconditionslikethesystemparametersandtemperatureoftlieenvironmentprolubitthesystemHomreaclungitsbestcontroleffect,sotheanalogPIDcontrollerbarelyhassatisfiedeffect.Withthedevelopmentofcomputertechnologyandintelligentcontroltheory,thedigitalPIDtechnologyistlirivingwhichcanachievetheanalogPID'scontroltasksandconsistsofmanyadvantageslikeflexiblecontrolanthnieticsandhighreliability,itiswidelyusednowKeywords:digitalPID;PWMimpulse:dutyfactor:astaticmodulation目前,PID控制及其控制器或智能PID控制器已经很多,产品已在工程实际中得到了广泛的应用。木次设计主要是利用PID控制技术对直流电机转速的控制。其设计思路为:以AT89S51单片机为控制核心,产生占空比受PID算法控制的PVM脉冲实现对直流电机转速的控制。同时利用光电传感器将电机速度转换成脉冲频率反馈到单片机中,构成转速闭环控制系统,达到转速无静筮调节的目的。在系统中采128X6-1LCD显示器作为显示部件,通过4X4键盘设置P、I.D、V四个参数和正反转控制,启动后通过显示部件了解电机当前的转速和运行时间。

因此该系统在硬件方面包括:电源模块、电机驱动模块、控制模块、速度检测模块、人机交互模块。软件部分釆用c语言进行程序设计,其优点为:可移植性强、算法容易实现、修改及调试方便、易读等。1PID算法及PWM控制技术简介1.1PID算法控制算法是微机化控制系统的一个重要组成部分,整个系统的控制功能主要由控制算法来实现。目前提出的控制算法有很多。根据偏差的比例(P)、枳分(I)、微分(D)进行的控制,称为PID控制。实际经验和理论分析都表明,PID控制能够满足相当多工业对彖的控制要求,至今仍是一种应用最为广泛的控制算法之一。卞面分别介绍模拟PID、数字PID及其参数整定方法。1.2数字PID在DDC系统中,用计算机取代了模拟器件,控制规律的实现是由计算机软件来完成的。因此,系统中数字控制的设计,实际上是计算机算法的设计。由于计算机只能识别数字量,不能对连续的控制算式直接进行运算,故在计算机控制系统中,首先必须对控制规律进行离散化的算法设计。为将模拟PID控制规律按式(1.2)离散化,我们把图1.1中r(t)、e(t)、U(t)、C(t)n次采样的数据分别用r(n)、e(n)>u(n)>c(n)表示,于是式(1.1)变为:e(n)=r(n)—c(n) (1.1)当采样周期T很小时dt可以用T近似代替,de(t)可用e(n)-e(n-l)近似代替,“枳分”用“求和”近似代替,即可作如卞近似(1.2)(1.3)de(t) e(n)—e(n—(1.2)(1.3)dt T£e(t)dte乞e(i)Ti-1这样,式(1・2)便可离散化以卞差分方程[e(n)-c(n-l)]}+u0(1.4)[e(n)-c(n-l)]}+u0(1.4)(1.5)上式中%是偏差为零时的初值,上式中的第一项起比例控制作用,称为比例(P)项Up(n),ep(1.5)Up3)=Kpe(ii)第二项起枳分控制作用,称为积分(I)项Ui(n)即(1.6)

第三项起微分控制作用,称为微分(D)项Ud(n)即uD(n)=Kp^-[e(n)-e(n-l)]这三种作用可单独使用(微分作用一般不单独使用)或合并使用,常用的组合有:P控制:u(n)=Up(n)+u0 (1.8)PI控制: u(n)=Up(n)+i】i(n)4-u0 (1.9)PD控制: u(n)=Up(n)+UD(n)+u() <1.10)PID控制:u(n)=Up(n)+Ui(n)+UD(n)+u。 (1.11)式(1.7)的输出量u(n)为全量输出,它对于被控对彖的执行机构每次采样时刻应达到的位置。因此,式(1.7)又称为位置型PID算式。由(1.7)可看出,位置型控制算式不够方便,这是因为要累加偏差e(t),不仅要占用较多的存储单元,而且不便于编写程序,为此对式(1.7)进行改进。根据式(1.7)不难看出u(n-l)的表达式,即Tn-l 丁(1.12)u(n-1)=Kp{e(n-1)+=工e(n)+-^-[e(n-1)-e(n-2)]}+u0

丄Ii-l 丄(1.12)将式(1.7)和式(1.15)相减,即得数字PID增量型控制算式为Au(n)=u(n)—u(n—1)=Kp[e(n)-e(n-1)J+KjeCn)+KD[e(n)-2e(n-1)4-e(n-2)] (1.13)从上式可得数字PID位置型控制算式为U(n)=Kp[e(n)-e(n-l)]+KIe(n)+KD[e(n)-2e(n-l)+e(n-2)]+u0 (1.⑷式中:姑称为比例增益;KT=Kp—称为积分系数;KD=Kp称为微分系数[1]。数字PID位置型示意图和数字PID增量型示意图分别如图1和2所示:图1数字图1数字PID位置型控制示意图图2数字PID增屋型控制示意图1.3数字PID参数整定方法如何选择控制算法的参数,要根据具体过程的要求来考虑。一般来说,要求被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调屋小,在不同干扰卜•系统输出应能保持在给定值,操作变量不宜过人,在系统和环境参数发生变化时控制应保持稳定。显然,要同时满足上述各项要求是很困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。PID调节器的参数整定方法有很多,但可归结为理论计算法和工程整定法两种。用理论计算法设计调节器的前提是能获得被控对象准确的数学模型,这在工业过程中一般较难做到。因此,实际用得较多的还是工程整定法。这种方法最大优点就是整定参数时不依赖对象的数学模型,简单易行。当然,这是一种近似的方法,有时可能略嫌粗糙,但相当适用,可解决一般实际问题。1.4直流电机的PWM控制技术根据PWM控制的基本原理可知,一段时河内加在惯性负载两端的PWM脉冲与相等时间内冲量相等的直流电加在负载上的电压等效,那么如果在短时间T内脉冲宽度为to,幅值为U,由图3可求得此时河内脉冲的等效直流电压为:=JxU,若令Q即为占空比,则上式可化为:°T TUo=«xU (U为脉冲幅值) (1.15)图3PWM脉冲若PWM脉冲为如图4所示周期性矩形脉冲,那么与此脉冲等效的直流电压的计算方法与上述相同,即u。(Q为矩形脉冲占空比) (1.16)图4周期性PWM矩形脉冲由式1.20可知,要改变等效直流电压的人小,可以通过改变脉冲幅值U和占空比Q来实现,因为在实际系统设计中脉冲幅值一般是恒定的,所以通常通过控制占空比Q的犬小实现等效直流电压在0〜U之间任意调节,从而达到利用PWM控制技术实现对直流电机转速进行调节的目的。2设计方案与论证2.1系统设计方案根据系统设计的任务和要求,设计系统方框图如图5所示。图中控制器模块为系统的核心部件,键盘和显示器用来实现人机交互功能,其中通过键盘将需要设置的参数和状态输入到单片机中,并且通过控制器显示到显示器上。在运行过程中控制器产生PWM脉冲送到电机驱动电路中,经过放人后控制直流电机转速,同时利用速度检测模块将当前转速反馈到控制器中,控制器经过数字PID运算后改变PWM脉冲的占空比,实现电机转速实时控制的目的。图5系统方案框图3单元电路设计3.1硬件资源分配本系统电路连接及硬件资源分配见图6所示。采用AT89S51单片机作为核心器件,转速检测模块作为电机转速测量装置,通过AT89S51的P3.3II将电脉冲信号送入单片机处理,L298作为直流电机的驱动模块,利用128X64LCD显示器和4X4键盘作为人机接II。

图6系统电路连接及硬件资源分配图3.2电机速度采集电路设计在本系统中由于要将电机本次采样的速度与上次采样的速度进行比较,通过偏差进行PID运算,因此速度采集电路是整个系统不可缺少的部分。本次设计中应用了比较常见的光电测速方法来实现,其具体做法是将电机轴上固定一圆盘,且其边缘上有N个等分凹槽如图7(a)所示,在圆盘的一侧固定一个发光二极管,其位置对准凹槽处,在另一侧和发光二极光平行的位置上固定一光敏三极管,如果电动机转到凹槽处时,发光二极管通过缝隙将光照射到光敏三极管上,三极管导通,反之三极管截止,电路如图了(b)所示,从图中可以得出电机每转一圈在P3.3的输出端就会产生N个低电平。这样就可根据低电平的数量来计算电机此时转速了。例如当电机以一定的转速运行时,P3.3将输出如图8所示的脉冲,若知道一段时河t内传感器输出的低脉冲数为n,则电机转速v二r/s。+5V°R1200Q光敏三极管+5V°R1200Q光敏三极管图7电机速度采集方案n_rLn_njn_rLn_njn_n_n_nj^图8传感器输出脉冲波形4软件设计4.1PID算法本系统设计的核心算法为PID算法,它根据本次采样的数据与设定值进行比较得出偏差e(n),对偏差进行P、I、D运算最终利用运算结果控制PWM脉冲的占空比来实现对加在电机两端电压的调节[10],进而控制电机转速。其运算公式为:u(n)=Kp[e(n)-e(n-l)]+Kze(n)+KD[e(n)—?e(n—1)+e(n—2)]+lIq图41PID程序流程因此要想实现PID图41PID程序流程其程序流程如图9所示。4.2程序流程主流程图在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图10所示图10主程序流程5系统测试与分析为了确定系统与设计要求的符合程度,需要进行系统测试与分析,但是由于试验调节的制约和时间的限制,不能完成此次制作,只能通过软件仿真进行验证,在这里使用的是英国的Proteus软件进行测试,对于电机速度采集可根据设定的电机速度计算出P3.3II输入的方波脉冲的频率和占空比,来改变等效直流电压的犬小,给P3.3输入此脉冲来实现电机速度采集。并允许误差存在。下面以PID调节器为例,具体说明经验法的整定步骤:让调节器参数积分系数ki二0,实际微分系数kD二0,控制系统投入闭坏运行,由小到大改变比例系数知,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。取比例系数姑为当前的值乘以0.83,由小到人增加积分系数ki,同样让扰动信号作阶跃变化,直至求得满意的控制过程。积分系数ki保持不变,改变比例系数鬲,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数姑增大一些,再调整积分系数ki,力求改善控制过程。如此反复试凑,直到找到满意的比例系数h和积分系数ki为止。引入适当的实际微分系数灶和实际微分时间Td,此时可适当增人比例系数k>和积分系数ki。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。PID参数是根据控制对象的惯量来确定的。人惯量如:人烘房的温度控制,一般P可在10以上,I在(3、10)之间,D在1左右。小惯量如:一个小电机闭坏控制,一般P在(1、10)之间,1在(0、5)之间,D在(0.1、1)之间,具体参数要在现场调试时进行修正。根据上诉方法,通过软件仿真系统得出数据如表1所示,通过观察得出该系统比较合适的P、I、D三者的参数值为:蚪二2,ki=2.2,kD二0.2。并且可以反映表1测试数据表次数设定k设上ki设定灶设定(r/nin)超调呈调节时间(s)误差122.20.21008%4±1%232.20.210015%5±2%342.20.210022%11±5%412.20.21005%6±3%502.20.21001%12±6%621.10.21006%8±2%200.21002X15±9%823.30.21008%5±1%924.40.21009%7±2%1022.20.11008%6±1%1122.201006%5±5%1222.20.31097%5±1%1322.20.41006%7±4%通过上诉的数据分析可知,该系统完成了设计的任务及要求,证实了设计方案的可行性和设计方法的正确性。6结论本课题的目的在于利用单片机实现PID算法产生PWM脉冲来控制电机转速。到目前为止通过对控制器模块、电机驱动模块、LCD显示模块、键盘模块、数字PID算法等进行深入的研究。完成了硬件电路的系统设计,并且利用Protel99se软件绘制出PCB图纸,但由于实验条件不足没能做出PCB板。软件方面利用C语言进行编程,增强了程序的可移植性和灵活性,并且利用Proteus软件进行仿真更加保证了程序的准确性。7参考文献ST.L298N数据手册[DB/OL].http://wvw.21ic.com.2000-7-1/2008-5-9.沙占友.单片机外围电路设计[M].北京:电子工业出版社,2003:21.何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社.1990:83-87・BehzadRazavi.DesignofAnalogCMOSandIntegratedCircuits[M]・McGrav-HillCompanies>2001:28-36・TaoWutYkangYang,YongxuanHuang,eta1・H-PIDControllerParametersTuningviaGeneticAlgorithms[C]・IntelligentControlandAutomation.Proceedingsofthe3rdWorldCongresson»2000,1:586-589.ConinosP,MunroN・PIDcontrollers:RecentTuningMethodsandDesigntoSpecification[X]・ControlTheoryandApplications,IEEProceedings,January.2002,149:46.

附录I部分源程序一、主程序:main(){zf=O;flagl=O;EA=1;ITO=1;EXO=1;count=0;en=O;enl=O;en2=0;U0=200;Un=O;cc=O;zanting=O;pvml=O;pvm2=0;Pl=OxFO;Init_lcd();Clr.ScrO;left();Disp_Chinese(0,0,dan);left();Disp_Chinese(0,16,pian):left();Disp_Chinese(0,32,ji);left();Disp_Chinese(0,4&de);right();Disp_Chinese(O,0,shu);rightO;Disp_Chinese(0,16,zi);right();Disp_Digit(0,32,dp);rightO;Disp_Chinese(0,40,di);rightO;Disp_Digit(0,56,dd);left();Disp_Chinese(3,16,dian):left();Disp_Chinese(3,32,ji);left();Disp_Chinese(3,4&tiao);right();Disp_Chinese(3,0,shuO);rightO;Disp_Chinese(3,16,xi);right();Disp_Chinese(3,32,tong);left();Disp_Chinese(6,4&heng);right();Disp_Chinese(6,0,heng);rightO;Disp_Chinese(6,16,jia);right();Disp_Chinese(6,32,xiao);right();Disp_Chinese(6,48,wei);flagO=O;〃设置液晶显示器〃清屏〃单〃片〃设置液晶显示器〃清屏〃单〃片〃机〃的〃数〃字//P//I//D〃电〃机〃调〃速〃系〃统〃横线〃横线〃等待设置键按下{if(flagO==l)break;}Clr.ScrO; 〃清屏left();Disp_Chinese(O,32,can);left();Disp_Chinese(0,48,shu);right0;Disp_Chinese(O,0,she);right0;Disp_Chinese(0,16,zhi);left();Disp.Chinese(2,4,Kp);left();Disp.Digit(2,20,Jiaohao);left0;Disp.Digit(2,28,s[0]);left0;Disp.Digit(2,36,s[0]);left();Disp_Digit(2,44,dianO);left();Disp.Digit(2,52,s[0]);right0;Disp_Chinese(2,4,Ki);right0;Disp_Digit(2,20,maohao);rightO;Disp_Digit(2,28,s[0]);right0;Disp_Digit(2,36,s[0]);right0;Disp_Digit(2,44,dianO);rightO;Disp.Digit(2,52,s[0]);left0;Disp_Chinese(4,4,Kd);left();Disp_Digit(4,20,Jiaohao);left();Disp.Digit(4,28,s[0]);left0;Disp_Digit(4,36,s[0]);left0;Disp_Digit(4,44,dianO);left();Disp_Digit(4,52,s[0]);right0;Disp_Chinese(4,4,V);right0;Disp_Digit(4,20.maohao);rightO;Disp_Digit(4,28,s[0]);rightO;Disp_Digit(4,36,s[0]);rightO;Disp.Digit(4,44,s[0]);left()xDisp_Chinese(6,4,zhuan)left0xDisp_Chinese(6,20,xiang);left();Disp_Digit(6,36,Jiaohao);〃等待启动键按下left(),Disp_Chinese(6,44,zheng);flagl=O;〃等待启动键按下for(set=0;;)svitch(set){case0:break;case1:left();Disp_Digit(2,2&s[0]);left();Disp_Digit(2,36,s[0]);left();Disp_Digit(2,52,s[0]);Kpp=0;for(flag=0,n=0;;)left();Disp_Digit⑵2&kong);Delayl2864(1000);left0;Disp_Digit(2,2&s[n]);Delayl2864(2500);if(flag==l)break;}left0;Disp_Digit(2,28,s[n]);Kpp+=10*n;for(flag=0,n=0;;){left();Disp_Digit(2,36,kong);Delayl2864(1000);left();Disp_Digit(2,36,s[n]);Delayl2864(2500);if(flag=l)break}left0,:Disp_Digit(2,36,s[n]);Kpp+=n,for(flag=0,n=0;;){left();Disp_Digit(2,52,kong);Delayl2861(1000);left0;Disp_Digit(2,52,s[n]);Delayl2861(2500);if(flag=l)break;}left0;Disp_Digit(2,52,s[n]);Kpp+=0.l*n;set=0;break;case2:right();Disp_Digit(2,2&s[0]);right();Disp_Digit⑵36,s[0]);right();Disp_Digit(2,52,s[0]);Kii=0;for(flag=0,n=0;;){right();Disp_Digit(2,2&kong);Delayl2861(1000);right();Disp_Digit(2,28,s[n]);Delayl2861(2500);if(flag=l)break;}right():Disp.Digit(2,28,s[n]);Kii+=10*n;for(flag=0,n=0;;){right();Disp_Digit(2,36,kong);Delayl2864(1000);right0;Disp_Digit(2,36,s[n]);Delayl2864(2500);if(flag=l)break;}right();Disp_Digit(2,36,s[n]);Kii+=n;for(flag=0,n=0;;){right();Disp_Digit(2,52,kong);Delayl2864(1000);right0;Disp_Digit(2,52,s[n]);Delayl2864(2500);if(flag=l)break;}right():Disp.Digit(2,52,s[n]);Kii+=0.l*n;set=0;break;case3:left():Disp.Digit(4,2&s[0]);left0;Disp.Digit(4,36,s[0]);left0;Disp_Digit(4,52,s[0]);Kd左0;for(flag=0,n=0;;){left();Disp_Digit(4,28,kong);Delayl2864(1000);leftO;Disp_Digit(4,28,s[n]);Delayl2864(2500);if(flag=l)break;}left0;Disp_Digit(4,28,s[n]);Kdd+=10*n;for(flag=0,n=0;;)left0;Disp_Digit(4,36,kong);Delayl2864(1000);left();Disp^Digit(4,36,s[n]);Delayl2861(2500);if(flag=l)break;}left0;Disp_Digit(4,36,s[n]);KdcR=n;for(flag=0,n=0;;){left();Disp_Digit(4,52,kong);Delayl2864(1000);left0;Disp_Digit(4,52,s[n]);Delayl2864(2500);if(flag=l)break;}left0;Disp_Digit(4,52,s[n]);KdEO.l*n;set=0;break;case4:right0;Disp_Digit(4,28,s[0]);right();Disp_Digit(4,36,s[0]);right();Disp_Digit(4,44,s[0]);V0=0;for(flag=0,n=0;;){right();Disp.Digit(4,28,kong);Delayl2861(1000);right();Disp_Digit(4,28,s[n]);Delayl2861(2500);if(flag=l)break;}right(),:Disp_Digit(4,28,s[n]);V0+=100*n;for(flag=0,n=0;;){right();Disp.Digit(4,36,kong);Delayl2861(1000);right();Disp.Digit(4,36,s[n]);Delayl2864(2500);if(flag=l)break;right();Disp_Digit(4,36,s[n]);V0+=10*n;for(flag=0,n=0;;){right();Disp_Digit(4,44,kong);Delayl2864(1000);r

温馨提示

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

评论

0/150

提交评论