首页 C语言编写PID温度控制程序

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

举报
开通vip

C语言编写PID温度控制程序C语言编写PID温度控制程序 (* init program *) 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 ;输出最大容许变化量,操作变量斜坡最大值。...

C语言编写PID温度控制程序
C语言编写PID温度控制程序 (* init program *) 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时第I part和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 ;操作变量的反馈模式:内部模式(一般为内部模式) PIDpara.d_mode = LCPID_D_MODE_E ;微分模式:对偏差值进行微分计算( 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 PID控制);X模式:对实际值进行微分计算(一般选次方式) PIDpara.calc_mode= LCPID_CALC_MODE_EXACT ;计算模式:精确(所有计算为双精度浮点型, 如无舍入错误和CPU计算次数过长)(一般选次方式) PIDpara FUB LCPIDpara() ;调用PID参数功能块 循环程序中程序如下,此程序只对P、I、D三个参数由变量进行输值,变量可在pid程序运行中实时修改,如果大家还需要某些参数实时修改,方法相同: (* cyclic program *) PIDpara.enable = PIDpara.enable PIDpara FUB LCPIDpara() PIDpara.Tv = D_Ctrl ;积分(越小作用越大),为0时第I part和jolt-free切换不起作用且不需要任何计算时间。 PIDpara.Kp = P_Ctrl ;比例 PIDpara.Tn = I_Ctrll ;微分 二、必须调用一个LCCounter()功能块,作为pid的basetime输入。 三、使用LCPID功能块,使用方法如下: 初始化程序 (* init program *) LCCount FUB LCCounter() PID.out_mode= LCPID_OUT_MODE_MAN ;控制器运行模式,此处默认为手动模式,LCPID_OUT_MODE_AUTO: 为自动运行 PID.Y_man=PID.Y_man ;自动切换到手动模式时,无扰动的手动输出值 PID.hold_I=0 ;PID.hold_I=1 时,积分项不起作用,保持原值(一般不用) PID.enable = 1 PID FUB LCPID() 循环程序如下 LCCount FUB LCCounter() (* Get time from system*) PID.basetime = LCCount.ms100cnt ;设定计算频率(100msPID进行计算一次,时间一般与实际值采集周期相同) PID.W = setTense ;INT,设定值 PID.X = actTense ;INT,实际值(* see to task:sensor *) PID FUB LCPID() PID.enable= 1 ;使能 PID.ident= PIDpara.ident ;ident来自上面对应LCDPIDpara()的ident. PID.W= setTense ;INT,设定值 PID.X= actTense ;INT,实际值(* see to task:sensor *) PID.Y_man= 15000 ;手动时输入值 PID.Y_fbk= ;为内部模式时不用 PID.hold_I= ;一般不用 If y=1 then ;此处为pid手自动切换。 PID_0.out_mode= LCPID_OUT_MODE_MAN else PID_0.out_mode= LCPID_OUT_MODE_AUTO endif PID FUB LCPID() ;调用PID功能块 部分C语言写的温度PID 程序
本文档为【C语言编写PID温度控制程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_314871
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:3
分类:互联网
上传时间:2017-10-16
浏览量:33