教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

张华伟-基于STM32F4ARM单片机精确温控的设计与实现(7)

来源:网络收集 时间:2026-05-03
导读: if( Key1 == 0) { Dly_ms(5); if( Key1 == 0) { Set_Temp ++ ; if( Set_Temp>= 99) Set_Temp = 99 ; } while( Key1 ==0 ) { Show_Flag2 = 1; } } if( Key2 == 0) { Dly_ms(5); if( Key2 == 0) { Set_Temp -- ; if(

if( Key1 == 0) { Dly_ms(5); if( Key1 == 0) { Set_Temp ++ ; if( Set_Temp>= 99)

Set_Temp = 99 ;

}

while( Key1 ==0 ) { Show_Flag2 = 1; }

}

if( Key2 == 0) { Dly_ms(5); if( Key2 == 0) { Set_Temp -- ; if( Set_Temp<20)

Set_Temp = 20;

}

while( Key2 ==0 ) { Show_Flag2 = 1; }

}

}

}

附录

26

附录

//增量PID算法 #include \#include \extern unsigned intSet_Temp; extern signed intRG_tem_real; extern unsigned char Sw_Flag ;

unsigned char RG_Ki_time1,RG_Ki_time2; double RG_fErr0,RG_fErr1,RG_fErr2; double RG_tem_Err1; struct RG_PP { double Ki_ek0; double Ki_ek1; signed intSetPoint; double SumError; double Proportion; double Integral; double Derivative; double LastError; double PrevError; double Error; double dError;

double FDUk;

}RG_PID;

void RG_PID_Init(void) { RG_PID.Ki_ek0 = 0; RG_PID.Ki_ek1 = 0; RG_PID.SetPoint = Set_Temp; RG_PID.SumError = 0;

RG_PID.Proportion = 5;

27

附录

}

RG_PID.Integral = 0.005; RG_PID.Derivative = 1; RG_PID.LastError = 0; RG_PID.PrevError = 0; RG_PID.Error = 0; RG_PID.dError = 0; RG_PID.FDUk = 0;

void RG_PID_fErr1(void) { }

void RG_PID_fErr2(void)

if(((RG_PID.Error>1)||(RG_PID.Error<-1))&&(RG_fErr0==RG_PID.Error)) { } else { }

RG_Ki_time1=0; RG_PID.Ki_ek0=1;

RG_Ki_time1++; if(RG_Ki_time1==3) { } else { }

RG_PID.Ki_ek0=20;

RG_Ki_time1=0; RG_PID.Ki_ek0=40;

RG_fErr0=RG_PID.Error;

28

附录

{

if((((RG_tem_real-RG_tem_Err1)<2)&&((RG_tem_real-RG_tem_Err1)>-2))&&((RG_

PID.Error>10)||(RG_PID.Error<-10))) { RG_Ki_time2++; if(RG_Ki_time2==3) { RG_Ki_time2=0; RG_PID.Ki_ek1=20;

} else { RG_PID.Ki_ek1=10; }

}

else { RG_Ki_time2=0; RG_PID.Ki_ek1=1; }

RG_tem_Err1=RG_tem_real;

}

void RG_PID_fErr3(void) { if(RG_PID.Ki_ek0>RG_PID.Ki_ek1) { RG_PID.Ki_ek1=1; } else {

RG_PID.Ki_ek0=1; 29

附录

}

}

void RG_PID_Calc(void) { RG_PID.Error = RG_PID.SetPoint - RG_tem_real; // 当前误差 if( RG_PID.Error< 0) { RG_PID.FDUk = 1 ;

}

else if( RG_PID.Error> 10) { RG_PID.FDUk = 999 ; }

else { RG_PID_fErr1(); RG_PID_fErr2(); RG_PID_fErr3();

RG_PID.SumError += RG_PID.Ki_ek0*RG_PID.Error; RG_PID.dError = RG_PID.LastError - RG_PID.PrevError; RG_PID.PrevError = RG_PID.LastError; RG_PID.LastError = RG_PID.Error;

RG_PID.FDUk = RG_PID.Proportion * RG_PID.Error + RG_PID.Integral * RG_PID.SumError

+ RG_PID.Derivative * RG_PID.dError; }

}

void RG_Pwm_Control(void) {

30

// 积分 // 当前微分 // 比例 // 积分项 // 微分项

…… 此处隐藏:108字,全部文档内容请下载后查看。喜欢就下载吧 ……
张华伟-基于STM32F4ARM单片机精确温控的设计与实现(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/453557.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)