PID控制温度求教(相同帖子只为解决问题)

iknowjeanzxf 2010-12-16 10:39:40
目前在做一个控制温度的程序。
由于本人对高数基本是0的概念,但是还要用到PID控制。
关于书上写的PID的计算过程根本看不懂,但是最后的公式还是能看懂的。
请不要说不懂高数,就做不了这个。因为毕竟单片机也只能做+-*/计算。
书上的公式最后也是简化为了+-*/的计算。

我目前只用到了P控制和I控制,没有用D控制。如果觉得有必要刻意加上。
Pcurrent=Plast+Kp*(E-E1)+Ki*E; //计算控温量
但是做试验的时候,发现温度总是控制不好,比如控制到300度,经常会超过300

度。而不加热想让他降到280度时再控制温度,也经常会降到250度左右。

那么就是我的参数设置的不正确
#define Kp 4 //PID调节比例系数
#define Ki 2 //PID调节积分时间常数
这2个参数我换过好多个了,仍然不行。

所以现在请教大家,
我怎么设置我的参数。我的控温周期目前是20秒,就是20秒计算一次PID,计算

控制量。
但是我的系统经常会这样,100%加热了20秒,停止加热,温度没有变化,等1分

钟以后温度才开始上升。
这种情况应该怎么处理,我的控温周期应该怎么调节。

听说过很多控温表,都带自整定的功能,那么我如何来整定我的参数呢?
请在控温方面有经验的朋友给点指导。

我准备开2个帖子,只要你能讲明白,分全是你的。
请使用通俗简单的语言来描述,因为我这控温这块是白痴一个。
...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2010-12-24
  • 打赏
  • 举报
回复
这个PID算法本来就不那么简单,楼主还是耐住性子仔细看看吧。首先原理的搞懂吧。
iknowjeanzxf 2010-12-24
  • 打赏
  • 举报
回复
一周了,没有解决问题。难道分给的少?我可以再给200分,当问题解决时,我会再开2个100的的帖子到时候去拿就可以了。倾尽所有。
iknowjeanzxf 2010-12-23
  • 打赏
  • 举报
回复
关于一个把复杂问题简单化的说法。

很早很早以前,在电视上看到一个数学家在讲解“统筹问题”

如果看到这里我问正在看这个帖子的人,什么是“统筹问题”,我想,你不一定能说明白。

这个数学家说,什么是“统筹问题”的时候。举了二个很简单的例子说明。

一个汽车经常在ABCD各地之间运送货物,如果从A运送到B,那么当他从B离开的时候,是否可以考虑装送一些货物到其它地点避免空车行驶,这就是一个统筹问题。

比如炒鸡蛋,有打蛋,切葱,搅蛋,热油,炒蛋,几个过程,那么如果我在热油的同时,去做搅蛋的工作,既不耽误炒蛋,又能缩短总时间,这也是一个统筹问题。

所以从那以后,我开始相信,一个真正懂得一种理论的人,是可以把复杂问题简单化的。

上学的时候,我遇到过2个物理老师,一个物理老师总能把很复杂的问题,用简单的例子说明,而另一个物理老师,他讲课大部分我都听不懂,像在听天书。后来才知道,那个把复杂问题简单化的物理老师是我们学校最好的物理老师。
iknowjeanzxf 2010-12-23
  • 打赏
  • 举报
回复
楼上给的资料我看不懂啊,全是计算公式。
schlafenhamster 2010-12-22
  • 打赏
  • 举报
回复
Ziegler-Nichols 是PID整定用的,你的问题是PID模型不对,请搜索“Dahlin”算法。
iknowjeanzxf 2010-12-22
  • 打赏
  • 举报
回复
其实我的东西就是用一个电炉子加热一个铁的小桶,控温在300度,或者500度,精度正负2度。没有冷却装置。

就这么简单的一个系统。

为什么使用PID,因为我没有其他更好的办法来控制温度。所以只有用它,如果有其他简单办法,我也不会用PID.

控温的时间,这个我不太明白??是控温周期吗?目前是20秒一个周期。10%功率加热就是加热2秒,停18秒。
50%功率加热就是加热10秒停止10秒。这个周期我可以随意更换。
如果问控制在300度或者500度的恒温时间,那么是要求恒温15分钟。

看来真正能说明白的人太少??还是不屑于花时间来说这件事。

在网上我也找了很多资料,但是各种资料基本都是一样,很少有经验性的总结。

找到了几个资料是利用 Ziegler-Nichols 方法进行 PID 参数设置
但是几个资料之间有出入,我也不知道哪个是正确的。

如果哪位觉得我的问题还没有说清楚的话?那么请提问。

我的问题,怎么样调整我的PID参数?我的控温周期是否需要修改,根据什么修改?

请使用通俗简单的语言来描述。另请尽量不要使用英文缩略语以及专业术语,因为我看不懂,除了PID。
猪的飞想 2010-12-20
  • 打赏
  • 举报
回复
转化为查分!
dx=x(t)-x(t-1);
积分用就合代替!
schlafenhamster 2010-12-17
  • 打赏
  • 举报
回复
一言难尽,搜索“Dahlin”算法
iknowjeanzxf 2010-12-17
  • 打赏
  • 举报
回复
楼上的说的太简单了,也不知道什么是“Dahlin”算法
schlafenhamster 2010-12-16
  • 打赏
  • 举报
回复
温度控制,对象的延迟时间太长,需要用“Dahlin”算法
EmbeddedLong 2010-12-16
  • 打赏
  • 举报
回复
我也说准备学的 你可以找个 实例看看啊 我感觉那样会不错的 。

27,372

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧