📄 比较典型的pid算法控制程序源代码.htm
字号:
<TD colSpan=2>
<TABLE class=main_title_760 style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=center width="3%"><IMG height=14
src="比较典型的PID算法控制程序源代码.files/arrow.gif" width=11 align=absMiddle></TD>
<TD width="66%">比较典型的PID算法控制程序源代码</TD>
<TD width="18%"> <FONT
color=red>热</FONT> <FONT
color=#009900></FONT></TD>
<TD align=right width="13%">【字体:<A class=top_UserLogin
href="javascript:fontZoomA();">小</A> <A class=top_UserLogin
href="javascript:fontZoomB();">大</A>】</TD></TR></TBODY></TABLE></TD></TR>
<TR vAlign=center align=middle>
<TD class=main_ArticleTitle style="WORD-BREAK: break-all" colSpan=2
height=50>比较典型的PID算法控制程序源代码</TD></TR>
<TR vAlign=center align=middle>
<TD class=main_ArticleSubheading style="WORD-BREAK: break-all" colSpan=2
height=20></TD></TR>
<TR class=left_tdbgall align=middle>
<TD
colSpan=2>作者:未知 文章来源:未知 点击数:
<SCRIPT language=javascript
src="比较典型的PID算法控制程序源代码.files/GetHits.htm"></SCRIPT>
更新时间:2006-4-24</TD></TR>
<TR>
<TD class=main_tdbg_760 id=fontzoom style="WORD-BREAK: break-all" vAlign=top
colSpan=2 height=300>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD background=""></TD>
<TD align=middle>
<TABLE class=tf width="98%" align=center border=0>
<TBODY>
<TR>
<TD class=bw width="100%"><FONT class=htd id=font_word
style="FONT-SIZE: 14px; FONT-FAMILY: 宋体, Verdana, Arial, Helvetica, sans-serif">比较典型的PID处理程序<BR>[日期:2005-2-1] 来源:21ICbbs 作者:lookuper [字体:大中小]<BR>/*====================================================================================================<BR>这是一个比较典型的PID处理程序,在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算<BR>到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。这个程序只是一般常用pid算法的基本架构,没有包含输入输出处理部分。<BR>=====================================================================================================*/<BR>#include<BR>#include<BR>/*====================================================================================================<BR>PID Function<BR>The PID (比例、积分、微分) function is used in mainly<BR>control applications. PIDCalc performs one iteration of the PID<BR>algorithm.<BR>While the PID function works, main is just a dummy program showing<BR>a typical usage.<BR>=====================================================================================================*/<BR>typedef struct PID {<BR>double SetPoint; // 设定目标Desired <I>value</I><BR>double Proportion; // 比例常数Proportional Const<BR>double Integral; // 积分常数Integral Const<BR>double Derivative; // 微分常数Derivative Const<BR>double LastError; // Error[-1]<BR><BR>double PrevError; // Error[-2]<BR>double SumError; // Sums of Errors<BR>} PID;<BR>/*====================================================================================================<BR>PID计算部分<BR>=====================================================================================================*/<BR>double PIDCalc( PID *pp, double NextPoint )<BR>{<BR>double dError,<BR>Error;<BR>Error = pp->SetPoint - NextPoint; // 偏差<BR>pp->SumError += Error; // 积分<BR>dError = pp->LastError - pp->PrevError; // 当前微分<BR>pp->PrevError = pp->LastError;<BR>pp->LastError = Error;<BR>return (pp->Proportion * Error // 比例项<BR>+ pp->Integral * pp->SumError // 积分项<BR>+ pp->Derivative * dError // 微分项<BR>);<BR>}<BR>/*====================================================================================================<BR>Initialize PID Structure<BR>=====================================================================================================*/<BR>void PIDInit (PID *pp)<BR>{<BR>memset ( pp,0,sizeof(PID));<BR>}<BR>/*====================================================================================================<BR>Main Program<BR>=====================================================================================================*<BR>double sensor (void) // Dummy Sensor Function<BR>{<BR>return 100.0;<BR>}<BR>void actuator(double rDelta) // Dummy Actuator Function<BR>{}<BR>void main(void)<BR>{<BR>PID sPID; // PID Control Structure<BR>double rOut; // PID Response (Output)<BR>double rIn; // PID Feedback (Input)<BR>PIDInit ( &sPID ); // Initialize Structure<BR>sPID.Proportion = 0.5; // Set PID Coefficients<BR>sPID.Integral = 0.5;<BR>sPID.Derivative = 0.0;<BR>sPID.SetPoint = 100.0; // Set PID Setpoint<BR>for (;;) { // Mock Up of PID Processing<BR>rIn = sensor (); // Read Input<BR>rOut = PIDCalc ( &sPID,rIn ); // Perform PID Interation<BR>actuator ( rOut ); // Effect Needed Changes<BR>}<BR></FONT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=left_tdbgall align=right colSpan=2>文章录入:<A
href="http://www.91tech.net/UserInfo.asp?UserName=Polylove">Polylove</A> 责任编辑:Polylove
</TD></TR>
<TR>
<TD width=5></TD>
<TD width=752>
<LI>上一篇文章: <A
title="文章标题:增量式PID控制算法程序 作 者:未知 更新时间:2006-4-24 10:42:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3783.html">增量式PID控制算法程序</A><BR>
<LI>下一篇文章: <A
title="文章标题:标准的PID处理例程 作 者:未知 更新时间:2006-4-24 11:27:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3785.html">标准的PID处理例程</A></LI></TD></TR>
<TR class=left_tdbgall align=right>
<TD colSpan=2>【<A
href="http://www.91tech.net/Article/Comment.asp?ArticleID=3784"
target=_blank>发表评论</A>】【<A
href="http://www.91tech.net/Article/SendMail.asp?ArticleID=3784"
target=_blank>告诉好友</A>】【<A
href="http://www.91tech.net/Article/Print.asp?ArticleID=3784"
target=_blank>打印此文</A>】【<A href="javascript:window.close();">关闭窗口</A>】
</TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR></TBODY></TABLE><!--文章显示代码结束--><!--最新热点、最新推荐、相关文章代码开始-->
<TABLE class=center_tdbgall style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD class=main_title_282
width="33%"><B> 最新热点</B></TD>
<TD width=5 rowSpan=2></TD>
<TD class=main_title_282
width="33%"><B> 最新推荐</B></TD>
<TD width=5 rowSpan=2></TD>
<TD class=main_title_282
width="33%"><B> 相关文章</B></TD></TR>
<TR>
<TD class=main_tdbg_760 vAlign=top height=100>
<SCRIPT language=javascript
src="比较典型的PID算法控制程序源代码.files/Article_Hot3.js"></SCRIPT>
</TD>
<TD class=main_tdbg_760 vAlign=top width="33%">
<SCRIPT language=javascript
src="比较典型的PID算法控制程序源代码.files/Article_Elite3.js"></SCRIPT>
</TD>
<TD class=main_tdbg_760 vAlign=top width="33%">
<LI><A
title="文章标题:一种新的自适应PID控制算法 作 者:佚名 更新时间:2006-6-28 16:21:00"
href="http://www.91tech.net/Article/SoftTech/TheoryTech/200606/3992.html">一种新的自适应PID控制算法</A><BR>
<LI><A
title="文章标题:标准的PID处理例程 作 者:未知 更新时间:2006-4-24 11:27:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3785.html">标准的PID处理例程</A><BR>
<LI><A
title="文章标题:增量式PID控制算法程序 作 者:未知 更新时间:2006-4-24 10:42:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3783.html">增量式PID控制算法程序</A><BR>
<LI><A
title="文章标题:积分分离PID控制算法程序 作 者:未知 更新时间:2006-4-24 10:40:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3782.html">积分分离PID控制算法程序</A><BR>
<LI><A
title="文章标题:典型的PID处理程序(C51)(可改为061的) 作 者:未知 更新时间:2006-4-24 10:34:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3781.html">典型的PID处理程序(C51)(…</A><BR>
<LI><A
title="文章标题:PID控制C源程序 作 者:未知 更新时间:2006-4-24 10:21:00"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3780.html">PID控制C源程序</A><BR></LI></TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR></TBODY></TABLE><!--最新热点、最新推荐、相关文章代码结束--><!--网友评论代码开始-->
<TABLE class=center_tdbgall style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD class=left_tdbgall height=25><STRONG> <IMG height=16
src="比较典型的PID算法控制程序源代码.files/TEAM.gif" width=16 align=absMiddle>
网友评论:</STRONG>(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)</TD></TR>
<TR>
<TD>
<SCRIPT language=javascript
src="比较典型的PID算法控制程序源代码.files/Comment.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE class=center_tdbgall cellSpacing=0 cellPadding=0 width=760 align=center
border=0>
<TBODY>
<TR>
<TD class=main_shadow></TD></TR></TBODY></TABLE><!--网友评论代码结束--><!-- ********网页中部代码结束******** --><!-- ********网页底部代码开始******** -->
<TABLE class=Bottom_tdbgall style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR align=middle>
<TD class=Bottom_Adminlogo colSpan=2>| <A class=Bottom
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.91tech.net');"
href="http://www.91tech.net/Article/HardTech/ControlTech/200604/3784.html#">设为首页</A>
| <A class=Bottom
href="javascript:window.external.addFavorite('http://www.91tech.net','中国软硬件结合技术网');">加入收藏</A>
| <A class=Bottom href="mailto:polylove@126.com">联系站长</A> | <A
class=Bottom href="http://www.91tech.net/FriendSite/Index.asp"
target=_blank>友情链接</A> | <A class=Bottom
href="http://www.91tech.net/Copyright.asp" target=_blank>版权申明</A> | <A
class=Bottom href="http://www.91tech.net/Admin/Admin_Index.asp"
target=_blank>管理登录</A> | </TD></TR>
<TR class=Bottom_Copyright>
<TD width="20%"><IMG height=55
src="比较典型的PID算法控制程序源代码.files/powerease_logo.gif" width=165></TD>
<TD width="80%">Copyright ©2004 - 2006 中国软硬件结合技术网 91tech.net 91tech.cn
91tech.com 站长:<A href="mailto:polylove@126.com">Polylove</A>
</TD></TR></TBODY></TABLE><!-- ********网页底部代码结束******** --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -