精华内容
下载资源
问答
  • 要想充分理解涌泉码我们先来讲一下传统方式: 发送端和接收端双向沟通,发送端给接受端发送一...先来通俗的解释一下,首先发送端将数据分为若干个组,然后向周围水桶中发送水滴,然后,当桶满了之后,就会返回...

     要想充分理解涌泉码我们先来讲一下传统的方式:

    发送端和接收端双向沟通,发送端给接受端发送一个包,接收端接受成功以后会反馈一个确认信息ACK,说明我已经收到了,但是,当用户量非常大的时候,ACK越来越多,就会产生反馈风暴,造成堵塞。


    之后我们就来介绍一下涌泉码:(图为简单的原理图)

    先来通俗的解释一下,首先发送端将数据分为若干个组,然后向周围的水桶中发送水滴,然后,当桶满了之后,就会返回一个反馈信息,当收到所有分组的反馈信息之后,就会发送下一个数据,否则继续发送原来的数据。这也就是涌泉的由来。


    首先生成若干个编码分组,我这里是四个,然后发送端编码器会想向四周的译码器缓存区发送包,当这个缓存区满了之后(即一组数据都完成了解码),才会返回给发送端一个ACK,当收到所有的ACK之后,收到所有的ACK代表完成传输,发送端才会发送新的包,否则继续发送组合包。

    展开全文
  • PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性...

    在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。

     

    1.1传统PID控制

    传统PID控制器自出现以来,凭借其结构简单、稳定性好、工作可靠、调整方便等优点成为工业控制主要技术。当被控对象的结构和参数具有一定的不确定性,无法对其建立精确的模型时,采用PID控制技术尤为方便。PID控制原理简单、易于实现,但是其参数整定异常麻烦。对于小车的速度控制系统而言,由于其为时变非线性系统不同时刻需要选用不同的PID参数,采用传统的PID控制器,很难使整个运行过程具有较好的运行效果。

     

    1.2模糊PID控制

    模糊PID控制,即利用模糊逻辑并根据一定的模糊规则对PID的参数进行实时的优化,以克服传统PID参数无法实时调整PID参数的缺点。模糊PID控制包括模糊化,确定模糊规则,解模糊等组成部分。小车通过传感器采集赛道信息,确定当前距赛道中线的偏差E以及当前偏差和上次偏差的变化ec,根据给定的模糊规则进行模糊推理,最后对模糊参数进行解模糊,输出PID控制参数。

     

    2.1模糊化

    模糊控制器主要由三个模块组成:模糊化,模糊推理,清晰化。具体如下图所示。而我们将一步步讲解如何将模糊PID算法运用到智能车上。(最好用笔一步步自己写一遍!!!)

    首先我们的智能车会采集到赛道的相关数据,例如摄像头车,其采集到的数据经过算法处理之后会得到与中线的偏差E,以及当前偏差和上次偏差的变化(差值)EC两个值(即此算法为2维输入,同理也可以是1维和3维,但2维更适合智能车)。例如此时车偏离中线的距离为150,而上一时刻偏离中线的距离为120,则E为150,EC为150 - 120 = 30。

     其次我们要对这两个值进行模糊化。这里我们对E进行举例。摄像头车采集回来的E是有范围的,即与中线的偏差是在一个区间内可行的。在这里我们假设该区间为-240到240,即小车偏离中线的最大距离为240,正负即为左右。再假设中线偏差变化率的可行区间为-40到+40。

    接着我们要对这两个值进行模糊化。我现在将E的区间(-240 到 240)分成8个部分,那么他们分别为-240 ~ -180,-180 ~ -120 ,-120 ~ -60,-60 ~ 0,0 ~ 60,60 ~ 120,120 ~ 180,180 ~ 240。然后我们把-180,-120,-60,0,60,120,180分别用NB,NM,NS,ZO,PS,PM,PB表示(个人理解N为negative,P为positive,B为big,M为middle,S为small,ZO为zero)。例如,当E = 170时,此时的E属于PM和PB之间,而此时的E也会对应2(或1)个隶属度。E隶属于PM(120)的百分比为(180 - 170) /  (180 - 120) = 1 / 6 ,而同理隶属于PB(180)的百分比为(170 - 120) / (180 - 120) = 5 / 6  。意思就是120到180进行线性分割了,E离PM和PB哪个更近,则隶属于哪个就更大(当输出值E大于180(PB)时,则隶属度为1,隶属度值为PB,即E完全隶属于PB,同理当E小于 - 180 (NB)时也一样)。同理也可以对EC进行模糊化。

     

    2.2 模糊推理

    对于采集回来的E和EC,我们可以推出它们各所占的隶属度,此时我们可以根据模糊规则表去找出输出值所对应的隶属度。

                 

         我们假设为E的两个隶属度值为PM、PB,E属于PM的隶属度为a(a < 1),则属于PB的隶属度为(1 - a)。再假设EC的两个隶属度值为NB、NM,EC属于NM的隶属度为b,则属于NB的隶属度为(1 - b)。而在假设中,E属于PM的隶属度为a,EC属于NB的隶属度为( 1 - b ),则输出值属于ZO的隶属度为a *( 1 - b )(看图)。

                  

    同理我们可以得出,当输出值属于ZO的另外两个隶属度为a * b, ( 1 - a ) * ( 1 - b) ,而输出值属于NS的隶属度为 ( 1 - a ) *  b。在这里我们先证明一个条件,将这四个隶属度加起来,刚好等于1。这是因为

            (a + (1 - a)) * (b + (1 - b)) = a * b + ( 1 - a ) *  b  + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b )   (下图)

    即一个十字相乘的概念。这个等式说明输出值的隶属度之和等于1(第三步求解的时候需要用到隶属度之和)。

                   

    因此,我们知道了输出值为ZO的隶属度和为 a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ,输出值为NS的隶属度为 ( 1 - a ) *  b 。

     

    2.3 清晰化

    对于输出值,我们同样采用给予隶属度的办法。例如,我们把输出值假设为[1000,1400](即舵机的摆角值范围)的区间同样划分为八个部分,即7个隶属值NB,NM,NS,ZO,PS,PM,PB。根据上一步所得出的结论,我们就可以用隶属度乘以相应的隶属值算出输出值的解,即 (a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS。到此为止,整个模糊过程就结束了。

         

    3 模糊PID

    我们已经知道了整个模糊的过程,但上述的过程还不够完美。因为我们的输出值只有一个输出,并没有实现PID。因此我们可以先对E和EC进行模糊化,然后分别对kp和ki和kd(PID的三个参数)进行求解,再套入公式。

                      

    一般的我们也可以只用kp,kd,不用ki。而模糊规则表一般的论文已经基本给出。因此带入算法之后我们的难度也只是在于调节kp,kd,和适当调节规则表。当然调节的难度会大于普通的PID,因为还要定kp,kd的输出范围,调得不好可能效果并没有普通的PID好。

     

    4. 部分解释

    4.1对于部分论文所说的重心法解模糊,其实就是上述方法。公式如下。

            

    式中μ(Zi) * Zi相当于文章上面的(a * b + a * ( 1 - b ) + ( 1 - a ) * ( 1 - b ) ) * ZO   +    ( 1 - a ) *  b * NS,即隶属度乘以隶属度值之和,而μ(Zi)之和就是输出值的隶属度之和,我们已经证明它是等于1的。
    ————————————————
    版权声明:本文为CSDN博主「我爱广工大」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_36340979/article/details/79168052

    展开全文
  • 简单来说: 在javascript中,所有事件都是通过函数来执行,函数本身...函数就是对事件作出具体反馈映射,即执行处理某种事件动作,需要一段执行过程。 【方法】 当把一个函数赋给某个对象当属性时,就变成了方法:

    简单来说:

    在javascript中,所有的事件都是通过函数来执行的,函数本身即是动作(针对事件来说),也是方法(针对对象来说)!对象是指的谁触发了事件,绑定事件的主谋。

    【事件】
    事件就如神经开关,刺激激发动作函数,只需交互一瞬间; 比方:“针刺皮肤,神经刺激敏感”就是一个事件。

    【函数】
    函数就是对事件作出具体反馈映射,即执行处理某种事件的动作,需要一段执行过程。比方:“针刺皮肤,激发反馈,立刻躲闪”躲闪动作就是函数。

    故,所有的函数动作本身都是静态的,不会自我运行,必须借用外力即事件刺激激活调用才可运行。

    即,函数动作必须与事件绑定才有意义,函数与事件二者是息息相关相依为命的才能称之为完整是动作。

    总,函数动作必须有事件激发调用

    【方法】

    当把一个函数赋给某个对象当属性时,就变成了方法:

    1
    2
    3
    4
    5
    var person = {
        age : 26,
        say : function (){
            alert('I am a person! ');
        }

    你调用这个对象的方法,他会弹出一句话说:I am a person!

    【对象】

    在javascript中,一切都是对象!既然是一切,那么 函数、方法、事件本身也是对象。只不过,它们是一种特殊的对象,具有特殊功能和含义;对象也可以简单的理解为一个大仓库,有各种资源(各种属性——定义这个大仓库的特征,比如,长-宽-高-颜色-材质-建造日期-使用年限-容纳多少物品...;各种方法—也就是函数——定义这个大仓库用途能干什么?手比如,可以做仓储存放粮食蔬菜水果-可以放置农具机械-可以囤积零售商品-可以做修理厂...)。好了,现在你有一个具有种资源大仓库了,美美的你想做某些事件,你想到了这个大仓库里有你想要的资源,那么你就可以调用这里的资源了,也就是调用这个对象里的方法了。

    【总之】不管是函数动作还是方法手段,都是干什么,本质都是产生动作动机,必须有函数function(){};来执行!

    展开全文
  • Mapreduce 通俗

    2017-09-01 17:58:00
    演说进行得很顺利,听众们都能够理解MapReduce概念(根据他们的反馈)。我成功地向技术听众们(主要是Java程序员,一些Flex程序员和少数测试人员)解释了MapReduce概念,这让我感到兴奋。在所有辛勤工作之后...

    昨天,我在Xebia印度办公室发表了一个关于MapReduce的演说。演说进行得很顺利,听众们都能够理解MapReduce的概念(根据他们的反馈)。我成功地向技术听众们(主要是Java程序员,一些Flex程序员和少数的测试人员)解释了MapReduce的概念,这让我感到兴奋。在所有辛勤的工作之后,我们在Xebia印度办公室享用了丰盛的晚餐,然后我径直回了家。

    回家后,我的妻子(Supriya)问道:“你的会开得怎么样?”我说还不错。 接着她又问我会议是的内容是什么(她不是从事软件或编程领域的工作的)。我告诉她说MapReduce。“Mapduce,那是什么玩意儿?”她问道: “跟地形图有关吗?”我说不,不是的,它和地形图一点关系也没有。“那么,它到底是什么玩意儿?”妻子问道。 “唔…让我们去Dominos(披萨连锁)吧,我会在餐桌上跟你好好解释。” 妻子说:“好的。” 然后我们就去了披萨店。

    我们在Domions点餐之后,柜台的小伙子告诉我们说披萨需要15分钟才能准备好。于是,我问妻子:“你真的想要弄懂什么是MapReduce?” 她很坚定的回答说“是的”。 因此我问道:

    我: 你是如何准备洋葱辣椒酱的?(以下并非准确食谱,请勿在家尝试)

    妻子: 我会取一个洋葱,把它切碎,然后拌入盐和水,最后放进混合研磨机里研磨。这样就能得到洋葱辣椒酱了。

    妻子: 但这和MapReduce有什么关系?

    我: 你等一下。让我来编一个完整的情节,这样你肯定可以在15分钟内弄懂MapReduce.

    妻子: 好吧。

    我:现在,假设你想用薄荷、洋葱、番茄、辣椒、大蒜弄一瓶混合辣椒酱。你会怎么做呢?

    妻子: 我会取薄荷叶一撮,洋葱一个,番茄一个,辣椒一根,大蒜一根,切碎后加入适量的盐和水,再放入混合研磨机里研磨,这样你就可以得到一瓶混合辣椒酱了。

    我: 没错,让我们把MapReduce的概念应用到食谱上。Map和Reduce其实是两种操作,我来给你详细讲解下。

    Map(映射): 把洋葱、番茄、辣椒和大蒜切碎,是各自作用在这些物体上的一个Map操作。所以你给Map一个洋葱,Map就会把洋葱切碎。 同样的,你把辣椒,大蒜和番茄一一地拿给Map,你也会得到各种碎块。 所以,当你在切像洋葱这样的蔬菜时,你执行就是一个Map操作。 Map操作适用于每一种蔬菜,它会相应地生产出一种或多种碎块,在我们的例子中生产的是蔬菜块。在Map操作中可能会出现有个洋葱坏掉了的情况,你只要把坏洋葱丢了就行了。所以,如果出现坏洋葱了,Map操作就会过滤掉坏洋葱而不会生产出任何的坏洋葱块。

    Reduce(化简):在这一阶段,你将各种蔬菜碎都放入研磨机里进行研磨,你就可以得到一瓶辣椒酱了。这意味要制成一瓶辣椒酱,你得研磨所有的原料。因此,研磨机通常将map操作的蔬菜碎聚集在了一起。

    妻子: 所以,这就是MapReduce?

    我: 你可以说是,也可以说不是。 其实这只是MapReduce的一部分,MapReduce的强大在于分布式计算。

    妻子: 分布式计算? 那是什么?请给我解释下吧。

    我: 没问题。

    我: 假设你参加了一个辣椒酱比赛并且你的食谱赢得了最佳辣椒酱奖。得奖之后,辣椒酱食谱大受欢迎,于是你想要开始出售自制品牌的辣椒酱。假设你每天需要生产10000瓶辣椒酱,你会怎么办呢?

    妻子: 我会找一个能为我大量提供原料的供应商。

    我:是的..就是那样的。那你能否独自完成制作呢?也就是说,独自将原料都切碎? 仅仅一部研磨机又是否能满足需要?而且现在,我们还需要供应不同种类的辣椒酱,像洋葱辣椒酱、青椒辣椒酱、番茄辣椒酱等等。

    妻子: 当然不能了,我会雇佣更多的工人来切蔬菜。我还需要更多的研磨机,这样我就可以更快地生产辣椒酱了。

    我:没错,所以现在你就不得不分配工作了,你将需要几个人一起切蔬菜。每个人都要处理满满一袋的蔬菜,而每一个人都相当于在执行一个简单的Map操作。每一个人都将不断的从袋子里拿出蔬菜来,并且每次只对一种蔬菜进行处理,也就是将它们切碎,直到袋子空了为止。

    这样,当所有的工人都切完以后,工作台(每个人工作的地方)上就有了洋葱块、番茄块、和蒜蓉等等。

    妻子:但是我怎么会制造出不同种类的番茄酱呢?

    我:现在你会看到MapReduce遗漏的阶段—搅拌阶段。MapReduce将所有输出的蔬菜碎都搅拌在了一起,这些蔬菜碎都是在以key为基础的 map操作下产生的。搅拌将自动完成,你可以假设key是一种原料的名字,就像洋葱一样。 所以全部的洋葱keys都会搅拌在一起,并转移到研磨洋葱的研磨器里。这样,你就能得到洋葱辣椒酱了。同样地,所有的番茄也会被转移到标记着番茄的研磨器里,并制造出番茄辣椒酱。

    披萨终于做好了,她点点头说她已经弄懂什么是MapReduce了。我只希望下次她听到MapReduce时,能更好的理解我到底在做些什么。

     

    编注:下面这段话是网上其他人用最简短的语言解释MapReduce:

    We want to count all the books in the library. You count up shelf #1, I count up shelf #2. That’s map. The more people we get, the faster it goes.

    我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。

    Now we get together and add our individual counts. That’s reduce.

    现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。

    0
    展开全文
  • 演说进行得很顺利,听众们都能够理解MapReduce概念(根据他们的反馈)。我成功地向技术听众们(主要是Java程序员,一些Flex程序员和少数测试人员)解释了MapReduce概念,这让我感到兴奋。在所有辛勤工作之后...
  • 今天有个客户来公司介绍...我个人理解是:通过工具(集成SDK等)有策略性选取部分用户使用新版本页面/ios APP/Android APP,根据用户使用反馈情况,选择回退初始版本还是全面放开新版本。、 一个不错的解释如下: ...
  • 这本书是关于放大电路最通俗易懂的解释,书里没有繁琐讲解和公式。是学习模电很好入门书籍
  • 性能测试,有很多专业术语,为了方便大家理解,这里用通俗的语言来解释下,如果有不准地方,欢迎反馈。 并发:跑道里参加赛跑人 迭代:每个人跑多少圈 循环:一次迭代里面,反复执行其中一段脚本,就是反复...
  • ”一文,比较通俗地阐述了MapReduce概念。译文如下,译者是伯乐在线黄慧谕。 昨天,我在Xebia印度办公室发表了一个关于MapReduce演说。演说进行得很顺利,听众们都能够理解MapReduce概念(根据他们的反馈)...
  • ”一文,比较通俗地阐述了MapReduce概念。译文如下,译者是伯乐在线黄慧谕。 昨天,我在Xebia印度办公室发表了一个关于MapReduce演说。演说进行得很顺利,听众们都能够理解MapReduce概念(根据他们的反馈)...
  • ”一文,比较通俗地阐述了MapReduce概念。译文如下,译者是伯乐在线黄慧谕。 昨天,我在Xebia印度办公室发表了一个关于MapReduce演说。演说进行得很顺利,听众们都能够理解MapReduce概念(根据他们的反馈)...
  • 一、什么是错误,什么是异常,它们两者区别这里解释如下:个人觉得很通俗易懂Python异常处理能力是很强大,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类 Exception...
  •  持续集成思想:  持续集成(CI)是一种实践,可以让团队在持续基础 上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说,就是指对于开发人员每一次代码提交,都自动地...
  • 多态实际含义是:同一操作作用于不同对象上面,可以产生不同的解释和不同执行结果。换句话说,给不同对象发送同一个消息时候,这些对象会根据这个消息分别给出不同的反馈通俗点讲就是,下课了,老师喊了...
  • 此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。...首先,先说一下异常处理的通俗解释:当危险或知道事情不对的时候做出的反馈。目录结构Java的异常分类常见的异常处理...
  • 此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。...首先,先说一下异常处理的通俗解释:当危险或知道事情不对的时候做出的反馈。目录结构Java的异常分类常见的异常处理...
  • 此文已由作者谢蕾授权网易云社区发布。欢迎访问网易云社区,了解更多网易技术产品运营经验。...首先,先说一下异常处理的通俗解释:当危险或知道事情不对的时候做出的反馈。目录结构Java的异常分类常见的异常处理...
  • 通俗解释: shell就相当于和操作系统交互,人通过Shell来交互。 环境开发工具 软件包管理器 (yum) 软件包就相当于手机市场中应用市场里边存放着g各种各样APP应用,你可以自己选择需要APP安装 其中Linux中...
  • 文章目录0. 前言1. 相关概念1.1 密钥1.2 加密模式1.2.1 电子密码...关于加密,此处没有更加通俗易懂的解释。与同是对于字节类型数据处理编码和摘要对比: 编码是可逆,任何人只要知道编码规则,就能够进行解码...
  • 一RBM、Deep Brief Network 和 Autoencoder区别 一、RBM 1、定义【无监督学习】 RBM记住三个要诀:1)两层结构图,可视层和隐藏层;【没输出层】2)层内无连接,层间全连接;...比较通俗解释...
  • 几个名词 ...换句话说,给不同对象发送不同消息,这些对象会根据这个消息分别给出不同的反馈 多态背后思想是将“做什么”和“谁去做以及怎样去做”分离开来,也就是将“不变事物”与“可能改...
  • 【C# interface接口】模拟MP3/AVI播放器

    千次阅读 2019-05-16 13:29:11
    对接口理解,见我另一篇博客,里面有详细说明:【C# interface接口】对接口理解、接口使用方式(最通俗的解释) 功能 点击“MP3”,显示“成功选择MP3” 点击下方功能按钮,显示反馈信息 思路 声明一个...
  • 我来通俗解释: 粒子群算法是生物学家研究鸟类捕食创造,把一只鸟比作成一个粒子,设想一个有20只秃鹫(粒子)群体吧,秃鹫相互独立具有个体特征但又相互协助体现群体特征,现在我就是这20只中一只好了(人...
  • asp.net知识库

    2015-06-18 08:45:45
    XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下XSLT转换技术简介 一个XSLT简单例子 XSLXSLT板主题整理 xsl入门好文章 新手学习XSL...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

反馈的通俗解释