基于单片机的直流电机调速系统设计.docx
《基于单片机的直流电机调速系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机调速系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的直流电机调速系统设计
计算机控制技术
课程设计
成绩评定表
设计课题基于单片机的直流电机调速系统设计
学院名称:
电气工程学院
专业班级:
自动F0801
*******
学号:
200*********
**********************************
设计地点:
中原路校区2号楼421
设计时间:
2011.06.27~2011.07.01
指导教师意见:
成绩:
签名:
年月日
计算机控制技术
课程设计
课程设计名称:
基于单片机的直流电机调速系统设计
学院名称:
电气工程学院
专业班级:
自动F0801
*******
学号:
200*********
**********************************
设计地点:
中原路校区2号楼421
设计时间:
2011.06.27~2011.07.01
计算机控制技术课程设计任务书
学生姓名
闫旭
专业班级
自动F0801
学号
200848240215
题目
基于单片机的直流电机调速系统设计
课题性质
工程设计
课题来源
自拟课题
指导教师
臧海河
主要内容
用带微处理器的可编程控制器对直流电机进行调速,通过对可编程控制器进行编程就可以实现对电机的规律化控制。
从而实现控制系统的数字化,自动化。
任务要求
第1天:
熟悉课程设计任务及要求,针对课题查阅技术资料。
第2天:
确定设计方案。
要求对设计方案进行分析、比较、论证,画出方框图,并简述工作原理。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅不少于5000字。
主要参
考资料
[1]徐薇莉曹柱中控制理论与设计[M]上海交大出版社,2003.74-82
[2]先锋工作室.单片机程序设计实例[M]清华大学出版社,2003.104-110
[3]康华光,邹寿彬.电子技术基础(数字部分第四版).北京:
高等教育出版社,2004年.
审查意见
系(教研室)主任签字:
年月日
1引言
1.1课题背景
以前的直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂、零漂电压,构成系统的器件较多,使得模拟直流传动系统的控制精度及可靠性较低。
随着计算机控制技术的发展,微处理器已经广泛使用于直流传动系统,实现了全数字化控制。
由于微处理器以数字信号工作,控制手段灵活方便,抗干扰能力强。
所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。
所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的阶段。
目前相比直流电机和交流电机他们各有所长,如直流电机调速性能好,但带有机械换向器,有机械磨损及换向火花等问题;交流电机,不论是异步电机还是同步电机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便而经济地调节[2]。
高性能的微处理器如DSP(DIGITALSIGNALPROCESSOR即数字信号处理器)的出现,为采用新的控制理论和控制策略提供了良好的物质基础,使电机传动的自动化程度大为提高。
在先进的数控机床等数控位置伺服系统,已经采用了如DSP等的高速微处理器,其执行速度可达数百万兆以上每秒,且具有适合的矩阵运算。
1.2系统功能
本设计是关于直流电机转速调节的设计,采用PID算法控制电机的转速。
通过键盘输入期望的转速,主单片机将设定值输入给从单片机,从单片机经PID等运算得出相应的PWM信号。
单片机采用AT89S52,PWM信号通过电机驱动电路使得电机电枢电压发生变化,从而转速发生变化。
在电机运行阶段,经传感器测量出转速输入到主单片机,主单片机输入相应的值到从单片机,从单片机再输出相应得PWM信号来恒定电机的转速。
2总体方案设计
2.1硬件方案设计
要控制直流电机转速,硬件电路要求比较高,它决定直流电机调速的精度。
采用PID控制器,因此需要设计一个闭环直流电机控制系统。
该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电极的转速值。
通过对设计功能分解,设计方案论证可以分为:
系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。
2.1.1微处理器
采用两片单片机(AT89S52),其中一片做成PID控制器,专门进行PID运算和PWM控制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向PID控制器提供设定值和测量值,设定PID控制器的控制速度等。
如果采用一片单片机,系统硬件简单,结构紧凑。
但是其造成CPU资源紧张,程序的多任务处理难度增大,不利与提高和扩展系统性能,也不利于向其他系统移植。
采用两个的话,虽然硬件增加,但在程序设计上有充分的自由去改善速度测量精度,缩短测量周期,优化键盘,显示及扩展其它功能。
与此同时,PID控制算法的实现可以精益求精,对程序算法或参数稍加改动即可移植到其他PID控制系统中。
2.1.2测速传感器
在电机的转轴端开一小洞,利用红外光电耦合器,每转半圈OUT端输出一个上脉冲。
由于霍尔传感器的采购不是很方便,所以使用红外光电耦合器。
此方案不需要A/D转换,直接可以被单片机接收。
可以采用记数的方法:
具体是通过单片机记单位时间S(秒)内的脉冲数N,每分钟的转速:
M=N/S×60。
也可以采用定时的方法:
是通过定时器记录脉冲的周期T,这样每分钟的转速:
M=60/T。
比较两个计数方法,方法一的误差主要是±1误差(量化误差),设电机的最低设计转速为120转/分,则记数时间S=1s,所以其误差得绝对值|γ|=|(N±1)/S×60-N/S×60|=60(转/分),误差计算公式表明,增大记数时间可以提高测量精度,但这样做却增大了速度采样周期,会降低系统控制灵敏度。
而方法二所产生的误差主要是标准误差,并且使采样时间降到最短,误差γ=[60/(T±1)-60/T],设电机速度在120—6000转/分之间,那么0.01s≤T≤0.5s,代入公式得:
0.00024≤|γ|≤0.6(转/分)。
2.1.3键盘显示
使用4个按键,进行逐位设置。
显示部分是使用支持中文显示的LCD,优点是美观大方,有利于人与系统的交互,及显示内容的扩展;缺点是成本高,抗干扰能力较差。
但为了系统容易扩展、操作以及美观,本设计完全采用。
2.1.4电机驱动方案
采用专用小型直流电机驱动芯片。
这个方案的优点是驱动电路简单,几乎不添加其它外围元件就可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全,价格也比较便宜。
2.1.5输入输出通道
由于选用了霍尔式传感器,故输入的信号经调理放大后直接是脉冲信号,无需经过A/D转换就可以输入到单片机中。
由于采用PWM控制直流电机的电枢电压,故单片机的输出经放大驱动电路就可以直接控制电机的电枢电压,以此来控制电机的转速。
2.1.6PWM实现方案
基于单片机类由软件来实现PWM:
在PWM调速系统中占空比D是一个重要参数在电源电压
不变的情况下,电枢端电压的平均值取决于占空比D的大小,改变D的值可以改变电枢端电压的平均值从而达到调速的目的。
改变占空比D的值有三种方法:
A、定宽调频法:
保持
不变,只改变t,这样使周期(或频率)也随之改变。
(图2-1)
B、调宽调频法:
保持t不变,只改变
,这样使周期(或频率)也随之改变。
(图2-1)
C、定频调宽法:
保持周期T(或频率)不变,同时改变
和t。
(图2-1)
图2-1电枢电压占空比图
前两种方法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。
利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。
所以选方案二,采用定频调宽法。
2.2系统原理框图设计
一个带键盘输入和显示的闭环测量控制系统。
主体思想是通过系统设定信息和测量反馈信息计算输出控制信息。
系统原理框图如图2.1所示
图2.1系统原理框图
3系统单元电路的设计
本设计因为输入的为脉冲信号、输出的是PWM信号,故无需A/D、D/A转换就可以直接进行工作。
3.1速度测量电路的设计
3.1.1转速/频率转换电路的设计
理论上,是先将转速转化为某一种电量来测量,如电压,电流等。
设计中将转速测量转化为电脉冲频率的测量。
基于这一思想,三极管输出型红外光电耦合器。
如图3.1所示,在电机转轮一处开孔,这样,每转一圈,三级管(红外接收头)透光导通一次,OUT端输出一个上脉冲,即完成了转速/频率的转换。
图3.1转速/频率转化电路
3.1.2脉冲滤波整形电路的设计
由于电机在转动的过程中有很大的晃动,而且本设计中测量装置做工粗糙,因此所获得的脉冲信号参杂有高频噪声或误动脉冲。
为了提高测量的准确,且尽可能地减少错误,设计中如图3.2所示OUT输出端加一电容接地。
为了既能抑制噪声又不影响测量,电容值C的选择很重要。
根据实际测量,设计中所使用的直流电机转速可达6000转/分。
其所产生的脉冲周期T=1/(6000/60)S=0.01S,一个周期内,脉冲持续时间约为1/8T=0.00125S,低电平时间约为7/8T=0.00875S,由于接收头感光导通电阻很小,所以电容迅速充电,当低电平到来时开始放电,为保证下一个脉冲的检测,放电时间t应小于低电平持续时间7/8T,根据电路,t=R2×C<0.00875,代入R2值解不等式可得:
C<0.000017F。
单位换算得C<0.017μF,为了方便整形,实际设计中C=0.001μF。
由于单片机中断I/O口的需要输入信号是正规的矩形脉冲,所以电路的脉冲整形电路采用74系列反向器74LS06进行两次反向后输入单片机。
图3.2脉冲滤波整形电路
3.2电机驱动电路的设计
本设计采用目前市场上较容易买到的L298N直流或步进电机驱动芯片,它采用单片集成塑装,是一个高电压、大电流全双桥驱动器,由标准的TTL电平控制。
L298N支持50V以内的电机控制电压,在直流运转条件下,可以通过高达2A的电流,因此它满足了一般小型电机的控制要求。
接法见图3.3,图中二极管的作用是消除电机的反向电动势,保护电路,因此采用整流二极管比较合适。
PWM控制信号由in1、in2输入。
如果in1为高电平,in2为低电平时电机为正向转速,反之in1为低电平,in2为高电平时,电机为反向转速。
本设计将in2直接接地,即采用单向制动的方式。
图3.3电机驱动电路
3.3LCD显示电路和键盘与单片机的接口设计
本设计采用并行方式控制,LCD与单片机的通讯接口电路如图3.4所示采用直连的方法,这样设计的优点是在不影响性能的条件下还不用添加其它硬件,简化了电路,降低了成本。
图3.4LCD显示电路与单片机的接口
本设计采用四个键作为键盘,分别为选择、加、减、确定。
它们分别与P0.4、P0.5、P0.6、P0.7接口相连。
作为设置速度的输入。
图3.5键盘电路
3.4两单片机的互连
本设计采用两片单片机(AT89S52),其中一片做成PID控制器,专门进行PID运算和PWM控制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向PID控制器提供设定值和测量值,设定PID控制器的控制速度等。
它们的接线图如图3.6。
图3.6两单片机互联图
本设计使用异步串口通信,直接把两个单片机的TXD和RXD两个引脚交叉相连接,两者都以中断接收串口数据。
省I/O口省代码。
也就是A的TXD(P3.1)和B的RXD(P3.0)连接,A的RXD和B的TXD连接。
4系统软件设计
4.1系统总程序框图设计
系统程序程序框图如图4.1和4.2所示。
图4.1系统主单片机总程序框图
图4.2系统从单片机(PID控制器)程序框图
当系统被启动后,主从单片机初始化。
主单片机检测是否有键按下,再执行键子程序,将输入的值传送到PID控制器,PID控制器经PID计算处理,再计算出PWM的定时值,PID再送出相应的PWM信号,驱动电机转动,主单片机将传感器输入的信号进行计算,再将得出的值输出到PID控制器,PID控制器经计算输出相应的PWM信号控制电机转速趋于设定的转速。
依次循环使电机趋于稳定值。
4.2电机转速测量程序设计
设计中考虑到电机的工作环境一般比较恶劣,因此除了硬件外,从程序上除了要更高的精确度也需要进行更多的抗干扰设计,从而实现软件的大范围检错、纠错或丢弃错误等。
在程序的设计过程中,对严重不符合要求的测量数据(如大于6000转对应的数据)进行了丢弃处理,而对于正常范围内的数据错误采用了采5取3求平均的算法(即采集5个数据,去掉一个最大值一个最小值,然后将剩余3数据求平均)。
实验表明,此方法降低了系统采集转速中出现的错误。
对于转速的测量方法,是通过速度脉冲信号下降沿触发单片机的外中断,中断服务子程序在某一个脉冲的下降沿开启定时器记时,然后在下一个下降沿关闭定时器,通过对定时器数据进行运算处理可以得到信号周期进而得到速度值。
其程序框图如图5.1。
可以看出,此方法下的采样周期是随转速变化的,转速越高采样越快。
通过这种非均匀的速度采样方式可以使电机在高速情况下,实现高速度高精度的控制。
图4.3外中断程序框图
4.3键盘程序设计
键盘程序设计的任务是赋予各按键相应的功能,完成速度设定值的输入和向PID控制器的发送。
4只按键一只用来位循环选择,告诉单片机要调整的是设定值的个位、十位、百位还是千位。
第二、三只按键分别是减1、加1减。
在没有位选择的情况下对设定值整体进行减1、加1;在有位选择的情况下仅对相应位进行减1、加1,并且当按着不释放按键时可以实现快速连续减1、加1,同时允许循环减、加(既当某位为0时,在减1则为9,某位为9时,加1则为0)。
最后一只按键是确认发送键,按下它后,单片机将设定值送给PID控制器,从而实现设定控制。
程序框图如图4.4所示。
图4.4键盘程序框图
4.4LCD显示子程序的设计
LCD的详细使用过程可参阅对应型号的使用手册。
仅在本小节强调以下内容:
LCD使用的关键是根据显示需要正确地对其进行初始化设置,而一般情况下不用考虑如何向它读写指令或数据,因为制造厂商所给的使用资料里就附有驱动程序,如果没有也可以从网上搜索下载得到。
然而我们必须清楚那些初始化设置之间的关系,以及它是如何利用设置读取、显示数据字符的,不然就会发生一些不可预料的错误,例如表5.3所示。
因此,熟读LCD驱动芯片使用手册也是一个关键环节。
在RT12232F中,CGRAM字型与中文字型的编码只可出现在每一AddressCounter的开始位置,图表中最后一行为错误的填入中文码位置,其结果会产生乱码象。
通常LCD的初始化包括复位设置、清除显示、地址归位、显示开关、游标设置、读写地址设置、反白选择以及睡眠模式等等。
实际中根据需要,正确、灵活地修改这些设置可以达到较为满意的显示效果。
LCD中所有汉字、数字和字符都可以通过它的ASCII码来访问显示;图象的显示是通过将相关软件(提取汉字、图象点阵数据程序)产生的数据按照LCD手册的要求完成响应设置后写入即可。
由于本设计中没有使用到图形显示,所以没有详述。
对于系统使用的汉字、字符和数据的LCD显示初始化程序和写数据程序框图见图4.5。
图4.5LCD显示初始化程序和写数据程序框图
4.5PWM信号的单片机程序实现
理论上,只要PWM脉冲的周期正比于PID控制算法的输出结果结果。
具体实现过程中,取u(k)的整数部分(记为:
UT)保存,然后用PWM信号的周期值减去UT所得值即为定时器1的初值(记为:
INIT)。
其程序框图见图6.1。
图6.1:
产生PWM控制信号程序框图
5数字PID及其算法的改进
5.1PID控制基本原理
PID控制即比例(Proportional)、积分(Integrating)、微分(Differentiation)控制。
在PID控制系统中,完成PID控制规律的部分称为PID控制器。
它是一种线形控制器,用输出y(t)和给定量r(t)之间的误差的时间函数e(t)=r(t)-y(t).PID控制器框图如图5.1。
实际应用中,可以根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,如:
5.1PID控制算法框图
比例(P)控制器:
比例+积分(PI)控制器:
比例+积分+微分(PID)控制器:
式中,Kp为比例运算放大系数,Ti为积分时间,Td为微分时间。
5.2数字PID控制算法
在单片机数字控制系统中,PID控制算法是通过单片机程序来实现的。
对于数字信号处理,不论是积分还是微分,只能用数值计算去逼近。
当采样周期相当短时,用求和代替积分,用差商来代替微商,使PID算法离散化,将描述连续时间PID算法的微积分方程,变为描述离散时间PID算法的差分方程。
其算法变换如下。
控制量:
比例→比例:
积分→求和:
微分→差商:
式中,
为比例系数,
为积分系数,
为微分系数。
T为采样周期。
上式为位置PID算法,除了“位置PID算法”以外,常见的还有增量式PID控制算法。
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID“增量算法”。
此算法可由“位置PID算法”求出。
综合两种算法,本设计是产生一个PWM信号去控制直流电机,PWM信号的高电平持续时间对应的控制量是一个绝对值,而不是一个控制量的增量。
但是如果采用“位置PID算法”则需要考虑控制量的基值u0,即Kp=0时的控制量,而直接用增量式PID算法只能计算出控制量的增量。
所以,设计中,先采用增量式控制控制算法计算出控制量的增量,然后加上上一次的控制量即可以得到本次的控制量,本系统的PID算法是以增量式算法实现“位置PID算法”的结果,使控制得到简化、容易实现。
5.3PID算法的改进,“饱和”作用的抑制
抑制PID算法的“饱和”作用,通常有两种方法。
一种算法是遇限削弱积分法,其基本思想是:
一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。
具体地说,在计算u(k)时,将判断上一时刻的控制量u(k)是否已超出限制范围,如果已超出,那么将根据偏差的符号,判断系统输出是否在超调区域,由此决定是否将相应偏差计入积分项。
另一种算法是积分分离法。
减小积分饱和的关键在于不能使积分项累积过大。
第一种修正方法是一开始就积分,但进入限制范围后即停止累积。
后者介绍的积分分离法正好与其相反,它在开始时不进行积分,直到偏差达到一定的阀值后才进行积分累计,算法流程图见图6.5。
图中,A,B,C分别代表q0,q1,q2。
这样,一方面防止了一开始有过大的控制量,另一方面即使进入饱和后,因积分累积小,也能较快退出,减少了超调。
由于本系统的控制对象是一个具有惯性或称其为滞后特性的直流电机,一方面要求控制要尽可能高的反映速度,另一方面也要尽可能减少超调。
因此,积分分离法比较适合本系统。
综合上面关于PID算法的研究,已经得出一个针对本系统的PID算法——“增量式积分分离PID控制算法”。
在此控制算法中,误差较大时采用的是PD算法控制。
在PID控制器的实现过程中,发现不同的电机除了惯性不同外,还有一个参数不容忽略,那就是电机在转动过程中的摩擦力。
由于摩擦力总是阻碍电机转动,所以相当于额外的给控制量对应的电动机转矩加了一不定量的负转矩。
如果PID的输出的控制增量对应的转矩为正,则会抵消一部分增量,但如果PID输出的控制增量对应的转矩为负,则会助长这一增量。
如此以来,如果电机在加速过程中使用和减速过程中同样的PID参数,就有可能出现加速欠条,减速超调的情况。
实验中,也证明了这一分析的正确性。
解决这一问题的方法是利用微分项的校正作用,在电机加速状态,和减速状态采用不同的微分系数,即在不同的时段采用不同的微分系数,其中加速时微分系数为Kd1,减速时微分系数为Kd2。
这样系统的控制算法就成为“变系数增量式积分分离控制算法”了,可以通过设定参数得到更佳的校正作用。
5.4PID控制算法的单片机程序实现
要编写一个已知算法的单片机程序,首先要考虑的就是数据的结构和存储方式了。
因为它直接影响到系统的控制精度,以及PID算法的实现质量。
本系统之所以专门采用一片单片来实现PID算法,就是因为从一开始的设计思路就是尽可能高的提高系统的控制精度。
要提高系统的控制精度,在计算过程中仅取整数或定点小数是不够的,所以本设计采用三字节浮点数运算。
对于AT89S52单片机而言,有足够的内存去存储和处理这些数据。
另外,为了使程序的参数修改方便,更易于应用到其他PID控制系统中去,在一开始的参数赋值程序中,参数是以十进制BCD码浮点数存储的,参数赋值完成后,紧接着就是对参数进行二进制浮点数的归一化处理,以及复合参数q0,q1,q2等的计算。
这些工作在系统启动后迅速就完成了,之后PID控制器只进行PID核心控制算法的计算。
PID算法的程序框图如图5.2所示算法。
由于本系统采用的是单级单向调速,所以当PID控制算法的输出结果u(k)为负数时就将其清另零了,当大于系统饱和值时,赋值u(k)为饱和值。
总结
经过一个星期的努力,课程设计终于做完了。
通过本次课程设计,我学到了许多了东西,知道光靠书本上的东西是不够的,需额外去查资料。
无论是在硬件还是软件设计上,我都遇到了不少的问题,在克服困难的过程中,我学到了许多,特别是在课堂上学不到的东西如(PWM)。
也锻炼了我的protel画图能力,以前学的时候元器件都是给定的只要到库里面找出名字就可以,只要连线就可以,而这次是根据自己的设计需要去画。
也知道了PID算法的应用,以前总觉得PID就是像做数学一样,不知道实际应用。
通过本次设计,让我很好的锻炼了理论与具体项目、课题相结合开发、设计产品的能力。
既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。
以前总把一个单片机系统想的很简单,由输入通道、单片机、输出通道、输入显示等各个单元凑一起就完了,但实际需考虑很多,如如何使投资最小而得到最好的效果,各个单元如何连接等。
非常感谢老师和同学对我的帮助。
参考文献
[1]徐薇莉曹柱中.控制理论与设计[M]上海交大出版社,2003.74-82
[2]先锋工作室.单片机程序设计实例[M]清华大学出版社,2003.104-110
[3]L298N芯片手册,2006.05
[4]ST7920使用手册,2006.05
[5]谢世杰,陈生潭,楼顺天.数字PID算法在无刷直流电机控制器中的应[J]万方数据库,04.1,1-3
[6]吴守箴,戚英杰.电气传的脉宽调制控制技术.北京:
机械工业出版社.
[7]贾玉瑛,王臣.基于单片机控制的PWM直流调速系统.包头钢铁学院学报,2005年.
[8]康华光,邹寿彬.电子技术基础(数字部分第四版).北京:
高等教育出版社,2004年.
[9]三恒星科技.MCS51单片机原理与应用实例.北京:
电子工业出版社,2008年1月.
[10]浦龙梅,李私.