预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

STC12C5A60S2设计的马弗炉温度控制器方案 [导读]马弗炉是高性能机电一体化的新一代智能产品,适用于煤炭、电力、化工、冶金等行业和部门进行工业分析。马弗炉温度控制器设计以单片机STC12C5A60S2作为控制中心,采用PID控制 马弗炉是高性能机电一体化的新一代智能产品,适用于煤炭、电力、化工、冶金等行业和部门进行工业分析。马弗炉温度控制器设计以单片机STC12C5A60S2作为控制中心,采用PID控制算法和自适应控制技术,自动调整预加热温度,并可以存储记忆,确保试验顺利完成,自动化程度高。 1.马弗炉主要技术指标测温范围:0~1000℃测温精度:±3℃控温精度:±10℃(在250~1000℃范围内)升温时间:(室温~920℃)≤30min电源:AC220V±22V@50Hz±1Hz功率:3.5kW具有快速灰化和缓慢灰化、挥发分、罗加指数、黏结指数等四个专用加热程序;另外,温度控制器有一个自选程序,通过按键可选择所需设定的温度和保温时间。 2.设计思路马弗炉温度控制器设计采用PID算法来控制PWM的占空比,由PWM信号控制IGBT的通断,使用时钟专用芯片DS1302进行定时控制,从而实现在不同时段对炉温的控制。 3.系统结构马弗炉温度控制器由单片机STC12C5A60S2,热电偶放大器与数字转换器MAX6675,时钟芯片DS1302,I级精度K形热电偶,键盘及显示系统组成,系统结构如图1所示。 图1系统结构框图 PID简介 1.基本概念①基本偏差e(t):表示当前测量值与设定目标之间的偏差。设定目标是被减数,结果可以是正或负,正数表示还没有达到,负数表示已经超过了设定值,这是面向比例项用的一个变动数据。 ②累计偏差∑e(t)=e(t)+e(t-1)+…+e(t-n):这是我们每一次测量得到偏差值的总和,是代数和,要考虑正负号运算的。这是面向积分项用的一个变动数据。 ③基本偏差的相对量e(t)-e(t-1):用本次的基本偏差减去上一次的基本偏差,用于考察当前控制对象的趋势,作为快速反应的重要依据,这是面向微分项用的一个变动数据。 ④三个基本参数Kp、Ki、Kd:这是做好一个控制器的关键常数,分别称为比例常数、积分常数和微分常数。不同的控制对象需要选取不同的值,经过现场调试才能获得较好的效果。 2.三个基本参数Kp、Ki、Kd实际控制中的作用①比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。比例作用大,可以加快调节,减少误差,但过大比例会使系统稳定性下降。 ②积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数Ti。Ti越大,积分作用越弱,反之则越强。 ③微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得过大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。 3.参数的设置与调整①加温迅速达到目标值,但温度过冲很大。 比例系数太大,致使在未达到设定温度前加热比例过高;微分系数过小,对对象反应不敏感。 ②加温经常达不到目标值,小于目标值时间多。 比例系数过小,加温比例不够;积分系数过小,对静差补偿不足。 ③基本在控制温度内,但上下偏差大,经常波动。 微分系数小,对及时变化反应慢;积分系数过大,使微分反应被钝化。 ④受环境影响较大 微分系数小,对及时变化反应慢;设定的基本定时周期过长,不能得到及时修正。 下面给出PID控制程序:#ifndef_PID_H__#define_PID_H__#include<intrins.h>#include<math.h>#include<string.h>structPID{unsignedintSetPoint;//设定目标DesiredValueunsignedintProportion;//比例常数ProportionalConstunsignedintIntegral;//积分常数IntegralConstunsignedintDerivative;//微分常数DerivativeConstunsignedintLastError;//Error[-1]unsignedintPrevError;//Error[-2]unsignedintSumError;//SumsofErrors}structPIDspid;//PIDControlStructureunsignedintrout;//PIDResponse(Output)unsignedintrin;//PIDFeedback(Input)sbitoutput=P1^4;unsignedcharhigh_time,low_time,count=0;//占空比调节参数unsignedcharset_t