温控器PID算法_第1页
温控器PID算法_第2页
温控器PID算法_第3页
温控器PID算法_第4页
温控器PID算法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STC12C5A60S2设计的马弗炉温度控制器方案导读 马弗炉是高性能机电一体化的新一代智能产品,适用于煤炭、电力、化工、冶金等行业和部门进行工业分析。马弗炉温度控制器设计以单片机STC12C5A60S2作为控制中心,采用PID控制马弗炉是高性能机电一体化的新一代智能产品,适用于煤炭、电力、化工、冶金等行业和部门进行工业分析。马弗炉温度控制器设计以单片机STC12C5A60S2作为控制中心,采用PID控制算法和自适应控制技术,自动调整预加热温度,并可以存储记忆,确保试验顺利完成,自动化程度高。1.马弗炉主要技术指标测温范围:01000测温精度:±3控温精度:±10

2、(在2501000范围内)升温时间:(室温920)30min电源:AC220V±22V50Hz±1Hz功率:3.5kW具有快速灰化和缓慢灰化、挥发分、罗加指数、黏结指数等四个专用加热程序;另外,温度控制器有一个自选程序,通过按键可选择所需设定的温度和保温时间。2.设计思路马弗炉温度控制器设计采用PID算法来控制PWM的占空比,由PWM信号控制IGBT的通断,使用时钟专用芯片DS1302进行定时控制,从而实现在不同时段对炉温的控制。3.系统结构马弗炉温度控制器由单片机STC12C5A60S2,热电偶放大器与数字转换器MAX6675,时钟芯片DS1302,级精度形热电偶,键盘及

3、显示系统组成,系统结构如图1所示。图1  系统结构框图PID简介1.基本概念基本偏差e(t):表示当前测量值与设定目标之间的偏差。设定目标是被减数,结果可以是正或负,正数表示还没有达到,负数表示已经超过了设定值,这是面向比例项用的一个变动数据。累计偏差e(t)=e(t)+e(t-1) +e(t-n):这是我们每一次测量得到偏差值的总和,是代数和,要考虑正负号运算的。这是面向积分项用的一个变动数据。基本偏差的相对量e(t)-e(t-1):用本次的基本偏差减去上一次的基本偏差,用于考察当前控制对象的趋势,作为快速反应的重要依据,这是面向微分项用的一个变动数据。三个基本参数Kp、Ki、Kd

4、:这是做好一个控制器的关键常数,分别称为比例常数、积分常数和微分常数。不同的控制对象需要选取不同的值,经过现场调试才能获得较好的效果。2.三个基本参数Kp、Ki、Kd实际控制中的作用比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。比例作用大,可以加快调节,减少误差,但过大比例会使系统稳定性下降。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数Ti。Ti越大,积分作用越弱,反之则越强。微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得过大之前,在系统中引入一个有效的早期修正信号,从而加快系统的

5、动作速度,减小调节时间。3.参数的设置与调整加温迅速达到目标值,但温度过冲很大。比例系数太大,致使在未达到设定温度前加热比例过高;微分系数过小,对对象反应不敏感。加温经常达不到目标值,小于目标值时间多。比例系数过小,加温比例不够;积分系数过小,对静差补偿不足。基本在控制温度内,但上下偏差大,经常波动。微分系数小,对及时变化反应慢;积分系数过大,使微分反应被钝化。受环境影响较大微分系数小,对及时变化反应慢;设定的基本定时周期过长,不能得到及时修正。下面给出PID控制程序:#ifndef _PID_H_#define _PID_H_#include<intrins.h>#include

6、<math.h>#include<string.h>struct PID unsigned int SetPoint; / 设定目标 Desired Valueunsigned int Proportion; / 比例常数 Proportional Constunsigned int Integral; / 积分常数 Integral Constunsigned int Derivative; / 微分常数 Derivative Constunsigned int LastError; / Error-1unsigned int PrevError; / Error-2

7、unsigned int SumError; / Sums of Errorsstruct PID spid; / PID Control Structureunsigned int rout; / PID Response (Output)unsigned int rin; / PID Feedback (Input)sbit output=P14;unsigned char high_time,low_time,count=0;/占空比调节参数unsigned char set_temper=920;void PIDInit (struct PID *pp)memset ( pp,0,si

8、zeof(struct PID);unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint )unsigned int dError,Error;Error = pp->SetPoint - NextPoint; / 偏差pp->SumError += Error; / 积分dError = pp->LastError - pp->PrevError; / 当前微分pp->PrevError = pp->LastError;pp->LastError = Error;return (pp-

9、>Proportion * Error/比例+ pp->Integral * pp->SumError /积分项+ pp->Derivative * dError); / 微分项4. 温度采集电路热电偶作为一种主要的测温元件,具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点。但是,热电偶的应用却存在着非线性、冷端补偿、数字化输出等几方面的问题。设计中采用的MAX6675是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器,其电路如图2所示。图2 温度采集电路图MAX6675从SPI串行接口输出数据的过程如下:MCU使CS变

10、低并提供时钟信号给SCK,由SO读取测量结果。CS变低将停止任何转换过程;CS变高将启动一个新的转换过程。一个完整串行接口读操作需16个时钟周期,在时钟的下降沿读16个输出位,第1位和第15位是一伪标志位且总为0;第14位到第3位为以MSB到LSB顺序排列的转换温度值;第2位平时为低,当热电偶输入开放时为高;开放热电偶检测电路完全由MAX6675实现,为开放热电偶检测器操作,T-必须接地,并使接地点尽可能接近GND脚;第1位为低电平以提供MAX6675器件身份码,第0位为三态。图3   SO端输出温度数据的格式图4   MAX6675的SPI接口时序下面

11、给出相应的温度值读取程序及数据转换程序:void max6675() uchar m; uint temp; temp=0; max_sck=0; max_cs=1; delay(180ms);    max_cs=0 ; max_sck=1;   _nop_(); max_sck=0; _nop_(); if(max_so=1)     temp |=0x0001; for(

12、m=0;m<15;m+)   temp<<=1;  max_sck=1;  _nop_();  max_sck=0;  if(max_so=1)    temp |=0x0001;        temp=(temp&0x7fe0)>>5; t0=temp/1000+0x30; t1=temp%1000/100+0x30; t2=temp%100/10+0x30; t3=temp%10+0x30; print(1,0,t); 图5  定时电路图图6  单片机系统电路图图7  主程序流程图5.定时电路使用时钟专用芯片DS1302进行定时控制,通过外加很少的电路就可以实现高精度的时钟信号。外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论