js如何跳出for循环评价《State Estimation for Robotics》

假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?&br&&br&&b&&u&取平均。&/u&&/b&&br&&br&再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?&br&&br&&b&&u&加权平均。&/u&&/b&&br&&br&怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处省略若干数学公式),你可以得到一个“最优”的权重。&br&&br&接下来,重点来了:假设你只有一个传感器,但是你还有一个数学模型。模型可以帮你算出一个值,但也不是那么准。怎么办?&br&&br&&u&&b&把模型算出来的值,和传感器测出的值,(就像两个传感器那样),取加权平均。&/b&&/u&&br&&br&OK,最后一点说明:你的模型其实只是一个步长的,也就是说,知道x(k),我可以求x(k+1)。问题是x(k)是多少呢?答案:x(k)就是你上一步卡尔曼滤波得到的、所谓加权平均之后的那个、对x在k时刻的最佳估计值。&br&&br&于是&u&&b&迭代&/b&&/u&也有了。&br&&br&这就是卡尔曼滤波。&br&&br&(无公式)
假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办? 取平均。 再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗? 加权平均。 怎么加权?假设两个传感器的误差都符合正态分布,假设…
很难比下面这个例子讲的更通俗了……&br&&img src=&/ea5805dfa621fc481ba7af9f800e2f52_b.jpg& data-rawwidth=&960& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/ea5805dfa621fc481ba7af9f800e2f52_r.jpg&&&br&&img src=&/7e9f7ca52a6ec75e4de3_b.jpg& data-rawwidth=&960& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/7e9f7ca52a6ec75e4de3_r.jpg&&&img src=&/3e78b2ddf5d2aecdc29f16_b.jpg& data-rawwidth=&960& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/3e78b2ddf5d2aecdc29f16_r.jpg&&&img src=&/ed0a3c4c7be4c0ac1e6f54_b.jpg& data-rawwidth=&960& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/ed0a3c4c7be4c0ac1e6f54_r.jpg&&&br&&img src=&/f33aa6c8daeb23a4b108a150c5852469_b.jpg& data-rawwidth=&960& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/f33aa6c8daeb23a4b108a150c5852469_r.jpg&&&br&引自:&br&&a href=&///?target=http%3A///view/187eecec856af5b.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&卡尔曼滤波器分类及基本公式&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//blog.csdn.net/lanbing510/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&对Kalman(卡尔曼)滤波器的理解&i class=&icon-external&&&/i&&/a&&br&&br&了解到这里基本就可以套公式应用了。&br&如果想了解卡尔曼滤波的证明过程,可以参考这一篇&a href=&///?target=http%3A///kalman_filter.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/kalman_f&/span&&span class=&invisible&&ilter.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&卡尔曼有好多种变形,每本书的符号系统还不一样,看起来证明的样子五花八门。这一篇应该是最简洁的,虽然有些小错,看仔细点就好了。&br&希望对你有帮助~&br&相关问题:&a href=&/question/& class=&internal&&卡尔曼滤波算法的发展历史如何?&/a&
很难比下面这个例子讲的更通俗了…… 引自:
了解到这里基本就可以套公式应用了。 如果想了解卡尔曼滤波的证明过程,可以参考这一篇 卡尔曼有好多种变形,每本书的符号系统还…
一种可能,别人用上了,效果好,自己用不上,乃至说不知道怎么用,只能用PID,这说明自己落后。&br&&br&另外一种可能,有很多所谓先进的理论和算法确实很难在实际中用,根本就是为了发论文而做的。&br&&br&还有一种可能,大家都在用PID,但控制效果远不能令人满足,只是暂时找不到/发现不了更好的方法。&br&&br&另外有个值得注意的,底层是PID,看中上层是不是PID。即虽然是PID,但是是结合比如自适应、模糊、容错等等。而且PID的调参是否用了比如频域分析、鲁棒等等。&br&&br&如何区分这几者,是很重要的。&br&&br&---&br&&br&以上是短答案,以下是较长的回答。&br&&br&之前一个朋友(搞电力电子控制的)说的,他们领域的,好像是一对夫妻,原来学术界的,后来创立了一家公司 &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&One-Cycle Control&i class=&icon-external&&&/i&&/a&,as its name indicates,做电力电子方面的control。其实电力电子方面,现在的智能电网,有非常多的控制问题。&br&&br&偏过程控制的公司,有&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AspenTech: Optimizing Process Manufacturing&i class=&icon-external&&&/i&&/a&,这名字说得已经很清楚了。&br&&br&除此之外,还有很多或有名(Honeywell霍尼韦尔)或不大有名的,做偏过程控制。其实壳牌、美孚也有相应的部门。&br&&br&说到这方面,咱中国人也不差,有朱豫才老师在荷兰创立的太极控制(怎么成了“太激光控制软件”“泰极控制 泰极软件”?&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&泰极控制
泰极软件 (网站正在建设中...)&i class=&icon-external&&&/i&&/a&)Taiji Control(&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Welcome to Tai&i class=&icon-external&&&/i&&/a&),也有王建老师的优化佳控制(&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&北京优化佳控制技术有限公司&i class=&icon-external&&&/i&&/a&)。别的不说,看这两个公司名字取的!!!二者也都偏过程控制。&br&&br&其实过程控制不光是化工,发电厂什么的也都是(GE在这些方面也在做)。而且发动机控制什么的,也很难说属于哪一类。&br&&br&而这些公司不都是试图把所谓的先进算法用在实际中吗。&br&&br&这些努力,也许是白费的,证明某些算法不能用。但也慢慢证明某些算法确实能用,比如一些系统辨识算法,比如预测控制。&br&&br&技术发展就是这样一点点进步的。难道控制算法不再发展了?PID也才有大约一百年的历史(&a href=&///?target=http%3A//en.wikipedia.org/wiki/PID_controller& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PID controller&i class=&icon-external&&&/i&&/a&)。而且不去尝试,永远不知道新理论和算法能不能用。&br&&br&随着相关技术,特别是传感器技术的不断发展,芯片运算速度的不断加快,也有可能出现之前不能用,以后能用的情况。比如预测控制也可用到运动控制中了,当然不一定叫预测控制了,可能叫Receding Horizion什么的。。。&br&&br&这里又要岔开一句。其实芯片速度只要快到一个控制周期(一般由被控对象决定)内能计算完所有需要在线计算的,也就不会带来更多益处了。而且位数精度到了干扰的数量级(其实一般早就到了),也就不再有益处。倒是传感器,有时候执行机构也是,采用频率跟精度远远不够。&br&&br&况且在现实中,PID算法是远远不够的。&br&&br&比如某射电望远镜,之前都是用PID来调,后来转为用LQR来设计参数。不过设计完之后,又用频域的波特图看过,才敢实行。最终效果好很多。原因很简单,在模型不精确乃至没有模型的时候都能用PID,说明PID是适用范围广。但没有免费的午餐啊,适用范围广,则对一个特定的系统,往往效果离最好差很远。而望远镜是人造的,模型比较精确,而且工作环境不确定性小,所以用LQR效果较好。&br&&br&这里还有个有意思的问题,就是量产跟不量产的区别。比如这个射电望远镜,就这一个,那就可能调得精确些。如果是量产的话,那各个的机械跟电子部分肯定会有差别,导致模型有差别。而这差别其实有时候是影响很大的,甚至说一个螺丝少拧半圈,原来的控制算法就要重新调。这时候,大概就不能用这么‘阳春白雪’的控制算法了,要‘下里巴人’一些。&br&&br&况且,只做这其实不是商业产品,所以在某种程度上不用受成本限制,所以传感器可以做到比较好。还有一个问题,就是这不是大众消费品,就这那个天文台里面,没有什么风吹日赛,也不会在大众手里鼓捣。&br&&br&这样便可以想见,以后做大众消费品的机器人,包括现在的无人机,控制算法要做到多么的鲁棒:首先产品的硬件会有区别,除非对每单件单独调参;其次受成本影响,传感器曲线差;再次使用环境不确定性大,干扰大;而且还要在一般用户手里捣鼓,摔一下,磕磕碰碰很正常;而且用的时间长了,硬件会发生一些变化。。。&br&&br&简单的说,从理论角度,对于单入单出的线性系统时不变系统而言,PID存在,提供了三个参数,调整闭环系统的极点位置(或曰特征根,一个极点对应一个动态模态,即动态响应的大致形式)。一个n阶系统,需要n个参数配置极点。那三阶及以下的系统,PID当然就够了,乃至只需要PI、PD,或只需要P,视具体情况。甚至到了三阶以上,如果系统某些本身的极点已经非常稳定了,有时候PID也足够了。同时,也很容易找到三阶以上系统,无论如何都需要三个以上的参数才能让系统稳定,这时候当然PID不够用。&br&&br&但这些高阶系统,有很多是可以分出层来的,及可加传感器控制中间某个变量,串级控制,如果串级的每一级都用PID足够,那就成了串级PID。比如四旋翼,从电机电流,到转速,到旋翼升力,到加速度/角加速度,到速度/角速度,到姿态/位置,就引出了好几个串级。&br&&br&这里岔开一句,四旋翼转速到升力,会受空气动力学的影响,不是线性的,而且接近地面时不一样,不同空气密度又有影响。升力到加速度,跟姿态有耦合,而且跟倾角有非线性的关系,同时不同的质量又有影响。这里面要做得好,要考虑解耦,非线性,自适应等问题。&br&&br&从不那么偏理论的角度说,其实可以感到PID是提供了三个自由度,就像三个操纵杆,控制一个东西,不知道那个东西的运动跟这三个操作杆具体什么关系,只能试试凑凑。但操作杆只有三个,三个自由度而已,有些动作可以完成,有些动作不能完成。但是,如果增加了操纵杆,增加了自由度,虽然可以完成动作的可能性大了,同时操纵的难度也增加了。&br&&br&从宽的角度说,那就是耦合了。处理高阶,深的系统,PID有串级这一大杀器,只要中间量能测量,通过传感器往外引。而且一级级的可以加饱和。但处理宽的,耦合的系统,PID就比较难调了。几入几出、耦合弱的还能解解耦(而且解耦是要基于耦合模型的),十几入十几出,乃至更多,加上强耦合,有时还有硬约束,那几乎是没办法调的。&br&&br&从不那么偏理论的角度说,每个PID像三个操纵杆,控制一个东西,不知道那个东西的运动跟这三个操作杆具体什么关系,只能试试凑凑。有十几个这样的操纵杆和东西的话,之间又有联动,那可能性多了去了,(十几×3)×(十几×3),想要让那十几个东西完成一些动作,就很难动过试凑来做了。&br&&br&现实中,大多是PID作为底层稳定住各个单入单出的子系统,MPC在其上层做慢速的(相比PID)的优化计算,把这些耦合、约束都考虑进去,然后算出来的是各个PID的设定点。MPC算一步的时间,足够PID动态过程结束了。&br&&br&智能控制的定义其实很难划清,大致包括专家系统,模糊,神经网络,学习,然后结合各种优化算法的控制(遗传、粒子群、蚁群、模拟退火等),等等。&br&&br&其实可能大多数人接触智能控制,会经历“哇,这么好大上”-&“靠,原来如此”-&“排列组合发论文,都是在忽悠”-&“其实还是可能有点用的”-&“现在才算理解一点”-&“其实还是没真正理解”。。。其实不只是智能控制啦,很多东西的学习都是如此。&br&&br&先说最简单的,结合各种优化算法的控制。其实这些优化算法都是单独存在的,只不过控制问题转化为一个二次型的优化之后,用这些优化算法来求解,就是优化参数。这样的话,其实任何优化算法都可以结合控制:各种优化算法×各种优化指标×各种控制器(如PID,状态反馈等等)×。。。。排列组合多了去了,论文也就多了去了,导致这个领域如今很受诟病。而且其实问题的核心不在优化算法(优化算法也有&a href=&///?target=http%3A//en.wikipedia.org/wiki/No_free_lunch_theorem& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&No free lunch theorem&i class=&icon-external&&&/i&&/a&),而是优化指标。而这优化指标的选取几乎完全靠经验、试凑。而且建的模型本身的精度根本达不到这优化问题的精度,很容易精确的错。仿仿真还可以。&br&&br&再岔开一句,建模,简单的分,物理建模(部分加起来),系统辨识(输入输出关系作为整体);而物理建模本身,其参数的确定,也分为部分加起来,和整体辨识出来。物理建模,参数也是部分加起来,是当年物理学中就学到了,但往往会忽略掉很多东西。物理建模,参数辨识出来效果好很多,可以理解通过输入输出数据获得了系统全部的信息。直接系统辨识,其实有时候反而最完整的保存了系统信息。系统辨识的问题是比较难结构化,虽然有Wiener,Hammerstein等模型,但可以一些个环节。乃至跟物理建模结合起来,各负责一些环节。&br&&br&系统辨识是个大领域,输入数据的设计,误差准则的选择,模型阶数的缺点,乃至时延的缺点,都非常重要,而且不容易。预测控制,是基于模型的,实际中基本都是结合系统辨识在做的。否则的话,模型都错了,那控制器就不大可能设计的好。&br&&br&传感器也是系统辨识的一个重要环节。传感器精度直接决定了系统辨识的精度。&br&&br&传感器曲线很差,模型也建的很差,就不要想着用“先进”的控制算法了,肯定精确的错;倒不如用PID什么的,大概的对。而且倒是应该用些“先进”的估计算法,数据融合,传感器信息融合,先把传感器曲线改善一些。然后用些“先进”的系统辨识算法,让得出的模型也改善一些。之后再考虑“先进”的控制算法。&br&&br&现在的情况是,很多实际工程,“先进”的估计算法已经用了不少了,“先进”的系统辨识算法和“先进”的控制算法还比较少。这也就是很多人说控制工程等于PID+Kalman的原因。不奇怪,PID到“先进”的控制算法,中间还隔着“先进”的系统辨识算法呢(建模与模型分析)。&br&&br&总而言之,先进估计+不基于模型调参的PID,先进估计+先进系统建模辨识+基于模型调参的PID,先进估计+先进系统建模辨识+先进控制算法,现在都是存在的,其中前两个自不必说,最后一个系统辨识+MPC+PID的组合在先进过控、能源类的控制等中比比皆是。落后这么多了,赶紧追吧,奇怪的是竟然还有人说MPC没用,赶紧去了解一下Aspen,Honeywell,GE,Shell,Exxon Mobil等的先进工业控制算法吧。而且当年登月,也是先进估计+先进模型+先进控制(最优控制+PID)的例子啊。&br&&br&传感器跟估计的精度决定了建模辨识与控制的精度,然后传感器跟估计的精度,与建模辨识,一起决定了控制的精度。这方面,是可以量化的。&br&&br&可见传感器与估计算法多么重要。传感器的校正是个大问题。这一点,看看玩无人机之前大家的在那绕啊绕的动作就知道了,况且在出厂前,也要做不同的校正。这方面,GPS有室内的天然缺陷,IMU只能等降价(要是不计成本的话,可以做到吓人的精确,比如核潜艇里面用的),现在做光流,视觉当然是个大趋势:软肋在计算机视觉算法。之后就需要更精确的建模与辨识算法了,然后是控制算法。毕竟现在无人机在很多方面还是受限制的,比如随便换相机,当然云台也是问题,送快递(加入新的负载),或者加抓取装置(整个力的分析就很复杂了)。&br&&br&个人认为,在可预见的未来,随着传感器本身的发展,加上计算速度提升(在线UKF现在已经不成问题了,等到在线PF也不成问题的时候,不知将会发生什么,也许EKF什么的,终将被历史淘汰,败给强大计算能力支撑下的硬算硬模拟算法)带来数据融合发展,下一步必将发展的是更精细的系统与信号的建模与辨识技术,之后则会有之前用不上的控制算法逐渐被实用(当然,大部分现在的论文都是忽悠人的,几乎是一定不会被实用的),而更有可能的是,会催生出新的控制算法。其中自适应、自学习类的控制算法(很可能底层还是PID,这些算法在PID的上层)是最需要的。&br&&br&为什么呢,因为毕竟过控类的,乃至登月,几乎谈不上扩展性的问题。反正登月就这一套东西,过控类很多时候也都是如此,即使复制多套,也会有专门人员再到现场逐个的调。但未来消费类产品,比如无人机、无人车什么的,那就不一样了,有点像手机,但又比手机的“控制”复杂的多。再比如无人地铁,空车跟满人的时候,质量差很大,这是最起码的自适应吧。当然可以想见,这自适应是上层,底册的电机电流转速控制当然还是跟之前一样。&br&&br&其实这辨识,不仅包括系统,也应包括信号,有时叫干扰。不过这方面有不少实际应用了,因为比较好处理,很多时候前馈抵消掉就行。&br&&br&鲁棒控制其实处理的是确定的不确定性,known unknown,其实算不上真的鲁棒性,因为还是需要确定模型来刻画不确定性的。真正的鲁棒性,要能处理不确定的不确定性,unknown unknown。伯德图频谱分析算是一个这方面的好结果。&br&&br&其实越是到底层,其控制算法参数调节的‘物理意味‘越大。什么意思呢,其实不仅是工程经验还是理论都告诉我们,很多时候没有好坏,只有trade-off。比如disturbance attenuation或叫disturbance rejection,即各个频率点的干扰机制幅值,其平均值是大于等于一个常数的(不仅针对LTI的控制器,对任意causal的控制器也有类似结果)。这就意味着,再先进‘花哨’的控制器,总是要满足这个性能极限,不能做到所有频段干扰抑制强,都是按下葫芦起了瓢。也就是说,大多数时候不能说哪个控制方法更好:一个控制器高频干扰抑制强低频弱,一个低频强高频弱,怎么比?这里的干扰,包括确定的干扰,分析其各个频率的分量;也包括随机干扰,分析其功率谱。&br&&br&还有比如快速的动态响应,往往意味更大的控制器信号输出,也就意味着执行机构更高的能耗。这也是个trade-off,比如有的控制对快速性要求不高,但想降低能耗;有的则想尽办法增加快速响应。&br&&br&还有响应速度与精度的trade-off。其实这个很复杂。高频干扰或噪声时,当然直接trade-off,因为速度要求带宽大(其实是频谱更平),但高频就进来了。但是如果干扰在低频,那就不存在矛盾了。或是如果在各个频率很平均,那要降低方差,也须使得系统的频率响应较平。而且这还是说的干扰或噪声跟reference一个地方进来的,因为响应速度主要是说跟reference的响应。干扰或噪声如果从其他位置进来,比如传感器,或执行机构,或直接在系统输出上,分析就更复杂了。先不展开了,有感兴趣的再说。&br&&br&说到性能极限,岔开说状态估计吧。卡尔曼滤波本质之一是,每一步,两个两个的,把预测值(基于之前的测量值)跟测量融合在一起,把能降低状态估计方差的所有信息都用上了。用在数据融合,比如加速度计跟陀螺仪的融合,也是大概如此。在其假设下已经做到极限了。&br&&br&性能极限还有另外一种用处。比如一个框架,EKF,经验和理论都tell说,在某种问题,调来调去,也就这么着了,到顶了。要想提升只有换另一个框架了,比如UKF。&br&&br&控制中也有类似问题。知道了这个极限,那么也就心里有数了,比如调PID,什么能做到,现状离做到还有多远。什么不能做到,想要做到应该换什么别的控制框架,或是在PID上面加什么机制。&br&&br&就现在来看,PID上面,真正能用的,应对不确定性的真正的鲁棒性的控制机制,自适应控制机制,容错控制机制,现实中都非常需要。还有真正能数据化的PID调参机制,什么意思呢,就是把靠经验的调参方法,是不是能‘自动化’一点,即使一开始用专家系统或模糊。还有就是真正能用的故障诊断。&br&&br&这里PID还有一个有意思的特性,就是不仅对被控对象乃至干扰鲁棒,就是改变一些其实也没大不了,只要不是在太critical的位置。而且对PID本身的参数鲁棒,三个参数改变一些也没多大大不了。别小看这一点,很多控制算法不行。&br&&br&其实说到根本,这些控制算法、估计算法等,不过是某个框架下调参数。不管用什么方法,找到了那个现实中好用的框架与参数,就可以用。最简单的例子,只用PID中的K,有的人用工程经验,有的人用理论等,最后找到的那个K可能差不多。参数越少的时候,接近物理的经验方法其实越有优势,PID本身三个参数,加上改进方法,多是有很强的物理‘意味’。而且串级的话,可以PID一层层的调。但参数一多,离物理越远,人的经验可能很难顾的过来,这时候理论就有其价值了,但也要在整体上把物理搞清楚。&br&&br&物理真正搞清楚了,剩下的就是数学、理论了,而且理论的分析会跟现实惊人的接近。否则的话,物理没搞懂,不知道发生了什么,效果好不知道为什么好,也就不知道什么时候会出问题,更别提出了问题该怎么办了,在这种情况下,说理论能用那只是一厢情愿而已。&br&&br&'If Thomas Edison had a needle to find in a haystack, he would proceed at once with the diligence of the bee to examine straw after straw until he found the object of his search. … I was a sorry witness of such doings, knowing that a little theory and calculation would have saved him ninety percent of his labor.' --- Nikola Tesla&br&&br&过度阐释一下。&br&&br&特斯拉说,理论和计算可以节省labor,这是当然。以控制器设计为例,最一般的,控制器的输出是过去所有误差的函数,u_k=K_k (e_k,...,e_0)。但如此这般,没有任何结构,没有任何框架,K_k的空间也太大了。这时候,如果用PID(PID也是理论啊,而且作为理论框架几乎无处不在,只不过调参很多时候是靠经验),那就把K_k的参数空间一下子减少了很多。&br&&br&卡尔曼滤波、预测控制等等,也多是如此。作为理论框架,提供了结构,一下子减少了参数空间。&br&&br&但特斯拉说,减少了90%的labor。即还是要有labor的,主要是在调试、调参上。PID的P、I、D,卡尔曼滤波的Q、R与初值,预测控制的时域长度、优化目标等。&br&&br&这调参的labor还能再减少吗?靠经验当然可以。同时,逐渐的有理论的调参方法,在实际中被证明可用。而这是所有这些算法做到真正自学习、自适应的必经一步。否则的话,要重度依赖一些基于经验的规则库,像专家系统、模糊等。&br&&br&但这一步也是减少,不是一锤子定音。因为理论的计算,终归要基于模型。而模型的建立,可以处理known known,乃至可以处理known unknown(鲁棒等),关键在于找到unknown known(体现水平的关键),但总是无法处理unknown unknown的。但如果前三个,known known,known unknown,unknown known,处理的好,作为实际调参的初值,乃至提供大致范围,也就省了labor,特别是unknown unknown足够小时。&br&&br&其实很多时候,unknown unknown都不大。但为啥理论跟实际差这么远呢?关键在于unknown known。比如有很多环节,信号或系统,明明是确定的,有规律的,可以预处理抵消掉或有其他方法处理(比如前馈控制,估计中也有类似trick),但常常被当作随机的。这样的话,代价就是把压力放在了算法上面。&br&&br&特斯拉说:爱迪生啊,看到一个工程问题,上来就调,试错法。对此我那是相当无语。很多时候,所谓经验,不过是还未找到规律、模型、理论的raw data,但找不到不代表不存在,而且从历史来看,是一定存在的,找到一个就是科学的一次进步。摸索当然是对的,是积累经验,但如果能总结出规律,做出模型,乃至理论框架,那就可以节省很多时间啊。纯属虚构。。。&br&&br&&br&岔开一句,也许控制系统下一步的发展还是要向人(或其它生物)来参考。什么意思呢?比如《最强大脑》中曾有一期是两位盲人,一个通过发出响声,一个通过吹风,来定位。这不就很像现在的声纳,乃至Lidar吗?视觉还基本没用上。而从人的角度来衡量的话,声纳等对‘定位算法’的要求,可比视觉大多了。再比如单腿站立,或其它需要保持平衡的情况,闭着眼睛与睁着眼睛可就差远了。&br&&br&还有一期,是比赛通关激光光线,蒙上眼睛,则对身体本身控制的精度要求高非常之多。这不就像现在没有视觉的控制吗。还有,闭着眼睛写字,那是人类都几乎无法很好完成的任务。&br&&br&控制算法要能处理known known,known unknown,unknown known,unknown unknown。&br&&br&只此一件的控制系统,在较为确定的环境里工作,参数可以专门针对硬件,调到很好。但也会跟温室一样,系统乃至环境的很多东西有明确的规定,甚至细到某个螺丝要拧几圈半,外界的干扰要可忽略,等等。如此的系统,有时可以应用上较为复杂的控制算法,也就没有什么好稀奇的:known known知道,unknown known能通过对系统不断加深理解变成known known,known unknown、unknown unknown则可以通过对系统和环境的控制减少到可忽略。&br&&br&但商业化产品中的控制系统,上量之后件件之间有差距,加上使用环境不确定的话,known unknown、unknown unknown都会大,而控制算法要能鲁棒(不仅限于传统鲁棒控制中的鲁棒)到可以处理到这些,即使known known、unknown known处理到最好。&br&&br&这里的known与unknown,视具体情形,可以理解成,certain与uncertain,predictable与unpredictable,等等。如是便可分为,certain certain,certain uncertain,uncertain certain,uncertain uncertain;predictable predictable,predictable unpredictable,unpredictable predictable,unpredictable unpredictable。看似说的废话,排列组合,但如果真的有个实际问题,如此可以看得比较清楚。而且可以在不同的层面看。&br&&br&比如一个信号,近似等于个高斯白噪声,用过去数据,估算出均值与方差,是known known。但肯定不准的,因为现实中就不存在标准的高斯白噪声,于是做出一个误差区间,有各种做法,算是known unknown。但known known跟known unknown加起来,也还是与实际有差距,是unknown unknown,是there is nothing you can do about it的了。但常被忽视的是unknown known,比如这个信号里面,可以分离出一个周期信号(不一定是正弦),是一个干扰。知道之后,unknown known变成known known。如此等等。&br&&br&前面说了,可以从不同层面考虑,比如信号分成确定部分和随机部分,确定部分是known known。但确定部分与实际的确定部分有差别,是unknown known。随机部分,知道分布的话,是known unknown。随机部分也与实际的随机部分有差别,是unknown unknown。如是如是,不一而足。从这个层面分析,不如上一段中的分析对实际有指导意义。&br&&br&当然还有系统。比如一个系统,有输入输出数据,建模、辨识出一个LTI模型,有参数,是known known。但这个模型肯定不是完全吻合数据,所以要给一定的不确定性,比如在参数上,可能有个区间,是known unknown。即使加上这个区间,也还是与实际有差别,是谓unknown unknown。但如果一分析,发现这个模型其实可以分离成一个LTI模型,加上一个比如Wiener模型,就是unknown known被发现了。 &br&&br&当然也可以在不同的层面分析。&br&&br&&p&参数很多,花时间调,总能调出个鼻子乱舞的大象,特别是在仿真中更是如此。但物理学的历史告诉我们,这个时候,应该是存在更有结构化的理论框架。当然,这样的理论框架,如PID,如Kalman滤波,等等,也还是留有一定的参数让在实际中调,因为known unknown与unknown unknown,是另一个层面的问题了。&/p&&br&物理学中有个著名的known unknown,测不准原理。但也有问题,有无大一统理论?&br&&br&&p&不能得到某个现实的工程对象到底是怎么运转的,只能得到现实世界的一个数学模型。模型与现实之间的差距,是一定存在的,只能说慢慢减少。也就说unknown一定存在,能做的仅仅是让更多的变成known。&br&&/p&&br&&p&非线性泰勒展开看来要尤其注意了。&/p&&br&&p&假设一个系统比如为LTI或一个信号比如为高斯白噪声时看来要注意了。&/p&&br&&p&模型不能解释实际,那就是模型错了。&/p&&br&&p&时域、频域,乃至熵域,还有各种变换如小波等,等等等等,可以从不同角度分析同一个问题。&/p&&br&&br&别就认为自己擅长的那个模型就好,啥都往上套。这里的模型,也可以改成算法,等等。&br&&br&各种数据预处理看来也不是随便就可以做的,有时候可能处理掉很重要的信息。&br&&br&模型与现实之间是有差距的。即使在模型中,理论或仿真,算法可以调到象鼻子乱舞,乃至无所不能,那也不过是模型。反正参数可以随便设,随便调。拿到现实当中呢?&br&&br&即使现实中可行的,有的算法是一万次成功一次,算是做个演示;有的成功失败各半,那就剔除失败时的数据或场景设定等等;而有的则一万次几乎都可以成功,乃至可以达到六西格玛。等等。&br&&br&信号、系统等等的数学模型都是假的。最好的模型就是信号、系统等等本身。但是太复杂,有太多的因素,所以我们不可能一一考虑。这个时候,我们就要把它们简化,把其中最重要的因素抽取出来,这就形成了我们的数学模型。&br&&br&但是。有一个很关键的问题就是,你怎么才能知道,这些因素中,哪些是可以舍弃的,哪些是必须要提取出来的呢?这个从数学逻辑或者算法的本身你是找不到答案的,这个需要你对信号系统的物理本质的深入理解。所以,要把数学的实用价值作用发挥出来,你不但要通数学,通算法,还要通物理,通工程。&br&&br&什么意思呢?&br&&br&不基于模型的算法,可以直接在真实世界来调。但问题是,调也只是在特定的环境之下,如果环境变了呢?而且这样的话,永远做不到阵阵的自适应、自学习算法。&br&&br&基于模型的算法,调是针对模型来调的,不是针对真实世界来调的。只不过是希望模型跟真实世界“差别”不大,因此算法在实际中的效果也与在模型中“差别”不大。不论是数据的拟合,还是系统的辨识,等等,关键问题就在于怎么样判断哪些是可以舍弃的,哪些是必须要提取出来的。&br&&br&当然,这个问题可以从不同层面理解,也不限于信号与系统。&br&&br&一&br&&br&PID/PI/PD/P&br&前馈&br&串级&br&处理饱和&br&Bode图等频域分析&br&性能极限的分析&br&鲁棒性分析&br&&br&二&br&&br&专家系统&br&模糊控制&br&自适应控制&br&预测控制&br&passivity-based控制&br&act-and-wait控制&br&迭代学习控制&br&容错控制&br&variance minimization控制&br&&br&三&br&&br&Smith预估器等内模控制&br&最优控制&br&H无穷和其它鲁棒控制&br&滑模控制&br&Bang-Bang控制&br&deadbeat控制&br&各种智能控制&br&&br&四&br&&br&look-up table&br&系统辨识&br&Kalman滤波&br&&br&五&br&&br&以上当然有overlap&br&&br&另一方面,也可有组合,如:&br&专家系统PID&br&模糊PID&br&自适应PID&br&容错PID&br&&br&乃至&br&自适应专家系统PID&br&自适应模糊PID&br&&br&乃至&br&容错自适应模糊PID&br&。。。&br&&br&先列出来,以后增加解释&br&&br&---&br&&br&&br&改变系统带宽、时间常数、阻尼等等吧,在(控制)算法上做,其实远没有在物理(机械、电气)上来的直接。&br&&br&但是物理上改,比算法上改,“cost”大,周期长,很难iterate。&br&&br&很多时候,是物理部分(包括系统,乃至包括干扰和噪声)给定了,不能或者很难随便改的。这时候,看算法该能再优化到多少。这个时候,就体现出limitation的意义了。当然,这能优化多少,是由物理部分决定了的。&br&&br&再反过来说,limitation跟物理部分的关系,其实可以指导第一步时物理部分本身的设计跟改造。 &br&&br&---&br&&br&如下的几段,本来是删了的。没曾想网上流传的删之前的几个版本(希望大家以后转载注明出处^_^)。在这里干脆把这一段,综合一下,再加上吧。&br&&br&&p&There is nothing more practical than a good theory. 这句话的出处,网上说辞不一。其中有很多人说是Maxwell说的。麦克斯韦方程,当然是good的theory。但并不是所有的理论都是good的。其实自动控制发展这么多年,good的理论并不多,PID、卡尔曼滤波自然在其中。但也并不是网上很多人传的那么少,绝不仅限于这两个。 如今的计算机时代,这些good的理论,因为要practical,一定还有另一个特点,那就是同时也是good的算法。&/p&&br&&p&先从Kalman Filter,卡尔曼滤波,开始说起吧。&/p&&br&&p&吴军老师的《文明之光》里,有简短的一段介绍,这里贴在下面(侵删):&/p&&br&&img src=&/7ed8d6c72aac79875ac6c_b.jpg& data-rawwidth=&905& data-rawheight=&1140& class=&origin_image zh-lightbox-thumb& width=&905& data-original=&/7ed8d6c72aac79875ac6c_r.jpg&&&br&&p&不过纠正一下,确切的说,卡尔曼滤波是个估计算法(估计过去叫平滑smoothing,估计现在叫滤波filtering,估计未来叫预测prediction)。控制用的是最优控制。不过两者都是基于状态空间方法,因此被统称为现代控制理论(时域)。其实状态空间方法中的很多概念,如可控性/可观性,也都是卡尔曼提出的。&/p&&br&&p&卡尔曼之前,控制与滤波理论中,经典控制理论(基于传递函数方法,频域)占据主流。而他几乎是凭借一己之力,扭转大方向到时域。有意思的是,卡尔曼到了晚年(仍在世),却到处推广一些的频域的想法。卡尔曼还曾讨论预测控制。模型预测控制(预测控制,Model Predictive Control,MPC,Predictive Cotnrol,Receding Horizon Control,Moving Horizon Control,Dynamic Matrix Control),另一个good theory,之后也会谈及。其实别的不说,就看这么多不同的名字,不同小领域的人们给它的,就知道它应该是用处不少的。&/p&&br&&p&卡尔曼何许人也,&a href=&///?target=http%3A//en.wikipedia.org/wiki/Rudolf_E._K%25C3%25A1lm%25C3%25A1n& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Rudolf E. K??lm??n&i class=&icon-external&&&/i&&/a&,半个数学家。想必很多第一次接触卡尔曼滤波的推导时,都会有这个疑问,这么数学化的东西,还这么难推导,在现实中能用么?难道比用了这么多年的频域滤波靠谱?但它就是能用。而且频域滤波怎么调都调不到卡尔曼滤波的效果,因为卡尔曼那滤波已经不是线性时不变的了,而是线性时变的。这才是good的theory,已经超出了所有已有的框架了。&/p&&br&&p&针对非线性系统,有EKF(扩展卡尔曼滤波,Extended Kalman filtering),UKF(无味卡尔曼滤波,Unscented Kalman Filtering)等。其中这UKF,是Simon J. Julier教授(&a href=&///?target=http%3A//www0.cs.ucl.ac.uk/people/S.Julier.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&www0.cs.ucl.ac.uk/peopl&/span&&span class=&invisible&&e/S.Julier.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A//www.ieeeghn.org/wiki/index.php/First-Hand%3AThe_Unscented_Transform& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&First-Hand:The Unscented Transform&i class=&icon-external&&&/i&&/a&)的结果,也是个good的theory。实时应用中越来越多用到,比EKF准确,比Particle Filter(粒子滤波,PF)速度快。当然,PF的应用也也越来越多。说起Particle Filter,不得不提Monte Carlo算法。是冯 诺依曼与乌拉姆提出的。&/p&&br&&p&所有的这些,都是理论化的,有的乃至很艰深。但同时却在实际中用的很多,乃至随处可见。可有趣的是,数学家不认为这些是数学,而卡尔曼、香农等,甚至都不被认为是数学家。当然也不认为是工程师,因为搞工程的,却觉得这些都是数学。从这一点上,卡尔曼、香农等的理论,其实更像是物理学,人造系统的物理学。传统理论物理学,是研究自然的,实验物理学家觉得是数学,但数学家不承认是数学。这一点上,尤其相似。&/p&&br&&p&回到原问题,但并不是说所有艰深的理论都能用。其实绝大多数都不能用。这之间的差别在什么地方呢?&/p&&br&&p&一个朋友说,曾被卡尔曼的学生之一的Y Yamamoto(&a href=&///?target=http%3A//www-ics.acs.i.kyoto-u.ac.jp/%7Eyy/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Yutaka Yamamoto's Website&i class=&icon-external&&&/i&&/a&)教授“训”了一顿,仅仅是因为自己在讲述一个问题的assumptions(假设)的时候,觉得不大重要,叙述得不大严谨。Yamamoto教授直接就说,作为engineer,也不能sloppy with math,也提到了卡尔曼经常对engineers' sloppiness with math很不满。其实就词典,Yamamoto教授曾写过一篇文章,My Florida Days with Rudolf Kalman (&a href=&///?target=http%3A//ieeexplore.ieee.org/xpl/abstractKeywords.jsp%3Farnumber%3D5438286& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&IEEE Xplore Abstract (Keywords)&i class=&icon-external&&&/i&&/a&):&/p&&br&&p&These seminars were not like the ones I was familiar with. He often interrupted the speaker and started asking questions. Some questions seemed to take the speakers off track. He would pose a question on whether the theory is based on the correct assumptions or in the right framework, or even the right definitions. As a starting Ph.D. student, I was not aware how important it was to question whether we base our new theory on “right” definitions. In an ordinary seminar, we would naturally take the attitude that a definition is, after all, a definition, and we would hold our breath until we see the outcome. The seminars at the Center were very different. Rudolf Kalman always tried to see whether the theory is built on a sensible and fruitful definition.&/p&&br&&p&I soon became more comfortable with examining basic hypotheses and saw how important it was to do so. Obviously, such an attitude is also very time consuming, but I was convinced that it is the right way to understand and build theoretical developments. Later his favorite citation was one from Newton, “Hypotheses non fingo.” (I do not invent hypotheses.) My candid interpretation would be “I do not fiddle around with hypotheses.”&/p&&br&&p&He always emphasized clarity in understanding. His frequent usage of the phrase “What is crucial here is …” reflects how he places emphasis on clarifying the role of certain key ideas. Merely proving a theorem is obviously not enough for understanding a problem. What one needs to see is the overall structure, how a certain assumption plays a crucial role in a critical step of the theory. He has an incredibly deep intuition for seeing the critical steps in the overall structure of a problem. This intuition played a great role in formulating the filtering problem in the state-space theory. That theory has flourished as Kalman filtering, and this is merely one outcome of the state-space approach that he initiated in the late 1950s.&/p&&br&&p&而牛顿的原话,是这样的(&a href=&///?target=http%3A//en.wikipedia.org/wiki/Hypotheses_non_fingo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hypotheses non fingo&i class=&icon-external&&&/i&&/a&):&/p&&br&&p&I have not as yet been able to discover the reason for these properties of gravity from phenomena, and I do not feign hypotheses (&i&&b&Hypotheses non fingo, &/b&&/i&&a href=&///?target=http%3A//en.wikipedia.org/wiki/Latin& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Latin&i class=&icon-external&&&/i&&/a& for &I feign no hypotheses,& &I frame no hypotheses,& or &I contrive no hypotheses&). For whatever is not deduced from the phenomena must be and hypotheses, whether metaphysical or physical, or based on occult qualities, or mechanical, have no place in experimental philosophy. In this philosophy particular propositions are inferred from the phenomena, and afterwards rendered general by induction.&/p&&br&&p&卡尔曼滤波的假设很明确,线性系统(可时变),加性高斯白噪声,最小方差意义下,是最优滤波器。不满足这些假设,就不是最优。还有个结果,就是如果系统是非线性的(可时变),加性高斯白噪声,最小方差意义下,是最优的线性滤波器。&/p&&br&&p&而有如此严格的假设界定,才产生了各种之后的如EKF,UKF,PF等的结果,解决非线性时,卡尔曼滤波不是最优的情况下的问题。其中PF又可处理非高斯的估计问题。非白噪声的问题也有相应的处理方法。这些EKF,UKF,PF等,都是非线性时变的滤波器了。&/p&&br&&p&卡尔曼滤波本身是线性时变的,稳态时趋近一个线性时不变滤波器,跟发现卡尔曼滤波器之前的频域滤波器的结果一致。也就是说,到了对偶的控制问题,variance minimization control,线性系统(可时变),加性高斯白噪声,最小方差意义下,最优的反馈控制器也是线性时变的。而PID是线性时不变的,所以PID不是最优。类似的,系统是非线性的(可时变)时,也有类似结果。&/p&&br&&p&Yamamoto教授其实也不愧为卡尔曼的学生,发明了YY Filter,也是以自己的名字命名的。有一篇文章,Signal reconstruction via H ∞ sampled-data control theory - beyond the Shannon paradigm (&a href=&///?target=http%3A//ieeexplore.ieee.org/xpls/abs_all.jsp%3Farnumber%3D6072311& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&IEEE Xplore Abstract&i class=&icon-external&&&/i&&/a&),关键词有两个,一个是把鲁棒控制的H无穷算法引入到数字信号处理中的sampling与reconstruction中;另一个是已经超过了香农、奈奎斯特 Nyquist 采样定理(&a href=&///?target=http%3A//en.wikipedia.org/wiki/Nyquist%25E2%Shannon_sampling_theorem& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Nyquist&i class=&icon-external&&&/i&&/a&)的框架了(其实原问题也已经不一样了)。&/p&&br&&p&一个朋友说,Yamamoto把这个专利卖给某日本的公司,好像是Sanyo,每一件产品抽专利费,赚了很多钱。&/p&&br&&p&说到这里,想起来之前一个朋友(搞电力电子的)说,好像是一对夫妻,原来学术界的,后来创立了一家公司 &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&One-Cycle Control&i class=&icon-external&&&/i&&/a&,as its name indicates,做电力电子方面的control。其实电力电子方面,现在的智能电网,有非常多的控制问题。&/p&&br&&p&在网上看到两段话:&/p&&br&&p&冯纯伯院士:电力系统的实践与研究结果都表明:为抑制电力系统中的低频振荡,提高系统的稳定性,在多机电力系统中设置稳定器(PSS)是一种有些有效的方法。…为了进一步提高理论的普遍性,我又深入研究了PSS在镇定电力系统中的低频振荡和提高系统稳定性的作用机制。由于PSS的设计只能取发电机组的本组局部信号,所以它是一种分散控制结构的稳定器。多级电力系统作为一个大系统,其中的低频振荡能否被PSS分散镇定,这一问题的研究无疑有着重要的理论价值与实际意义。虽然,当时国际上已展开对PSS的分散镇定作用的研究,但还是停留在一些现场试验、仿真和实践的阶段,还未提高到理论上来分析和证明。然而这些结果已经表明,PSS确实能起到分散镇定低频振荡的作用。我利用大系统理论中的‘固定模态’的概念及其定理,证明了多机电力系统中引起低频振荡的机械振模,在PSS的分散控制结构下都不是‘固定模态’,因而在理论上证明了PSS具有分散镇定多机系统中低频振荡的作用。但是,究竟需要装多少台PSS即可镇定系统的低频振荡问题,还有待于进一步的研究。&/p&&br&&p&杨叔子院士:我还记得,在80年代初期,我一方面研究了力学中采用有限元方法解决大型结构及其子结构的设计问题;另一方面,我也在学习自动控制理论中采用递阶控制算法解决大系统及其子系统中的设计问题。当时,我以为从数学上将,这两者是一回事。由于客观原因,这方面研究中断了,至今我深感可惜。当然对从事力学与自动控制研究的学者而言,这很可能是一个十分简单的问题。但对于从事机械工程的我来说,确是具有十分有效的启示的。&/p&&br&&br&---&br&&br&另一个答案:&a href=&/question//answer/& class=&internal&&控制理论到底有什么用? - 小心假设的回答&/a&&br&&br&---&br&&br&任何控制理论和控制算法的应用,都得看具体问题具体分析。德国机械控制、日本精密控制、欧美航空控制、过程控制等等的工程师,为什么别人可用上新的理论?不要某个新的理论、新的算法有别人用上了,效果好了,如果知道了,就跟着用、跟着山寨比谁都快。但是别人没用上之前,或者别人用上了不知道,就盲目地在那里固步自封,说还是要靠所谓的经验,所谓的调参,但说来说去的经验啊,也还不是不成体系。德国机械控制、日本精密控制、欧美航空控制、过程控制等等的工程师的,也有经验啊。&br&&br&如果因为偏见导致中国的控制工程水平一直赶不,这可不是闹着玩的。当然也算追赶得不容易。但也要想一想,既然是落后的,那就要反思落后在什么地方?一定是自己本身有什么地方做得不够好。落后的原因有哪些?用不上、或者说不会用新理论、新算法有没可能是原因之一呢?如果是的话,那就ironic了!&br&&br&用理论也得按照信号和系统模型的假设。当然也并不是说什么样的理论都能用。甚至说大部分理论是不能用的。如何甄别这两者,才是功力所在。而不是一棒子打死。难道人类的控制科学,就到此止步了?不要人云亦云。 &br&&br&---&br&&br&模糊控制创始人Lotfi Zadeh在The Evolution of System Analysis and Control: A Personal Perspective &a href=&///?target=http%3A//ieeexplore.ieee.org/xpl/articleDetails.jsp%3Farnumber%3D506401& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&IEEE Xplore Abstract&i class=&icon-external&&&/i&&/a& 一文中的对于Bellman动态规划的回忆:&br&&br&In the early '60s my doubts were not shared by many. The ascendancy of mathematical methods was unchallenged, and Lyapounov's stability theory and differential-equations-based theory of nonlinear systems moved to the center of the stage, as did the problems relating to optimal control and systems optimization. The highly original work of Rudy Kalman on controllability, observability, and filtering was at the center of attention. Another contribution of major importance, whose impact transcended disciplinary lines, was Bellman's development of dynamic programming. I became acquainted with Bellman's work in 1954 and perceived dynamic programming as a powerful tool of wide applicability. I suggested to Bellman to submit to the IRE Proceedings a paper describing his work. &b&He did so, but to my embarrassment his paper was rejected by the referees, who felt that Bellman did not provide convincing examples of practical applicability.&/b& It is ironic that about 30 years later, Bellman was awarded IEEE's Medal of Honor for his development of dynamic programming.&br&&br&---&br&&br&未完待续。一己之见,欢迎补充指正~
一种可能,别人用上了,效果好,自己用不上,乃至说不知道怎么用,只能用PID,这说明自己落后。 另外一种可能,有很多所谓先进的理论和算法确实很难在实际中用,根本就是为了发论文而做的。 还有一种可能,大家都在用PID,但控制效果远不能令人满足,只是暂…
R.E. Kalman最大的贡献是Kalman Filter,一个算法。&br&&img src=&/abb60a58f3aab5cf4f73_b.png& data-rawwidth=&565& data-rawheight=&466& class=&origin_image zh-lightbox-thumb& width=&565& data-original=&/abb60a58f3aab5cf4f73_r.png&&&br&作为一个中二病尚未随着年龄增长而痊愈的人,我直到现在依然相信着“我们的征途是星辰大海”,并且继续像小时候那样看到飞机火箭就乐不可支。只不过小时候看飞机火箭只是看个热闹,而现在看能看到动力学建模状态估计控制器设计。因此也乐不可支地发现B-52轰炸机里有一个一分钟更新一次的Kalman Filter,阿波罗飞船里用真空管实现了一个Kalman Filter。我在好几个知乎的回答里都提到了Kalman Filter的重要意义,比如这一个:&a href=&/question//answer/& class=&internal&&上古时期的程序员都有哪些当今普通程序员无法想象的神级操作? - YY硕的回答&/a&&br&&br&5月份有个知乎朋友写了一篇&a href=&/p/& class=&internal&&策略不给力?来一发卡尔曼滤波 - Fitz Hoo的文章 - 知乎专栏&/a&,影响很大,我有一个做金融的朋友看完以后也来问我这个东西有什么神奇的。由于我听过很多“控制科学家转行去搞金融搞得风生水起”的故事,所以看到Kalman Filter在金融上有应用并不稀奇——还有人拿Kalman Filter去分析宏观经济系统呢!&br&&br&Kalman Filter,一言以蔽之,就是对一种按照某种固定方式变化的系统,用最优的方法去估计这个系统中某个状态的值。R.E. Kalman的贡献,一方面是证明了他提出的方法是“最优”的这件事,另一方面则是完善了一整套理论去分析这种“按照某种固定方式的系统”。这里说的“按照某种固定方式的系统”,在飞机上,可以是飞机的速度、位置,也可以是飞机上某个零件的温度、压力;在机器人上,可以是一个小车的速度、位置,也可以是一个无人车周围的障碍物;在金融上,可以是股票的走势,也可以是某个公司的营收情况;在经济学上,可以是整个经济体的增长率,也可以是某种商品的进出口额…… 由于世界上很多变化的事物,都可以抽象成“按照某种固定方式的系统”,而且人们都有估计这些事物的“状态”的需求,并且无数应用证明Kalman Filter在这些情况下都是适用的,因此Kalman Filter能够满足人们的需求。&br&&br&能够估计系统中某个状态的值之后,那能干的事情就多了。谈论机器人的例子(EKF-SLAM)可能有点抽象,我们来说个金融的例子。如果我设计了一个Kalman Filter能够估计股票的走势,那么我就可以提前判断出股票明天是涨是跌,我可能判断不了更久以后的情况,但是只多判断一天,我也已经可以通过高频交易的方式挣到钱了(我只是根据知乎网友的说法推断一下,毕竟我不是做金融的)。此外,我们还能在很多学科和领域里发现“状态估计”的重要性。&br&&br&R.E. Kalman在给出Kalman Filter的算法之后,进一步孜孜不倦地围绕Kalman Filter完善了“线性系统估计”的一整套理论。我们前面提到的“按照某种固定方式的系统”,可以用包含矩阵、向量的微分方程来表示,也被叫做线性系统。Kalman给出了线性系统分析的方法,从而给现代控制理论的发展提供了非常坚实的数学基础,这一点,在 &a data-hash=&9c8bf9bb408c80d2ea3fa0dd68e7160a& href=&///people/9c8bf9bb408c80d2ea3fa0dd68e7160a& class=&member_mention& data-editable=&true& data-title=&@我就像这个世界& data-hovercard=&p$b$9c8bf9bb408c80d2ea3fa0dd68e7160a&&@我就像这个世界&/a& 的高票答案中已经说的很清楚了。&br&&br&我在学习机器人学的过程中有那么几个瞬间曾经体会过数学之美,记忆最深的就是在学习Kalman Filter的过程中。当时先看《Probabilistic Robotics》,了解到Kalman Filter是贝叶斯公式的一种参数化形式,觉得很高级。后来又在港科大施凌教授的课上学到了linear estimation中把Kalman Filter看做是一种最小二乘估计,学到了三种证明Kalman Filter是最优线性估计的方法,没有一种和《Probabilistic Robotics》中重复。我对那些能够连接不同学科的知识一向非常感兴趣,而Kalman Filter居然能够把概率学第一定理——贝叶斯定理,与线性代数最重要的工具最小二乘估计联系起来,这让我非常赞叹。Kalman Filter的证明过程中用到了很多矩阵和线性代数的变换,实现他们又用到了很多数值方法,在研习的过程中我感觉到了沉浸在数学中的喜悦。&br&&br&后来我在研究生期间发了两篇ICRA的论文,其中一篇就是把Kalman Filter的变种SRUKF应用在多旋翼飞行器的目标追踪上。在写代码的时候也深刻地发现没有什么状态估计问题是一个Kalman Filter解决不了的,如果有,那就用两个。&br&&br&有人说20世纪人类最伟大的发现是相对论和量子力学,然而我觉得20世纪人类最伟大的发现是1944年克劳德-香农提出的信息论,1948年诺伯特-维纳提出的控制论,以及1960年鲁道夫-卡尔曼提出的线性系统论,我把他们叫做系统控制技术三大理论。在 &a data-hash=&3d7b41a9de535bfb9f6a53f68f7afa7c& href=&///people/3d7b41a9de535bfb9f6a53f68f7afa7c& class=&member_mention& data-editable=&true& data-title=&@吴军& data-hovercard=&p$b$3d7b41a9de535bfb9f6a53f68f7afa7c&&@吴军&/a& 老师的《硅谷之谜》里,信息论和控制论还有管理学中的系统论构成了硅谷发展的奥秘。而对于飞机火箭和各种自动控制设备中,则是R.E. Kalman的线性系统论,连接了信息论和控制论。&br&&br&两次世界大战塑造了一个新的世界,也留下了很多待解决的工程问题、待细化的理论问题。飞得更快的飞机、打得更准的导弹对信号处理、建模以及控制都提出了新的要求,这些要求驱使科学家和工程师们开发新的理论和技术,也促成了系统控制技术三大理论的发展。信息论、控制论和系统论把人类送上了月球,并在之后几十年里贡献了新的传感器、工业机床和机器人、微机电系统等等。&br&&br&举一个最无处不在的例子:我们常用的机械硬盘,是通过一个微小的磁头去读取高速旋转的磁盘的。磁头的移动必须非常快非常准确,这样才能在每分钟七千多转的磁盘上读到数据。&br&&img src=&/142ae060ea_b.jpg& data-rawwidth=&451& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&451& data-original=&/142ae060ea_r.jpg&&&br&为了能够控制磁头的运动,首先要对磁头和磁头臂建模,建立一个线性系统(线性系统理论)。然后安装合适的传感器测量磁头的位置,传感器的测量需要经过处理和传输之后被磁头的控制器读到(信息论)。接着,磁头的控制器使用基于线性系统模型的LQG控制器去控制磁头的移动,这个控制器里就包含着一个Kalman Filter(控制论,线性系统理论)。所以我们可以说,Kalman Filter是现代控制理论的基石,它扮演着连接信息论和控制论的关键角色。&br&&img src=&/ef3feef0692_b.png& data-rawwidth=&670& data-rawheight=&397& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&/ef3feef0692_r.png&&&br&&br&当今世界是信息时代。互联网日夜不停地运转,支撑互联网的是无数的服务器,每个服务器都插着大量的硬盘,每个硬盘都带着一个Kalman Filter在不停地写入和读出数据。可想而知,世界上有多少Kalman Filter?&br&&br&R.E. Kalman先生虽然去世了,但是世界上有不计其数的、以他名字命名的Kalman Filter在日夜不停地运行,作为稳定世界的控制器默默工作着。他的精神化为代码,将永存在人类文明中。&br&&br&&br&@我就像这个世界的答案中提到这句话&br&&blockquote&His passing not only brought about personal loss but also a sad reminder of the passing of a golden era in systems and control.&/blockquote&&br&中文是&br&&blockquote&&b&他的离去带来的不仅仅是个人的损失,还悲哀的标志着系统与控制的黄金时代的逝去。&br&&/b&&/blockquote&我并不赞同这句话。在我看来,&b&系统与控制的黄金时代还没有到来&/b&。诺伯特-维纳和R.E. Kalman身处的二战后到人类登月前后的三十年时间,是&b&系统与控制的地理大发现时代&/b&。线性系统作为一种世间万物的抽象描述,蕴含了丰富的性质,其意义已经超过了自动控制技术本身,几乎可以被称作是物理了。以R.E. Kalman为首的前辈们,深入挖掘了线性系统的丰富性质,给我们揭示了自动控制系统背后的数学原理。其意义不亚于写出《自然哲学的数学原理》的牛顿。&br&&br&牛顿运动学指导了人类文明近三百年之后,人类才第一次基于牛顿的理论设计出火箭、能够探测引力和行星运动的卫星和深空探测器。而系统控制三大理论只诞生了半个世纪,我们尚未看到这些理论会给人类文明带来多大的贡献。火箭没有随着牛顿运动定律诞生,是因为人类没有足够的推进、燃烧、材料和通信技术。与此相似的,复杂高级的机器人没有随着系统控制理论诞生,也是因为人类还没有足够的材料、计算和传感器技术。&br&&br&我也毫不怀疑地相信,在未来的一百年中,在人类拥有了更多的技术之后,系统控制三大理论还会帮助人类造出更多的智能控制系统、机器人甚至是预测未来的机器。人类开始制造更复杂的机器人和智能系统的时候,&b&系统与控制的黄金时代才会真正到来。&/b&R.E. Kalman创立的线性系统理论,会被一代又一代的科学家和工程师们思考、研习、发展,我很自豪我也是其中的一员。
R.E. Kalman最大的贡献是Kalman Filter,一个算法。 作为一个中二病尚未随着年龄增长而痊愈的人,我直到现在依然相信着“我们的征途是星辰大海”,并且继续像小时候那样看到飞机火箭就乐不可支。只不过小时候看飞机火箭只是看个热闹,而现在看能看到动力学…
主要在工业机器人/机械臂领域,写一些本领域个人认为非常好的偏向总体概述和控制方向的资料,欢迎各位随时补充。&br&&br&&b&综述类:&/b&&br&&br&
综述类书籍的章节和内容设计偏向于教材,范围广,深度较浅,内容差别不大,看透1~2本即可。&br&&ul&&li&《机器人学导论》 John J Craig著,贠超 等译。综合类入门教材,从最基本的坐标变换讲起,内容涉及正/逆运动学、静力变换、操作臂动力学、轨迹规划、机械设计、控制等。&br&&/li&&li&《Robotics, vision and control fundamental algorithms in MATLAB》著名的Matlab 机器人工具箱Robotics Toolbox作者Peter Corke编写的机器人入门教材,书中的实例很多,都使用机器人工具箱编写,配合Matlab可以随看随试。&br&&/li&&/ul&
PS:该工具箱不仅包含工业机器人的内容,还包括移动机器人,视觉等很多相关模块,并且配有非常详细互动式Demo。上面提到的《机器人学导论》Matlab编程习题部分就要求使用该工具箱来完成。有感兴趣的同学可以到主页上去下载使用:&a href=&///?target=http%3A///Robotics_Toolbox.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/Robotics&/span&&span class=&invisible&&_Toolbox.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&img src=&/fae15bb2ba_b.png& data-rawwidth=&1165& data-rawheight=&508& class=&origin_image zh-lightbox-thumb& width=&1165& data-original=&/fae15bb2ba_r.png&&&br&&b& 机器人控制:&/b&&br&&ul&&li&《Robotics Modelling, Planning and Control》深入讲解机器人的建模,轨迹规划,运动控制,推荐。&br&&/li&&li&《Rigid Body Dynamics Algorithms》Roy Featurestone著,主要讲刚体的动力学建模,github上也有不少相关的代码可以参考。&br&&/li&&li&《Impedance Control:An Approach to
Manipulation Part1~Part3》Neville Hogan的阻抗控制三部曲,学习柔顺控制的必读论文。&br&&/li&&li&《机器人操作的数学导论》港科大李泽湘教授参与编写的一本经典书籍,从数学的角度系统地介绍了机器人操作的运动学、动力学、控制及运动规划内容,主要包含旋量理论、指数积建模,机器人动力学等内容,推荐数学好同学读一读。&br&&/li&&li&《Robot Control Overview: An Industrial Perspective》以ABB机器人控制器的历史和功能为例,介绍了工业机器人控制器的发展和未来展望,推荐阅读。&br&&/li&&/ul&&img src=&/e6bb3093de5cfaae74b5566afce6ecd1_b.png& data-rawwidth=&1082& data-rawheight=&488& class=&origin_image zh-lightbox-thumb& width=&1082& data-original=&/e6bb3093de5cfaae74b5566afce6ecd1_r.png&&&br&&b&百科全书类:&/b&&br&&ul&&li&《Handbook of Robotics》Springer版,机器人学的百科全书,有中译版,但市场上已经买不到了,大图书馆应该会有,用于资料查阅很不错。&br&&/li&&li&还有一本日本机器人学会编写的《机器人技术手册》,也属于百科全书类型的,有兴趣的可以找一找。&br&&/li&&/ul&&img src=&/0fb13abebd0c004_b.png& data-rawwidth=&861& data-rawheight=&477& class=&origin_image zh-lightbox-thumb& width=&861& data-original=&/0fb13abebd0c004_r.png&&&br&&br&&b&公开课:&/b&&br&
推荐斯坦福大学的机器人学,可以在网易公开课观看&a href=&///?target=http%3A///movie//J/M6TN5NEEU_M6TN61B3J.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&斯坦福大学公开课:机器人学&i class=&icon-external&&&/i&&/a&,偏重于讲机器的控制,主讲人是oussama Khatib教授,机器人领域的大拿,Springer版的机器人手册他是编者之一。&br&&br&&b& 安全规范:&/b&&br&&br&
最近人机协作机器人很火,cobots最重要的一个特性就是安全,了解主要的安全规范也很必要。&br&&ul&&li&《ISO 1 Robots and Robotic devices - Safety requirements for industrial robots - Part1 Robots》&br&&/li&&li&《ISO 1 Robots and Robotic devices - Safety requirements for industrial robots - Part2 Robot Systems and integration》&br&&/li&&/ul&
最新版的通用工业机器人安全规范,对机器人的控制器,机械本体,集成应用,工具,工件等各方面安全要求做了详细说明。&br&
还有《ISO/TS 15066 Robots and Robotic Devices -
Collaborate Robots》&br&&br&&b&开源项目:&/b&&br&&ul&&li&OROCOS,强大的开源工业机器人控制平台,有非常详细的文档,同时该项目的参与者基于OROCOS撰写了大量的高质量论文。网址:&a href=&///?target=http%3A//www.orocos.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Orocos Project&i class=&icon-external&&&/i&&/a&&br&&/li&&li&ROS-Industrial,ROS里专门针对工业机器人的包,提供里一个完整的框架,可以和市面上多款商业机器人通信并进行控制,logo很有意思~ 网址:&a href=&///?target=http%3A//rosindustrial.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ROS-Industrial&i class=&icon-external&&&/i&&/a&&/li&&li&ROS入门的话,推荐《A Gentle Introduction to ROS》 JasonM. O’Kane 著,写的非常清晰易懂,读过的ROS教程中写的最好的。&/li&&/ul&&br&欢迎关注:&br&&a href=&/onionbots& class=&internal&&OnionBots - 知乎专栏&/a&&br&&br&我们的公众号:&br&&p&&a href=&///?target=http%3A///r/LEWHnzHE0GyvrXX89xA_& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/r/LEWHnzH&/span&&span class=&invisible&&E0GyvrXX89xA_&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (二维码自动识别)&/p&
主要在工业机器人/机械臂领域,写一些本领域个人认为非常好的偏向总体概述和控制方向的资料,欢迎各位随时补充。 综述类: 综述类书籍的章节和内容设计偏向于教材,范围广,深度较浅,内容差别不大,看透1~2本即可。 《机器人学导论》 John J Craig著,贠超…
一位专业课的教授给我们上课的时候,曾谈到:filtering is weighting(滤波即加权)。 滤波的作用就是给不同的信号分量不同的权重。最简单的loss pass filter, 就是直接把低频的信号给0权重,而给高频部分1权重。对于更复杂的滤波,比如维纳滤波, 则要根据信号的统计知识来设计权重。&br&&br&从统计信号处理的角度,降噪,可以看成滤波的一种。降噪的目的在于突出信号本身而抑制噪声影响。从这个角度,降噪就是给信号一个高的权重而给噪声一个低的权重。维纳滤波就是一个典型的降噪滤波器。
一位专业课的教授给我们上课的时候,曾谈到:filtering is weighting(滤波即加权)。 滤波的作用就是给不同的信号分量不同的权重。最简单的loss pass filter, 就是直接把低频的信号给0权重,而给高频部分1权重。对于更复杂的滤波,比如维纳滤波, 则要根据…
就本人所知道的,卡尔曼滤波器广泛用于现在非常火热的无人机的飞行控制器上。&br&近年来由于传感器的迅速发展,价格越来越便宜,体积也越来越小,得以迅速广泛应用于各类消费类电子产品,包括小型无人机。&br&然而由于特性限制,单类传感器在大多数情况下无法获取准确的信息,因此需要融合多种传感器,得到最接近真实的数据(加速度计与陀螺仪的融合、INS和GPS的融合),这时候卡尔曼滤波器就派上用场了,与其说是滤波器,Kalman Filter实际上是一种最优估计方法。&br&当然了,实际情况中理论上只适用于线性系统的经典卡尔曼滤波器是不适合于大多数情况的,于是便有了EKF(Extended Kalman Filter) 和UKF(Unscented Kalman Filter)。大名鼎鼎的开源飞控PixHakw/APM便是全面使用了EKF算法,还有名气比Pixhawk低一点的OpenPilot飞控同样使用了EKF,而德国的一款开源飞控Autoquad则使用了UKF&br&&br&一些有关于卡尔曼滤波器 Kalman Filter 的参考资料:&br&&a href=&///?target=http%3A///thread-120-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&卡尔曼滤波-从推导到应用&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-116-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kalman滤波器从原理到实现&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-275-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&理解卡尔曼滤波器 (Understanding Kalman Filter)&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-277-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kalman滤波器――从牛顿运动定律说起&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-333-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&卡尔曼入门经典书籍:《Fundamentals of Kalman Filtering: A Practical Approach》&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-196-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&扩展卡尔曼滤波器(EKF):一个面向初学者的交互式教程&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-108-1-2.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开源飞控OpenPilot的扩展卡尔曼滤波(EKF)学习笔记&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///forum.php%3Fmod%3Dviewthread%26tid%3D110& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&科普:卡尔曼滤波&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-274-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&理解Kalman滤波的使用&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-109-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&一个开源的扩展卡尔曼滤波器(EKF)的C++库&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-276-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【卡尔曼】详解状态空间模型&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-8-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&加速度计与陀螺仪融合一阶互补滤波、二阶互补滤波、卡尔曼滤波核心程序&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///thread-242-1-1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&卡尔曼滤波在单片机上的使用&i class=&icon-external&&&/i&&/a&
就本人所知道的,卡尔曼滤波器广泛用于现在非常火热的无人机的飞行控制器上。 近年来由于传感器的迅速发展,价格越来越便宜,体积也越来越小,得以迅速广泛应用于各类消费类电子产品,包括小型无人机。 然而由于特性限制,单类传感器在大多数情况下无法获取…
&b&7月5日更新&/b&&br&------------------------------------------------------------------------------------------------------------------------------------------&br&&br&何毓琦老师的博客 &a href=&///?target=http%3A///home.php%3Fmod%3Dspace%26uid%3D1565%26do%3Dblog%26id%3D988496& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&科学网—Rudolf Kalman of Kalman
Filter fame passed away yesterday&i class=&icon-external&&&/i&&/a&&br&中最后一句写到:&br&&blockquote&&b&His passing not only brought about personal loss but also a sad
reminder of the passing of a golden era in systems and control.&/b&&/blockquote&翻译成中文就是:&br&&blockquote&&b&他的离去带来的不仅仅是个人的损失,还悲哀的标志着系统与控制的黄金时代的逝去。&/b&&/blockquote&顿时心里一阵悲凉。&br&&br&------------------------------------------------------------------------------------------------------------------------------------------&br&&b&美东时间日上午,这位时代的巨人永远的离开了这个世界。享年86岁。他为这个世界留下了伟大的遗产。&/b&&br&------------------------------------------------------------------------------------------------------------------------------------------&br&&img src=&/a163de34bf426beb3513d3_b.png& data-rawwidth=&652& data-rawheight=&646& class=&origin_image zh-lightbox-thumb& width=&652& data-original=&/a163de34bf426beb3513d3_r.png&&(以下是一些个人的总结与看法,难免有疏漏与错误之处,欢迎补充与指出。)&br&&br&总的来说,他的主要贡献有如下几个方面:&br&&br&&b&1. Kalman 滤波&/b&&br&代表文章:&br&Kalman [1960] &i&A New Approach to Linear Filtering and Predition Problems&/i&&br&Kalman [1961]&i&New results in linear jiltering and prediction theory&br&&/i&&br&
这个广为人知的东西已经应用到如今绝大多数的工程领域中。不需要做任何评价,来看看他本人是怎么说的。&br&&img src=&/14cecb470defcfdac86601_b.png& data-rawwidth=&1274& data-rawheight=&717& class=&origin_image zh-lightbox-thumb& width=&1274& data-original=&/14cecb470defcfdac86601_r.png&&&br&&br&&br&&b&2. 状态空间法:能控性、能观性与标准分解&/b&&br&代表文章:&br&Kalman [1960] &i&Mathematical description of linear dynamical systems&/i&&br&&br&除了“天才”还能怎么评价这个观点?直接开创了现代控制理论。&br&&br&&u&(说一点自己的小想法:陈省身活着的时候在南开一直着重强调数学素养,其中尤其要紧的是变中找不变的观点,其实能控性和能观性便是在选取不同状态空间的基下,这个变化中不变的量,当然也就抓住系统的本质特性。)&/u&&br&&br&&b&3. LQG问题&/b&&br&代表文章:&br&Kalman [1960] &i&Contributions to the Theory of Optimal Control&/i&&br&Kalman [1963] &i&When is a Linear Control System Optimal?&/i&&br&&br&整体上启发了状态空间上的最优控制与后来的状态空间H-inf控制理论。&br&&br&&b&4. 实现理论&/b&&br&&b&&br&K&/b&YP引理你听说过没?&br&&br&&b&5. 线性系统:模理论&/b&&br&代表作/文章:&br&Kalman [1969] &i&Topics in Mathematical System Theory&/i&&br&Kalman [1972 &i&]Algebraic structure oJ linear dynamical systems. III.Realization theory over a commutative ring,&/i&&br&&br&这个好像很少为人所知,但是也是一个天才的想法,开创了了后来线性系统代数理论。简单来说是将系统看成从输入空间(多项式环K[z])到输出空间(模)的同态映射f,同态核是主理想,而商环K[z]/Kerf则可看做是系统的状态空间,在上面用代数的方法研究系统的若干性质等等。&br&&br&我认为这个理论除了实际用处以外,已经达到了“数学之美”的境界了。&br&&br&直接上图吧……(暴露了我难看的字了吗……)&br&&img src=&/efd46adc29ab94e1b1b3f6ba5e733d16_b.png& data-rawwidth=&720& data-rawheight=&1280& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/efd46adc29ab94e1b1b3f6ba5e733d16_r.png&&&br&&br&&br&他还研究过线性系统族的理论,还有自适应控制中的自校正控制也可以追溯到Kalman [1958] 的研究。KYP引理中的K也是指他。&b&总之,他的思想已经的将他的时代远远抛在后面。&/b&&br&&br&最后推荐一本书,是纪念他60岁生日时候,他的学生与同事们写的。&i&Mathematical System Theory: The Influence of R. E. Kalman&/i&. 里面记载了他这一生的主要贡献,非常值得一读。Youtube上有两个他的讲座的视频,也是值得看的。&br&&br&------------------------------------------------------------------------------------------------------------------------------------------&br&7月5日补充:&b&Kalman对于数学领域的影响&/b&&br&&br&Kalman提出的解决一类奇异积分方程的状态空间方法,以及有理矩阵函数插值的状态空间方法等,在纯数学领域中也是有重要意义的。&br&&br&&b&-----------------------------------------------------------------------------------------------------------------------------------------&/b&&br&&b&Hypotheses non fingo. 他在几次演讲中总提到这句话,这大约就是他自己对他研究的评价吧。&/b&&br&&br&&img src=&/5ba62fe4a90d7ddd3c32_b.png& data-rawwidth=&573& data-rawheight=&355& class=&origin_image zh-lightbox-thumb& width=&573& data-original=&/5ba62fe4a90d7ddd3c32_r.png&&&br&&img src=&/a173c4b4ceecb6ed9f5f8be_b.png& data-rawwidth=&568& data-rawheight=&402& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&/a173c4b4ceecb6ed9f5f8be_r.png&&&br&&br&&br&&br&&u&&b&我想,这便是Kalman当年神采奕奕的样子了。&/b&&/u&
7月5日更新 ------------------------------------------------------------------------------------------------------------------------------------------ 何毓琦老师的博客
&p&如果有人问我做SLAM有什么必读书,之前我会说《Probablistic robotics》(概率机器人,已有中文版)和《Multiple Vision Geometry》(MVG),现在我会说这本书+MVG。&/p&&p&&br&&/p&&img src=&/v2-aa8ffb6f01e_b.png& data-rawwidth=&670& data-rawheight=&938& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&/v2-aa8ffb6f01e_r.png&&&p&&br&&/p&&p&这本书在我心目中至少和概率机器人一个地位,甚至比概率机器人要高。它的内容更新,理论也非常深刻实用。&/p&&p&&br&&/p&&p&草稿大约在网上挂了两年,Barfoot希望网友能够看到他的书并帮他勘误。我和其他几位同学都看过,也给Barfoot写过邮件讨论书中的一些问题。后来他觉得勘误差不多了,就交给剑桥出版了。今年年底应该能拿到纸质版的书籍。&/p&&p&&br&&/p&&p&西安交通大学出版社拿到了它的中文版权。我们小组正在努力翻译,中文版预计明年上半年能与读者见面。&/p&&p&-----------------------------------------------------------------------------&/p&&p&&b&内容简介&/b&&/p&&p&本书内容分为三个部分。&/p&&ol&&li&状态估计部分。重点是线性高斯系统的状态估计,然后非线性非高斯系统的状态估计。&/li&&li&三维空间运动部分。介绍了各种旋转+平移的表达,然后是非常详细的李代数。&/li&&li&应用部分。包括位姿估计,点云配准以及bundle adjustment。&/li&&/ol&&p&这本书能够帮你很快建立整套关于状态估计理论的框架,同时在三维运动方面,提供了充分但不那么困难的学习途径。此书的一大特点是将常见的理论统一在了一个大框架里面,所以各个知识点不再是分散的,你很容易看到它们之间的关联。&/p&&p&以线性高斯系统的状态估计为例,顺序大概是这样的:&/p&&ol&&li&有很多个时刻的运动和观测方程。&/li&&li&我们可以选择利用所有时刻的数据,来估计所有时刻的状态。这是一种批量的(batch)处理方式。&/li&&li&也可以用上个时刻的状态,结合当前的数据,递推到下个时刻,这是一种递归的(recursive)处理方式。&/li&&li&对于批量的,可以用最大后验概率(MAP)进行估计,也可以用贝叶斯推断(Bayesian Inference)进行估计。&/li&&li&详细介绍MAP的过程;&/li&&li&详细介绍贝叶斯推断的过程;&/li&&li&指出二者在线性高斯时是等价的,原因在于高斯分布的模与均值相等。并指出非线性非高斯情况不是这样;&/li&&li&说明Batch方式可以分解成前向和后向两个步骤,从而推出递归形式。&/li&&li&既有前向也有后向的叫做Smoother。介绍Cholesky smoother和Rauch-Tung-Striebel Smoother。&/li&&li&仅有前向的叫做Filter。介绍Kalman filter。&/li&&li&说明Kalman filter和MAP、贝叶斯推断的关系。&/li&&li&拓展到连续时间的情形。&/li&&/ol&&p&怎么样?是不是感觉逻辑特别清晰?&/p&&p&-----------------------------------------------------------------------------&/p&&p&当然你觉得清晰是比较理想的情况……实际看起来是这样的:&/p&&img src=&/v2-abdc1e0d65d9dde8e1b36ded42f89b97_b.png& data-rawwidth=&649& data-rawheight=&907& class=&origin_image zh-lightbox-thumb& width=&649& data-original=&/v2-abdc1e0d65d9dde8e1b36ded42f89b97_r.png&&&p&嗯第三章大约有两百多个公式……其他几章少说也是一百五到两百多一些。所以本书适合那些&b&看见公式就来劲&/b&的同学。嗯……如果您还不是那样的人,相信啃完本书至少也不虚任何公式了。&/p&&p&作为建议,您最好能够&b&跟着作者推导每一条公式&/b&,否则看此书可能收获不大。好在这个书推导非常详细,不太容易卡在某条推不出来。&/p&&p&-----------------------------------------------------------------------------&/p&&p&对于翻译人员来说每天的日常是这样的:&/p&&img src=&/v2-7bd39f6eaa8c8_b.png& data-rawwidth=&1420& data-rawheight=&1618& class=&origin_image zh-lightbox-thumb& width=&1420& data-original=&/v2-7bd39f6eaa8c8_r.png&&&p&&br&&/p&&img src=&/v2-a75fdde5dd5c_b.png& data-rawwidth=&1420& data-rawheight=&1652& class=&origin_image zh-lightbox-thumb& width=&1420& data-original=&/v2-a75fdde5dd5c_r.png&&&p&&br&&/p&&img src=&/v2-b4267abf29dffdf19180fd5_b.png& data-rawwidth=&1420& data-rawheight=&1652& class=&origin_image zh-lightbox-thumb& width=&1420& data-original=&/v2-b4267abf29dffdf19180fd5_r.png&&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-c7e90c6c443aba0bfbaa2dd9e0eb0d3c_b.jpg& data-rawwidth=&640& data-rawheight=&627& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-c7e90c6c443aba0bfbaa2dd9e0eb0d3c_r.jpg&&
如果有人问我做SLAM有什么必读书,之前我会说《Probablistic robotics》(概率机器人,已有中文版)和《Multiple Vision Geometry》(MVG),现在我会说这本书+MVG。 这本书在我心目中至少和概率机器人一个地位,甚至比概率机器人要高。它的内容更新,理论…
&p&update:&/p&&p&4.21 书已经在各大网站上有预售。从印刷厂到书店可能还有

我要回帖

更多关于 js如何跳出for循环 的文章

 

随机推荐