毕业设计基于pid控制的智能风扇的设计.docx

上传人:b****5 文档编号:15218001 上传时间:2023-07-02 格式:DOCX 页数:42 大小:1.13MB
下载 相关 举报
毕业设计基于pid控制的智能风扇的设计.docx_第1页
第1页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第2页
第2页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第3页
第3页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第4页
第4页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第5页
第5页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第6页
第6页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第7页
第7页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第8页
第8页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第9页
第9页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第10页
第10页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第11页
第11页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第12页
第12页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第13页
第13页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第14页
第14页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第15页
第15页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第16页
第16页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第17页
第17页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第18页
第18页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第19页
第19页 / 共42页
毕业设计基于pid控制的智能风扇的设计.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

毕业设计基于pid控制的智能风扇的设计.docx

《毕业设计基于pid控制的智能风扇的设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于pid控制的智能风扇的设计.docx(42页珍藏版)》请在冰点文库上搜索。

毕业设计基于pid控制的智能风扇的设计.docx

毕业设计基于pid控制的智能风扇的设计

 

本科生毕业设计

 

题目基于pid控制的智能风扇的设计

作者姓名

指导教师

提交日期

 

原创性说明

本人郑重声明:

本人所交的论文是在指导教师的指导下独立进行研究所取得的成果。

学位论文中凡是引用他人已经发表或未经发表的成果、数据、观点等均已明确注明出处。

除文中已经引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。

本声明的法律责任由本人承担。

论文作者签名:

年月日

论文指导教师签名:

 

基于PID控制的智能风扇的设计

摘要:

温控风扇在现代社会生产中以及人们的日常生活中都有特别广泛的应用,如工业生产的大中型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能cpu风扇等。

目前,PID控制算法的实质就是根据输入值与设定的标准值自己建的偏差值按照比例、积分、微分的函数关系进行运算,其运算结果用以输出控制。

本设计以单片机作为控制器,设计利用温度传感器DS18B20作为温度采集元件,把采集到的温度,通过一个达林顿反向驱动器uln2003a驱动风扇电机。

通过对测到的温度与系统温度的比较实现风扇电机的自动启动和停止,采用PID算法来控制风扇的转速,并能根据温度的变化自动改变风扇的转速,同时用lcd1602显示检测到的温度与设定温度。

本次设计当中,用PID算法控制电机的转动,可以使电机直接或间接输控制一个稳定的变量,来控制电机的转动。

关键词:

80C51单片机;PID参数;达林顿反向驱动器uln2003a

            

PIDcontrolofthesmartfandesignisbasedonLiuJunxiu

(GansuTianshuiNormalUniversityInstituteoftelecommunicationsLiuJunxiu741,000)Summary:

Temperature-controlledfanintheproductionofmodernsocietyandpeople'sdailylifehasaspecialwiderangeofapplications,suchasindustrialproductionofmedium-sizedmechanicalcoolingsystemfan,nowwidelyusedonlaptopssmartCPUfan.Currently,PIDcontrolalgorithmisbasedonthesubstanceofthestandarddeviationoftheinputvalueandthesetwastobuildtheirownoperationinaccordancewithproportional,integralandderivativeofafunction,thecalculationresulttotheoutputcontrol.Thedesignofsinglechipasacontroller,designedbyafanmotortemperaturesensorDS18B20asthetemperatureacquisitiondevice,tocollectthetemperature,byaDarlingtonreversedriveULN2003Adrive.Bymeasuringthetemperatureandthesystemtemperatureisrelativelyautomaticstartandstopofthefanmotor,theuseofPIDalgorithmtocontrolfanspeed,andcanautomaticallychangethefanspeedaccordingtochangesintemperature,whileusingtheLCD1602displaythedetectedtemperaturesettemperature.Thedesigns,therotationofthemotorbyPIDcontrol,motorcontrol,directlyorindirectly,astableoutputvariabletocontroltherotationofthemotor.

Keywords:

80C51microcontroller;PIDparameters;DarlingtonreversedriveULN2003A

 

 

1绪论

1.1课题的背景与研究意义

目前,随着人们生活水平的不断提高,家用电器在款式、功能等很多方面的变化也越来越多,同时,也朝着安全、节能等方向发展。

过去的家用电器不断的显露出不足之处。

家用电风扇作为家用电器中很普遍的一种,也同样存在着类似的问题。

比如说人们经常在离开家之后忘记关闭电风扇,这样不仅浪费电而且很危险容易引起火灾,长时间工作下去电器也容易损坏。

再比如,前半夜环境温度比较高时电风扇调的速度也越来越高,在后半夜由于环境温度的不断降低,但是电风扇的风速不会随着气温变化,很容易使人着凉。

之所以会产生这些问题的根本原因还是缺乏对环境温度的自动检测功能。

如果能使电风扇具有对环境进行自动检测的功能,当房间里没有人的时候,电风扇就会根据环境温度的不断下降而自动关闭,这样就避免了上述问题的不足。

本设计就是利用PID控制算法来对电风扇进行改善。

PID控制技术早在30年代末期就已经出现在人们的生活当中,到至今已有近70年的发展,因为它具有很多优点,例如调整很方便、稳定性相对比较好,结构简单,所以很多工业控制都采用它作为主要技术。

PID控制,其实它有PI和PD两个部分,它根据系统的误差,利用比例、积分、微分计算来进行控制的,这三种控制配合起来,既可以消除静差,有可以提高系统的动态品质主表。

PID控制它简化了建模手续、算法很简单、明显提高了系统的控制品质,引发了国内外的广泛关注和大量支持,已成为当前控制研究领域的一大亮点。

在现在的工业生产中,电压、温度、液体和流量是我们最常见的过程变量,其中,温度是最重要的一个过程变量。

比如说,在化工工业、电力行业、食品加工等很多领域都有需要对加热炉、热处理炉、反应炉和各种大型锅炉的温度惊醒控制,这方面的应用大部分都是采用单片机进行PID控制的。

并且单片机因为具有其价格低、功耗小等特点,而得到了各行各业的亲睐。

在本次设计中,是通过PID控制算法的方法来控制风扇的转动,来实现自动升温和降温,它有着十分重要的应用价值和研究意义。

1.2论文研究的结构安排

通过对PID控制的不断变化状况及其特点和单片机的一些结构有了一定的了解之后,设计了一个基于单片机控制的设计。

在这篇论文当中,第一章是绪论,它介绍了本设计研究目的意义和价值,并且介绍了PID的发展现状。

第二章简介绍了PID控制的特点和它的的原理。

从第三章开始就介绍了基于设计各个模块硬件的选型,第四章主要是对单片机性能的描述以及电路的设计,其中包括电源电路、按键电路、显示电路、定时电路和单片机的复位和晶振电路。

第五章主要是软件设计,有对本次设计用到的两个软件Protues和Keil的介绍,还有仿真图,以及对仿真图各个不同阶段的工作现象。

第六章是对本次设计的中用到的PID算法的程序数据分析。

最后主要是对这次设计的收获和对一些在设计过程当中给予我帮助和知道的老师和同学的感谢。

 

 

2.PID控制

2.1PID控制的特点

在工程应用中,应用最为广泛的控制规律为比例、积分、微分控制,简称PID控制,又称之为PID调节。

比例控制(P)

比例控制是一种最简单的控制方式,就是说它的输入与输出误差信号构成了比例关系,并且只有存在比例控制时系统的输出才存在稳定误差。

积分控制(I)

积分控制就是说控制器的输入与输出误差的积分构成了正比关系。

在一个自动控制系统当中,如果在进入了稳态之后还是有误差的存在,就说这个控制系统有稳态误差。

对于这个稳态误差,是要将其消除的,在此就要引入积分项,积分项对误差由时间的积分来确定,随着时间的不断增大,积分项也会跟着增大。

即使存在的误差很小,积分项也还是会随着时间的增大而不断增大的。

所以,比例控制加上积分控制,可以使系统在稳态后不存在误差。

微分控制(D)

控制器的输入与输出信号的微分成正比关系。

在克服误差时,它的调节过程会出现振荡甚至失去稳定,是因为较大惯性组件或滞后组建,它具有抑制误差的作用,所以说在控制器中仅仅引入“比例”是远远不够的。

这样,比例加上微分的控制,可以使抑制误差等于零,比例加上微分控制能够改善系统过程的动态性。

 

2.2PID控制原理

PID控制是一种在工业上产中应用最为广泛的控制方法,它最大的优点是不需要了解被控制对象的数学模型,也不需要进行复杂的理论计算,只需要在线根据被控变量与给定值之间的偏差以及变化率等整定参数,通过工程方法对比例系数KP、积分时间TS、微分时间TD三个参数进行调整,就可以得到人们所期望的控制效果。

常规PID控制的原理如图所示:

在连续和离散系统中,其关系式分别是:

PID控制算法可以分为位置型控制算法和增量型控制算法。

下面主要讨论位置式PID控制算法。

首先要对连续系统进行离散化

控制器的输出为:

可简写为:

但是这种算法每次输出均与过去的状态有关,计算时要对e(k)进行累加,容易造成积分饱和,计算机运行工作量很大。

当采样时间特别短时,可用一阶差分代替一阶微分,用累加代替积分,把连续时间的离散化,即离散的PID表达式积分用累加求和来近似得到,可以得到公式:

式中u0为控制变量的基值,即k=0时的控制;u(k)为第K个采样时刻的控制;Kp为比例放大系数。

上式时数字PID算法的非递推形式,称全量算法,在算法中,为了求和,必须将系统偏差的全部过去值e(j)都存储起来。

这种算法得出控制量的全量输出u(k),是控制量的绝对数值,在控制系统中,这种控制量确定了执行机构的位置,例如在阀门控制中,这种算法的输出对应了阀门的开度,所以这种算法称为位置算法。

 

3系统方案设计与选型

3.1系统整体方案

设计整体方案如图2.1

 

图2.1

这次论文主要是在单片机的基础上设计的PID控制器,外围电路包括电源电路、按键电路、晶振复位电路、定时电路、温度传感电路、液晶显示电路、电机驱动电路和串口电路。

设计三个按键。

第一个按键实现温度的加值功能,第二个实现温度的减值功能,第三个实现程序的检测过程,程序正确则相应的LED灯会亮,否则灭。

在液晶显示电路中,上面一行显示当前的时间,下面一行前半部PT显示温度传感器的温度值,后半部分TD显示设定的温度值。

3.2系统选型

3.2.1温度传感器的选择

在本设计中,采用了数字式的集成温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理。

由于数字式集成温度传感器DS18B20的高度集中化,大大降低了误差因数,

使误差变得很小,并且可以直接测出被测量的温度,而且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使其温度的分辨率极高,而且它采用3线制与单片机相连,减少了外部硬件电路,并且它体积小、硬件开销低、精度高、抗干扰能力强,具有成本低和易使用的特点。

3.2.2控制核心的选择

在本设计中采用AT89C54单片机作为控制核心,通过软件编程的方法进行温度检测和判断,并在其I/O口输出信号。

AT89C54单片机工作电压低,性能高,片内含有8k字节的只读程序存储器ROM和256字节的随机存储器RAM,它兼容标准的MCS-51指令系统,单片机价格也不贵

3.2.3温度显示器的选择

方案一:

采用LCD1602液晶显示屏显示温度。

方案二:

采用led共阴数码管显示温度

对于方案一,液晶显示具有显示字符优美,其不仅能显示数字还能显示字符甚至是图形,这是led数码管无法比拟的。

而且它低压,微功耗、极低的工作电压。

方案二:

用数码管显示成本很低,显示温度很清晰明确,既是在很黑的地方也可以看得到,而且软件相应的编程也简单一点。

本设计中用1602,如果用数码管的话要用4个单个数码管,而不要用4位1组的数码管,因为4位1组数码管的显示需要动态扫描太浪费CPU的资源,因为CPU主要精力在于用定时中断处理PWM,如果在加上动态扫描LED管就会出现不连续的现象甚至LED管根本就不显示内容。

用1602可以节省一些CPU资源。

3.2.4电机控制的选择

在本设计当中,要想让单片机控制直流风扇就需要加驱动电路,原因是可以为直流电机提供足够大的驱动电流。

在本次的设计当中,用到了达林顿反向驱动器ULN2003A来驱动直流风扇电机。

ULN2003A在使用时接口简单,操作方便,可为电机提供较大的驱动电流,它实际上是一个集成芯片,每块芯片可同时驱动8个电机,每个电机由单片机的一个I/O口控制,单片机I/O口输出为5V的电压。

 

4系统硬件设计

系统设计主要包括AT89C54单片机,LCD1602液晶显示、DS18B20数字式温度传感器、直流风扇电机、达林顿反向驱动器ULN2003A.一些辅助原件包括瓷片电容、电解电容、按键开关、晶振等。

4.1方案选型微控制器的技术参数

4.1.189C51单片机内部结构

89C51单片机内部结构如图4.1所示:

图4.1

单片机是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器、并行I/O接口、串行接口等基本功能部件的大规模集成电路,又称为MCU.89C51单片机主要具有下列部件:

A、MCS-51内核的8位微处理器(CPU)一个;

B、片内振荡器及时钟电路一个,它最高的允许振荡频率为24MHz;

C、4KB程序存储器ROM用于存放程序代码、数据或表格的;

D、用于存放随即数据,变量、中间结果的128字节数据存储器RAM;

E、4个8位并行I/O接口P0-P3,它的每个口都可以作为输入或输出;

F、定时方式或者计数器方式用2个16位定时器/计数器,每个定时器/计数器都可以设置;

F、单片机之间或单片机与PC机之间的串行通讯用1个全双工串口;

G、中断控制系统具有5个中断源、2个中断优先级。

4.1.2单片机引脚说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口是一个八位的漏级开路的双向I/O端口,它的每个脚可吸收8TTL门电流。

当P1口的管脚第一次被写入1时,就被定义为高阻输入。

P用于外部程序数据存储器,它被定义为数据/地址的低八位。

P1口:

P1口是一个为内部提供上拉电阻的八位双向I/O端口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,由于内部上拉的缘故,P1口被外部下拉为低电平时,将输出电流,。

P2口:

P2口管脚为一个内部上拉电阻的八位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

内部上拉的缘故它作为输入时,P2口的管脚被外部拉低,将输出电流。

P3口:

P3口管脚是八个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

由于上拉的缘故,作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)。

RST:

复位输入。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入

XTAL2:

来自反向振荡器的输出。

4.2各部分电路设计

4.2.1电源电路设计

本次设计的电源电路用的是7805稳压电源。

7805是我们在平时的实验及设计中最常用到的稳压芯片,它如果要输入一个直流稳压电源只需要一个很简单的电路就可以了,它的输出电压正好是+5v,就符合了51单片机运行所需的电压值。

它有三个引脚:

其中1脚接整流器输出的正电压,2脚为公共地也就是负极,3脚接+5v电压。

如图4.2所示:

图4.2

4.2.2按键电路设计

在单片机的应用中,按键它主要有两种方式:

1、直接按键;2、矩阵编码键盘。

在直接按键中,每个按键都单独接到了单片机相应的一个I/O口上,而直接按键则是通过判断按键端口的电位即可识别按键操作;而矩阵键盘则是通过行列交叉按键编码来进行识别的。

在本设计中则采用第一种方式直接按键,它是用三个按键控制的,第一个对控制温度的值进行加操作,第二个对控制温度的值进行减操作,第三个用来检测程序。

其接线图如下:

进行一次完整的按键过程,主要包含以下五个过程

进行一次完整的击键过程,主要包含以下5个阶段:

    1.等待阶段:

此时如果按键还没有被按下,则处于空闲阶段,也就是等待阶。

2.

    2.前沿(闭合)抖动阶段:

此时如果按键刚刚被按下,但按键信号还有抖动存在,这个存在抖动的时间一般为5~20ms。

    3.键稳定阶段:

此时抖动已经结束乐,已经产生了一个有效的按键动作。

系统应该在此刻就开始执行按键功能;或将按键所对应的键值记下来,待按键释放。

    4.后沿(释放)抖动阶段:

一般来说,程序应该在这里再做一次的消抖延时,。

  5.按键释放阶段:

此时后沿抖动操作已经结束,按键已经完全处于释放状态,如果按键在释放后再执行功能的,则就可以在这个阶段进行一些按键操作的相关。

4.2.3显示电路设计

在本次设计中采用了LCD1602液晶显示来显示当前所设定的时间值,环境温度值,与控制温度值。

字符型LCD1602的每一个字符都有它固定的代码,代码对应的字符的点阵图形数据由字符发生器产生,通过驱动电路后在LCD上显示出字符,它是用5x7的点阵图形来显示个各种字符的一种液晶显示器。

通常为了简化开发,可以购买LCD及其驱动电路的显示器,称为LCD模块。

1602LCD是指显示的内容一共有16X2,即可以显示两行,每行有16个字符液晶模块(显示字符和数字)。

液晶各个引脚功能说明:

第1脚:

VSS为接地电源

第2脚:

VDD接5V正电源

第3脚:

VL为液晶显示器对比调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的滑动变阻器调整对比度。

第4脚:

RS为寄存器选择,低电平时选择指令寄存器、高电平时选择数据寄存器。

第5脚:

R/W为读写信号线,在输入高电平时进行读操作,输入低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。

第7-14脚:

D0-D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

(1)液晶工作原理

如图4.3所示是1602内部地址

图4.3

在本设计当中,主要用LCD1602来显示当前的时间以及采集温度和定时温度。

在液晶的第一行,显示当前的时间,它使用DS1302芯片来控制的,第二行的前半部分TP显示的是当前的环境温度,也就是DS18B20的温度,后半部分TD是系统设定的温度,如图4.4所示:

图4.4

4.2.4定时电路设计

本设计当当中用到了ds1302时钟芯片。

DS1302是一种高性能、低功耗的实时时钟芯片,采用SPI三线接口与CPU进行同步通信。

它的实时时钟可提供秒、分、时、日、星期还有年。

工作电压宽达2.5~5.5v.

引脚功能:

Vcc1:

主电源;

Vcc2:

备用电源;当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2

SCLK:

串行时钟,输入,控制数据的输入与输出;

I/O:

三线接口时的双向数据线。

CE:

输入信号,在进行读、写数据期间,必须将其设置为高。

该引脚由两个功能:

第一,CE开始控制字访问移位寄存器的控制逻辑;第二,CE提供结束单字节或多字节数据传输的方法。

本设计当中用到了DS1302时钟芯片来控制当前的时间,在芯片引脚的X1、X2端口用到了32.768KHz的晶振,这个晶振就像是一个非常标准的时钟,它可以很准确的显示时间。

32.768KHz的晶振比较容易产生1秒的时钟频率,在本设计当中,它与单片机连接如图4.5所示:

图4.5

4.2.5温度采集电路

本设计采用温度传感器DS18B20作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理,又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强。

DS18B20内部结构主要有四部分:

温度传感器、配置寄存器、64位ROM、非挥发的温度报警触发器TH和TL.其管脚有三个,其中I/O为数字信号端,GND为电源地,VDD为电源输入端。

在本设计当中,温度传感器用来检测当前的环境温度,它与单片机的连接如图4.6所示:

图4.6

4.2.6电机驱动电路

本设计要用单片机控制风扇直流电机,需要驱动电路,为直流电机提供足够大的驱动电流。

本设计电路中,用到了达林顿反向驱动器ULN2003A来驱动风扇电机。

ULN2003A接口简单,操作方便,可为电机提供较大的驱动电流.

ULN2003A输入5VTTL电平,输出可达500Ma/50V。

它是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA。

它由七个硅NPN达林顿管组成,其中每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。

ULN2003A的输出结构是集电极开路的,所以要在输出端接一个上拉电阻,在输入低电平时的时候输出才是高电平,电流是由电源通过负载灌入ULN2003A.

本设计当中用到了ULN2003A来驱动直流风扇,其中10K的滑动变阻器与电机相连,主要是用来检测系统,如果系统出现问题,也就是说风扇不转的时候,还可以手动调节风扇的转速,它与单品机的连接方式如图4.7所示:

图4.7

 

5软件设计

5.1程序设置

程序设计主要包括主程序、DS18B20初始化函数、DS18B20温度转换函数、温度读取函数,液晶显示函数,定时处理函数以及风扇电机控制函数。

DS18B20初始化函数完成对DS18B20的初始化;DS18B20温度传感函数完成对环境温度的采集,温

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2