基于单片机的直流电机转速测控系统设计.docx
- 文档编号:23660292
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:32
- 大小:537.34KB
基于单片机的直流电机转速测控系统设计.docx
《基于单片机的直流电机转速测控系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机转速测控系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机的直流电机转速测控系统设计
基于单片机的直流电机转速测控系统设计
摘要:
电机转速控制在运动控制系统中占有重要的位置,在其众多控制算法中,模拟PID控制因为参数整定方便且能够满足一般控制要求而在过去被广泛使用。
但由于其在参数整定后固定不变的局限性,数字PID技术发展起来,它不仅能实现模拟PID的控制作用,而且具有可靠性高,算法灵活的优点。
本设计以AT89C51单片机为控制核心,用PWM调制技术和数字PID控制作为基本算法来实现对电机转速的控制。
同时采用128×64LCD显示器和矩阵键盘,利用光电传感器来实现对直流电机转速的测量,将测量结果反馈给单片机来实现转速的闭环控制。
关键词:
单片机;PWM;数字PID;矩阵键盘
TheDesignofDCMotorSpeedControlSystemBasedonSCM
Abstract:
Motorspeedcontroloccupiesanimportantpositioninthemotioncontrolsystem,inthemostcontrolofalgorithm,simulationofPIDcontrolforparametersettingisconvenientandcanmeetthegeneralcontrolrequirementsandwidelyusedinthepast.Butbecauseofthelimitationinthefixedafterparametertuning,digitalPIDtechnologydeveloped,itcannotonlyrealizethecontrolfunctionofPIDsimulation,butalsohasadvantagesofhighreliability,flexiblealgorithm.ThedesignofAT89C51microcontrollerasthecontrolcore,usingthePWMmodulationandthedigitalPIDcontrolasthebasicalgorithmtorealizethecontrolofthemotorspeed.Atthesametime,usingthe128×64LCDdisplay,keyboardmatrixandPhotoelectricsensortorealizethemeasurementofthespeedofDCmotor.Inthemeanwhile,themeasurementresultswillbefeedbacktothemicrocontrollertorealizethespeedofclosed-loopcontrol.
Keywords:
Microcontroller;PWM;DigitalPID;Closedloopcontrol
引言
21世纪,科学技术飞速发展,科技的进步带动了控制技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。
控制技术作为当今科技的主流之一,已经广泛深入到研究和应用工程等各个领域。
PID控制技术作为一项具有发展前景和影响力的新技术,在运动控制及过程控制方面PID控制技术的应用越来越广泛和深入,正越来越受到国内外各行业的高度重视。
PID控制器至今已有近70年的发展历史,它以其结构简单、工作可靠、稳定性好、调整方便而成为控制领域的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
本次设计主要研究的是PID控制技术在直流电机转速控制中的应用,在不同的生产过程中,电机的运行状态要满足生产要求,其中电机速度的控制在占有至关重要的作用,因此本次设计主要应用数字PID算法,利用PWM调制技术实现电机转速的控制。
其设计思路为:
以AT89C51单片机为控制核心,产生占空比受PID算法控制的PWM脉冲实现对直流电机转速的控制。
同时利用光电传感器将电机速度反馈到单片机中,构成转速闭环控制系统,达到转速无静差调节的目的。
在系统中采128×64LCD显示器作为显示部件,启动后通过显示部件了解电机当前的转速。
1总体设计方案
1.1设计思想及结构框图
首先要求电机达到的转速值,通过键盘输入运转速度。
当电机运转起来后,通过转速测量装置即光电传感器来采集当前的电机运转速度,并将采集到的速度反馈给单片机,比较得到的速度偏差,PID算法输出的控制量送到单片机中实现PWM波形,产生驱动控制信号[1]。
硬件主要包括单片机、电机驱动电路、速度测量装置、显示电路以及键盘输入。
系统结构框图如图1-1所示。
图1-1系统结构框图
1.2PID算法及PWM调速原理简介
PID控制结构简单,参数整定方便,是在长期的工程实践中总结出来的一套控制方法[2]。
PID控制是按偏差的比例(P)、积分(I)和微分(D)进行控制。
PID控制是模拟控制系统中最常用的调节器,常规PID控制的系统框图如下图1-2所示
图1-2PID控制系统框图
PID调节器根据给定值
与实际输出值
构成的控制偏差:
(1-1)
将偏差的比例、积分、微分通过线性组合构成控制量,对控制对象进行控制,称为PID调节器。
在实际应用中,为了进一步改善调节品质,将比例、微分、积分进行适当组合,以达到对被控对象进行有效控制的目的。
其控制规律为
(1-2)
式中为
比例系数,
为积分时间常数,
微分时间常数。
计算机控制系统通常利用采样方式来实现对各个回路的检测和控制,所以描述连续系统的微分方程应该进行离散化。
离散化时,令
;
;
;
;
式中,
是第k次采样所获得的偏差信号;
是本次和上次的测量值偏差的差。
在给定值不变时,
可表示相邻两次的测量值之差。
所以离散系统的PID算式为
(1-3)
此算式输出值与阀位为一一对应的,所以称为PID的位置算式。
由于其每次的输出与过去的所有状态都有关,不仅要计算机不断的对e进行累加,而且当计算机发生故障的时候,会造成输出量u的变化而造成严重后果。
所以可以对算式作如下改进:
第k-1次采样有
(1-4)
式(1-3)减去(1-4)的两次采样时输出量之差
因为
;
所以
](1-5)
式中
为积分系数;
为微分系数。
算式(1-5)控制输出对应每次阀门的增量,所以称为PID控制的增量式算式。
PWM即脉宽调制技术,通过对脉冲宽度的调制,来得到所需要的含有形状和幅值的波形。
应用于直流电机调速中,是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,从而调节电机转速的一种电压调节方法。
直流PWM调速具有开关频率高、响应速度快、调制范围广、抗干扰能力强等优点。
根据公式:
(
是等效直流电压、
为占空比、
是脉冲幅值)。
由公式可知,改变等效直流电压可以通过改变
和
来实现,但在实际设计中
一般是恒定不变的,因此我们可以通过改变占空比
来调节直流电压,最终通过PWM控制来实现对直流电机转速的控制。
2硬件设计
2.1控制器模块设计
采用AT89C51作为系统控制核心,其软件编程灵活,算术运算能力强,自由度大,引脚相对较少,在硬件方便容易实现,可通过编程实现各种逻辑控制和算法,满足此次设计对控制器部分的要求。
如图2-1为89C51的引脚排列以及各引脚功能说明。
图2-189C51引脚图
引脚说明:
(1)电源引脚:
Vcc(40脚):
典型值+5VVss(20脚):
接低电平。
(2)外部晶振:
X1、X2分别与晶体两端相连接。
当采用外部时钟信号时,X2接振荡信号,X1接地。
(3)输入输出口引脚:
P0口、P1口、P2口和P3口为I/O双向口,作输出口时,应先软件置“1”。
(4)控制引脚:
RST、ALE、-PSEN、-EA组成了MSC-51的控制总线。
RST(9脚)为复位信号输出端(高电平有效)。
第二功能为加+5V备用电源,可以实现掉电保护RAM信息不丢失。
ALE(30引脚)为地址锁存信号输出端。
第二功能为编程脉冲输入。
-PSEN(29脚)为外部程序存储器使能端。
第二功能为编程电压输入端(+12V)。
2.2电机驱动模块设计
驱动电路实质就是一个功率放大电路,把前面电路的输出信号进行功率放大,从而输出满足负载额定功率的信号使得负载可以正常运行。
本设计采用L298N作为电机驱动,它是一种高电压、大电流的驱动电路,其最高工作电压可达46V,瞬间峰值电流为3A,可在电流为2A时持续工作,内含两个H桥的高电压大电流全桥式驱动器,采用标准逻辑电平信号控制,用于驱动直流电动机、步进电动机、继电器线圈等电感性负载。
L298N驱动电路设计如图2-2所示,由四个大功率晶体管组成的H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,通过调整输入脉冲的占空比,对电动机转速进行调整。
其中输出脚(SENSEB和SENSEA)用来连接电流检测电阻,Vs为电机驱动电源,Vss接逻辑控制的电源。
ENA和ENB引脚为使能控制端,用来输入PWM信号实现电机调速,而且利用两个光电耦合器将驱动电路和单片机的I/O进行隔离,保证电路能够安全的运转。
这样单片机产生的PWM脉冲控制L298N的选通端,使直流电机在PWM脉冲的控制下正常运转,其中的四个二极管起到保护的作用。
图2-3为L298N的内部原理图
图2-2L298N驱动电路
图2-3L298N结构图
2.3速度采集模块设计
本设计采用采用对射式光电传感器。
对射式光电式传感器是将光信号转换成电信号的光电器件,可用于检测直接引起光强变化的非电量,也可以用来检测能转换成光量变化的其他非变量,其具有相应速度快、性能可靠、能实现非接触测量等优点[3]。
其检测方式为:
发光元件与接收元件分别安装在被测物体通过路径的两侧,发光元件的光直接对准接收元件,当检测物挡住光束时,传感器输出产生变化以指示被测物被检测到。
通过脉冲计数,对电机转速进行测量。
对于电机转速的测量,具体的方法为:
在直流电机的轴上固定一个圆盘,圆盘边缘上有N个等分的凹槽如图2-4所示,在圆盘的一侧安装固定一个发光二极管,使其对准凹槽处,并另一侧(发光二极光平行的位置)安装一个光敏三极管。
当直流电机运转起来后,如果电动机转到圆盘的凹槽处时,发光二极管则通过凹处将光线射到光敏三极管上,此时三极管导通,否则三极管截止,其电路如图2-5所示,从图中可以得出电机每转一圈在P的输出端就会产生N个低电平,通过测量光电器件输出的脉冲频率就可以来计算直流电机此时的转速了。
计算公式为
式中的
—圆盘的凹槽数;
—电机转速;
—脉冲频数。
图2-4圆盘
2.4显示电路模块设计
根据设计要求要对系统各项参数和电机运行状态进行显示,因此在电路中加入显示模块是非常必要的。
该设计选用128×64LCD作为显示部分,因为系统运行过程需要显示的数据比较多,所以在选用128×64液晶显示器比较适合,它是一种图形点阵液晶显示器,主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成,可完成汉字(16×16)显示和图形显示共有20个引脚。
如图2-6为引脚分布,2-7为各引脚功能,2-8为电路图。
图2-6128X64液晶显示器引脚分布
表2-7128X64液晶显示器各引脚功能
引脚
符号
引脚功能
引脚
符号
引脚功能
1
VSS
电源接地
15
CS1
CS1=1芯片选择左边64*64
2
VDD
电源正极+5V
16
CS2
CS2=1芯片选择右边64*64
3
VO
液晶显示驱动电源
17
/RST
复位(低电平有效)
4
RS
H:
数据输入
L:
指令码输入
18
VEE
LCD驱动负电源
5
R/W
H:
数据读取
L:
数据写入
19
A
背光电源(+)
6
E
使能信号
20
K
背光电源(—)
7-14
DB0-DB7
数据线
有些型号的模块19、20引脚为空
图2-8显示模块电路图
2.5键盘电路模块设计
由于按键数量较多,采用4X4矩阵式式键盘,这种键盘的特点是行线、列线分别接输入线、输出线。
按键位于在行、列线的交叉点上,利用这种矩阵结构只需m根行线和n根列线就可组成
个按键的键盘,因此矩阵式键盘适用于按键数量较多的场合。
如图2-9所示,一个4
4的行、列结构构成的含有16个按键的键盘。
但是此种键盘的软件结构相对来说较为复杂[4]。
图2-9矩阵式键盘结构
矩阵键盘的工作原理:
按键设置在行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。
平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由于此行线相连的列线电平决定。
列线电平为底,则行线电平为底;列线电平为高,则行线电平为高。
通过这一点来识别矩阵键盘按键是否被按下,但由于行列线为多键公用,因此各个键盘彼此有所影响,所以应将行列线信号并做适当处理,来确定闭合键的位置[5]。
本设计中用P1.0~P1.3连接键盘的列信号L0~L3;用P0.4~P0.7连接键盘的行信号H0~H3[6]。
操作面板设计如图2-10所示:
图2-10键盘模块
键盘操作说明:
在系统开始运行时,128×64LCD将显示开机界面,若按下设置键显示屏进入参数设置界面,此时按1、2、3、4进入相应参数的设置的状态,输入相应的数字即可完成该参数的设置,待所有量设置完成后按正/反控制键设置正反转,最后按启动键启动系统,在运行过程中可按下相应键对电机进行暂停、继续、停止运行的控制。
2.6电源模块设计
本设计中单片机用5V电源驱动,所以在设计中使用了LM7805[7]。
直流电机用12V电源,还需要LM7812,其最大输出电流为1.5A,满足系统的要求。
其电路如图2-11所示:
图2-11电源驱动电路
3软件设计
3.1程序流程
3.1.1主程序图
在系统中软件是必不可少的部分,本设计用VC++进行程序设计,程序详见附录。
如图3-1为系统的主流程图
图3-1主流程图
3.1.2定时程序流程
系统中定时器T0中断子程序用来控制电机运行时间和进行速度计算和PID运算,程序流程如图3-2所示:
图3-2定时程序流程图
3.1.3键盘程序流程
键盘中断程序是用来设在系统相应参数和控制系统进入相应的运行状态,其程序流程图3-3所示:
3.1.4显示程序流程
(1)读取状态字
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
1
BUSY
0
ON/OFF
RST
0
0
0
0
(2)显示开关设置
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
1
1
1
1
1
D
D=1是开显示;D=0是关显示。
(3)显示起始行设置
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
1
显示起始行(0~63)
(4)页面地址设置
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
1
1
Page(0~7)
(5)列地址设置
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
1
Yaddress(0~63)
(6)写显示数据
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
0
显示数据
(7)读显示数据
D/I
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
1
显示数据
该操作将12864模块中的DDRAM存储器对应单位中的内容读出,然后列地址计数器自动加一。
根据上面指令结合系统要实行的功能,其显示子程序流程如图3-4所示:
图3-4写入16*16汉字程序流程图
3.2PID算法实现
在自动控制系统中,PID控制器是得到广泛应用的一种控制方法。
由于电机转速与电枢外加电压的大小基本上成正比,这就构成了PID调节的基础[9]。
本系统设计的核心算法为PID算法,其原理是根据本次采样的数据与设定值进行比较得出偏差
,对偏差进行P、I、D运算最终利用运算结果控制PWM脉冲的占空比来实现对加在电机两端电压的调节,进而控制电机转速。
其运算公式为:
因此要想实现PID控制在单片机就运用这种算法,其程序流程[10]如图3-5所示:
图3-5PID算法程序流程图
4系统仿真
PID设计的MATLAB仿真程序
%ModelofDCmotor
J=0.01;b=0.1;K=0.01;R=1;L=0.5;
A=[-b/JK/J;-K/L-R/L];
B=[0;1/L];
C=[10];
D=0;
sys=ss(A,B,C,D);
sys=tf(sys);
%DesignPIDController
Kp=80;Ki=60;Kd=2;
sysc=tf([Kd,Kp,Ki],[10]);
sysopen=sysc*sys;
%Checkstepresponseofclosedloopsystem
sysclose=feedback(sysopen,1);
step(sysclose)
响应曲线
根据所得的响应曲线超调量为3.84%调节时间为1.88s,稳态误差接近零。
5结论
本课题的目的在于利用单片机实现PID算法产生PWM脉冲来控制电机转速。
到目前为止通过对控制器模块、电机驱动模块、LCD显示模块、键盘模块、数字PID算法等进行深入的研究。
完成了硬件电路的系统设计,并且软件方面利用C语言进行编程,增强了程序的可移植性和灵活性,并且利用MATLAB软件进行仿真更加保证了程序的准确性。
归纳起来主要做了如下几方面的工作:
1、PID算法与PWM控制技术有机的结合;2、设计了速度检测电路;3、利用C语言进行程序设计,并通过仿真(主程序见附录)。
根据上面论述结合测试数据可以看出本次设计基本完成了设计任务和要求。
通过此次设计,掌握了数字PID算法的使用及编程方法,学习了如何进行系统设计及相关技巧,为今后的工作和学习奠定了坚实的基础。
附录A
主程序:
main()
{
zf=0;
flag1=0;
EA=1;
IT0=1;
EX0=1;
count=0;
en=0;
en1=0;
en2=0;
U0=200;
Un=0;
cc=0;
zanting=0;
pwm1=0;
pwm2=0;
P1=0xF0;
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_Chinese(0,16,zi);//字
right();Disp_Digit(0,32,dp);//P
right();Disp_Chinese(0,40,di);//I
right();Disp_Digit(0,56,dd);//D
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();Disp_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_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,s[0]);
left();Disp_Digit(2,36,s[0]);
left();Disp_Digit(2,44,dian0);
left();Disp_Digit(2,52,s[0]);
right();Disp_Chinese(2,4,Ki);
right();Disp_Digit(2,20,maohao);
right();Disp_Digit(2,28,s[0]);
right();Disp_Digit(2,36,s[0]);
right();Disp_Digit(2,44,dian0);
right();Disp_Digit(2,52,s[0]);
left();Disp_Chinese(4,4,Kd);
left();Disp_Digit(4,20,maohao);
left();Disp_Digit(4,28,s[0]);
left();Disp_Digit(4,36,s[0]);
left()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 直流电机 转速 测控 系统 设计