基于51单片机单闭环数字控制课程设计_第1页
基于51单片机单闭环数字控制课程设计_第2页
基于51单片机单闭环数字控制课程设计_第3页
基于51单片机单闭环数字控制课程设计_第4页
基于51单片机单闭环数字控制课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、运动控制课程设计题 目:基于AT89C52单片机单闭环PWM直流数字控制系统 专业班级: 1002 姓 名: 秦凯新 学 号: 201046820427 指导教师: 张智强 目 录1.引言12.设计方案12.1 系统总方案论证与选择12.2 PID控制算法的设计22.3 单片机的选型:52.4 测速装置的选型:52.4.1霍尔传感器测速52.4.2编码盘测速63 硬件部分63.1单片机最小系统63 .2 PWM控制直流电机正反转模块设计73.4检测回路模块设计83.6按键模块设计93.7显示模块设计.94 软件部分103.1 PID控制程序设计103.1.1位置式电机PID控制程序设计103.

2、1.2增量式电机PID控制程序设计123.2经测速装置由PID运算后PWM波形的产生程序设计143.2.1直流电机调速原理143.2.2 PWM基本原理及实现方法143.2.3 PWM在直流调速中的应用153.2.3PWM产生软件设计思路153.3显示模块程序设计18附录:21参考文献22II1.引言由于直流电动机具有良好的起动、制动性能,适宜在大范围内平滑调速,因此在许多需要调速或快速正反向的电力拖动系统中得到了广泛的应用。而且,从控制的角度来看,直流调速还是交流调速,都用到拖动系统的基础。早期直流电动机的控制均以模拟电路为基础,由运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的

3、硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难, 触发精度易受电网电压波动的影响,触发脉冲不对称度较大,调节器中的运算放大器,因网压和温度变化引起的漂移会产生运算误差,模拟器件老化也会引起运算误差,甚至使已经整定好的系统性能变差,这些都阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异,使许多控制功能及算法可以采用软件技术来完成,不但为直流电动机的控制提供了更大的灵活性,而且使系统能达到了更高的性能。 2.设计方案 2.1 系统总方案论证与选择对直流电机转速的控制有一般有两种方式,一种是开环控制,一种是闭环控制。开环控制的优点是简单、稳定、可靠。若组成系统的元件

4、特性和参数值比较稳定,且外界干扰较小,开环控制能够保持一定的精度。缺点是精度通常较低,无自动纠偏能力;闭环控制的优点是控制的精度可以达到很高,而且对外界的干扰和系统的参数变化有很好的抑制作用,且可以通过输出反馈控制系统的控制过程。缺点是存在稳定性,振荡,超调等一系列问题,对系统的性能分析和设计远比开环控制麻烦。所以采用但闭环直流调速系统设计方案。图2 电路组成框图 按键采用4X4矩阵键盘,显示装置采用1602液晶。通过给定值,然后单片机检测经过旋转光码盘检测转速,形成脉冲,送到中断口,经过定时检测中断次数,测得转速,求得偏差,然后经过PID运算后,来设定定时器0的定时时间,从而获得相应的脉冲,

5、即PWM脉冲。从而作用于L298专用芯片,从而实现对直流电机的控制。 2.2 PID控制算法的设计电动机参数:先假设所控制电机的参数如下,来设计PID的各个参数:PN=3KW, nN=1500rpm,UN=220V,IN=17.5A,Ra=1.25 。主回路总电阻R=2.5 ,电磁时间常数Tl=0.017s,机电时间常数Tm=0.075s。三相桥式整流电路,Ks=40。测速反馈系数 =0.07。调速指标:D=30,S=10%。控制算法是微机化控制软件系统的一个重要组成部分,可以说整个系统的控制功能主要由控制算法来实线。所以控制算法的好坏直接决定了这个系统的好坏。根据偏差的比例(P)、积分(I)

6、、微分(D)进行控制,称为PID控制。它能满足相当多工业对象的控制要求,至今仍是一种应用最广的控制算法。由于是用单片机控制的系统,故而我们采用数字PID控制。模拟PID控制规律的离散化模拟形式离散化形式常用的控制方式 1、P控制 2、PI控制 3、PD控制 4、PID控制 PID算法的两种类型1、位置型控制例如图515调节阀控制式中 称为比例项 称为积分项 称为微分项2、增量型控制例如图516步进电机控制综合考虑PI算法的选择转角的偏差e以及偏差的微分和积分 分别代表了系统输出的当前、将来和过去的三种状态,而PI调节器的输出限幅值则代表了系统消除偏差的能力。合理综合地运用这些信号,在系统允许的

7、条件下,尽快消除偏差,又不产生或者不产生超调,可使系统以最合适的速度稳定运行。 根据转角偏差、实际转角变化率的负值和转角偏差的积分所在的区间确定调整规则,并根据它们的大小决定调整的强度,使智能型PI调节器参数随着偏差的变化而有选择地变化。当偏差大时,停止积分,并调整比例系数Kp,使系统以最大的能力消除偏差;当偏差小时,投入积分,并逐步调整比例系数Kp和积分系数Ki,使系统以最佳过程达到稳态,最终实现最佳动态目标速度值的调整。 1 为满足调速系统的稳态性能指标,额定负载时的稳态速降应为2 求闭环系统应有的开环放大系数 先计算电动机的电动势系数 则开环系统额定速降为 闭环系统的开环放大系数应为3

8、计算转速反馈环节的反馈系数和参数根据调速指标要求,前已求出闭环系统的开环放大系数应为K41.22,则运算放大器的放大系数Kp应为实取Kp=2。为了实现转速无静差,必须在扰动作用点以前设置一个积分环节,从图可以看出,在负载扰动作用点以后,已经有一个积分环节,故从静态无差考虑需要型系统。从动态性能上看,考虑转速调节器饱和非线性后,调速系统的跟随性能与抗扰性能是一致的,而典型型系统具有较好的抗扰性能。所以,转速环应该按典型系统进行设计。由图可以明显地看出,要把转速环校正成典型型系统,转速调节器ASR也应该采用PI调节器,其传递函数为式中 Kn转速调节器的比例系数;tn转速调节器的超前时间常数;这样,

9、调速系统的开环传递函数为令n=hTn,h=5,n=hTn=50.515=2.573 s则转速调节器的传递函数为2.3 单片机的选型:Wln$L AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。优点是:省钱,低端,稳

10、定,相当于32位机虽差的太远,但经济也是不得不考虑的因素,而且本课程设计也是要求只能用51.基于51单片机的细节请参考51的说明书,这里不再赘述。2.4 测速装置的选型:2.4.1霍尔传感器测速霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,18551938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导

11、体材料的导电类型、载流子浓度及载流子迁移率等重要参数。电机每转一圈,每一相霍尔传感器产生2脉冲,且其周期与电机转速成反比,因此可以利用霍尔传感器信号得到电机的实际转速。为尽可能缩短一次速度采样的时间,可测得任意一相霍尔传感器的一个正脉冲的宽度,则电机的实际转速为: V=N*30;V:速度 R/minN:每秒采样的脉冲个数霍尔传感器输出的是脉冲,可以直接将输出脉冲接入单片机外部计数器,故而非常简单实用。2.4.2编码盘测速其效果跟霍尔测速一致,但是霍尔元件利用的是电磁产生脉冲,光电编码器利用的是光产生脉冲。它的原理是通过电动机的转动带动码盘的转动,码盘上有很多缝隙,缝隙每经过红外管一次就会产生一

12、个脉冲,进而直接输入单片机,经过算法处理得到实际转速。经过分析,本次试验选取的是光电码盘测速。首先是因为同时测量霍尔元件和光电编码器,发现光电编码器的灵敏度更高,且其价格便宜。最关键的是它很好用。3 硬件部分3.1单片机最小系统此次选用80C51作为主控制器,下图为其最小系统电路图,在此基础上才能发挥其功能。图3 51单片机最小系统图中选用12MHz的晶振为其提供基准时钟脉冲,之所以选用12MHz是为了方便设置定时器的初值,另外也有选用11.0592MHz的晶振,这是为了方便设置波特率,在此课程设计没必要用到波特率,故而选择12MHz的晶振。3 .2 PWM控制直流电机正反转模块设计L298N

13、是SGS公司的产品,其内部包含4通上道逻辑驱动电路,即内含上二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号, 可驱动46V、2A以下的电上机。由L298N构成的PWM功率放大器的工作形式为单极可逆模式,2个H桥的下侧桥晶体管发射极连在一起,其引脚排列如图1所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传号。L298可驱动2个电机,OUTl、OUT2和OUT3、0UT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA、ENB接控制使能端,控制电机的停转。这些特性使得L298N很适合用作小型直流电机控制芯片。根据L298N的输人输出关系

14、, PWM信号输入端INl和IN2可以控制电动机的正反转(输入端INl为PWM信号,输入端IN2为低电平,电动机正转;输入端IN2为PWM信号,输入端INl为低电平,电动机反转);当它为低电平时,驱动桥路上的4个晶体管全部截止,使正在运行的电动机电枢电流反向,电动机自由停止。电动机的转速由单片机调节PWM信号的占空比来实现。电源12V。3.4检测回路模块设计检测回路利用光电编码器将转速直接转换成数字信号送入单片机进行处理。编码器是把角位移或直线位移转换成电信号的一种装置。前者成为码盘,后者称码尺按照读出方式编码器可以分为接触式和非接触式两种接触式采用电刷输出,一电刷接触导电区或绝缘区来表示代码

15、的状态是“”还是“”;非接触式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件时以透光区和不透光区来表示代码的状态是“”还是“”。 按照工作原理编码器可分为增量式和绝对式两种。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。图5 光电编码器实物图光电编码盘是将测得的角位移转换成为相应的电脉冲信号输出的数字传感器,本设计采用增量式光电编码器来采样转速信号,如图8所示。增量式编码器是专门了用来测量转动角位移的累计量。3.6按键模块设计

16、图6 按键模块硬件电路 按键模块采用独立键盘,没有采用矩阵键盘,是因为根据系统的要求,并不需要采用矩阵键盘。确定键:作用是确定给定速度。 设定速度:是开始设定给定的速度,拥有最高权限。设定速度+:表示增加设定值。设定速度-:表示减少设定值。3.7显示模块设计. 图7 显示模块硬件设计电路显示模块课程设计采用1602液晶,因为在实际的需要中,操作比较简单,详细的1602操作指南请参考datasheet;1602液晶仅显示两部分,实际速度和设定速度。通过速度检测和设计给定来显示在液晶上。4 软件部分3.1 PID控制程序设计3.1.1位置式电机PID控制程序设计struct PID unsigne

17、d int SetPoint; / 设定目标 Desired Value unsigned int Proportion; / 比例常数 ProportionalConst unsigned int Integral; / 积分常数 Integral Const unsigned int Derivative; / 微分常数 Derivative Const unsigned int LastError; / Error-1 unsigned int PrevError; / Error-2 unsigned int SumError; / Sums of Errors ; struct PI

18、D spid; / PID Control Structurelong rout; / PID Response (Output) long rin; / PID Feedback (Input) void PID_Init(struct PID *pp) memset ( pp,0,sizeof(struct PID); /全部初始化为0 unsigned int PID_Calc( struct PID *pp, unsigned int NextPoint ) unsigned int dError,Error; Error = pp-SetPoint - NextPoint; / 偏差

19、 pp-SumError += Error; / 积分 dError = pp-LastError - pp-PrevError; / 当前微分 pp-PrevError = pp-LastError; pp-LastError = Error; return (pp-Proportion * Error / 比例项 + pp-Integral * pp-SumError / 积分项 + pp-Derivative * dError); / 微分项 3.1.2增量式电机PID控制程序设计电机控制采用增量式PID控制,其控制周期为200ms。在实际中应该使控制周期短些,如20-50ms。由于此次

20、在仿真环境下效果不是很明显,故而选用200ms控制周期。void PWMset(int pwm)/PWM设置if(pwm=0)DIR=0;PWML=pwm;if(pwmout_max) out=out_max;if(outout_min) out=out_min;PWMset(out);last_out=out;通过对比,我选用了增量式PID控制,通过对预设速度与当前反馈的速度进行比较,得到偏差,对偏差进行比例积分微分控制,控制电机,逐渐使偏差为零系统趋于稳定。开始设置Kp,Ki,Kd参数PID控制输出PWM控制输出电机测速单片机采样计算偏差3.2经测速装置由PID运算后PWM波形的产生程序设

21、计调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便。3.2.1直流电机调速原理根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电机来说,人为机械特性方程式为:分析(1)式可得当分别改变UN、和Rad时,可以得到不同的转速n,从而实现对速度的调节。由于=F(If),当改变励磁电流If时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流If,和磁通量只能在低于其额定值的范围内调节,故只能

22、弱磁调速。而对于调节电枢外加电阻Rad时,会使机械特性变软,导致电机带负载能力减弱。理想空载转速n0随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速.3.2.2 PWM基本原理及实现方法其方法是通过改变电机电枢电压接通时间与通电周期的比值即占空比来控制电机速度这种方法称为脉冲宽度调制,简称PWM.调速原理如图所示通过控制脉冲占空比来改变电机的电枢电压.Vd=Vmax*D (2)由公式(2)可见,当我们改变占空比D=t1T时,就可以得到不同的电机平均速度Vd

23、,从而达到调速的目的。严格地讲,平均速度与占空比Vd并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。3.2.3 PWM在直流调速中的应用PWM广泛应用于直流调速系统,例如,以往普遍应用的晶闸管相控整流直流电机调压调速系统,现在也发展了全波步控整流PWM斩波直流电压调速系统,开关磁阻电动机也是有直流斩波器供电的。PWM控制技术是利用半导体开关器件的导通与关断把直流电压变成电压脉冲序列,并通过控制电压脉冲宽度或周期以达到变压目的,或者控制电压脉冲宽度和脉冲序列的周期以达到变压变频目的的一种控制技术。直流电动机转速n的表达式为:n= Ua-IaRaCe-(r/min)式中 Ua电枢

24、端电压(V)Ia电枢电流()Ra电枢电路总电阻()每级磁通量(Wb)Ce与电机结构有关的常数由式可知,直流电动机转速n的控制方法可分为两类,即励磁控制法与电枢电压控制法。励磁控制法控制励磁通,其控制功率虽然小,但低速时受到磁极饱和的限制,高速时受到换向火花和换向器结构强度的限制。而且由于励磁线圈电感较大,动态响应较差。所以常用的是电枢电压控制法。Ua=Ud-IaR,虽然调节电阻R即可改变端电压达到调速目的,但这种方法效率很低。随着电力电子技术的进步,可由PWM斩波器进行斩波调压。3.2.3PWM产生软件设计思路通过给定值,然后单片机检测经过旋转光码盘检测转速,形成脉冲,送到中断口,经过定时检测

25、中断次数,测得转速,求得偏差,然后经过PID运算后,来设定定时器0的定时时间,从而获得相应的脉冲,即PWM脉冲。从而作用于L298专用芯片,从而实现对直流电机的控制。 以下是代码是PWM波形产生具体实现:#define out_max 10000#define out_min -10000sbit PWM=P20;/正转引脚sbit PWM=P21;/反转引脚int KP=1.943;/PID比例系数int KI=2.573;/PID积分系数int KD=0;/PID微分系数int count=0;int Key_flag=0;int flag=0;int last_out=0;int set

26、speed=50;int speed=0;int Now_speed3=0;int num,speed,j; unsigned char highh,highl,lowh,lowl;int high=10000;/*计数器0初始化*/void timer0_init(void)highh=(unsigned char)(16384-high)/256+192); highl=(unsigned char)(16384-high)%256); lowh=(unsigned char)(high/256+200);lowl=(unsigned char)(high%256); TMOD=0x01;

27、 TH0=highh; TL0=highl;IT0=1;EX0=1; TR0=1; ET0=1; EA=1; void Getspeed(void) interrupt 0 /测速模块 num+; IE0=0;void Timer(void) interrupt 1/PWM波形产生和设置模块 if(flag=0)TH0=(unsigned char)(16384-PWML)/256+192); TL0=(unsigned char)(16384-PWML)%256); PWM=1; flag=1; elseTH0=(unsigned char)(PWML/256+200);TL0=(unsigned char)(PWML%256);PWM=0; flag=0; if(j=20) speed=num; if(Key_flag=0) Motor_control(); num=0; j=0; j+;TF0=0;3.3显示模块程序设计 以下代码是实现LCD的显示驱动,LCD循环显示实际速度和显示速度:void chushi() delay(200); wri

温馨提示

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

评论

0/150

提交评论