直流电机转速测量与控制系统的设计.docx

上传人:b****8 文档编号:9964250 上传时间:2023-02-07 格式:DOCX 页数:30 大小:355.86KB
下载 相关 举报
直流电机转速测量与控制系统的设计.docx_第1页
第1页 / 共30页
直流电机转速测量与控制系统的设计.docx_第2页
第2页 / 共30页
直流电机转速测量与控制系统的设计.docx_第3页
第3页 / 共30页
直流电机转速测量与控制系统的设计.docx_第4页
第4页 / 共30页
直流电机转速测量与控制系统的设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

直流电机转速测量与控制系统的设计.docx

《直流电机转速测量与控制系统的设计.docx》由会员分享,可在线阅读,更多相关《直流电机转速测量与控制系统的设计.docx(30页珍藏版)》请在冰豆网上搜索。

直流电机转速测量与控制系统的设计.docx

直流电机转速测量与控制系统的设计

目录

1.《智能仪器综合设计》课程设计任务书2

1.1课程设计任务3

1.2课程设计目的3

1.3课程设计要求3

1.4课程设计内容3

1.5课程设计报告要求3

1.6课程设计进度安排4

1.7课程设计考核办法4

2.设计方案5

2.1总体方案5

2.2PID算法5

2.2.1PID控制的基本组成5

2.2.2PID控制中的主要技术指标分析6

2.3PWM脉冲控制8

3.硬件模块9

3.1主体模块9

3.2显示与键盘模块10

3.3转动源模块12

3.4复位电路13

4.软件模块14

4.1主程序流程图14

4.2初始化模块14

4.3中断模块16

5.收获与体会18

参考文献19

附录20

1.《智能仪器综合设计》课程设计任务书

题目:

直流电机转速测量与控制系统的设计

1.1课程设计任务

日常生活和生产中,需要对各种电机的转速进行测量。

该综合设计要求完成基于AT89C52单片机的直流电机转速测量与控制系统的设计。

采用光电式传感器进行信号的转换,再经过整形、放大等电路处理,将信号送入单片机进行数据处理,能够对设定的电机转速进行自动PID调节,自动调节的效果可通过LabVIEW软件编写的上位机进行观察和调整。

1.2课程设计目的

通过本次课程设计使学生掌握:

1)微机接口技术与I/O通道电路的设计及实现方法;2)控制程序的设计及实现方法;3)微机控制系统的实际调试技巧。

从而提高学生对微机实时控制系统的设计和调试能力。

1.3课程设计要求

1、该装置要求在智能仪器综合实验平台上完成软件编程与实现。

2、用数码管来分别显示工作状态、设定速度和实际速度。

3、用3只按钮来分别作为开机/关机键、速度设定上升键和下降键。

4、速度设定范围500~3000转/分,在某个速度设置点,要求使用PID控制。

1.4课程设计内容

1、硬件电路原理图;

2、软件流程图及程序;

3、实物调试及结果。

1.5课程设计报告要求

报告中提供如下内容:

  1、目录

2、正文

(1)课程设计任务书;

(2)总体设计方案;

(3)硬件原理图(protel软件);

(4)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序的名称及其功能);

(5)实物调试及结果。

3、收获、体会

4、参考文献

1.6课程设计进度安排

周次

工作日

工作内容

1

布置课程设计任务,查找相关资料

2

熟悉单片机、模数转换器

3

完成总体设计方案

4

画出硬件原理图及程序流程图

5

搭建硬件电路

1

调试硬件电路

2

完成软件的构思并画出流程图

3

编写程序并调试

4

编写程序并调试

5

编写程序并调试

1

编写程序并调试

2

编写程序并调试及准备课程设计报告

3

编写程序并调试及准备课程设计报告

4

完成课程设计报告并按规定时间提交

5

答辩

1.7课程设计考核办法

本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%。

 

2.设计方案

2.1总体方案

本次课程任务使用改变PWM脉冲控制直流电机转速。

按动按键对MCU设定值,将产生的PWM波输送给电机驱动部分,转动源模块开始工作,光电转速传感器测得代表直流电动机速度的脉冲信号并将其反馈给MCU,MCU在比较转速设定值和实际值的基础上,以PID控制算法来调节PWM波,从而对电动机速度进行控制,LED用于显示转速的设定值和实际值。

图2.1方案流程图

2.2PID算法

PID控制的基本原理

2.2.1PID控制的基本组成

PID控制由反馈系统偏差的比例(P)、积分(I)和微分(D)的线性组合而成,这3种基本控制规律各具特点。

P比例控制:

比例控制器在控制输入信号e(t)变化时,只改变信号的幅值而不改变信号的相位,采用比例控制可以提高系统的开环增益。

该控制为主要控制部分。

D微分控制:

微分控制器对输入信号取微分或差分,微分反映的是系统的变化率,因此微分控制是一种超前预测性调节,可以预测系统的变化,增大系统的阻尼,提高相角裕度起到改善系统性能的作用。

但是,微分对干扰也有很大的放大作用,过大的微分会使系统震荡加剧。

I积分控制:

积分是一种累加作用,它记录了系统变化的历史,因此,积分控制反映的是控制中历史对当前系统的作用。

积分控制往系统中加入了零极点,可以提高系统的型别(控制系统型别即为开环传递函数的零极点的重数,它表争了系统跟随输入信号的能力),消除静差,提高系统的无差度,但会使系统的震荡加剧,超调增大,动态性能降低,故一般不单独使用,而是与PD控制相结合。

PID的复合控制:

综合以上几种控制规律的优点,使系统同时获得很好的动态和稳态性能。

PID控制规律的基本输入/输出关系可用微分方程表示:

(1)

式中,e(t)为控制器的输入偏差信号;

为比例控制增益;

为积分时间常数;

为微分时间常数。

相应的传递函数为:

(2)

则式

(2)还可以写成

(3)

式中

由式(3)可见,PID控制器向原系统增加了一个零极点,从而使系统从0型提高到1型,还提供两个负实零点,同时提高系统稳态性能和动态性能。

PID控制器可由模拟执行元件或具有运算功能的数字器件实现。

数字PID的实现需要式

(1)进行离散化,取采样周期为T,改写式(3),得

(4)

式中,

为控制器输出的控制量,式中(4)即为数字PID控制器的直接算法。

也可取其递推算法;

(5)

式中,

的选取一般取决于经验以及实验现场的调整。

2.2.2PID控制中的主要技术指标分析

⏹动态指标

超调δ%,单位阶跃响应的最大值

,超过稳态值h(∞)的百分比,即

(6)

则响应无超调。

超调量反映的是系统的振荡性.

调节时间、单位阶跃响应h(t)与稳态值h(∞)之间的偏差达到规定的允许范围(±2%或±5%),且以后不再超出此范围的最短时间。

调节时间描述系统响应的快慢。

一个好的控制系统应该有尽可能小的超调和尽可能短的调节时间,且超调量与调节时间在很多情况下是矛盾的:

小的超调量要求系统有大的阻尼系数,而阻尼系数过大又会使响应速度下降。

不同的系统对两个指标的要求有所不同。

通过选择适当的控制方法可以使这两个指标达到平衡,使系统的整体性能达到最优。

在PID控制中,加入微分项就是为了增大系统的阻尼,同时由于微分控制是一种超前控制,因此,会加快响应速度。

⏹稳态误差

稳态误差由系统的结构、输入作用类型决定。

定义

为系统的稳态误差。

为了提高系统的无差度,可以提高系统的型别(加入积分项)和增大系统的开环放大系数的措施。

需要注意的是:

积分级数太多和开环放大系数过大都会造成系统不稳定,因此,要合理选择。

图2.2和图2.3、图2.4、图2.5、图2.6为理想情况和实际情况下常遇到的PID控制的阶跃响应曲线

图2.2理想响应曲线图2.3无超调量

图2.4超调量偏大图2.5积分时间太长

图2.6超调量偏大积分时间偏小

 

2.3PWM脉冲控制

在采样控制理论中有一个重要的结论:

冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。

冲量即指窄脉冲的面积。

这里所说的效果基本相同,是指环节的输出响应波形基本相同。

如果把各输出波形用傅立叶变换分析,则其低频段非常接近,仅在高频段略有差异。

例如图2.7中a、b、c所示的三个窄脉冲形状不同,其中图2.7的a为矩形脉冲,图2.7的b为三角脉冲,图2.7的c为正弦半波脉冲,但它们的面积(即冲量)都等于1,那么,当它们分别加在具有惯性的同一环节上时,其输出响应基本相同。

图2.7三个脉冲形状

直流电动机的转速调节主要有三种方法:

调节电枢供电的电压、减弱励磁磁通和改变电枢回路电阻。

由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好、稳速精度高、调速范围宽。

同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,因此主电路损耗小、装置效率高;直流电源采用不可控整流时,电网功率因数比相控整流器高,故采用。

3.硬件模块

3.1主体模块

主体模块使用AT89C51单片机

图3.1AT89C51单片机

其组成有一个8位CPU、一个偏内振荡器及时钟电、128字节的片内数据存储器、4KB的片内程序存储器、可寻址的64KB字节外部数据存储器和64KB字节外部程序存储器的控制电路、21字节的专用寄存器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器和一个布尔处理机。

在MCS-51系列单片机中具有5个中断源和2个中断优先级,片内采用单一总线结构连接。

51单片机优点众多性价比优异;集成度高、体积小、有很高的可靠性;控制功能强;扩展性能好,非常容易构成各种应用系统。

3.2显示与键盘模块

显示与键盘模块使用按键与数码管实现,P1.0、P1.1分别实现减速与加速控制,P1.7实现设置转速,数码管实现实时显示转速。

图3.2按键连接

图3.3数码管显示

3.3转动源模块

设计采用了红外光电传感器,进行非接触式检测。

当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。

系统在光电传感器收发端间加入电动机,并在电动机的转轴上安装一转盘。

在这个转盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。

每当转盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。

把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。

转盘的圆孔的个数决定了测量的精度,个数越多,精度越高。

这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。

设计中转盘的圆孔的实际个数受到技术的限制。

为了达到预定的效果设计在转盘过孔的设计上采用6个过孔,从而留下了6个同等的间距。

这样在以后的软件设计中能够较为方便的计算出脉冲频率。

脉冲发生源的硬件结构图如图3.1所示.。

 

图3.4脉冲发生源硬件结构图(左为正视图,右为侧视图)

 

3.4复位电路

复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。

除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于思索状态时,也可按复位键重新启动。

89C51单片机复位信号的输入端是RST引脚,高电平有效。

RST端的外部复位电路有两种操作方式:

上电自动复位和按键手动复位。

按键手动复位有电平方式和脉冲方式两种。

图3.5复位电路

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

 

4.软件模块

4.1主程序流程图

在一个完整的系统中,只有硬件部分是不能完成相应设计任务的,所以在该系统中软件部分是非常重要的,按照要求和系统运行过程设计出主程序流程如图4.1所示。

图4.1主程序流程图

 

4.2初始化模块

AT89C52有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。

计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。

定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。

定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断身请。

当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。

定时器有4种工作方式:

方式0、方式1、方式2和方式3,在此对工作方式不做具体介绍。

工作方式寄存器TMOD的设定:

GATE

C/T

M1

M0

GATE

C/T

M1

M0

TMOD各位的含义如下:

GATE:

门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。

C/T:

定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式.M1、M0:

为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下表3-1:

M1M0=00为方式0;M1M0=01为方式1;

表3-1M1、M0为工作方式选择位

M0

M1

工作方式

方式说明

0

0

0

13位定时/计数器

0

1

1

16位定时/计数器

1

0

2

8位自动重置定时/计数器

1

1

3

两个8位定时/计数器(只有T0有)

图4.2定时计数子程序流程图

对定时器T0与计数器T1的初始化程序如下

voidtime01_initiat()

{

TMOD=0X11;//计数器0和定时器1

TL0=0Xfc;

TH0=0X4b;//计数器0赋初值

TH1=0X4C;

TL1=0X00;//定时器1赋初值

EA=1;//所有中断开放

PT0=1;//定时器T0中断为高优先级

ET0=1;//允许T0溢出中断

ET1=1;//允许T1溢出中断

TR0=0;//

TR1=0;//

IT0=1;//跳沿触发方式

EX0=0;//禁止外部中断0中断

4.3中断模块

AT89C52单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。

中断允许寄存器IE的字节地址为A8H,可以进行位寻址.

表4-2中断位寻址表

IE

D7

D6

D5

D4

D3

D2

D1

D0

(A8H)

EA

ET2

ES

E1

EX1

ET0

EX0

EA:

中断允许总控位。

EA=0,屏蔽所有的中断请求;EA=1,开放中断。

ET2:

定时器/计数器T2的溢出中断允许位

ES:

串行口中断允许位。

ET1:

定时器/计数器T1的溢出中断允许位。

EX1:

外部中断INT1的中断允许位。

ET0:

定时器/计数器T0的溢出中断允许位。

EX0:

外部中断INT0的中断允许位。

4.3显示模块

本系统采用动态数码管显示,所以程序如下:

voiddisplay_num4(uintnum)

{

uintqian;

uintbai;

uintshi;

uintge;//定义qian,bai,shi,ge

qian=num/1000;

if(qian==0)qian=10;

display_num1(qian,4);//千位

bai=num%1000;

bai=bai/100;

if(qian==10&&bai==0)bai=10;

display_num1(bai,3);//百位

shi=num%100;

shi=shi/10;

if(qian==10&&bai==10&&shi==0)shi=10;

display_num1(shi,2);//十位

ge=num%10;

display_num1(ge,1);//个位

}

图4.3显示程序流程图

 

5.收获与体会

经过了一番努力,在老师和同学的帮助下,我顺利结束了此次的课程设计,在这个过程中,我了解了许多,感悟了许多。

实践是检验真理的唯一标准,经过这次作品设计,我深深理解了这句话,在经过了仿真与实物的运用后,单片机各个部分的功能显得明确而具体。

这在作品设计之前只知道概念的我看来简直不可思议,所以说,只有将理论与实际结合起来,才能让人映像深刻并真正理解。

这次实习是我学习生活中不可缺少的重要经历,其收获与意义可见一斑。

首先,我可以将自己所学的知识应用于实际的工作中,理论和实际是不可分的,在实践中学的知识得到了巩固,解决问题的能力也得到了锻炼,其次,本次实习开阔了我的视野,使我对法律在现实中的运作有所了解。

通过这次设计,我深刻理解到要做好一件事情,必须有系统的思维方式和方法,要有耐心和恒心去钻研努力,要善于运用资源丰富充实自己,要有整体的目光来看待事物,再从局部到整体慢慢实现,这样才会有效率。

 

参考文献

[1]刘金锟.先进PID控制MATLAB仿真(第2版)[M].北京:

电子工业出版社,2006.

[2]郑阿奇主编.MATLAB实用教程[M].北京:

电子工业出版社,2004.

[3]张思雨.预测控制算法和PID控制算法[J],燕山大学工学硕士学位论文,2003.

[4]蔡美琴等.MCS-51系列单片机系统及其应用第二版,高等教育出版社.

[5]李全利.单片机原理及其接口技术,高等教育出版社.

[6]刘文定,王东林.过程控制系统的MATLAB仿真,机械工业出版社.

 

附录

#include"reg52.h"

#include"math.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharcodexianshi[11]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xbE,0xE0,0xFE,0xF6,0x00};

 

sbitPWM=P1^7;

sbitkey1=P1^0;

sbitkey2=P1^1;

sbitkey3=P1^2;

uintwide=50;//脉宽计数

uintt1=0;//低电平脉宽

uintt2=0;//一个周期

uinttime_low=0;

uinttime_high=100;

bithigh_flag=0;

bitlow_flag=0;

bitstate_flag=0;

uintset_count=50;//设定转速值

uintrun_count=0;//实际频率的读取

uintstop_count=0;//电机转速存储变量

uinttime=0;

inten=0,en_1=0,en_2=0;//定义三个时刻的误差存储变量

floata0=1.7,a1=0.3,a2=0.002,un=0;//定义PID计算参公式的参数

voiddelay1_ms(uinttime);

voiddelay(uinttime);

voiddisplay_num1(uintdat,ucharnum1);

voiddisplay_num4(uintnum);

voidtime01_initiat(void);

voidkey_precess(void);

voidpid(void);

 

voidmain()

{

time01_initiat();//初始化定时器0和定时器1

while

(1)

{

key_precess();//键盘扫描函数

}

}

//1ms延时函数

voiddelay1_ms(uinttime)

{

uinti,j;

for(i=0;i

for(j=0;j<123;j++);

}

//指定的位上显示指定的一位数据

voiddisplay_num1(uintdat,ucharnum1)

{

P0=xianshi[dat];//段显

switch(num1)

{

case1:

P2=0x01;break;

case2:

P2=0x02;break;

case3:

P2=0x04;break;

case4:

P2=0x08;break;

default:

break;

}

delay1_ms

(2);

}

//四位数据显示函数

voiddisplay_num4(uintnum)

{

uintqian;

uintbai;

uintshi;

uintge;

qian=num/1000;

if(qian==0)qian=10;

display_num1(qian,4);

bai=num%1000;

bai=bai/100;

if(qian==10&&bai==0)bai=10;

display_num1(bai,3);

shi=num%100;

shi=shi/10;

if(qian==10&&bai==10&&shi==0)shi=10;

display_num1(shi,2);

ge=num%10;

display_num1(ge,1);

}

//四位数据显示函数

voiddisplay_num4_1(uintnum)

{

uintqian;

uintbai;

uintshi;

uintge;

qian=num/1000;

if(qian==0)qian=10;

display_num1(qian,4);

bai=num%1000;

bai=bai/100;

if(qian==10&&bai==0)bai=10;

display_num1(bai,3);

shi=num%100;

shi=shi/10;

if(qian==10&&bai==10&&shi==0)shi=10;

display_num1(shi,2);

ge=num%10;

display_num1(ge,1);

}

voiddelay(uinttime)

{

uinti;

for(i=0;i

display_num4_1(stop_count*10);

}

 

voiddelay1(uintnum)

{

uinti;

for(i=0;i

display_num4(set_count*10);

}

 

voidtime01_initiat()

{

TMOD=0X11;//计数器0和定时器1

TL0=0Xfc;

TH0=0X4b;//计数器0赋初值0.5ms

TH1=0X4C;

TL1=0X00;//定时器1赋初值50ms

EA=1;

PT0=1;

ET0=1;

ET1=1;

TR0=0;

TR1=0;

IT0=1;

EX0=0;

}

voidkey_precess()

{

if(key1==0&&key2==1&&key3==1)//判断系统的运行模式,如果KEY1键按下

//且state_flag为1则系统处于运行模式,如果state__flag为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1