基于单片机PID算法的温度控制调节器控制设计

Posted MCU嵌入式技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于单片机PID算法的温度控制调节器控制设计相关的知识,希望对你有一定的参考价值。

设计思路:

改进PID算法的温度调节器设计,采用单片机为控制器,研究热电阻测温电路,控制量输出电路和温度控制PID算法。

功能实现:

1.采用市电供电。

2.采用单片机。

3.LED数码管显示。

4.4*4键盘输入。

5.热电阻测温0-150℃。

6. 工艺参数断电可保持,AT24C02存储。

7. 电流输出4-20mA,电压输出0-5V。

8.有超偏差报警功能。

9.增量式PID算法。

#include "Interrupt.h"			  //中断头文件
#include "24C02.h"				  //存储器
#include "delay.h"				  //延时函数
#include "PID.h"				  //改进PID算法
#include "DISPLAY.h"              //数码管显示
sbit Change=P3^6;				  //切换显示按键
sbit Warning=P3^3;
unsigned char key=16,ShowPage=0;
int PID_Data;                           //PID算法输出的计算值
unsigned int LTC1655_WritData=0;	  	//给DA的值
extern PID sPID; 
unsigned int LT1860_ReadData=0;
float LTC1860_Voltage=0;
float RealTemp=0;
float LTC1655_Voltage;       //DA输出电压
void ParaInit(void);         //从存储器中读取参数值

void main(void)

	IIC_Init();					    //IIC初始化  24C02初始化
	Timer_Init();				    //定时器1初始化
	Timer_EN();						//打开定时器1中断
	Glob_Interrupt_EN();			//打开全局中断允许
	IncPIDInit();					//改进PID初始化
	ParaInit();						//开机读取上次设定的PID的参数和设定的温度
	Warning=0;

	while(1)
	
		
		LT1860_ReadData=LTV1860_GetData();	       //读取AD的值
		LTC1860_Voltage=5.0*LT1860_ReadData/4096;  //读到的值转换成电压
		RealTemp=(LTC1860_Voltage+10)/(40-LTC1860_Voltage)*1039-272.72+0.5;	 //电压转换成温度
		if(RealTemp<109) 				  //软件补偿  消除误差  
			RealTemp-=3;
		else if(RealTemp<149) 
			RealTemp-=2;
		else 
			RealTemp-=1;	 


		if((int)RealTemp>150||(int)RealTemp<0) 	 //报警
			Warning=1;
		else 
			Warning=0;

		PID_Data=IncPIDCalc(RealTemp);   //PID算法
		LTC1655_WritData=PID_Data+32767; 	  
		LTC1655_WritWord(LTC1655_WritData);	  //读到的值送到DA

		LTC1655_Voltage=5.0*LTC1655_WritData/65535;

  

  

【资源下载】下载地址:点击下载(5) 百度网盘

以上是关于基于单片机PID算法的温度控制调节器控制设计的主要内容,如果未能解决你的问题,请参考以下文章

基于单片机PID算法控制电机转速设计-全套资料

基于simulink的模糊PID控制器设计与仿真

基于单片机PID控制算法开关电源设计实现(完善)

优化求解基于麻雀算法优化PID参数matlab源码

优化求解基于麻雀算法优化PID参数matlab源码

stm32单片机温度控制pid代码