• 产品名称:PID非常好的光感巡线思路
  • 品        牌:
  • 产        地:
  • 发布时间: 2020-02-04
产品详细

  正在这篇作品里全面的代码都不是真正的序次代码,只是作家对编程的示意,或者说是用近似序次代码的格式对编程的实质实行疏解。作家祈望读者能自行选拔序次言语,我方竣事PID驾驭器的编程。

  文中将以实例来分析怎么创筑PID来竣事机械人巡线工作。PID创筑竣事后,原委简略的改正就能够操纵到其他地方,如,让机械人跑直线,做两轮平均机械人。本来学过微积分的人很容易明白PID的典范刻画,本文是写给那些对PID险些没有任何观点的读者,好比出席FLL角逐的3~8年级的孩子们。探究到大众不妨不会意微积分,以是我尽量不应用微积分,从绝顶低的出发点起头筑制所有观点。先来看看一个适于巡线的机械人是什么样的机合。看下图,这个机械人用两个马达驱动,分离与车轮A、C毗连,前端装有笔直向下的光电传感器,红圈标出的个人便是光电传感器能“看到”的个人。带箭头的大长方形示意机械人的其余个人,箭头指示机械人的运动倾向。

  这种巡线格式也许竣事巡线工作,但成就并不是很好。正在较量直的线上竣事巡线工作,正在编程中筑设举措藐小的转弯格式,举座巡线成就看起来还算不错;然则假设线上有较大的弯度,你又采用清楚的转向举措让机械人竣事巡线,机械人就会来回摆动,横向穿过线条。机械人只“领会”两件事故:转左和转右。用这种方式巡线,大凡机械人的速率不会很疾,况且看起来很倒霉。假使线是直的,这种方式也不行使机械人走直线,以至不行十足瞄准线的边沿。怎么使巡线更有用率呢?让咱们来调理一下。把光电传感器的读值线段分成三个人。当光电传感器值低于43时,咱们让机械人转左。光电传感器值正在44到47之间时,咱们让机械人直行。光电传感器值大于47时,咱们让机械人转右。这正在NXT-G序次中,能够正在判定模块当选择yes/no来完毕。你本质上只需做两次判定,而不是三次。

  咱们用Kp=10 将error (偏差)值转换为turn(转向)值。这句话中,转换的乐趣是“error”(偏差)每爆发1个单元的转化,咱们就将一个马达的功率值普及10,另一个马达的功率低落10.

  常数K被称为Kp(比例驾驭器中恒量K)。要为Kp设定一个初始的忖度值,然后通过频频试验来删改它。咱们能够凭据机械人和传感器的个性估算出一个值:将Tp(对象功率)设为50,当偏差为0时,两个马达都以50的功率值转动;偏差边界为-5 到 +5。咱们愿望当偏差从0转化到-5时,马达的功率值从50转化到0,便是说Kp(斜率y的转化量除以x的转化量)为:

  Turn= m*error咱们还没有对转向轴做出界说,于是现正在咱们确定转向的边界是从-1(最大左转)到+1(最大右转),0转向的乐趣便是直行。上面图形中直线的斜率就能够用标为血色的两个点盘算出来(本来直线上苟且两点均可应用)。

  正在这个P驾驭器里有两个“可调参数”和一个恒量。恒量便是offset(补充量)(玄色和白色光电传感器读值的均匀数)。你须要编写一小段序次,正在巡线测试纸上用你的机械人来衡量光电传感器读值。你须要衡量出“black(黑)”和“white白”的光电传感器读值,然后盘算均匀值,并把均匀值写入P驾驭器序次中的offset变量。险些全面的巡线机械人都要做这一步事务,你能够人工实行,也能够通过编写序次代码让机械人自愿竣事。

  假设线较量直,你能够将Tp的值筑设的高少许,普及机械人的运转速率;将Kd的值筑设的小少许,使机械人的转向举措(删改)更藐小。

  第二种巡线格式成就比第一种格式好的众。起码机械人有时会直接向前走了。与第一种巡线格式相通,你还是要凭据线的是非特性来裁夺应用哪种转向格式(藐小或者清楚的转向举措)。机械人仿照会有相当数目的来回摆动。注目的读者也许会思“假设应用3个光电传感器是不会比2个光电传感器要好些呢?正在减少更众的光电传感器会若何?”这便是PID的起头了。“PID”中的“P”:比例驾驭是要害假设咱们把光电传感器读值的数据线段分成更众的段,会若何呢?咱们要办理的第一件事故是,当光电传感器读值的数据线段时,要怎么确定“turn(转向)”的取值。正在咱们的第一种巡线格式啊中,机械人只做两件事故,转左或转右,“turn(转向)”的数值是相通的,只是倾向差别。正在第二种巡线格式中,咱们正在阁下两个转向的底子上加上了“直行”。正在光电传感器读值的数据线个时,咱们须要更众“品种”的“turn(转向)”。为了助助明白“更众品种的turn(转向)”,咱们从头画出光电传感器读值的数据线段,并把它转换为图形。X轴(程度线)为光电传感器读值值,与上面的光电传感器读值的数据线段相通。Y轴(笔直线)是“turn(转向)”轴。左边的图形示意的是咱们第一种巡线格式将光电传感器读值分成两段的状况,机械人只可做两件事(用蓝色的线示意),转左或转右,除了倾向以外,转向值是相通的。中央的图形是第二种巡线格式将光电传感器读值分成三段的状况,中央减少的一段是机械人直行的个人(turn=0),转向个人与前面的第一种巡线格式是相通的。右侧的图形是一个比例驾驭的巡线机械人,正在两个极限点之间的转向转化很光滑。假设光电传感器读取的光值阐明机械人离线很近,机械人就做小的转弯;假设读取的光值阐明机械人离线很远,机械人就做较大的转弯。比例是一个紧要的观点。比例的乐趣便是正在两个变量之间存正在线性联系,简略的说,便是变量之间的联系显示为一条直线(如右侧图形所示)。直线的外达式为:y= mx + b这里,x,y是指直线上苟且一点的坐标值(x,y),m是这条直线的斜率,b是直线正在Y轴上的截距(当x=0时,直线通过Y轴上的点,该点正在Y轴上的坐标值)。直线斜率的界说为直线上苟且两点y值的转化量除以x值的转化量。我来把图形和外达式变得简略少许。起首,咱们将光电传感器读值线段(X轴)的核心点定为0,由于咱们的光电传感器读值边界是40到50,咱们把全面光电传感器读数都减掉45(这是40和50的均匀值,(40+50)/2),获得的结果称为“error(偏差)”。当光电传感器读数为47时,可获得error=47-45=2。这个error(偏差)阐明晰机械人的光电传感器离线的边沿有众远。当光电传感器正好正在线的边沿上,“error(偏差)”为0(由于此年光电传感器的读值为45,而咱们要从光电传感器读值中减掉45)。假设光电传感器一概处正在白色的地方,“error(偏差)”为 +5,假设光电传感器一概处正在玄色的地方,“error(偏差)”为 -5。2011-8-28 21:39 上传下载附件(3.71 KB)正在上面的图形中,我仍然用“error(偏差)”来示意X坐标轴。由于这条直线正好正在原点处通过Y轴,以是b的取值为0,云云外达式会变得简略少许:y = mx或者应用咱们的方式:

  用言语外达便是:将偏差值error乘以比例常数K获得所需的转向值Turn。这个Turn值便是P驾驭器的输出结果,由于它只涉及比例驾驭,被称为“比例驾驭个人”。

  Kp值和Tp(对象功率)值是可调参数。可调参数务必原委频频试验材干确定。Kp裁夺了当机械人慢慢摆脱线的边沿时,驾驭器让机械人返回线的边沿的速率有众疾;Tp裁夺了机械人沿着线向前挪动的速率有众疾。

  (1)咱们祈望比例边界尽不妨的宽。光电传感器的比例边界是相当小的,便是说,光电传感器务必很亲近线的边沿,材干取得比例新闻。比例边界的宽度要紧取决于光电传感器隔绝巡线测试纸的高度有众少。假设光电传感器绝顶亲切巡线厘米),那么光电传感器正在巡线测试纸上看到边界只是一个很小的圆圈。光电传感器的一个很小的挪动就会出现-5到+5 边界的error(偏差),也便是比例边界。你也许会说,光电传感器的视野渺小,只可看到巡线测试纸的很小的一个人,光电传感器要绝顶亲近线的边沿,读取的光电传感器值既不是“黑”,也不是“白”。假设光电传感器隔绝巡线测试纸的高度高少许,那么光电传感器正在巡线测试纸上看到的边界便是一个大少许的圆圈。光电传感器隔绝巡线厘米)时,正在巡线测试纸上能看到的边界是一个直径大约1/2英寸的圆圈。光电传感器处于这个高度上,比例边界更大,由于光电传感器正在隔绝线英寸宽度的边界内,就能够依旧比例输出。将光电传感器地方普及有两个坏处,光电传感器地方普及后更容易对情况光做出纰谬相应;正在区别黑和白时,也与地方较低的光电传感器有些分别。光电传感器隔绝巡线测试纸的高度足够大时,对玄色和白色所读取的值是相通的。(2)正在比例边界以外,驾驭器只可把机械人向确切的倾向挪动,但也只是趋势于确切。驾驭器的比例相应是受比例边界局限的。从P到本质的马达功率值咱们应当怎么筑设转向时的马达功率值呢?做转向的一个方式是:界说一个“对象功率”,我称之为Tp。Tp是当error(偏差)=0时,机械人做直行得两个马达功率值。当error(偏差)不为0时,咱们用外达式Turn=K*(error)来盘算怎么改造两个马达的功率,一个马达的功率为Tp+Turn,另一个马达的功率为Tp-Turn。贯注,由于咱们的error(偏差)边界是-5 到 +5,Turn(转向)的值也会有正值和负值,相当于做差别倾向的转向。这恰是咱们所须要的,它能自愿地确切筑设马达功率值,确定哪一个马达速率疾,哪一个马达速率慢。咱们假定左侧的马达接入端口A,其功率值为Tp+Turn的值;右侧马达接入端口C,其功率值为Tp-Turn的值。当error为正时,Turn值为正,Tp+Turn的值比Tp大,左侧的马达速率加疾,右侧的马达速率减慢。当error改造符号变为负值时(这就意味着机械人仍然越过线的边沿,看到“玄色”了),此时Tp+Turn的值比Tp小,左侧的马达速率减慢,Tp-Turn的值比Tp大,右侧的马达速率加疾。简略吗?祈望咱们连接往下实行时,你会明白得更明了一点。P驾驭器的虚拟代码起首咱们要测出光电传感器读取玄色和白色时的光电传感器读值。凭据这两个数值,咱们也许盘算出offset(补充量),将光电传感器读值减掉这个数值就可转换成error(偏差)值。offset(补充量)是白色和玄色光电传感器值的均匀值。为简略起睹,我假定offset(补充量)仍然衡量完毕,并存储正在叫做offset的变量里。(让机械人我方衡量白和黑的光电传感器读值,并盘算offset,会更好)

  巡线是机械人的根本技能,也是大众进修机械人时最先要做的。也许巡线的自愿安装具有机械人的一概特性:应用传感器采集四周情况的新闻,并据此调理机械人的运动形态。巡线个光电传感器、一打光电传感器或者装上你全面的光电传感器。本质上,你应用的光电传感器越众,巡线个光电传感器也能够让机械人准确的巡线(假使线条是有弧度的),然则机械人挪动过疾时容易“飞线”(“飞线”指机械人离开线条,不行连接沿着线挪动)。寻常来说,应用的传感器越众,巡线的速率越疾。现正在咱们来试验第一个方式(非PID格式)。巡线本来是让机械人沿着线的边沿走,由于假设沿着黑线自身走,当机械人偏离黑线,传感器“看到白色”时,咱们不领会机械人真相正在线的哪一边,是正在线的右边依然左边?假设沿着线的边沿走,当光电传感器“看到白色”,咱们领会机械人正在线边沿(线)的左边,当光电传感器“看到玄色”,咱们领会机械人正在线边沿的右边(正在线上)。由于机械人伴随的是线条的左边,以是这种格式被称为“左本领则”。咱们需门径会当光电传感器“看到白色”和“看到玄色”时返回的读数值。一个典范的非校准传感器(数值0~100)“看到白色”会返回50,“看到玄色”会返回40。咱们能够正在一条数据线段上标出光电传感器的读值,来助助咱们明白怎么将光电传感器的读值转化改制为机械人的运动转化。以下是咱们画出的从“白”到“黑”的光电传感器读值。咱们把这个数值线段中分为两个人:当光电传感器值小于45,让机械人左转;当光电传感器值大于45,让机械人右转。正在这里,咱们不探究机械人的转向举措的准确性。正在相对较直的线上,机械人的转向举措能够较量藐小;正在有许众弯的线上,机械人大凡要有清楚的转向举措。做举措藐小的转向时,你能够把速率疾的轮子的马力值筑设为50%,速率慢的轮子的马力值筑设为20%。有许众弯的现上做清楚转向举措时,你能够正在疾的轮子上筑设30%的马力值,正在慢的轮子上应用缓停或逗留。无论你正在轮子上筑设什么数值的马力值,正在做阁下差别转向时,这个筑设应当是相通的,即正在一侧的轮子上筑设较大的马力值,正在另一侧轮子上筑设较小的马力值(或筑设为逗留)。

  斜率= m = (y值的转化量)/(x值的转化量) = ( 1- (-1)) / (-5- 5 ) = 2/10 = 0.2斜率是一个比例常量,用它乘以(x值)就可获得“(转向)”(y值)。请肯定记住这一点。正在各类PID文献中,斜率(也叫做比例常数、直线外达式中的m)被称作K。许许众众的Ks浮现正在PID文献中。你能够把K(或m,或斜率,或比例常数)看做是一个换算系数,用K把一个数字(光电传感器读值或咱们例子中的error(偏差))转换成此外一个数字(如Turn(转向))。这便是K的效率,绝顶简略也绝顶壮健。

  “error”的取值边界是由光电传感器的筑设、巡线测试纸的颜色等身分裁夺的。你不妨仍然贯注到了,正在结尾一个图形里,直线没有延长到error(偏差)值-5 到 +5 的边界以外。正在-5 到 +5 的边界以外,咱们就不行判定光电传感器真相离线有众远了。当光电传感器十足看不到任何黑线时,它看到的全面“白色”都是相通的。当光电传感器离线的边沿太远时,光电传感器读取到的光值造成恒定的数值,这就意味着光电传感器的读与error(偏差)不再是比例联系。咱们只可正在光电传感器相当亲近黑线时,判定光电传感器离线的边沿有众远隔绝,正在绝顶小的数值边界内,光电传感器的读值与这个隔绝是成比例的,以是,咱们的光电传感器值要筑设正在能给出比例联系的有限的边界内。赶过这个边界,就只可给出机械人调理确凿切倾向,但数目巨细是纰谬的,光电传感器读值或是偏差会小于本质状况,云云正在删改偏差时,就不会有很好的成就。正在PID文献中,把传感器能给出比例相应的边界称为“比例边界”。正在PID驾驭中,比例边界是另一个绝顶紧要的观点。正在咱们巡线机械人的操纵中,光电传感器读值的比例边界是40到50,偏差的比例边界是-5 到+5 ,马达的比例边界是-100(全马力撤除)到 +100(全马力进取)。以下是相合比例边界的两个紧要实质:

  PID驾驭器是一种常用的驾驭技能,常用于众种刻板安装(如车辆、机械人、火箭)中。用数学格式来刻画PID驾驭器好坏常杂乱的。本文刻画了怎么正在应用NXT-G编程的LEGO机械人上创筑PID驾驭器。

  • 友情链接:
  • 联系人:吴先生 手机:13929401087 电话:0769-85335758 传真: 0769-82788046 E-mail:admin@lyjiujiu.com 网站地图
  • 欢迎来到多赢彩票网最具权威的开奖网站。以良好的信誉和服务得到许多彩民的支持和肯定,一直深受会员好评,多赢彩票app与你同行!