搜索
bottom↓
回复: 723

温控PID参数调节实验过程

  [复制链接]

出0入0汤圆

发表于 2008-3-9 09:30:49 | 显示全部楼层 |阅读模式
对于温度控制系统参数的整定过程及方法,搜索了很多论坛,大家都只提到PID数学原型,很少看到有实验过程及Kp,Ki,Kd参数的整定过程及方法,这2天闲着没事,来做个温度控制实验,并将一些实验过程写上来,我也是正在摸索阶段,希望大家踊跃发言哟,各位有好的建议尽管提出来,然后我来实验,将实验数据整理上来,希望对于以后想做温度控制的朋友有所帮助

硬件:
1。用可控硅控制200W加热丝,对一铁块加热,用K型热电偶采集温度,采用MAX6675做温度转换,可以到0。25度的精度,并且外围很简单,很容易与CPU对接,采用SPI通信,读取当前的温度值
2。过零检测电路,将交流信号全波整流后得到的波形去控制NPN管,将信号整形后接到CPU外部中断脚,为系统提供基准时间,所以CPU中断的频率是100HZ

实验目标:
在100度到200度内可对任意设定的温度恒温,精度先做到+/-1度吧

基本的控制实现方法:
因为是对加热的铁块温度进行控制,属于滞后效应系统,所以采样周期先定为5秒(这里指的是PID计算的周期,注意我的温度采样是时时的),所以CPU外部中断次数为500次,对应的PID计算结果输出为0~500,就是说把这5秒钟划分为500等份,根据计算的结果来决定在这5秒钟内应该加热多少等份

软件:
采用PID控制方法,我先采用位置式输出方式,公式原型:u(t) = kp * e(t) + ki * [e(1) + e(2) + ....+ e(t)] + kd * [e(t) - e(t-1)],这里先做基本的PID算法,达到控制目标后再来优化算法提高恒温精度,考虑到实验温度过高实验时间会过长,所以我先定目标控制温度为110度,等控制好了再看其他温度会达到多少精度,为了提高加热速度提前20度开始PID控温

下面是调节参数的过程及数据:
参照网上一些方法,先确定Kp,即令Ki,Kd=0,只用比例调节,得到一个稳定的越接近控制目标的震荡参数,然后根据这个Kp和震荡周期来计算Ti,Td,

出0入0汤圆

发表于 2023-4-25 18:19:55 来自手机 | 显示全部楼层
收藏一下 好

出0入0汤圆

发表于 2023-1-17 09:55:00 | 显示全部楼层
牛笔贴 感谢高手分享

出0入0汤圆

发表于 2022-7-28 19:39:59 | 显示全部楼层
楼主您好,Ziegler-Nichols参数,这个表格里的参数系数是怎么得来的?

出390入22汤圆

发表于 2021-10-8 15:08:15 | 显示全部楼层
本帖最后由 liudingding 于 2021-10-8 15:12 编辑
fsmcu 发表于 2008-3-9 14:17
现在整理了一下Kp=9和Kp=9.3的震荡周期,图片分析如下
1
从数据看震荡周期基本都是48~43个点,每个点是5秒 ...


老哥,我要对锅炉进行PID控制,从开始变换加热档到同一加热档温度稳下来要一分钟,这个震荡周期估计要多长?估计

出675入8汤圆

发表于 2021-6-12 08:05:56 来自手机 | 显示全部楼层
正在调pid

出0入0汤圆

发表于 2021-6-12 03:56:17 来自手机 | 显示全部楼层
前辈说的很透彻,我最近也在挑一个程序,温度受外部环境影响厉害,该怎么解决。

出0入0汤圆

发表于 2020-7-17 17:18:24 | 显示全部楼层
这位前辈讲的非常好,已经成功了,不过温度过冲走了一点弯路,最后发现在温度快接近设定值时才可以引入  I  来解决过冲问题。。

出0入0汤圆

发表于 2020-6-29 22:39:49 | 显示全部楼层
楼主笔记做得详细

出0入0汤圆

发表于 2020-1-6 20:03:04 | 显示全部楼层
现在做的温度控制,很想得到楼主的程序

出0入0汤圆

发表于 2019-4-14 17:02:30 | 显示全部楼层
学习了,mark

出0入0汤圆

发表于 2019-1-22 21:19:49 | 显示全部楼层
好东东,顶

出0入0汤圆

发表于 2019-1-22 09:48:57 | 显示全部楼层
收藏,感谢!

出0入0汤圆

发表于 2019-1-20 10:19:19 | 显示全部楼层
楼主有没有考虑下自整定方面

出10入12汤圆

发表于 2019-1-5 13:02:09 | 显示全部楼层
很不错!!!!!!!

出0入0汤圆

发表于 2019-1-5 12:13:28 | 显示全部楼层
学习,mark

出0入0汤圆

发表于 2019-1-5 11:12:34 | 显示全部楼层
mark一下,正需要呢

出0入0汤圆

发表于 2018-12-4 21:57:48 | 显示全部楼层
夜尽天明 发表于 2018-11-21 19:07
好老的帖子,还有没有人在看。有个地方不明白,楼主提到控制周期为5S,按我的理解就是加入5S到了,那我就按 ...

就是5秒计算一次PID,算出结果后用于控制,他的控制周期也是5秒。至于测量的采样周期,在计算PID前采集一次就可以了,测量采集快了对计算PID也没什么用

出0入0汤圆

发表于 2018-11-21 19:07:35 | 显示全部楼层
好老的帖子,还有没有人在看。有个地方不明白,楼主提到控制周期为5S,按我的理解就是加入5S到了,那我就按当前采样的温度跟设置温度比较,然后通过运算来计算加热时间,那这样的话温度我只需要5S采样一次就好了。
但是楼主也提到温度采样是实时的,那这个实时采样出来的数据怎么处理,或者说有什么作用,就这个地方不太理解。

出0入0汤圆

发表于 2018-7-9 18:35:25 | 显示全部楼层
LOVEMCU 发表于 2008-3-17 13:12
楼上的朋友,发个资料给你参考一下。
  
   点击此处打开ourdev_232355.pdf(文件大小:264K) ...

谢谢楼主。

出0入0汤圆

发表于 2018-7-8 13:02:28 | 显示全部楼层
标记下,不错

出0入0汤圆

发表于 2017-7-7 13:51:38 | 显示全部楼层
请教下楼主,如果更换控制设备或者控制环境的话,原先调好的参数应该不适合用了吧?看到网上有些说是用自整定功能,请问这个自整定是如何操作的

出0入0汤圆

发表于 2016-6-15 21:44:16 | 显示全部楼层
非常不错,谢谢搂主。

出0入0汤圆

发表于 2016-6-12 16:54:01 | 显示全部楼层
mark一下,留着看

出0入0汤圆

发表于 2016-6-7 22:32:36 来自手机 | 显示全部楼层
看了好几遍了,谢谢楼主!!!

出0入42汤圆

发表于 2016-5-26 16:37:42 | 显示全部楼层
想问楼主如果换成控制可控硅的导通角是一样的调试方法吗 T就是PID的调节周期吧

出0入0汤圆

发表于 2016-5-18 21:27:14 | 显示全部楼层
有时间和机会要去试试PID

出0入0汤圆

发表于 2016-5-12 21:09:52 | 显示全部楼层
真的是好帖,谢谢!!终于会用PID了

出0入0汤圆

发表于 2016-3-10 21:06:18 | 显示全部楼层
这个真心不错,学习

出0入0汤圆

发表于 2016-1-5 00:05:00 来自手机 | 显示全部楼层
好东好东西mark!mark!

出0入0汤圆

发表于 2015-11-17 20:26:33 | 显示全部楼层
好贴还是要顶的,虽然是老帖子了,但是对于后来者的参考意义还是很大的。

出0入0汤圆

发表于 2015-11-17 17:26:41 | 显示全部楼层
每次调参数都像解密码,虽然现在温度能到稳定在正负0.1度,但基本都是试出来的

出0入0汤圆

发表于 2015-11-17 09:17:02 | 显示全部楼层
好贴  先收藏

出0入0汤圆

发表于 2015-11-16 23:41:53 | 显示全部楼层
感谢前辈酷帖

出0入0汤圆

发表于 2015-6-11 16:36:30 | 显示全部楼层
经典一贴!谢谢!

出0入0汤圆

发表于 2015-6-11 16:01:27 | 显示全部楼层
不错,挺一下楼主

出0入0汤圆

发表于 2015-1-27 21:23:23 | 显示全部楼层
最后,达到 0.25的控制精度了吗?

出0入0汤圆

发表于 2015-1-27 20:50:49 | 显示全部楼层
调试过程比较繁琐

出0入0汤圆

发表于 2015-1-27 20:13:51 | 显示全部楼层
做个记号。

出0入0汤圆

发表于 2015-1-27 17:31:02 | 显示全部楼层
mark,参数整定过程说得很详细

出0入0汤圆

发表于 2014-12-20 09:41:51 来自手机 | 显示全部楼层
分析的很仔细。

出0入0汤圆

发表于 2014-12-20 09:12:13 | 显示全部楼层
不错,顶一下!

出0入0汤圆

发表于 2014-12-20 09:11:55 | 显示全部楼层
不错,PID整定过程说得很详细。

出0入0汤圆

发表于 2014-12-20 04:07:09 | 显示全部楼层
瞎跟风。
就楼主的应用,谁看出占空比的半波个数和Kp、Ki、Kd的关系了?高手总强调思路,就PID而言少有不知道思路的,倒是具体实现总是云里雾里。

出0入17汤圆

发表于 2014-12-17 19:50:05 | 显示全部楼层
好多年前的帖子了,受教!

出0入0汤圆

发表于 2014-12-17 18:14:37 | 显示全部楼层
好好学习

出0入0汤圆

发表于 2014-12-17 17:18:02 | 显示全部楼层
好东西,收藏

出0入0汤圆

发表于 2014-12-16 20:43:27 | 显示全部楼层
有道理啊~~~

出0入0汤圆

发表于 2014-12-16 14:48:40 | 显示全部楼层
直观,学习的好资料

出0入0汤圆

发表于 2014-12-16 14:37:15 | 显示全部楼层
好东西,受教了。也在研究温度这一块

出0入0汤圆

发表于 2014-12-2 23:45:47 | 显示全部楼层
好帖顶一下,目前也坐在温控。

出0入0汤圆

发表于 2014-11-24 14:24:27 | 显示全部楼层
mark,控制还是pid最实际啊

出0入0汤圆

发表于 2014-11-24 13:57:06 | 显示全部楼层
标记上个

出0入0汤圆

发表于 2014-11-24 13:54:28 | 显示全部楼层
非常好哈。一直都对PID有些畏惧。有了这个实例就有信心了。非常感谢楼主的无私奉献!

出0入0汤圆

发表于 2014-11-19 13:03:57 | 显示全部楼层
谢谢分享,mark

出0入0汤圆

发表于 2014-11-19 11:59:09 | 显示全部楼层
谢谢,分享必须MRAK

出0入0汤圆

发表于 2014-11-19 10:22:17 | 显示全部楼层
多谢分享。

出0入0汤圆

发表于 2014-11-19 09:29:16 | 显示全部楼层
不错,分析的很好。。。

出30入0汤圆

发表于 2014-11-19 09:04:15 | 显示全部楼层
不错,用起来试一下,不过0.5°的温度震荡还是比较大了一点,估计Ki,Kp的参数还是需要仔细的标定一下。

出0入0汤圆

发表于 2014-8-21 15:07:54 | 显示全部楼层
很多年前的帖子,经典啊

出0入0汤圆

发表于 2014-8-4 17:59:52 | 显示全部楼层
学习了!MARK一下!!

出0入0汤圆

发表于 2014-7-17 20:45:20 | 显示全部楼层
又学习了!

出0入0汤圆

发表于 2014-7-12 14:19:46 | 显示全部楼层

经典一贴!谢谢!

出0入0汤圆

发表于 2014-6-27 15:33:14 | 显示全部楼层
最近也在做 PID的 案子 谢谢楼主的 分享

出0入59汤圆

发表于 2014-6-7 21:25:39 | 显示全部楼层
温度PID控制,学习了

出50入0汤圆

发表于 2014-6-7 21:06:52 | 显示全部楼层
经典!留名学习了

出0入0汤圆

发表于 2014-6-7 20:48:21 | 显示全部楼层
好贴,mark一下

出0入0汤圆

发表于 2014-6-5 09:18:07 | 显示全部楼层
mask~~~~~~

出0入0汤圆

发表于 2014-6-5 08:15:58 | 显示全部楼层
有点难啊

出0入0汤圆

发表于 2014-6-3 10:45:18 | 显示全部楼层
谢谢楼主,mark

出0入0汤圆

发表于 2014-6-3 10:09:22 | 显示全部楼层
LOVEMCU 发表于 2008-3-17 09:34
PID的调节方法其实很简单,只是要花点时间而已.控制的效果如何,主要取决于选用的sensor和ADC芯片.秀一下偶做 ...

LOVEMCU你好 打扰了 想加你为好友请教一下PID温控方面的 可以吗?? 我自己写了程序做了实验 就是震荡很厉害 哎 已经搞了多少个一个多月了  现迷茫中

出0入0汤圆

发表于 2014-5-31 17:11:51 | 显示全部楼层
本帖最后由 tangcangeng 于 2014-5-31 17:13 编辑

下面是我做实验的照片 下面那个炉子只是做一个支撑作用,真正加热的是那个中间银色的300W加热器,上头放了一块1斤重的铁块,中间打了个孔将热电偶锁在上面,然后由MAX6675转换温度数据后读进单片机

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-5-31 16:55:54 | 显示全部楼层

谢谢您帮我顶顶 一直顶到楼主出现吧 我搞不出来 都睡不好觉了 哎~

出0入0汤圆

发表于 2014-5-31 16:52:51 | 显示全部楼层
顶顶更健康!

出0入0汤圆

发表于 2014-5-31 16:44:40 | 显示全部楼层
本帖最后由 tangcangeng 于 2014-5-31 17:00 编辑

这是我最终调节了PID参数后的波形  哎  拜托了楼主  急需要您的帮助`  目标温度设置在70度 用单片机读取MAX6675温度值进行反馈,采用和您一样的位置式PID  用300W的加热器加热一个1斤重的铁块~~   我一直怀疑是MAX6675转换速度太慢的原因  因为MAX6675需要平均200mS的转换时间,这个时间有可能使整个系统出现严重的滞后现象~可楼主同样适用MAX6675却能将效果调好 哎 我就不知道怎么办了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-5-31 16:31:30 | 显示全部楼层
本帖最后由 tangcangeng 于 2014-5-31 16:33 编辑
fsmcu 发表于 2008-3-9 09:35
第1次:Kp=2.5,测试数据如下见图片:Y坐标为温度值,放大了10倍,X坐标为时间每5秒一个点,
1 ...


您好 我不是那种上来就直接要代码的人 是在自己推导和您的讲解后写的程序 但是总是在目标温度上有很大震荡 衷心希望您能提供您当年的代码  我先想对比一下到底是哪里写错了 谢谢了~
如果您不信的话 我可以发我的代码出来  我自己写的这个代码调了很久了 就是效果不好 哎~~  坐等您的回复了 谢谢了~

出0入0汤圆

发表于 2014-5-31 16:24:44 | 显示全部楼层
你好 能否加您为好友呢? 同是搞技术的同志

出0入0汤圆

发表于 2014-4-14 09:28:39 | 显示全部楼层
szq790601 发表于 2011-5-17 12:24
我按照楼主的说法做实验,折腾了一夜也没个结果,苦恼中。
我的加热设备是一个500w的电热块,被加热的设备 ...

dterm = ppid.kd * (ppid.errk_1 - ppid.errk_2);    //kd * [e(t) - e(t-1)]   这里与楼主源程序有点区别,源程序是(ppid.errk - ppid.errk_1)

388楼的 为什么不改成源程序呢? 源程序应该是对的 你改成了你上面的 不会觉得程序有误吗? errk_1表示e(k-1)、errk_2表示的是e(k-2),而位置式数字PID公式中根本没用到误差的前前一刻哦!

出50入0汤圆

发表于 2014-4-14 08:36:06 | 显示全部楼层
mark  温度控制

出0入0汤圆

发表于 2014-4-14 08:13:01 | 显示全部楼层
LOVEMCU 发表于 2008-3-17 09:34
PID的调节方法其实很简单,只是要花点时间而已.控制的效果如何,主要取决于选用的sensor和ADC芯片.秀一下偶做 ...

63楼的很牛  超调 调节时间 都这么好看上去

出0入0汤圆

发表于 2014-4-14 08:04:04 | 显示全部楼层
mig29 发表于 2008-3-11 14:04
这样的帖子不需要完整代码的。重要的是控制算法和试验思路。

楼主已经_文字说明了电路连接关系,也已经说 ...


40楼问题提的很有意义  弱弱的问一句 程序中这一句在位置式PID中多余的吧ppid->errk_2 = ppid->errk_1;
位置式的好像不需要用到误差的前前一刻

出0入0汤圆

发表于 2014-4-14 07:48:42 | 显示全部楼层
fsmcu 发表于 2008-3-15 21:18
PID的源代码在网上基本都是公开的,既然大家都希望看一看,我还是贴出来吧,估计看了也很失望,因为我的也 ...


弱弱的问一句楼主 给出的程序中这一句多余的吧?
ppid->errk_2 = ppid->errk_1;
好像增量式的才用到误差的前前一时刻吧?

出0入0汤圆

发表于 2014-4-11 23:22:09 | 显示全部楼层
谢谢分享。。。。。

出0入0汤圆

发表于 2014-4-11 16:12:30 | 显示全部楼层
好贴,正在做温控的项目,学习一下

出0入0汤圆

发表于 2014-4-11 12:28:42 | 显示全部楼层
楼主用心了  谢谢~

出0入0汤圆

发表于 2014-4-8 13:40:27 | 显示全部楼层
学习了,谢谢楼主!

出0入0汤圆

发表于 2014-4-7 23:20:06 | 显示全部楼层
正在学习PID,收藏了

出0入0汤圆

发表于 2014-4-7 11:06:03 | 显示全部楼层
学习中,谢谢!

出0入0汤圆

发表于 2014-4-1 16:05:06 | 显示全部楼层
PID的调节经验

出0入0汤圆

发表于 2014-3-31 20:07:52 | 显示全部楼层
不错不错  谢谢分享

出0入0汤圆

发表于 2014-3-28 16:04:43 | 显示全部楼层
书读百遍,其义自见!

出0入0汤圆

发表于 2014-3-28 14:30:18 | 显示全部楼层
学习了,谢谢~

出0入0汤圆

发表于 2014-3-27 16:10:47 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

发表于 2014-3-27 15:15:13 | 显示全部楼层
好东东,

出0入0汤圆

发表于 2014-3-27 12:08:34 | 显示全部楼层
一般如果不要求自整定,凑个参数都还好了。
麻烦的是加热面温度不均匀,且加热面存在过冲很难纠正(假设传感器已经调到附图所示的比较理想状态,这张图是传感器实测数据,不是加热面的)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-3-27 11:39:40 | 显示全部楼层
make                              

出0入0汤圆

发表于 2014-2-16 10:53:00 | 显示全部楼层
学习了

出100入101汤圆

发表于 2014-2-15 23:10:22 | 显示全部楼层
fsmcu 发表于 2008-3-9 19:06
将采集的时时温度传到PC,然后导入到EXCEL中再用图表分析功能做成的

学习了,原来是excel的图标分析功能。

出100入101汤圆

发表于 2014-2-15 23:06:46 | 显示全部楼层
请问LZ,曲线图是如何生成的?有什么软件么?

出0入0汤圆

发表于 2014-1-23 13:25:59 | 显示全部楼层
mark!!!!!!!!!!!!

出0入0汤圆

发表于 2014-1-23 09:29:59 | 显示全部楼层
标记一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 15:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表