<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>芷菁博客 &#187; pid</title>
	<atom:link href="http://www.stars625.com/tag/pid/feed" rel="self" type="application/rss+xml" />
	<link>http://www.stars625.com</link>
	<description>记录生活点滴，分享学习体会，专注微嵌开发。</description>
	<lastBuildDate>Sat, 03 Dec 2011 13:05:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>灭火机器人的设计与制作之运动控制</title>
		<link>http://www.stars625.com/firefighterpid.html</link>
		<comments>http://www.stars625.com/firefighterpid.html#comments</comments>
		<pubDate>Wed, 10 Jun 2009 12:25:21 +0000</pubDate>
		<dc:creator>stars_625</dc:creator>
				<category><![CDATA[嵌入开发]]></category>
		<category><![CDATA[firefighter]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[机器人]]></category>

		<guid isPermaLink="false">http://www.stars625.com/?p=134</guid>
		<description><![CDATA[在运动控制中，常用的算法有：程序和顺序控制、比例积分微分控制、直接数字控制、最优控制、模糊控制，其中比例积分微分控制（简称 PID控制）现在应用最广，技术最成熟。本文就将应用在灭火机器人上的PID算法做下介绍。]]></description>
			<content:encoded><![CDATA[<p>PID算法其控制结构简单，参数容易调整，不必求出被控对象的数学模型便可以调节，因此在本系统中采用PID算法进行控制。</p>
<p>由于博客上不方便贴出公式，具体的PID算法请大家参考网络资料。</p>
<p>在本系统中，为了使速度始终能够最快，在控制电机沿墙走时是通过降低一侧电机的速度来纠正运动方向，所以只要求出一个增量信号即可。因此只要得到增量型PID的位置控制算法。</p>
<p>在PID控制系统中KP、KI、KD三个系数是经验值，即不同的系统，不同的环境这三个值都是需要人工调整的，无法由计算得出。</p>
<p>为了进一步验证PID算法，找出P、I、D三个系数的最佳值，通过实验来进行统计分析。使用机器人沿墙走程序，程序中设定值为600，起始位置为500，在机器人运行中每隔2ms通过串口发送PSD数据到PC机进行统计分析，统计曲线如图6-1、图6-2、图6-3、图6-4。</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.stars625.com/firefighterpid.html/firefighterpid_pid1" rel="attachment wp-att-166"><img src="http://www.stars625.com/wp-content/uploads/firefighterpid_pid1.jpg" alt="灭火机器人PID控制演示1" title="灭火机器人PID控制演示1" width="512" height="294" class="size-full wp-image-166" /></a><p class="wp-caption-text">灭火机器人PID控制演示1</p></div>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.stars625.com/firefighterpid.html/firefighterpid_pid2" rel="attachment wp-att-167"><img src="http://www.stars625.com/wp-content/uploads/firefighterpid_pid2.jpg" alt="灭火机器人PID控制演示2" title="灭火机器人PID控制演示2" width="512" height="294" class="size-full wp-image-167" /></a><p class="wp-caption-text">灭火机器人PID控制演示2</p></div>
<div id="attachment_168" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.stars625.com/firefighterpid.html/firefighterpid_pid3" rel="attachment wp-att-168"><img src="http://www.stars625.com/wp-content/uploads/firefighterpid_pid3.jpg" alt="灭火机器人PID控制演示3" title="灭火机器人PID控制演示3" width="512" height="294" class="size-full wp-image-168" /></a><p class="wp-caption-text">灭火机器人PID控制演示3</p></div>
<div id="attachment_170" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.stars625.com/firefighterpid.html/firefighterpid_pid4" rel="attachment wp-att-170"><img src="http://www.stars625.com/wp-content/uploads/firefighterpid_pid4.jpg" alt="灭火机器人PID控制演示4" title="灭火机器人PID控制演示4" width="512" height="294" class="size-full wp-image-170" /></a><p class="wp-caption-text">灭火机器人PID控制演示4</p></div>
<p>对比图6-1和图6-2可以发现，微分系数的改变对系统的影响不是很大，可以说是几乎没有，分析其原因是由于微分控制对具有较大惯性或滞后的被控对象效果比较明显，如温控系统等，在本系统由于直流电机的惯性或滞后性都比较小，速度改变迅速，因此微分控制对系统的影响并不是很大。</p>
<p>对比图6-2和图6-3可以发现，积分系数的改变对系统的影响还是比较大的，具体表现在积分系数变小使系统纠正周期变长，也就是说回复变慢了。积分项的引入是为了消除稳态误差，即消除系统中周期性的波动，使系统能快速地回复到设定值。</p>
<p>对比图6-3和图6-4可以发现，当积分、微分系数都为零时，系统回复曲线很好，但是这样的参数设定机器人无法顺利拐弯，究其原因是PID算法一般用在改变相对比较平滑的系统中，在这里机器人拐弯时采样值会有突变，因此系统中必须存在一定的振荡才能使机器人顺利的拐过弯。</p>
<p>另外，本系统中使用的是简化的PID算法，采样周期不准确，这也导致了系统输出与预期效果有一定的出入。</p>
<p>综上所述，在设定三个系数时要从小到大按顺序查，先进行比例系数的调整，然后再调整积分系数和微分系数；当曲线振荡很频繁时，比例度盘要放大，曲线漂浮绕大湾时，比例度盘要往小扳；如果曲线偏离回复慢，积分时间应该往下降，曲线波动周期长时，积分时间应该再加长；曲线振荡频率快时，要先把微分降下来，如果动差大并且波动慢，微分时间应该加长，如此调节系统就能进入一个最佳状态。</p>
<p>同时关注<a href="http://www.stars625.com/tag/firefighter">灭火机器人http://www.stars625.com/tag/firefighter</a>其它系列文章。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stars625.com/firefighterpid.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

