<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.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://www.jackxiang.com/post//</link>
<title><![CDATA[[转载]PID控制器验证（C++）]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 26 Jun 2010 07:46:36 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<div class="code">#include &lt;string.h&gt;<br/>#include&lt;stdio.h&gt;<br/><br/>typedef struct PID&#123;<br/> double Command; //输入指令<br/> double Proportion;&nbsp;&nbsp;//比例系数<br/> double Integral;&nbsp;&nbsp; //积分系数<br/> double Derivative;&nbsp;&nbsp;//微分系数<br/> double preErr;&nbsp;&nbsp;&nbsp;&nbsp;//前一拍误差<br/> double sumErr;&nbsp;&nbsp;&nbsp;&nbsp;//误差累积<br/>&#125;PID;<br/><br/>double PIDCale(PID *p,double feedback)<br/>&#123;<br/> double dErr,Err;<br/> Err=p-&gt;Command-feedback;&nbsp;&nbsp;//当前误差<br/> p-&gt;sumErr+=Err;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//误差累加<br/> dErr=Err-p-&gt;preErr;&nbsp;&nbsp; //误差微分<br/> p-&gt;preErr=Err;&nbsp;&nbsp;&nbsp;&nbsp;<br/> return(p-&gt;Proportion*Err&nbsp;&nbsp;//比例项<br/>&nbsp;&nbsp;+p-&gt;Derivative*dErr&nbsp;&nbsp; //微分项<br/>&nbsp;&nbsp;+p-&gt;Integral*p-&gt;sumErr);&nbsp;&nbsp;//积分项<br/>&#125;<br/><br/>void PIDInit(PID *p)<br/>&#123;<br/> memset(p,0,sizeof(PID));&nbsp;&nbsp;//初始化<br/>&#125;<br/><br/>typedef struct motor&#123;<br/> double lastY;<br/> double preY;<br/> double lastU;<br/> double preU;<br/>&#125;motor;<br/><br/>void motorInit(motor *m)<br/>&#123;<br/> memset(m,0,sizeof(motor));<br/>&#125;<br/><br/>double motorCal(motor *m,double u)<br/>&#123;<br/> double y=1.9753*m-&gt;lastY-0.9753*m-&gt;preY+0.00003284*u+0.00006568*m-&gt;lastU+0.00003284*m-&gt;preU;//二阶系统<br/> m-&gt;preY=m-&gt;lastY;<br/> m-&gt;lastY=y;<br/> m-&gt;preU=m-&gt;lastU;<br/> m-&gt;lastU=u;<br/> return y;<br/>&#125;<br/><br/>void main()<br/>&#123;<br/> FILE *fp=fopen(&quot;data.txt&quot;,&quot;w+&quot;);<br/> PID sPID;<br/> double u;<br/> double y=0;<br/> PIDInit(&amp;sPID);<br/> sPID.Proportion=2;<br/> sPID.Derivative=10;<br/> sPID.Integral=0.00001;<br/> sPID.Command=10;<br/> motor m_motor;<br/> motorInit(&amp;m_motor);<br/> int k=0;<br/> while(k&lt;=1000)<br/> &#123;<br/>&nbsp;&nbsp;fprintf(fp,&quot;%f %fn&quot;,y,sPID.Command);<br/>&nbsp;&nbsp;u=PIDCale(&amp;sPID,y);<br/>&nbsp;&nbsp;y=motorCal(&amp;m_motor,u);<br/>&nbsp;&nbsp;k++;<br/> &#125;<br/> printf(&quot;%fn&quot;,y);<br/> fclose(fp);<br/>&#125;</div><br/><br/>界面设计：<br/>http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3617085&amp;bbs_page_no=1&amp;search_mode=4&amp;search_text=rlplc&amp;bbs_id=9999<br/>务必参考：<br/>http://blog.niwota.com/a/591138.htm<br/><br/>http://www.dzsc.com/data/html/2008-11-24/73559.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [转载]PID控制器验证（C++）]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>