C语言编写PID温度控制程序.doc

C语言编写PID温度控制程序.doc

ID:57395006

大小:17.50 KB

页数:5页

时间:2020-08-15

C语言编写PID温度控制程序.doc_第1页
C语言编写PID温度控制程序.doc_第2页
C语言编写PID温度控制程序.doc_第3页
C语言编写PID温度控制程序.doc_第4页
C语言编写PID温度控制程序.doc_第5页
资源描述:

《C语言编写PID温度控制程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、(*initprogram*)PIDpara.enable=1;使能端PIDpara.enter=1;当enter为1时,检查参数并转换为内部显示。;当enter为0时,忽略输入参数的改变并存储计算时间。PIDpara.Y_max=32767;PID输出最大值(0~~32767)PIDpara.Y_min=0;PID输出最小值(0~~32767)PIDpara.dY_max=10.0;输出最大容许变化量,操作变量斜坡最大值。为0时ramp不起作用,不需计算时间PIDpara.Kp=1.0;比例PIDpara.Tn=10.0;积分(越小作用越大),为0时

2、第Ipart和jolt-free切换不起作用且不需要任何计算时间。PIDpara.Tv=1;微分PIDpara.Tf=1;微分滤波时间。若Tv不为0必须输入(初值为Tv/10),不应少于(1.4*任务的扫描时间).PIDpara.Kw=1;比例项衰减系数。Kw为1时设定值不变进行比例项计算,为小于1时,设定值乘Kw后进行比例项计算(此项不能为零)PIDpara.Kfbk=1;抗积分饱和,终结阻尼值。Kfbk为0时终结保护无效,不需要计算时间PIDpara.fbk_mode=LCPID_FBK_MODE_INTERN;操作变量的反馈模式:内部模式(一般为

3、内部模式)PIDpara.d_mode=LCPID_D_MODE_E;微分模式:对偏差值进行微分计算(标准PID控制);X模式:对实际值进行微分计算(一般选次方式)PIDpara.calc_mode=LCPID_CALC_MODE_EXACT;计算模式:精确(所有计算为双精度浮点型,如无舍入错误和CPU计算次数过长)(一般选次方式)PIDparaFUBLCPIDpara();调用PID参数功能块循环程序中程序如下,此程序只对P、I、D三个参数由变量进行输值,变量可在pid程序运行中实时修改,如果大家还需要某些参数实时修改,方法相同:(*cyclicpr

4、ogram*)PIDpara.enable=PIDpara.enablePIDparaFUBLCPIDpara()PIDpara.Tv=D_Ctrl;积分(越小作用越大),为0时第Ipart和jolt-free切换不起作用且不需要任何计算时间。PIDpara.Kp=P_Ctrl;比例PIDpara.Tn=I_Ctrll;微分二、必须调用一个LCCounter()功能块,作为pid的basetime输入。三、使用LCPID功能块,使用方法如下:初始化程序(*initprogram*)LCCountFUBLCCounter()PID.out_mode=LC

5、PID_OUT_MODE_MAN;控制器运行模式,此处默认为手动模式,LCPID_OUT_MODE_AUTO:为自动运行PID.Y_man=PID.Y_man;自动切换到手动模式时,无扰动的手动输出值PID.hold_I=0;PID.hold_I=1时,积分项不起作用,保持原值(一般不用)PID.enable=1PIDFUBLCPID()循环程序如下LCCountFUBLCCounter()(*Gettimefromsystem*)PID.basetime=LCCount.ms100cnt;设定计算频率(100msPID进行计算一次,时间一般与实际值采

6、集周期相同)PID.W=setTense;INT,设定值PID.X=actTense;INT,实际值(*seetotask:sensor*)PIDFUBLCPID()PID.enable=1;使能PID.ident=PIDpara.ident;ident来自上面对应LCDPIDpara()的ident.PID.W=setTense;INT,设定值PID.X=actTense;INT,实际值(*seetotask:sensor*)PID.Y_man=15000;手动时输入值PID.Y_fbk=;为内部模式时不用PID.hold_I=;一般不用Ify=1t

7、hen;此处为pid手自动切换。PID_0.out_mode=LCPID_OUT_MODE_MANelsePID_0.out_mode=LCPID_OUT_MODE_AUTOendifPIDFUBLCPID();调用PID功能块部分C语言写的温度PID程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。