<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[做PID温控加热开发的一点感受]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 26 Feb 2010 15:42:57 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	1.PID是一种闭环控制系统，根据控制量的实际值与设定的偏差来计算下一步的控制量；P使输入与输出成一种比例关系，I则<br/>是对控制过程偏差的积分，使系统朝偏差减小的方向行进，最终达到消灭静差的目的，D则是用在有滞后和较大惯性的系统控<br/>制中，而温度控制就是这样的，微分项可以“预测”误差变化的趋势，所以减小超调、消除震荡就靠它了。<br/><br/>2.算法选用位置式，数据类型用unsigned int<br/>&nbsp;&nbsp;&nbsp;&nbsp;很多资料上都推荐增量式，但这样一来必须选用float；用unsigned int的话，如果温差的差变化不大，大多数情况积分<br/>项会被省咯，用定点数，则就得用double。<br/>&nbsp;&nbsp;&nbsp;&nbsp;而位置式则无此问题，个人理解，增量式积分在最终输出项了，即先乘积分系数，后积分，位置式则相反，所以选用位<br/>置式用定点数损失不大。<br/>&nbsp;&nbsp;&nbsp;&nbsp;51单片机不适合用float、double；资源消耗太大了。<br/><br/>3.要想使波动范围小，那么数据输入精度非常重要<br/>&nbsp;&nbsp;&nbsp;&nbsp;如果输入的温度值精度为1度，想达到 -1度的控制精度，是不可能的，最少也得0.1度左右，有些资料推荐在计算前给温<br/>度值*10，输出时再/10，这样做基本没什么作用，仅仅是方便了计算；基于温差变化而计算，若迟迟得不到温差变化，又怎<br/>么能计算呢。<br/><br/>4.温度控制的范围也很重要<br/>&nbsp;&nbsp;&nbsp;&nbsp;也就是在用unsigned int、用定点数时，若控制的温度范围很大时，计算时会产生溢出，若选好范围即可解决，如控制<br/>的范围为0-300度，其实根据位置式公式计算，温差在40度左右系统才会减小输出功率，那么我们在温差在40度之内后才开始<br/>用PID控制，之前全功率加热，这样减小了数据量，也减轻了无效的计算，当然不能忘了温差为负数时，也要限制温差计算范<br/>围，范围之外的关闭输出。<br/><br/>5.参数的整定很累人<br/>&nbsp;&nbsp;&nbsp;&nbsp;一定要按先比例后积分，再微分，同时要作好记录、分析，不要想着为节省三个系数都先给个经验值，再同时调，结果<br/>很可能欲速则不达，本人已经有过教训了；最后当你对系统的加热过程越了解，也就越接近完成了。<br/>PID的改良算法有很多，必要时要采用。<br/><br/>晓奇大侠是这方面的高手，他有一篇文章关于PID对我帮助很大，非常感谢他的帮助，我这里说的那里基本都说过。呵呵。<br/>欢迎大家批评指正，我对PID也是只知皮毛，了解也很肤浅。<br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 做PID温控加热开发的一点感受]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>