PWM温度自动控制系统的设计.docx

上传人:b****5 文档编号:8502834 上传时间:2023-01-31 格式:DOCX 页数:7 大小:69.46KB
下载 相关 举报
PWM温度自动控制系统的设计.docx_第1页
第1页 / 共7页
PWM温度自动控制系统的设计.docx_第2页
第2页 / 共7页
PWM温度自动控制系统的设计.docx_第3页
第3页 / 共7页
PWM温度自动控制系统的设计.docx_第4页
第4页 / 共7页
PWM温度自动控制系统的设计.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

PWM温度自动控制系统的设计.docx

《PWM温度自动控制系统的设计.docx》由会员分享,可在线阅读,更多相关《PWM温度自动控制系统的设计.docx(7页珍藏版)》请在冰豆网上搜索。

PWM温度自动控制系统的设计.docx

PWM温度自动控制系统的设计

 

《计算机控制技术》

课程设计

题目:

PWM温度自动控制系统的设计

学生姓名:

学号:

专业班级:

指导教师:

 

二○一○年十二月二十二日

 

目录

 

1.课程设计目的…………………………………………………页码

2.课程设计题目的描述和要求…………………………………页码

3.课程设计报告内容……………………………………………页码

4.结论……………………………………………………………页码

1.课程设计目的

2.课程设计题目的描述和要求

2.1课程设计的要求和内容(包括原始数据、技术要求、工作要求)

1.要求设计温度控制系统,设定温度为230度,采用电阻丝作为加热器件,要求无余差,超调小,加热速度快。

2.硬件采用51系列单片机,采用固态继电器作为控制元件。

3采用keilc作为编程语言,采用结构化的设计方法

2.2课程设计图纸内容及张数

1.要求用protel设计出硬件电路图。

2画出系统控制框图。

3画出软件流程图。

3.课程设计报告内容

3.1、设计概述

3.1.1实现功能

1、通过单片机实现温度控制系统,要求无余差,超调小,加热速度快。

2、给定可调节

3.1.2系统控制框图程序模块

3.1.3程序模块

1、主程序

2、AD转换程序

3、pid计算程序

4、延时程序

5、定时器中断服务程序

 

3.2Protel硬件电路图

 

3.3软件设计

3.3.1设计流程图:

初始化

扫描给定值刷新给定值

采样AD转换反馈值刷新

 

输出值计算

刷新输出值

 

定时器初值更新

 

 

主要程序流程说明:

主程序首先进行初始化,包括pid参数设定,定时器设置,中断设置及赋初值。

然后循环做四件事:

通过AD转换对反馈值采样,根据设定值减反馈值计算偏差进而计算输出值,根据输出值算出定时器初值,扫描给定按键刷新给定值。

通过不断循环改变定时器初值以改变占空比,实现PWM控制。

 

3.3.2程序

#include

sbitA=P2^0;//模拟通道选择位

sbitBB=P2^1;

sbitC=P2^2;

sbitST=P2^4;

sbitEOC=P2^5;

sbitOE=P2^6;

sbitP27=P2^7;//PWM脉冲输出

sbitP10=P1^0;

sbitP17=P1^7;

voidad();//模数转换

voidpid();//pid计算

inta=0,b=0,out=0;

doublep=0.4,i=0.1,d=0;//系数设定

doubles=0,e0=0,elast=0,in=200;

 

voiddelay(longi)//延时

{

intj=255;

while(i--)

{

for(;j>0;j--);

}

}

main()

{

A=BB=C=0;

OE=1;

TMOD=0x11;

TH0=0xD8;

TL0=0xF0;

EA=1

ET0=1;ET1=1;

TR0=1;

 

while

(1)

{

ad();//模数转换

pid();

a=(65535-out*39)/0x100;

b=(65535-out*39)%0x100;//T1低8位

if(P10==0)

{in++;delay(100);}

if(P17==0)

{in--;delay(100);}

}

}

//模数转换

voidad()

{

ST=0;

ST=1;

ST=0;//启动转换

while(EOC==0);//等待转换结束

}

 

//pid计算

voidpid()

{

e0=in-P0;//偏差值

out=p*(e0+i*s+d*(e0-elast));//由公式计算输出值

s=s+e0;//累计偏差

elast=e0;

}

 

voidint0()interrupt1using0//定时器0服务子程序(interrupt1定时器0)

{

TH0=0xD8;

TL0=0xF0;//定时器0初值

P27=1;//输出高电平

TR1=1;//开定时器1

TH1=a;//定时器1初值

TL1=b;

}

voidint3()interrupt3using0//定时器1服务子程序

{

TR1=0;//关定时器1

P27=0;//输出低电平

}

4、结论

4.1、测试结果

由于没有实物,只能进行仿真,但Proteus中找不到合适的模型,以下用电机代替加热器进行Proteus仿真,如下图:

用KeiluVision3编写程序,经检查成功后,通过编译链接产生*.hex文件,并用Proteus7.5设计绘制电路图,并将生成的*.hex文件导入芯片中,进行仿真。

仿真结果为:

1、电机转速很快地稳定固定转速。

2、调节过程无余差,超调小,速度快。

3、调节给定实现转速控制。

 

参考书目:

[1]马忠梅,单片机的C语言应用程序设计,北京航空航天出版,2006

[2]于海生,计算机控制技术,机械工业出版社,2007

[3]李朝青,单片机原理及接口技术(第3版),北京航空航天大学出版社,2006

[4]田立,田青代万震.51单片机C设计快速入门,人民邮电出版社,2007

[5楼然苗,李光飞.51单片机设计实例,北京航空航天大学出版社,2004

[6]王守中,51单片机开发入门与典型实例,人民邮电出版社,2007

 

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

当前位置:首页 > 高等教育 > 工学

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

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