怎样用PID算法对恒温箱的温度进行控制,求相关的51单片机汇编程序

怎样用PID算法对恒温箱的温度进行控制,求相关的51单片机汇编程序,第1张

本设计要求:本温度控制系统为以单片机为核心,实现了对温度实时监测和控制,实现了控制的智能化。设计恒温箱温度控制系统,配有温度传感器,采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输,采用了PID控制技术,可以使温度保持在要求的一个恒定范围内,配有键盘,用于输入设定温度;配有数码管LED用来显示温度。

技术参数和设计任务:

1、利用单片机AT89C2051实现对温度的控制,实现保持恒温箱在最高温度为110℃。

2、可预置恒温箱温度,烘干过程恒温控制,温度控制误差小于±2℃。

3、预置时显示设定温度,恒温时显示实时温度,采用PID控制算法显示精确到0.1℃。

4、温度超出预置温度±5℃时发出声音报警。

5、对升、降温过程没有线性要求。

6、温度检测部分采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输

7、人机对话部分由键盘、显示和报警三部分组成,实现对温度的显示、报警。

需要的话联系用户名扣扣

这是倒立摆系统的PID控制函数的一部分,你看看有没有思路

/****************************************************************/

//定义结构体

/****************************************************************/

struct may_PID{

signed long Proportion //比例 ;调节系数

signed long Integral //积分 ;调节系数

signed long Derivative //微分 ;调节系数

signed long SetPoint //设定值 ;定值

signed long SumError //偏差积分

signed long PrevError //之前偏差值

}PID/*此处可放结构体变量名*/

struct may_PID *pp //定义结构体类型指针

//pp=malloc(sizeof(struct may_PID)) //为指针变量分配安全的地址空间;sizeof:其为计算字节长度函数

/*****************************************************************/

/**************************PTD函数**************************************/

signed long PIDCalc(signed long NextPoint/*当前值*/ )

{

signed long dError

Error = pp->SetPoint - NextPoint//当前偏差

pp->SumError+=Error //积分

dError=Error-pp->PrevError//当前微分=当前偏差-之前偏差

pp->PrevError=Error //把当前偏差赋予之前偏差变量,使其充当下次取样的之前偏差

return (long)(pp->Proportion *Error //比例项

+pp->Integral*pp->SumError //积分项

+pp->Derivative*dError)//微分项

}

/*****************************************************************************/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11904306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存