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

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

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

技术参数和设计任务:

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

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

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

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

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

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

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

需要的话联系用户名扣扣

pwmout=P*(E(0)-E(1))+I*E(0)+D*(E(0)-2*E(1)+E(2))+pwmpre

pwmpre=pwmout

E(0)是当前

系统偏差

,E(1)是上一次偏差,E(2)上上次偏差。P、I、神搜D分别是

比例系数

、积分系数和微分系数

E=SpeedSet-Speed

SpeedSet可根据路况设裂瞎消置,是你期肆知望小车行驶的速度。Speed是你当前测量的小车的实际速度

这是倒立摆系统的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)//微分项

}

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


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

原文地址:https://54852.com/yw/12356132.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存