77范文网 - 专业文章范例文档资料分享平台

电阻炉炉温自动控制系统(6)

来源:网络收集 时间:2019-04-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

式中,e(t)=r(t)-y(t)称为偏差值,可作为温度调节器的输入信号,其中r(t)为给定值,y(t)为被测变量值;Kp为比例系数;Td为积分时间常数;u(t)为调节器的输出控制电压信号。

但计算机只能处理数学信号,故上述数学方程必须加以变换。若设温度的采样周期为T,第n次采样得到的输入偏差为en,调节器输出为Un,则有: 为T,第n次采样得到的输入偏差为en,调节器输出为Un,则有:

(微分用差分代替)

这样,式(3.1)便可改写为:

Un?Kp[en?(3.2)

写成递推形式为:

改写成:

U(n)?U(n?1)?Kp{E(n)?E(n?1)?KiE(n)?Kd[E(n)?2E(n?1)?dE(n?2)]}?U(n?1)?Pp?Pi?Pd

tde?t (积分用求和代替)

1TiK?0?ekT?Tdnen?en?1T]

(3.3)

4.2 温度控制程序

///////////////////主程序////////////////// #include #include

#define uchar unsigned char #define uint unsigned int

sbit ds=P2^2; //温度传感器信号线 sbit dula=P2^6; //数码管段选线 sbit wela=P2^7; //数码管位选线 sbit beep=P2^3; //蜂鸣器

uint temp; float f_temp; uint warn_l1=260; uint warn_l2=250; uint warn_h1=300; uint warn_h2=320;

sbit led0=P1^0; sbit led1=P1^1;

sbit led2=P1^2; sbit led3=P1^3;

unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0xbf,0x86, 0xdb,0xcf,0xe6,0xed,

0xfd,0x87,0xff,0xef}; //不带小数点的编码

void delay(uint z)//延时函数 {

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--); }

void dsreset(void) //18B20复位,初始化函数 { uint i; ds=0; i=103; while(i>0)i--; ds=1; i=4; while(i>0)i--; }

bit tempreadbit(void) //读1位函数 { uint i; bit dat;

ds=0;i++; //i++ 起延时作用 ds=1;i++;i++; dat=ds; i=8;while(i>0)i--; return (dat); }

uchar tempread(void) //读1个字节 {

uchar i,j,dat; dat=0;

for(i=1;i<=8;i++) {

j=tempreadbit();

dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 }

return(dat); }

void tempwritebyte(uchar dat) { uint i; uchar j; bit testb; for(j=1;j<=8;j++) {

testb=dat&0x01; dat=dat>>1; if(testb) //写 1 { ds=0; i++;i++; ds=1;

i=8;while(i>0)i--; } else {

向18B20写一个字节数据 // ds=0; //写 0 i=8;while(i>0)i--; ds=1; i++;i++; } } }

void tempchange(void) //DS18B20 开始获取温度并转换 {

dsreset(); delay(1);

tempwritebyte(0xcc); // 写跳过读ROM指令 tempwritebyte(0x44); // 写温度转换指令 }

uint get_temp() //读取寄存器中存储的温度数据 {

uchar a,b;

dsreset(); delay(1);

tempwritebyte(0xcc); tempwritebyte(0xbe);

a=tempread(); //读低8位 b=tempread(); //读高8位 temp=b;

temp<<=8; //两个字节组合为1个字 temp=temp|a;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库电阻炉炉温自动控制系统(6)在线全文阅读。

电阻炉炉温自动控制系统(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/567894.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: