
技术参数和设计任务:
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))+pwmprepwmpre=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)//微分项
}
/*****************************************************************************/
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)