- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《计算机控制技术》容器水位控制系统的设计
《计算机控制技术》
课程设计
题 目: 容器水位控制系统的设计
学生姓名:
学 号:
专业班级:
指导教师:
二○一○年十二月二十二日
目 录
1. 课程设计目的……………………………………………………………2
2. 课程设计题目的描述和要求……………………………………………2
3. 课程设计报告内容………………………………………………………2
4. 结论………………………………………………………………………7
5. 心得体会…………………………………………………………………8
一.设计的目的
通过课程设计,掌握以下知识和技能:
1.培养针对课题需要,选择和查阅有关手册.图表及文献资料的自学能力。
2.提高综合及灵活运用所学知识解决工业控制的能力单片机应用系统的硬件设计。
3.通过对课题设计熟悉单片机用系统开发.研制的过程,软硬件设计的方法。
二.设计要求
2.1课程设计的要求和内容(包括原始数据.技术要求.工作要求)
1.要求设计水位控制系统,要求无余差,超调小,水位稳定速度快。
2.硬件采用51系列单片机,采用阀门作为控制元件。
3采用keil c作为编程语言,采用结构化的设计方法
2.2课程设计图纸内容及张数
1.画出系统控制框图。
2.要求用protel设计出硬件电路图。
3.画出软件流程图。
三.课程设计报告内容
1.模拟PID控制原理
在模拟控制系统中,控制器最常用的控制规律是PID控制。为了说明控制器的原理,以图1.1的例子说明。给定输入信号n0(t)与实际输出信号n(t)进行比较,其差值e(t)=n0(t)-n(t),经过PID控制器调整输出控制信号u(t),u(t)对目标进行作用,使其按照期望运行。
常规的模拟PID控制系统原理框图如同1.2所示。该系统有模拟PID和被控对象组成。图中r(t)是给定的期望值,y(t)是系统的实际输出值,给定值与实际输出值,给定值与实际值构成控制偏差e(t)=r(t)-y(t)。e(t)作为PID控制的输入,u(t)作为PID控制的输出和被控对象的输入。构成PID和被控对象的输入。构成PID控制的规律为:
其中:Kp为控制器的比例系数
Ti为控制器的积分时间,也称积分系数
Td为控制器的未分时间,也称微分系数
2.系统控制框图程序模块
3.protel硬件控制框图
4.软件设计
4.1设计流程图:
主要程序流程说明:
主程序首先进行初始化,包括PID参数设定及赋初值。然后循环做执行以下程序:等待延时程序时间到,通过AD转换对反馈值采样,根据设定值减反馈值计算偏差进而计算输出值,根据输出值算出DA的值,以此改变阀门的开度。
4.2程序
#pragma db oe sb
#include reg51.h
#includeabsacc.h
#define DAC0832 XBYTE[0x7fff] /* 定义DAC0832端口地址 */
#define uchar unsigned char
sbit A=0;//模拟通道选择位
sbit BB=0;
sbit C=0;
sbit ST=P2^2;
sbit EOC=P2^1;
sbit OE=P2^0;
void ad();//模数转换
void PID();//PID计算
void delay();//延时
int a=0,b=0,out=0;
double p=0.4,i=0.1,d=0;//PID参数设定
double s=0,e0=0,elast=0,in=200;
main()
{
OE=1;
while(1)
{ delay(10);//设置采样时间
ad();//模数转换
PID();//进行PID运算
DAC0832=out;//将运算结果送至数模转换器
}
}
void delay(long i)//延时
{
int j=255;
while(i--)
{
for(;j0;j--);
}
文档评论(0)