精华内容
下载资源
问答
  • 广州启动自动驾驶混行试点 - 广州市人民政府门户网站 (gz.gov.cn) 文远知行 | WeRide 小马智行 (pony.ai) Apollo 广汽集团 - 广汽集团 (gac.com.cn)

    面试常问问题:
    1.    自我介绍【时长控制在2分钟左右,提项目可以提两个比较重要的,跟岗位相关的】
    2.    说说对公司的认识?为什么选择投递公司?为什么选择这个岗位?平时用什么语言?【先上公司官网了解下相关的车型】
    3.    简历上的项目,会问得很细很细。项目亮点在哪里?曾经遇到的困难,是怎么解决的?曾经失败过的经历?最有成就感的项目?项目用到的算法,场景。项目深度,使用的算法有没有想过改进或者优化。【面试前一定要在心里多过几遍项目】
    4.    训练时,遇到梯度消失或梯度爆炸吗?
    5.    BN是怎么归一化的?(在哪些维度上)
    6.    你对自动驾驶怎么看待?对这个行业的理解?自动驾驶涉及哪些技术?对自动驾驶的pipeline是否熟悉?说一下自动驾驶L0-L5的区别。对自动驾驶仿真的了解。
    7.    本科成绩、保研、考研?考研成绩,学硕专硕,论文是第几作者
    8.    自动驾驶汽车闯红灯可能是什么原因?
    9.    从相机坐标系到图像坐标系如何转化?了解目标检测吗?知道哪些目标检测模型?Fast RCNN的基本结构是什么样的?IOU怎么计算,给出计算公式?
    10.    如何确定数据传输帧率?
    11.    如何看待特斯拉自动驾驶的汽车频出故障?
    12.    你对国内的车企有了解吗?吸引你的是什么地方?
    13.    请用简洁的科普的语言介绍研究生(博士)期间的工作。【给出课题的总体概括,课题的服务对象,课题的目标,课题的步骤以及课题的主要内容,最后给出课题的主要创新点。(一定要简洁,思维要清晰)】
    14.    做自动驾驶车时候MPC控制的过程,目标函数,方法等。
    15.    主流分割模型介绍
    16.    yolov5的改进工作
    17.    三维定位与位置矫正
    18.    边缘检测算法
    19.    Giou Diou Ciou改进方法
    20.    介绍下yolov3,yolov3 anchor是怎么得到的?
    21.    介绍下focal loss,有哪些方法解决样本分布不均衡?
    22.    对pytorch的熟练度和理解是怎么样的
    23.    pytorch中给不同layer apply不同learning rate有几种方法,只改forward如何实现
    24.    介绍一下了解的backbone
    25.    adjacency matrix/attention过大且稀疏怎么办
    26.    三维空间如何表示立方体
    27.    进程通信方式?
    28.    3D点到三角面最短距离
    29.    判断2D点是否在三角形内部(多解法)
    30.    判断3D点在多边体内部
    31.    如何做点云的分割
    32.    3d Detection缺少Constraints怎么办
    33.    最后一个layer连接第一个layer后backprop会怎么样
    34.    密集物体场景,2d bouding box互相遮盖严重且标注员容易miss,如何解决?
    35.    标注卫星数据,rgb+100个以上的波段数据,肉眼看不过来且屏幕无法全部显示,如何解决?如何训练模型交互式辅助?
    36.    头发丝等image matting标注场景下,如何高效标注?
    37.    segmentation场景下,如果用户只用稀疏点标注物体,如何训练模型做instance segmentation?
    38.    2D-2D匹配搜索怎么实现的?
    39.    生成出来的三维点怎么和下一帧的2d特征点进行匹配?
    40.    有n个传感器知道标定结果,互相都是两两标定,每一次外参数转换都会带来误差。如何最小化误差,得到两个传感器之间的标定参数?
    41.    bfs和dfs区别以及实现的区别,perception中的tracking应该怎么去做。
    42.    自动驾驶场景下,2d rgb + 3d point cloud,如何更好的做3d bounding box tracking的video annotation?
    43.    A,B~U(0,1),E(max(A,B))是多少?
    44.    三次握手,为什么是三次不是两次
    45.    如果给定一个正整数数N,对于一个最小位是2的s次幂的数,需要多少位才能表示这个数?如何确定数字系统中的参数位数。
    46.    关于定点数与浮点数的表示范围与位数确定。
    47.    和为偶数的子数组个数(O(n)的复杂度)、和为偶数的子序列个数(O(n)的复杂度)
    48.    做自动驾驶车时候所用planning的方法,所用的slam算法,slam相关的基础知识【重要】,主要是状态估计和多视觉几何,还有激光slam的一些常用处理方式。
    49.    slam的基础知识非常重要,建议高博士的14讲看三遍以上,上面出现的所有公式必要要会手推
    50.    Leetcode1139:最大的以 1 为边界的正方形,要求用动态规划的方向来求解
    51.    与Leetcode剑指offer26树的子结构相似,判断A树中是否存在与B树相同的树结构
    52.    Leetcode72:字符串编辑距离(需手写)
    53.    Leetcode:两数之和(用哈希表)
    54.    迭代版本的二叉树前序遍历(需手写)
    55.    二叉树深度递归+非递归实现
    56.    二分查找局部最小值(需手写)
    57.    写代码:URL图片保存
    58.    链表找到中间点然后将后面的反转
    59.    最长上升子序列
    60.    八皇后问题
    61.    返回所有二叉树内和为k的子路径(不一定从根节点开始,不一定从叶节点结束),时间复杂度分析
    62.    单链表递归实现找最大值
    63.    田忌赛马顺序
    64.    64匹马 8赛道 最少比较找出4匹最快
    65.    实现一下智能指针shared_ptr(需手写)【常问】
    66.    链表反转三指针法(需手写)
    67.    01矩阵翻转并反转(需手写)
    68.    1-100的数字乱序不重复,有一个替换成-1,怎么找出?
    69.    二叉树深度递归+非递归实现
    70.    青蛙跳台阶问题,斐波那契数列,动态规划
    71.    C++基础:class struct区别;深拷贝和浅拷贝的区别;纯虚类 的用法;纯虚的析构函数和普通的析构函数有什么区别;Static关键字的用法;子类的析构构造顺序;共享指针的潜在危险;哈希表插入的复杂度;对于数据结构的复杂度,常用语法、关键词的使用方式都要深入的了解。多态了解吗?很多析构函数virtual是为什么?智能指针用过吗?主要作用是什么?const int * 和 int * const 的区别;如何将vector中的元素清空,同时将内存全部释放?
    72.    图像增强和降噪
    73.    合并两个有序链表
    74.    对segmentation的理解
    75.    2D检测中single/two stage详细介绍
    76.    batch size过小有哪些解决办法
    77.    grid effect解决
    78.    找出图中颜色相同的栅格组成的各个连通域,dfs
    79.    将一根钢管长度L(随机,double),切分成多段标准长度 (double)L1, L2, L3 .. 等。如何切分能使废料最少。
    80.    字符串中最长不重复字符串
    81.    Leetcode33搜索旋转排序数组
    82.    走台阶算法,每次走2,3,5 级台阶
    83.    解释Hybrid A*算法
    84.    解释一下RRT*
    85.    解释TEB算法
    86.    路径规划中cost function 设计
    87.    DQN中的reward function如何设计
    88.    数据结构:堆,堆排序,有没有用过堆?(A*算法中的priority_queue)
    89.    内存堆和栈的区别
    90.    linux下怎么实现内存管理的?怎么进行进程调度的?有哪些进程调度算法?进程间通信方式有哪些?分别适用于什么场景?你觉得哪种最高效?共享内存怎么实现的?
    91.    有哪些传感器、传感器和树莓派怎么通信?通过SDK吗?自己解析怎么解析的?树莓派和主机怎么通信的、TCP和UDP有啥区别,TCP需要建立连接吗?
    92.    ROS你了解的怎么样?通信机制有哪些?
    93.    RANSAC找直线,给定一堆点去寻找直线,用c++实现ransac算法
    94.    你有什么想提的问题吗?(可以问下公司人才培养的机制,对于目前市面上的纯视觉方案和激光雷达多传感器融合两种主流方案有什么看法,哪种方案更可能在未来成为主流?等等)

    展开全文
  • 不过没有这个习惯的话总会有某处忘记格式化代码,影响代码提交,劳动人民的力量是无穷无尽的,那么接下来就有了解决方法 打开visual studio – 扩展 – 管理扩展 – 联机 – 搜索Format document on Save 下载...

    一般情况下格式化代码都是手动Ctrl + K +D或者Ctrl + E +D

    不过没有这个习惯的话总会有某处忘记格式化代码,影响代码提交,劳动人民的力量是无穷无尽的,那么接下来就有了解决方法

    打开visual studio – 扩展 – 管理扩展 – 联机 – 搜索Format document on Save

    下载完成后关闭vs或重新打开时会有弹窗确认更改扩展,点击修改等待安装完成就可以使用了(ps:长时间停留在一个修改上面的时候是没有关闭完整,打开服务,关闭掉就可以了

    展开全文
  • 自动控制的历史发展

    千次阅读 2019-06-25 22:33:06
    本文转载自https://zhuanlan.zhihu.com/p/65339164那些年的神贴——自动控制的故事,原作者应该是《大话自动化:从蒸汽机到人工智能》的作者晨枫,其在网上发表过《自动控制的故事》和大量有关工业自动化的文章。...

    本文转载自https://zhuanlan.zhihu.com/p/65339164那些年的神贴——自动控制的故事,原作者应该是《大话自动化:从蒸汽机到人工智能》的作者晨枫,其在网上发表过《自动控制的故事》和大量有关工业自动化的文章。

    写在前面:

    从文章来看,作者的方向偏向于化工控制,虽说标题是自动控制,里面包含了过程控制,现代控制,系统辨识,工程控制算法等内容。这让我想起来另外一件事,有次有幸听了一位院士的讲话,他讲到现在的自动化学生不愿意去现场,去了几个现场没找到自动化出身的人,都是具体行业出来的在干,深有体会,毕竟现场工作环境相比于其他真的不怎么吸引人。不过控制思想都一致,无论什么方向都可以参考。废话扯到这里,正文如下:

    自动控制的科普综述文章少之又少,这一篇是难得好文章。短短数十页的文章,就把自动控制的发展过程及精髓用非常通俗的语言描述出来,其中不发精彩的比喻(如舞龙、李亚普诺夫 大锤等等),对于自动控制人员来说实在是不可多得的宝贵资料。
    文章写于 2005 年,作者晨枫,是老三届的大学生,具有扎实的理论基础和丰富的现场经验,目前旅居加拿大,一直从事化工控制方面的工作和研究。文章虽然长一些,但非常值得静下心来好好读一读.

    引子

    小时候喜欢看杂书,没什么东西看,不正在那十年嘛?不过看进去了两个“化”:机械化和自动化。打小就没有弄明白,这机械化和自动化到底有什么差别, 机器不是自己就会动的吗?长大了,总算稍微明白了一点,这机械化是力气活,用机器代替人的体力劳动,但还是要人管着的,不然机器是不知道该干什么不该干什 么的;这自动化嘛,就是代替人的重复脑力劳动,是用来管机器的。也就是说,自动化是管着机械化的,或者说学自动化的是管着学机械的……啊,不对,不对,哪是哪啊!

    有人考证古代就有自动化的实例,但现代意义上的自动控制开始于瓦特的蒸汽机。据说纽考门比瓦特先发明蒸汽机,但是蒸汽机的转速控制问题没有解决,弄不好转速飞升,机器损坏不说,还可能说大事故。 瓦特在蒸汽机的转轴上安了一个小棍,棍的一端和放汽阀连着,放气阀松开来就关闭,转速增加;按下去阀就打开,转速降低;棍的另一端是一个小重锤,棍中间某个地方通过支点和转轴连接。转轴转起来的时候,小棍由于离心力的缘故挥起来。转速太高了,小棍挥会挥得很高,放汽阀就被按下去打开,转速下降;转速太低了,小棍挥不起来,放汽阀就被松开来关闭,转速回升。这样,蒸汽机可以自动保持稳定的转速,即保证安全,又方便使用。也就是因为这个小小的转速调节器,瓦特的名字和工业革命连在一起,而纽考门的名字就要到历史书里去找了。

    类似的例子在机械系统里很多,家居必备的抽水马桶是另一个例子。放水冲刷后,水箱里水位降低,浮子随水面下降,进水阀打开。随着水位的升高,进水阀逐渐关闭,直到水位达到规定高度,进水阀完全关闭,水箱的水正好准备下一次使用。这是一个非常简单但非常巧妙的水位控制系统,是一个经典的设计,但不容易用经典的控制理论来分析,不过这是题外话了。

    这些机械系统设计巧妙,工作可靠,实在是巧夺天工。但是在实用中,如果每次都需要这样的创造性思维,那太累,最好有一个系统的方法,可以解决“所有”的自动控制问题,这就是控制理论的由来。

    反馈和动态

    从小大人就教我们,走路要看路。为什么呢?要是不看着路,走路走歪了也不知道,结果就是东撞西撞的。要是看着路呢?走歪了,马上就看到,赶紧调整脚步,走回到正道上来。这里有自动控制里的第一个重要概念:反馈(feedback)。

    反馈是一个过程:

    1、设定目标,对小朋友走路的例子来说,就是前进的路线。

    2、测量状态,小朋友的眼睛看着路,就是在测量自己的前进方向。

    3、将测量到的状态和设定的目标比较,把眼睛看到的前进方向和心里想的前进方向作比较,判断前进方向是否正确;如果不正确,相差有多少。

    4、调整行动,在心里根据实际前进方向和设定目标的偏差,决定调整的量。

    5、实际执行,也就是实际挪动脚步,重回正确的前进方向。

    在整个走路的过程中,这个反馈过程周而复始,不断进行,这样,小朋友就不会走得东倒西歪了。但是,这里有一个问题:如果所有的事情都是在瞬时里同时发生的,那这个反馈过程就无法工作。要使反馈工作,一定要有一定的反应时间。还好,世上之事,都有一个过程,这就为反馈赢得了所需要的时间。

    小时候,妈妈在锅里蒸东西,蒸好了,从锅里拿出来总是一个麻烦,需要抹布什么的垫着,免得烫手。但是碗和锅的间隙不大,连手带抹布伸进去颇麻烦,我常常不知天高地厚,自告奋勇地徒手 把热的碗拿出来。只要动作快,手起碗落,可以不烫手。当然喽,要是捧着热碗再东晃晃,西荡荡,那手上感觉的温度最终会和热碗一样,肯定要把手心、手指烫熟不可的。在从接触碗到皮肤温度和碗表面一样,这里面有一个逐渐升温的过程,这就是动态过程(dynamic process)。

    这里面有两个东西要注意:一个是升温的过程有多快,另一个是最终的温度可以升到多少。要是知道了这两个参数,同时知道自己的手可以耐受 多少温度,理论上可以计算出热的碗在手里可以停留多少时间而不至于烫手。反馈过程也叫闭环(closed loop)过程。既然有闭环,那就有开环(open loop)。

    开环就是没有反馈的控制过程,设定一个控制作用,然后就执行,不根据实际测量值进行校正。开环控制只有对简单的过程有效,比如洗衣机和烘干机 按定时控制,到底衣服洗得怎么样,烘得干不干,完全取决于开始时的设定。对于洗衣机、烘干机这样的问题,多设一点时间就是了,稍微浪费一点,但可以保证效果。

    对于空调机,就不能不顾房间温度,简单地设一个开 10 分钟、关 5 分钟的循环,而应该根据实际温度作闭环控制,否则房间里的温度天知道到底会达到多少。 记得 80 年代时,报告文学很流行。徐迟写了一个《哥德巴赫猜想》,于是全国人民都争当科学家。小说家也争着写科学家,成就太小不行,所以来一个语不惊人死不休,某大家写了一个《无反馈快速跟踪》。那时正在大学啃砖头,对这个科学新发现大感兴趣,从头看到尾,也没有看明白到底是怎么无反馈快速跟踪的。现在想想,小说就是小说,不过这无良作家也太扯,无反馈还要跟踪,不看着目标,不看着自己跑哪了,这跟的什么踪啊,这和永动机差不多了,怎么不挑一个好一点的题目,冷聚变什么的,至少在理论上还是可能的。题外话了。

    在数学上,动态过程用微分方程描述,反馈过程就是在描述动态过程的微分方程的输入项和输出项之间建立一个关联,这样改变了微分方程本来的性质。自动控制就是在这个反馈和动态过程里做文章的。房间内的空调是一个简单的控制问题。不过这只是指单一房间,整个高层大楼所有房间的中央空调问题实际上是一个相当复杂的问题,不在这里讨论的范围。

    开关控制

    夏天了,室内温度设在 28 度,实际温度高于 28 度了,空调机启动致冷,把房间的温度降下来;实际温度低于 28 度了,空调机关闭,让房间温度受环境气温自然升上去。通过这样简单的开关控制,室内温度应该就控制在 28 度。不过这里有一个问题,如果温度高于 28 度一点点,空调机就启动;低于 28 度一点点,空调机就 关闭;那如果温度传感器和空调机的开关足够灵敏的话,空调机的开关频率可以无穷高,空调机不断地开开关关,要发神经病了,这对机器不好,在实际上也没有必 要。解决的办法是设立一个“死区” (dead band),温度高于 29 度时开机,低于 27 度时关机。注意不要搞反了,否则控制单元要发神经了。

    有了一个死区后,室内温度不再可能严格控制在 28 度,而是在 27 到 29 度之间“晃荡”。如果环境温度一定,空调机的制冷量一定,室内的升温/降温动态模型已知,可以计算温度“晃荡”的周期。不过既然是讲故事,我们就不去费那个事了。

    这种开关控制看起来“土”,其实好处不少。对于大部分过程来说,开关控制的精度不高但可以保证稳定,或者说系统输出是“有界”的,也就是说实际测量值一定会被限制在定的范围,而不可能无限制地发散出去。这种稳定性和一般控制理论里强调的所谓渐进稳定性不同,而是所谓 BIBO 稳定性,前者要求输出最终趋向设定值,后者只要求在有界的输入作用下输出是有界的,BIBO指boundedinput bounded output。

    对于简单的精 度要求不高的过程,这种开关控制(或者称继电器控制,relaycontrol因为最早这种控制方式是用继电器或电磁开关来实现的)就足够了。但是很多时候,这种“毛估估”的控制满足不了要求。汽车在高速公路上行 驶,速度设在定速巡航控制,速度飘下去几公里,心里觉得吃亏了,但要是飘上去几公里,被警察抓下来吃一个罚单,这算谁的?

    开关控制是不连续控制,控制作用一加就是“全剂量”的,一减也是“全剂量”的,没有中间的过渡。如果空调机的制冷量有三个设定,:小、中、大,根据室 温和设定的差别来决定到底是用小还是中还是大,那室温的控制精度就可以大大提高,换句话说,温度的“晃荡”幅度将大幅度减小。那么,如果空调机有更多的设定,从小小到小中到……到大大,那控制精度是不是更高呢?是的。既然如此,何不用无级可调的空调机呢?那岂不可以更精确地控制室温了吗?是的。无级可调或连续可调的空调机可以精确控制温度,但开关控制不能再用了。

    连续控制和PID

    家用空调机中,连续可调的不占多数,但冲热水淋浴是一个典型的连续控制问题,因为水龙头可以连续调节水的流量。冲淋浴 时,假定冷水龙头不变,只调节热水。那温度高了,热水关小一点;温度低了,热水开打一点。换句话说,控制作用应该向减少控制偏差的方向变化,也就是所谓负 负反馈。控制方向对了,还有一个控制量的问题。温度高了 1 度,热水该关小多少呢?

    经验告诉我们,根据具体的龙头和水压,温度高 1 度,热水需要关小一定的量,比如说,关小一格。换句话说,控制量和控制偏差成比例关系,这就是经典的比例控制规律:控制量=比例控制增益* 控制偏差,偏差越大,控制量越大。控制偏差就是实际测量值和设定值或目标值之差。在比例控制规律下,偏差反向,控制量也反向。也就是说,如果淋浴水温要求为 40 度,实际水温高于 40 度时,热水龙头向关闭的方向变化;实际水温低于 40 度时,热水龙头向开启的方向变化。

    但是比例控制规律并不能 保证水温能够精确达到 40 度。在实际生活中,人们这时对热水龙头作微调,只要水温还不合适,就一点一点地调节,直到水温合适为止。这种只要控制偏差不消失就渐进微调的控制规 律,在控制里叫积分控制规律,因为控制量和控制偏差在时间上的累积成正比,其比例因子就称为积分控制增益。工业上常用积分控制增益的倒数,称其为积分时间 常数,其物理意义是偏差恒定时,控制量加倍所需的时间。这里要注意的是,控制偏差有正有负,全看实际测量值是大于还是小于设定值,所以只要控制系统是稳定 的,也就是实际测量值最终会稳定在设定值上,控制偏差的累积不会是无穷大的。这里再啰嗦一遍,积分控制的基本作用是消除控制偏差的余差(也叫残差)。

    比例和积分控制规律可以应付很大一类控制问题,但不是没有改进余地的。如果水管水温快速变化,人们会根据水温的变化调节热水龙头:水温升高,热水龙头 向关闭方向变化,升温越快,开启越多;水温降低,热水龙头向开启方向变化,降温越快,关闭越多。这就是所谓的微分控制规律,因为控制量和实际测量值的变化 率成正比,其比例因子就称为比例控制增益,工业上也称微分时间常数。微分时间常数没有太特定的物理意义,只是积分叫时间常数,微分也跟着叫了。微分控制的 重点不在实际测量值的具体数值,而在其变化方向和变化速度。微分控制在理论上和实用中有很多优越性,但局限也是明显的。如果测量信号不是很“干净”,时不 时有那么一点不大不小的“毛刺”或扰动,微分控制就会被这些风吹草动搞得方寸大乱,产生很多不必要甚至错误的控制信号。所以工业上对微分控制的使用是很谨慎的。

    比例-积分-微分控制规律是工业上最常用的控制规律。人们一般根据比例-积分-微分的英文缩写,将其简称为 PID 控制。即使在更为先进的控制规律广泛应用的今天,各种形式的 PID 控制仍然在所有控制回路中占 85%以上。

    PID整定

    在 PID 控制中,积分控制的特点是:只要还有余差(即残余的控制偏差)存在,积分控制就按部就班地逐渐增加控制作用,直到余差消失。所以积分的效果比较缓慢,除特 殊情况外,作为基本控制作用,缓不救急。微分控制的特点是:尽管实际测量值还比设定值低,但其快速上扬的冲势需要及早加以抑制,否则,等到实际值超过设定 值再作反应就晚了,这就是微分控制施展身手的地方了。作为基本控制使用,微分控制只看趋势,不看具体数值所在,所以最理想的情况也就是把实际值稳定下来, 但稳定在什么地方就要看你的运气了,所以微分控制也不能作为基本控制作用。比例控制没有这些问题,比例控制的反应快,稳定性好,是最基本的控制作用,是 “皮”,积分、微分控制是对比例控制起增强作用的,极少单独使用,所以是“毛”。在实际使用中比例和积分一般一起使用,比例承担主要的控制作用,积分帮助 消除余差。微分只有在被控对象反应迟缓,需要在开始有所反应时,及早补偿,才予以采用。只用比例和微分的情况很少见。

    连续控制的精度是开关控制所不可比拟的,但连续控制的高精度也是有代价的,这就是稳定性问题。控制增益决定了控制作用对偏差的灵敏度。既然增益决定了控制 的灵敏度,那么越灵敏岂不越好?非也。还是用汽车的定速巡航控制做例子。速度低一点,油门加一点,速度低更多,油门加更多,速度高上去当然就反过来。但是 如果速度低一点,油门就加很多,速度更低,油门狂加,这样速度不但不能稳定在要求的设定值上,还可能失控。这就是不稳定。所以控制增益的设定是有讲究的。 在生活中也有类似的例子。国民经济过热,需要经济调整,但调整过火,就要造成“硬着陆”,引起衰退;衰退时需要刺激,同样,刺激过火,会造成“虚假繁荣 ”。要达成“软着陆”,经济调整的措施需要恰到好处。这也是一个经济动态系统的稳定性问题。

    实际中到底多少增益才是最合适的,理论上有很多计算方法,但实用中一般是靠经验和调试来摸索最佳增益,业内行话叫参数整定。如果系统响应在控制作用后面拖拖沓沓,大幅度振荡的话,那一般是积分太过;如果系统响应非常神经质,动不动就打摆子,呈现高频小幅度振荡的话,那一般是微分有点过分。中频振荡当然 就是比例的问题了。不过各个系统的频率都是不一样的,到底什么算高频,什么算低频,这个几句话说不清楚,应了毛主席那句话:“具体情况具体分析”,所以就打一个哈哈了。

    再具体说起来,参数整定有两个路子。一是首先调试比例增益以保证基本的稳定性,然后加必要的积分以消除余差,只有在最必要的情况下,比如反映迟缓的温 度过程或容量极大的液位过程,测量噪声很低,才加一点微分。这是“学院派”的路子,在大部分情况下很有效。但是工业界有一个“歪路子”:用非常小的比例作 用,但大大强化积分作用。这个方法是完全违背控制理论的分析的,但在实际中却是行之有效,原因在于测量噪声严重,或系统反应过敏时,积分为主的控制规律动 作比较缓和,不易激励出不稳定的因素,尤其是不确定性比较高的高频部分,这也是“稳定压倒一切”的初衷吧。

    在很多情况下,在初始 PID 参数整定之后,只要系统没有出现不稳定或性能显著退化,一般不会去重新整定。但是要是系统不稳定了怎么办呢?由于大部分实际系统都是开环稳定的,也就是 说,只要控制作用恒定不变,系统响应最终应该稳定在一个数值,尽管可能不是设定值,所以对付不稳定的第一个动作都是把比例增益减小,根据实际情况,减小 1/3、1/2 甚至更多,同时加大积分时间常数,常常成倍地加,再就是减小甚至取消微分控制作用。如果有前馈控制,适当减小前馈增益也是有用的。在实际 中,系统性能不会莫名其妙地突然变坏,上述“救火”式重新整定常常是临时性的,等生产过程中的机械或原料问题消除后,

    参数还是要设回原来的数值,否则系统 性能会太过“懒散”。

    对于新工厂,系统还没有投运,没法根据实际响应来整定,一般先估计一个初始参数,在系统投运的过程中,对控制回路逐个整定。我自己的经验是,对于一般的流量回 路,比例定在 0.5 左右,积分大约 1 分钟,微分为 0,这个组合一般不致于一上来就出大问题。温度回路可以从 2、5、0.05 开始,液位回路从 5、10、0 开始,气相压 力回路从 10、20、0 开始。既然这些都是凭经验的估计,那当然要具体情况具体分析,不可能“放之四海而皆准”。

    微分一般用于反应迟缓的系统,但是事情总有一些例外。我就遇到过一个小小的冷凝液罐,直径才两英尺,长不过 5 英尺,但是流量倒要 8-12 吨/小时,一有风吹草动,液位变化非常迅速,不管比例、积分怎么调,液位很难稳定下来,常常是控制阀刚开始反应,液位已经到顶或到底了。最后加了 0.05 的微分,液位一开始变化,控制阀就开始抑制,反而稳定下来了。这和常规的参数整定的路子背道而驰,但在这个情况下,反而是“唯一”的选择,因为测量值和控制阀的饱和变成稳定性主要的问题了。

    经典的系统稳定性

    对工业界以积分为主导控制作用的做法再啰嗦几句。学术上,控制的稳定性基本就是渐近稳定性,BIBO 稳定性是没有办法证明渐近稳定性时的“退而求其次”的东西,不怎么上台面的。但是工业界里的稳定性有两个看起来相似、实质上不尽相同的方面:一个当然是渐近稳定性,另一个则是稳定性,但不一定向设定值收 敛,或者说稳定性比收敛性优先这样一个情况。具体来说,就是需要系统稳定在一个值上,不要动来动去,但是不是在设定值并不是太重要,只要不是太离谱就行。 例子有很多,比如反应器的压力是一个重要参数,反应器不稳定,原料进料比例就乱套,催化剂进料也不稳定,反应就不稳定,但是反应器的压力到底是 10 个大气 压还是 12 个大气压,并没有太大的关系,只要慢慢地但是稳定地向设定值移动就足够了。这是控制理论里比较少涉及的一个情况,这也是工业上时常采用积分主导的控制的一个重要原因。

    前面说到系统的频率, 本来也就是系统响应持续振荡时的频率,但是控制领域里有三拨人在捣腾:一拨是以机电类动力学系统为特色的电工出身,包括航空、机器人等,一拨是以连续过程为特色的化工出身的,包冶金、造纸等,还有一拨是以微分方程稳定性为特色的应用数学出身的。在瓦特和抽水马桶的年代里,各打各的山头,井水不犯河水,倒也 太平。但控制从艺术上升为理论后,总有人喜欢“统一”,电工帮抢了先,好端端的控制理论里被塞进了电工里的频率。童子们哪,那哪是频率啊,那是……复频 率。既然那些变态的电工帮(啊耶,这下鹿踹真的要来了)能折腾出虚功率,那他们也能折腾出复频率来,他们自虐

    倒也算了,只是苦了我等无辜之众,被迫受此精神折磨。

    事情的缘由是系统的稳定性。前面提到,PID 的参数如果设得不好,系统可能不稳定。除了摸索,有没有办法从理论上计算出合适的 PID 参数呢?前面也提到,动态过程可以用微分方程描述,其实在 PID 的阶段,这只是微分方程中很狭窄的一支:单变量线性常微分方程。要是还记得大一高数,一定还记得线形常微的 解,除了分离变量法什么的,如果自变量时间用 t 表示的话,最常用的求解还是把 exp(λt)代入微分方程,然后解已经变成 λ 的代数方程的特征方程,解出来的解可以是实数,也可以是复数,是复数的话,就要用三角函数展开了(怎么样, 大一噩梦的感觉找回来一点没有?)。只要实根为负,那微分方程就是稳定的,因为负的指数项最终向零收敛,复根到底多少就无所谓了,对稳定性没有影响。但 是,这么求解分析起来还是不容易,还是超不出“具体情况具体分析”,难以得出一般的结论。

    法国人以好色、好吃出名,但是他们食色性也之后,还不老实,其中一个叫拉普拉斯的家伙,捣鼓出什么拉普拉斯变换,把常微分方程变成 s 的多项式。然后那帮电工的家伙们,喜欢自虐,往 s 里塞 jω,就是那个复频率,整出一个变态的频率分析,用来分析系统的稳定性。不过说变态,也不完全公平,在没有计算机的年代, 各种图表是最有效的分析方法,还美其名曰“几何分析”。频率分析也不例外。

    美国佬 Evans 搞出一个根轨迹(root locus),思路倒是满有意思的。他用增益作自变量,将系统的根(不管实的虚的)在复平面上画出轨迹来,要是轨迹在左半平面打转转,那就是实根为负,就 是稳定的。再深究下去,系统响应的临界频率之类也可以计算出来。最大的好处是,对于常见的系统,可以给出一套作图规则来,熟练的大牛、小牛、公牛、母牛们,眼睛一瞄,随手就可以画出根轨迹来,然后就可以告诉你,增益变化多多少,系统开始振荡,再增加多少,系统会不稳定,云云。

    根轨迹还是比较客气的,还有更变态的奈奎斯特、伯德和尼科尔斯法,想想脑子都大。都是叫那帮电工分子害的。时至今日,计算机分析已经很普及了,但是古典的图示分析还是有经久不衰的魅力,就是因为 图示分析不光告诉你系统是稳定还是不稳定,以及其他一些动态响应的参数,图示分析还可以定性地告诉你增益变化甚至系统参数变化引起的闭环性能变化。咦,刚 才还不是在说人家变态吗?呃,变态也有变态的魅力不是?哈哈。

    非常规PID

    以频率分析(也称频 域分析)为特色的控制理论称为经典控制理论。经典控制理论可以把系统的稳定性分析得天花乱坠,但有两个前提:一、要已知被控对象的数学模型,这在实际中不 容易得到;二、被控对象的数学模型不会改变或漂移,这在实际中更难做到。对简单过程建立微分方程是可能的,但简单过程的控制不麻烦,经验法参数整定就搞定 了,不需要费那个麻烦,而真正需要理论计算帮忙的回路,建立模型太困难,或者模型本身的不确定性很高,使得理论分析失去意义。经典控制理论在机械、航空、 电机中还是有成功的应用,毕竟从 F=ma 出发,可以建立“所有”的机械系统的动力学模型,铁疙瘩的重量又不会莫名其妙地改变,主要环境参数都可以测量,但 是经典控制理论至少在化工控制中实用成功的例子实在是凤毛麟角,给你一个 50 块塔板的精馏塔,一个气相进料,一个液相进料,塔顶、塔底出料加一个侧线出 料,塔顶风冷冷凝器,塔底再沸器加一个中间再沸器,你就慢慢建模去吧,等九牛二虎把模型建立起来了,风冷冷凝器受风霜雨雪的影响,再沸器的高压蒸汽的压力 受友邻装置的影响,气相进料的温度和饱和度受上游装置的影响而改变,液相进料的混合组分受上游装置的影响而改变,但组分无法及时测量(在线气相色谱分析结 果要 45 分钟才能出来),动态特性全变了。

    老家伙歌德两百年前就说了,理论是灰色的,生命之树常青。我们知道马鹿喜欢金光的或者银光的,至少也要红的,不过只好将就啦,青绿地干活。在实用中,PID 有很多表兄弟,帮着大表哥一块打天下。

    比例控制的特点是:偏差大,控制作用就大。但在实际中有时还嫌不够,最好偏差大的时候,比例增益也大,进一步加强对大偏差的矫正作用,及早把系统拉回 到设定值附近;偏差小的时候,当然就不用那么急吼吼,慢慢来就行,所以增益小一点,加强稳定性。这就是双增益 PID(也叫双模式 PID)的起源。想想也 对,高射炮瞄准敌机是一个控制问题。如果炮管还指向离目标很远的角度,那应该先尽快地把炮管转到目标角度附近,动作猛一点才好;但炮管指向已经目标很近 了,就要再慢慢地精细瞄准。工业上也有很多类似的问题。双增益 PID的一个特例是死区 PID(PID with dead band),小偏差时的增益为零,也就是说,测量值和设定值相差不大的时候,就随他去,不用控制。

    这在大型缓冲容器的液位控制里用得很多。本来缓冲容器就 是缓冲流量变化的,液位到底控制在什么地方并不紧要,只要不是太高或太低就行。但是,从缓冲容器流向下游装置的流量要尽可能稳定,否则下游装置会受到不必 要的扰动。死区 PID 对这样的控制问题是最合适的。但是天下没有免费的午餐。死区 PID 的前提是液位在一般情况下会“自动”稳定在死区内,如果死区设置不 当,或系统经常受到大幅度的扰动,死区内的“无控”状态会导致液位不受限制地向死区边界“挺进”,最后进入“受控”区时,控制作用过火,液位向相反方向不 受限制地“挺进”,最后的结果是液位永远在死区的两端振荡,而永远不会稳定下来,业内叫 hunting(打猎?打什么?打鹿?)。双增益 PID 也有同样的 问题,只是比死区 PID 好一些,毕竟只有“强控制”和“弱控制”的差别,而没有“无控区”。在实用中,双增益的内外增益差别小于 2:1 没有多大意义,大于 5:1 就要注意上述的持续振荡或 hunting 的问题。

    双增益或死区 PID 的问题在于增益的变化是不连续的,控制作用在死区边界上有一个突然的变化,容易诱发系统的不利响应,平方误差 PID 就没有这个问题。 误差一经平方,控制量对误差的曲线就成了抛物线,同样达到“小偏差小增益、大偏差大增益”的效果,还没有和突然的不连续的增益变化。但是误差平方有两个问 题:一是误差接近于零的时候,增益也接近于零,回到上面死区 PID的问题;二是很难控制抛物线的具体形状,或者说,很难制定增益在什么地方拐弯。

    对于第一个问题,可以在误差平方 PID 上加一个基本的线性 PID,是零误差是增益不为零;对于后一个问题,就要用另外的模块计算一个连续变化的增益了。具体细节比 较琐碎,将偏差送入一个分段线性化(也就是折线啦)的计算单元,然后将计算结果作为比例增益输出到 PID 控制器,折线的水平段就对应予不同的增益,而连接 不同的水平段的斜线就对应于增益的连续变化。通过设置水平段和斜线段的折点,可以任意调整变增益的曲线。要是“野心”大一点,再加几个计算单元,可以做出 不对称的增益,也就是升温时增益低一点,降温时增益高一点,以处理加热过程中常见的升温快、降温慢的问题。

    双增益或误差平方都是在比例增益上作文章,同样的勾当也可以用在积分和微分上。更极端的一种 PID 规律叫积分分离 PID,其思路是这样的:比例控制的稳定性好,响应快,所以偏差大的时候,把 PID 中的积分关闭掉;偏差小的时候,精细调整、消除余差是主要问题,所以减 弱甚至关闭比例作用,而积分作用切入控制。概念是好的,但具体实施的时候,有很多无扰动切换的问题。

    这些变态的 PID 在理论上很难分析系统的稳定性,但在实用中解决了很多困难的问题。大言不惭一句,这些 PID 本人在实际中都用过。

    复杂结构PID

    复杂结构 PID 打仗时,如果敌人太顽固,要么换更大的炮,把敌人轰倒;要么采用更巧妙的战术,把敌人晕倒。控制也是一样,单回路 PID 难以解决的问题,常常可以通过更巧妙的回路结构来解决。

    单一的 PID 回路当然可以实现扰动抑制,但要是主要扰动在回路中,而且是明确的,加一个内回路作帮手是一个很不错的主意。还记得洗热水澡的例子吗?要是热水压力不稳定,老是要为这个而调整 热水龙头,那很麻烦。要是有一个人专门负责根据热水压力调节热水流量,把热水压力稳定下来,而且稳定在标定值,那洗澡的时候,水温就容易控制多了,只要告 诉那个人现在需要多少热水流量,而不必烦心热水压力对热水流量的影响。这个负责热水流量的控制回路就是内回路,也叫副回路,而洗澡的温度就是外回路,也叫 主回路,当然是主回路指挥副回路,就像自动化指挥机械化、学自控的人指挥学机电的人……打住打住,再扯远了要挨鹿踹了,或者马踹、牛踹、驴踹……。

    这种主回路套副回路的结构叫串级控制(cascade control),曾经是单回路 PID 后工业上第一种“先进过程控制”,现在串级已经用得很多了,也不再有人叫它“先进过程控制”了。串级控制最主要的功 用是抑制回路内的扰动,增强总体控制性能。不过串级也不能乱用。如果主回路和副回路的相应速度差不多,或者主回路的相应速度甚至慢于副回路(通过变态的调 试是可以做到的),这样的串级要出问题。理论上可以用共振频率什么的分析,但是不用费那个事,用膝盖想想就知道,一个急性子的头儿把一个温吞水的下属指挥 得团团转,结果只能是大家都精疲力竭,事情还办砸了。相反,一个镇定自若的头儿指挥一个手脚麻利的下属,那事情肯定办得好。

    如果主要 扰动在回路以外,但是可以预知,那就要用另一个办法,就是马鹿前面说到的前馈了。还是用洗热水澡的例子。如果冷水管和同一个水房的抽水马桶功用,你在洗 澡,别人一抽水,那你就变煮熟的龙虾了(本想说猴子 PP的,但是那个不雅,我们要五讲四美不是?)。这个时候,要使那个人在抽水的同时告诉你一声,你算好 时间,算好量,猛减热水,那温度还是可以大体不变的。这就是所谓前馈控制(feed-forward control)。前馈控制有两个要紧的东西:

    一是定量的扰动对被控变量的影响,也就是所谓前馈增益;二是扰动的动态,别人抽水到洗澡龙头的水温变热,这里面有一个过程,不是立时三刻的。如果可以精确知道这两样东西,那前馈补偿可以把可测扰动完全补偿掉。但实际上没有精确知道的事情,要是指望前馈来完全补 偿,弄巧成拙是肯定的。所以前馈通常和反馈一起用,也就是在 PID 回路上再加一个前馈。一般也只用静态前馈,也就是只补偿扰动对被控变量的静态影响,而忽 略扰动的动态因素,主要是为了静态前馈已经把前馈 80%的好处发掘出来了,动态前馈既复杂又不可靠,在PID 回路里很少有人用。理论上的前馈都是在 PID 的控制作用上再加一个前馈作用,实际上也可以乘一个控制作用。乘法前馈的作用太猛,我从来没有用过,一般都是用加法。在实施中,前馈是和扰动的变化(也就 是增量)成比例的,所以扰动变量不变了,前馈作用就消失,否则,整定前馈控制增益会对 PID主回路造成扰动。前馈增益可以根据粗略计算得到,比如说,抽水的量会造成温度下降多少、需要调整多少热水流量才能维持温度,这不难从热量平衡算出来。不想费这个事的话,也可以从历史数据中推算。一般算出来一个前馈增益后,打上 7 折甚至 5 折再用,保险一点,不要矫枉过正。

    前馈作用一般是用作辅助控制作用的,但是在特殊情况下,前馈也可以作为“预加载” (pre-loading)作为基准控制作用。比如说,在一个高压系统的启动过程中,压力可以从静止状态的常压很快地什到很高的压力。高压系统不容许阀门大幅度运动,所以控制增益都比较低,但是这样一来,启动升压过程中,压力控制的反应就十分迟缓,容易造成压力过高。这时用压缩机的转速或高压进料的流量作前馈,将压力控制阀“预先”放到大概的位置,然后再用反馈慢慢调节,就可以解决这个问题。

    前面提到用单个阀门有时难以控制大 范围变化的流量,这是一个很实际的问题。工业阀门一般 turn down 只有 10:1,也就是说,如果这个阀门的最大流量是 100 吨/小时的话,低于 10 吨/小时就难以控制了,当然,高于90 吨/小时也几近失去控制。 所以,要真的保证 0-100 的精确控制,需要将一个大阀和一个小阀并列,小阀负责小流量时的精确控制,大阀负责大流量时的精确控制,这就是所谓的分程控制 (split range control)。分程控制时,小阀首先打开,超过小阀最大流量是小阀就固定在全开位置,大阀开始打开,接过控制。这是开-开型分程控制。也有关-开型分 程控制,比如反应器夹套温度控制,随温度逐渐上升,冷却水逐渐关闭,直到冷却水全关,加热蒸气开始打开。分程控制当然不一定只有两截,三截甚至更多都是可 以的,道理都一样。分程控制的问题在于不同阀门的交接点。阀门在特别小的开度时,控制非常不灵敏,前面说到的 10:1 也是这个道理。所以实用中,开-开型 分程控制常常在交接点附近有一段重叠,也就是小阀快要全开但还没有全开时,大阀已经开始动作,这样,到小阀全开、不能再动弹时,大阀已经进入有效控制范 围。关-开型分程控制常常在交接点设置一个死区,避免出现两个阀都有一点点开度的情况。分程控制的交接点的设置有一点讲究,应该根据阀的大小。比如 A 阀比 B 阀大一倍,那分程点应该设在 1/3 先开 B 阀,而不是懒汉做法的 1/2。

    很多过程参数都是可以测量的,但也有很多参数是没法直接测量的,这时,如果能够通过别的可以测量的过程参数来间接计算真正需要控制的参数,这就是所谓的推断控制(inferential control)。比如精馏塔顶的产品纯度可以用气相色谱(gas chromatograph,GC)来测量,但结果要等 40 分钟才能出来,用来做实时控制,黄花菜都凉了。推断控制是和“软传感器”(soft sensor)的概念紧密相连的。对精馏塔塔顶纯度这个例子来说,可以用纯度和塔顶温度、压力作一个数学模型,用可以测量的温度和压力,间接计算出纯度。在计算机控制普及的今天,这是很容易实现的,但是在很多地方,推断控制仍然被看成很神秘的东西,悲哀。

    有的时候,对同一个变量有不止一个控制手段。比如说,风冷器有风扇的转速可以调节,也有百叶窗的开度可以调节。风扇转速的效果快,控制精确;百叶窗开度 的效果猛,不容易掌握,但有利于节能。所以,可以用风扇的快速响应来控制温度,但是用百叶窗开度来通过温度间接地缓慢地影响风扇的转速,使风扇转速回到最 经济的设定。当然百叶窗开度的控制回路必须要比风扇转速的控制回路整定得慢得多,一般是缓慢的纯积分控制,否则两人要打架。由于这相当于控制风扇转速的“ 阀位”,工业上称其为阀位控制(valve position control)。这个阀位控制也可以变一变,风扇转速高于某一数值(比如 80%的最大转速)时,把百叶窗开大一格,还是高就继续开大;风扇转速低于某一 数值(比如低于 20%最大转速)时,把百叶窗关小一格。这实际上是一个单向的积分作用,不同的地方有两点:

    一、有两个设定值,由风扇转速是高还是低而定

    二、积分作用只有在风扇转速在这两个“极限”的外面起作用,在里面时,百叶窗的开度不变。

    这样,风扇转速不必回到一个特定值,而是可以在一个范围内浮动。另外一个两个控制器“竞争”一个控制阀的情况是选择性控制(overridecontrol 或 selective control)。

    举个例子,锅炉的温度由燃料流量控制,温度高了,燃料流量就减下来,但是燃料流量低到燃料管路压力低于炉膛压力,那要出现危险的回火, 所以,这时,燃料管路压力就要接管控制,而牺牲炉膛温度。换句话说,正常时候,炉膛温度控制起作用,燃料管路压力低于一定数值时,燃料管路压力控制器作 用。在实施时,就是炉膛温度控制器和燃料管路压力控制器的输出都接到一个高选器,然后搞选器的输出接到实际的燃料阀。这个概念很清楚,

    但是初次接触选择性控制的人,常常容易被高选还是低选搞糊涂,明明是压力太低,怎么是高选呢?其实,只要记住高选还是低选是从阀门这一头看的,和温度、压力的高度没有关系。 如果“非常”变量超过界限了,你要阀门打开,那就是高选;你要阀门关闭,那就是低选。

    现代控制理论

    PID 从二、三十年到开始在工业界广泛应用,戏法变了几十年,也该换换花样了。PID 说一千道一万,还是经典控制理论的产物。50-60年代时,什么 都要现代派,建筑从经典的柱式、比例、细节的象征意义,变到“形式服从功能”的钢架玻璃盒子;汽车从用机器牵引的马车,变到流线型的钢铁的艺术;控制理论 也要紧跟形势,要现代化。这不,美国佬卡尔曼隆重推出……现代控制理论。都看过舞龙吧? 一个张牙舞爪的龙头气咻咻地追逐着一个大绣球,龙身子扭来扭去,还时不时跳跃那么一两下。中国春节没有舞龙,就和洋人的圣诞节没有圣诞老人一样不可思议。 想象一下,如果这是一条看不见的盲龙,只能通过一个人在龙尾巴后面指挥龙尾巴,然后再通过龙身体里的人一个接一个地传递控制指令,最后使龙头咬住绣球。这 显然是一个动态系统,龙身越长,人越多,动态响应越迟缓。如果只看龙头的位置,只操控龙尾巴,而忽略龙身子的动态,那就是所谓的输入-输出系统。

    经典控制 理论就是建立在输入-输出系统的基础上的。对于很多常见的应用,这就足够了。但是卡尔曼不满足于“足够”。龙头 当然要看住,龙尾巴当然要捏住,但龙身体为什么就要忽略呢?要是能够看住龙身体,甚至操纵龙身体,也就是说,不光要控制龙尾巴,控制指令还要直接传到龙身 体里的那些人,那岂不更好?这就是状态空间的概念:将一个系统分解为输入、输出和状态。输出本身也是一个状态,或者是状态的一个组合。在数学上,卡尔曼的 状态空间方法就是将一个高阶微分方程分解成一个联立的一阶微分方程组,这样可以使用很多线形代数的工具,在表述上也比较简洁、明了。

    卡尔曼是搞控制理论的。理论家的想法就是和工程师不一样。工程师脑子里转的第一个念头就是“我怎么控制这劳什子?增益多少?控制器结构是什么样的?”理论家想的却是什么解的存在性、唯一性之类虚头八脑的东西。不过呢,这么说理论家也不公平。好多时候,工程师凭想象和“实干”,辛苦了半天,发现得出的结果完全不合情理,这时才想起那些“性”(不要想歪了啊,嘿嘿),原来那些存在性、唯一性什么的还是有用的。

    还是回过来看这条龙。现在,龙头、龙尾巴、龙身体都要看,不光要看,还要直接操控龙头到龙尾的每一个人。但是,这龙不是想看就看得的,不是想舞就舞得 的。说到 “看”,直接能够测量/观测的状态在实际上是不多的,所谓看,实际上是估算。要是知道龙身体有多少节(就是有多少个人在下面撑着啦),龙身体的弹性/韧性 有多少,那么捏住龙尾巴抖一抖,再看看龙头在哪里,是可以估算出龙身体每一节的位置的,这叫状态观测。那么,要是这龙中间有几位童子开小差,手不好好拉 住,那再捏住龙尾巴乱抖也没用,这时系统中的部分状态就是不可观测的。如果你一声令下,部分童子充耳不闻,那这些状态就是不可控

    制的。卡尔曼从数学上推导 出不可控和不可观的条件,在根本上解决了什么时候才不是瞎耽误工夫的问题。这是控制理论的一个重要里程碑。

    再来看这条龙。如果要看这条龙整齐不整齐,排成纵列的容易看清楚;如果要清点人数,看每一个人的动作,排成横列的容易看清楚。但是不管怎么排,这条龙还是 这条龙,只是看的角度不同。那时候中国人的春节舞龙还没有在美国的中国城里闹腾起来,不知道卡尔曼有没有看到过舞龙,反正他把数学上的线性变换和线性空间 的理论搬到控制里面,从此,搞控制的人有了工具,一个系统横着看不顺眼的话,可以竖着看,因为不管怎么看,系统的本质是一样的。但是不同的角度有不同的用 处,有的角度设计控制器容易一点,有的角度分析系统的稳定性容易一点,诸如此类,在控制理论里就叫这个那个“标准型”。这是控制理论的又一个里程碑。

    观测状态的目的最终还是控制。只用输出的反馈叫输出反馈,经典控制理论里的反馈都可以归到输出反馈里,但是用状态进行反馈的就叫状态反馈了。输出反馈 对常见系统已经很有效了,但状态反馈要猛得多。你想想,一个系统的所有状态都被牢牢地瞄住,所有状态都乖乖地听从调遣,那是何等的威风!

    尽管学控制的人都要学现代控制理论,但大多数人记得卡尔曼还是因为那个卡尔曼滤波器(Kalman Filter)。说它是滤波器,其实是一个状态观测器(state observer),用来从输入和输出“重构”系统的状态。这重构听着玄妙,其实不复杂。不是有系统的数学模型吗?只要模型精确,给它和真实系统一样的输入,它不就乖乖地把系统状态给计算出来了吗?且慢:微分方程的解不光由微分方程本身决定,还有一个初始条件,要是初始条件不对,微分方程的解的形式是正确 的,但是数值永远差一拍。卡尔曼在系统模型的微分方程后再加了一个尾巴,把实际系统输出和模型计算的理论输出相比较,再乘上一个比例因子,形成一个实际上的状态反馈,把状态重构的偏差渐进地消除,解决了初始条件和其他的系统误差问题。卡尔曼滤波器最精妙之处,在于卡尔曼推导出一个系统的方法,可以考虑进测量噪声和系统本身的随机噪声,根据信噪比来决定上述比例因子的大小。

    这个构型其实不是卡尔曼的独创,隆伯格(Luenburg)也得出了类似的结构,但是从系统稳定性角度出发,来决定比例因子。同样的结构大量用于各种“预测-校正”模型结构,在工业上也得到很多应用,比如聚合反应器的分子重量分布可以用反 应器的温度、进料配比、催化剂等来间接计算,但不够精确,也无法把林林总总的无法测量的干扰因素统统包括进数学模型里,这时用实验室测定的真实值来定期校 正,就可以结合数学模型及时的特点和实验室结果精确的特点,满足实时控制的要求,这或许可以算静态的卡尔曼滤波器吧。卡尔曼滤波器最早的应用还是在雷达 上。所谓边扫描边跟踪,就是用卡尔曼滤波器估计敌机的位置,再由雷达的间隙扫描结果来实际校正。实际应用中还有一个典型的问题:有时候,对同一个变量可以 有好几个测量值可用,比如有的比较直接但不精确,有的是间接的估算,有很大的滞后但精确度高,这时可以用卡尔曼滤波器把不同来源的数据按不同的信噪比加权 “整合”起来,也算是民用版的“传感器融合”(sensor fusion)吧。

    除了卡尔曼滤波器外,卡尔曼的理论在实际中用得不多,但是卡尔曼的理论在理论上建立了一个出色的框架,对理解和研究控制问题有极大的作用。顺便说一句,卡尔曼的理论基本局限于线形系统,也就是说,十块大洋买一袋米,二十块大洋就买两袋米,都是成比例的。实际系统中有很多非线性的,两千块大洋还能买两百袋米,但两千万大洋就要看米仓有没有货了,市场涨不涨价了,不是钱越多,买的米越多,有一个非线性的问题。非线性的问题研究起来要复杂得 多。实际系统还有其他特性,有的是所谓时变系统,像宇宙火箭,其质量随时间和燃料的消耗而变,系统特性当然也就变了。很多问题都是多变量的,像汽车转弯, 不光方向盘是一个输入,油门和刹车也是输入变量。但是,状态空间的理论在数学表述上为线性、非线性、单变量、多变量、时变、时不变系统提供了一个统一的框 架,这是卡尔曼最大的贡献。

    最优控制

    前面说到,搞控制有三拨人:电工出身的,化工出身的,和应用数学出身的。在卡尔曼之前,电工出身的占主导地位,数学家们好在象牙塔里打转转,化工出身则还对控制理论懵里懵懂,还在“实干”呢。卡尔曼之后,一大批数学出身的人,利用对数学工具的熟悉,转攻控制理论。一时间,控制理论的数学化似乎成了“天下大势,顺我者昌,逆我者亡”了。在状态空间的框架下,多变量没有太多的问题好研究,于是最优化成为控制理论的新时尚。

    对于一根给定的曲线,求一阶导 数为零的点,就是这个曲线的极点;在对这一极点球二阶导数,大于零就是最小点,小于零就是最大点。这时牛顿老爷子就整明白的东东,现在高中或大一人人都学 过的东西。但是动态系统是一个微分方程,对微分方程求一阶导数为零,就导致变分法和所谓欧拉方程。但这个东西用起来不方便。实际的最优控制不大直接使用变分。

    俄罗斯是一个奇怪的地方。老毛子们要么蔫蔫的,要么疯狂的。俄罗斯的悲剧电影看得你也郁闷得想去自杀。但是毛子要是搭错筋整出一个喜剧呢?那你要么跟着疯狂,要么被逼疯狂。就是这么一个地方,除了无数托尔斯泰、柴可夫斯基、普希金、屠格涅夫等文艺巨璧外,俄罗斯也盛产数学家,其中两个是庞特里亚京和学控制的人老惦记着的李亚普诺夫。

    庞特里亚京的极大值原理听起来吓人,其实说白了很简单。看见那山吗?山顶就是最高点(切,这还用你 说吗?);看见那山坡吗?要是在山腰划一道线,从山下往上爬,尽管山坡还在继续往上延伸,但是到线为止,不得逾越,那山腰上那道三八线就是最高点(切,这 还用说?)。这就是庞特里亚京的极大值原理。当然啦,庞特里亚京是用精巧、深奥的数学语言表述的,要不然他在数学界里也别混了。不过呢,意思就是这么一个意思。

    庞特里亚京极大值原理的一个典型应用就是所谓最速控制问题,或者叫时间最优控制 (time optimal control)问题,简单地说,就是给定最大马力和最大刹车功率,怎么开汽车能够最快地从 A 点开到 B 点(什么转弯、上下坡、红绿灯,这种琐碎的事情也要拿来烦人?一点品味都没 有!)。你可以用优美但繁琐的数学求证,或者用膝盖想想,最快的方法,就是一上来就加足马力,全速前进;然后在不到终点的某一地点,全力刹车,使慢下来的 汽车在到达终点时正好停下来。这时最快的方法,不可能比这更快了。稍微发挥一点想象力,可以想象“梆”的一下,控制量的油门板一脚到底,再是“梆”的一 下,刹车板一脚到底,控制任务就完成了。所以最速控制也叫“梆-梆”控制(Bang-Bang control)。

    最速控制在理论上是一个很有趣 的问题,解法也是简洁、优美,但在实际中直接使用的例子实在是凤毛麟角,一般都是开始时用“梆-梆”,或者匀速上升到最大控制,以缓和控制的冲击力;到终 点附近时,改用 PID 作闭环微调,以克服“梆-梆”的系统模型误差十分敏感的缺点。电梯控制就是这样一个例子。从一楼到四楼,电动机很快匀速上升到最高转 速,一过三楼,电动机就匀速下降到较低的转速,然后根据电梯实际位置和楼面之差,有控制地减速,直至停下来。要是控制参数调得好的话,一下子就稳稳当当地 停下来;要是调的不够好,会在停下来之前上下晃荡几下。

    最速控制问题是较早的最优控制问题,它提供了一个很有趣的思路,但这颗树上开花结果不多。 相比之下,最优控制的另外一支枝繁叶茂,有生气得多了。这一支就是线型二次型最优控制(linear quadratic control)。数学是有趣的,但数学也是盲目的。在数学上,最优化问题就是一个在曲面上寻找凸点的问题,只要你能把一个物理问题表述成一个曲面,数学是不理会姓无姓资的。既然如此,控制偏差的平方在时间上的累积就是很自然的选择,二次型就是平方在线性代数里的说法。线型系统的偏差平方有很好的性质,这山峰是一个馒头山,没有悬崖峭壁,没有沟坎,容易爬;一山只有一峰,不用担心找错地方。不过这山峰不能只包含控制偏差,还要包含控制量,原因有三个:

    1、如果不包括控制量,那最优控制的解是没有意义的,因为无穷大的控制量可以使累计平方偏差为最小,但无穷大的控制量是不现实的。
    2、控制量的大小通常和能量、物料的消耗连在一起,实际控制问题一般是“在最小能量、物料消耗小达到最高的控制精度”,所以在“山峰”中同时包含控制偏差和控制量是很自然的
    3、系统模型总是有误差的,误差“总是”在高频、大幅度控制作用下最突出,

    所以为了减低系统对模型误差的敏感性,也有必要限制控制量的大小。

    所以线性二次型最优控制的“目标函数”(也就是定义山峰形状的数学表述)是一个控制偏差和控制量各自平方的加权和的积分。积分当然就是“在时间上的累积 ” 了,加权和其实就是在控制偏差的平方项和控制量的平方相前分别乘以比例因子,然后再相加。两个比例因子的相对大小决定了谁更重要。运用矩阵微分和线型 代数工具,不难导出线性二次型控制律—一个基本的状态反馈控制律!只是反馈增益矩阵是按最优化的要求计算出来的。

    线型二次型最优控制开创了一整个新的控制领域,很快从状态空间走出来,进入其他领域,子孙繁衍,人丁兴旺。这一支是当今最优控制在应用中的主体。线性二次型控制具有各种各样的优点,但是,线性二次型没有回答一个最基本的控制问题:这个闭环系统是不是稳定。这里,我们的饱受牵记的李亚普诺夫同志出场 了。

    李亚普诺夫也是一个思路比较奇特的人,一百多年前,玩微分方程玩出了瘾,整出两个稳定性(或者叫收敛性)的定理,前一个没有什么太了不起的,把非线性系统线性化,就是把一根曲线用很多一小段、一小段的直线近似,然后按直线来分析。后一个就有点邪门了。老李琢磨出一个定理,说是对于任意一个系统,如果能找 到一个自我耗散的能量函数(数学说法是正定函数),也就是其数值永远为正,但随时间渐进地趋向零,或者说这个能量函数对时间的导数永远为负,那这个系统就 是稳定的。据说定理的证明是一个天才的杰作,我等凡人只有频频点头的份。不过想想也对,系统的能量耗散没了,系统不也就安分下来了吗?当然就稳定喽。

    李亚普诺夫比卡尔曼还要数学家,他的定理只给出“如果存在……就……”,怎么找这个自我耗散的能量函数他没说,这个函数一般是什么样他也没说。这难不倒搞自动控制的群众。不是要正定函数吗?不是没有限制什么形式的正定函数吗?那就用控制偏差的平方吧。说干就干,但是干着干着,好玩的事情出现了,对偏差平方(或二次型)的求导,导出了和线性二次型最优控制推导过程中同样出现的一个所谓黎卡蒂方程(Riccati equation),感情这是殊途同归呀。换句话说,线性二次型控制总是稳定的。这是线性二次型控制的一个重要贡献:把最优性和稳定性连到一起。

    再扯一句李亚普诺夫,他的第二个定理非常威猛,但是有点像一个奇形怪状的大锤,到现在人们还在找合适的钉子,好用这把大锤砸几下。线性二次型控制是已知的仅有的几个钉子之一,另一个是变结构控制,也可以用李亚普诺夫方法,这是题外话了。

    数字控制

    都说瓦特的蒸汽机后,计算机是影响人类进程最大的发明,计算机当然也对自动控制带来深刻的影响。如前所述,控制理论基本上都是围绕微分方程转的,所以在“本 质”上是连续的。但是数字计算机是离散的,也就是说,数字控制器的眼睛不是一直盯着被控对象看的,而是一眨一眨的。数字控制器的“手脚”也不是一刻不停地 连续动作的,而是一顿一顿的。这是数字计算机的天性使然。于是,传统的控制理论全部“翻译”到离散时间领域,微分方程变成了差分方程,所有方法、结论都有 了连续、离散两套,不尽相同,但是大同小异。

    要是数字控制就是简单的连续系统离散化,计算机控制也就没有什么了不起。离散控制带来了一些连续控制 所不可能具备的新特点,这就是:差分方程用清晰界定的时刻之间的关系来描述动态过程。回到洗热水澡的例子,如果热水龙头不在跟前,而是在村外一里地的小锅 炉房里,你只能用电话遥控,那水温可以表示为下一分钟水温=0.7现在水温+0.2上一分钟水温+0.1再上一分钟水温+0.4(5 分钟前锅炉房龙头开度-6 分钟前锅炉房龙头开度)

    显然,下一分钟的水温受现在水温的影响比上一分钟和再上一分钟的水温的影响要大,但锅炉房龙头开度要是不变,现在、上一分钟、再上一分钟水温都一样的话,下 一分钟的水温也应该和现在的水温一样。为什么用 5 分钟前锅炉房的龙头开度呢?那是因为热水从村外流到洗澡房要有一定的时间,这个时间就是滞后。要是把时间 向前推,那现在的龙头开度就会影响 5 分钟后的水温。这说明了离散模型的一个重要特质:预估能力。所有预报模型都是建立在离散模型的这个预估能力上,不管是天气预报,还是经济预测,还是自动控制里对有滞后的过程的控制。

    数字控制的另一特质是可以实施一些不可能在连续时间实现的控制规律。工业上常有控 制量的变化需要和当前的实际值有关的情况。比如对于不同的产品,反应器的转化率总是大体在 88-92%之间,没有太大的变化,但是催化剂可以在0.5 到 35ppm 之间变化,采用常规的 PID 的话,增益就非常难设,对一个情况合适了,对另一个情况就不合适。所以催化剂需要按百分比变化率调整,而不是简单地 按偏差比例调整。比如说,转化率偏离 1%时,催化剂要是在 0.5ppm,应该调整 0.05ppm;但是在 15ppm 的时候,就应该是 1.5ppm。这 样,控制律就可以表示为:当前的控制量=上一步的控制量*(设定值/当前的测量值)也就是说,在被控变量高于设定值 10%的情况下,控制量也增加 10%;测量值和设定值一样时,控制量不再变化。实际使用时,谁除以谁要根据测量值上升你是要控制量上升还是下降来决定,控制律也要稍微修改一下,成为当前的控制量=上一步的控制量*(当前的测量值/设定值)^k。

    k 次方是用来调整控制律对“偏差”(这是已经不是差值,而是比值了,严格地说,应该叫“偏比”?)的灵敏度,相当于比例增益。这个控制律实际上相当于对数空间 的纯积分控制,要是有兴趣,对很多常见的非线性过程有相当不错的效果,实现也简单。然而,这是一个本质离散的控制律,在连续时间里无法实现。

    离散控制可以“看一步、走一步”的特性,是连续控制很难模仿的,也是在实际中极其有用的。

    系统辨识

    形形色色的控制理论再牛,没有被控过程的数学模型,照样抓瞎。前面的洗澡水温就是一个数学模型。这个模型是杜撰的,当然可以很容易地给它所有模型参数。但在 实际中,模型参数不会从天上掉下来。多少科学家毕生致力于建立某一特定的物理、生物、化学或别的学科的数学模型,基本机制已经清楚的模型都不容易建立,更 不用说很多过程的基本机制或深层机制并不清楚。所以靠机理推导被控过程的数学模型是可能的,但对日常的控制问题来说,并不实际。

    这就是控制理论的另一个分支—辨识—一显身手的地方了。如果给定一个模型,也就是一个数学公式,给它一组输入数据,模型就可以计算出对应的输出数据。比如说,给定模型 y=2*x+1,再给出 x=1,2,3,4,那 y 就等于 3,5,7,9,就这么很简单。

    辨识的问题反过来,先给定一个模型结构,在这里就是 y=a*x +b,已知输入-输出数据是 x=1,2 时 y=3,5,要求计算出 a 和 b。显然,这是一个二元一次方程,谁都会解。在实际中,输入-输出的观察 数据含有测量噪声,这对参数估计的精度不利;但通常积累观察的数据量远远超过未知参数的个数,不说数学,感觉上这就应该对克服测量噪声有利,关键是怎么利 用这“多余” 的数据。一个办法是把数据组两两配对,借众多的二元一次方程,然后对解出来的 a 和 b 作平均。还有一个办法就是有名的最小二乘法了,说穿了, 就是以 a 和 b 为最优化的“控制量”,使模型输出和实际观测值之间的累积平方误差为最小。

    实际工业过程大多有多年的运行经验,大量的数据不成问题。 对于大多数常见过程,模型的基本结构和定性性质也可以猜一个八九不离十,有了如此有力的数学“大锤”,那么应该可以砸开一切建模的硬核桃啦。且慢,世上没有真正的“神奇子弹”,一个问题解决了,另一个同等难度的问题又会出现。对于辨识来说,问题有好几个。

    第一个问题是工业数据的闭环性。大多数重要参数都有闭环回路控制。如果没有闭环回路控制,那要么就是过程特性实在太复杂,简单回路控制不了;要么就是这个参数其实不重要,飘移一点没人在乎。然而, 一旦闭环,系统地输入和输出就是相关的了。这一相关不要紧,输入-输出数据之间的因果性就全乱了:输出通过被控过程本身和输入相关(这是好的,辨识就是要 测算出这个相关关系,输出要是和输入不相关,也没有控制或辨识什么事了),输入通过反馈和输出相关;输入-输出成为一个闭合系统,你可以用任意多条定理或 方法证明同样的事:由于因果不分,闭环辨识是不可能的,除非另外加入“新鲜”的激励,比如使劲变设定值,或者在闭环回路里额外施加独立于输入、输出的激励信号,比如“莫名其妙” 地把阀门动几下。弄到最后,工业数据到底能用多少,就不是一个简单的回答。有的过程常年稳定操作,像乙烯装置,只有小范围的微调。

    这倒不是人家懒或者不求上进,而是这些装置早已高度优化,常年操作的极其接近极限的位置,但原料和产品单一,所以工艺状况不怎么大变。这种系统的闭环数据用起来很吃力,常常必须做一定的开环试验。有的过程经常在不同的状态之间转换(transition),或者由于不同的原料,如“吃”得很杂的炼油 厂,或者由于不同的产品,如聚乙烯装置,这实际上就是“使劲变设定值”,是新鲜的激励。这种系统的闭环数据比较好用,但又别的问题,下面要谈到。

    第二个问题是动态和稳态。动态模型的作用有两个:一是描述需要多少时间输出才能达到某一数值;二是输出最终能够达到什么数值。用股票市场举一个例子,你需要 知道两件事:一是这支股票最后会升到多少,二是需要多少时间才能升到那里,只知道其中一个对你并没有太大的用处。当然为了简化,这里假定这支股票一路飙 升,不来忽升忽降或跌买涨卖的名堂。这就要求输入-输出数据必须包含充分的动态和稳态信息,过于偏颇其中一方面对另一方面会不利。所以,长期稳定运行的过程中可能包含足够的稳态数据,但动态不足;常年不怎么稳定的过程可能包含足够的动态数据,但稳态不足。用 PID 控制打比方,精

    确的稳态数据有助于计算正确 的比例控制增益,精确的动态数据有助于计算正确的积分和微分增益,显然,把比例增益整对了更为重要。

    为了获得精确的稳态,在辨识中常常需要等过程开环稳定 下来才进行下一步,但是问题是,实际过程有时时间常数很长,几个精馏塔一串联,时间常数几个小时是客气的,一、两天都是可能的。这样一来,一个不太大的模型,十来个变量,开环试验一做就是一、两个星期。要是一个装置能够两个星期开环,那也不需要什么控制了。

    第三个问题是激励的信噪比。都说人类活动 是二氧化碳和温室效应的主要原因,但要是你去生一堆篝火,再去高空大气层去测一测二氧化碳和温室效应,肯定什么也测不出来,本来多少,现在还是多少。为什 么呢?不是因为这堆篝火没有效果,而是环境中的自然的变化远远超过了篝火的作用,换句话说,就是噪声远远超过了信号。工业测试也是一样,信号一定要有一定 的强度,否则是白耽误工夫。信号强度应该使过程达到严重失稳的边缘,这样才好获得在大范围内都精确的模型,以便控制器不光在“风平浪静”的情况下可以正常 工作,在“惊涛骇浪”的情况下也能使系统恢复稳定。然而,工厂以生产为主,在一切都“斤斤计较”的今天,如此大范围的测试所带来的产品损失甚至对设备的可能的危害,都是工厂极不愿意见到的。

    理论家们设计了一个伪随机信号,用一连串宽窄不等的方波信号,作为激励过程的输入,在理论上可以是过程参数的平均值不致偏离设定值太多,但 ISO9000 不仅要求产品质量的平均值要保证,产品质量的一致性也要保证。再说,伪随机信号的脉宽不好确定,太窄了,稳态数据不够;太宽了,和常规的阶跃信号也没有什么两样。所以伪随机信号在实际上用得很少。

    第四个问题是输入的相关性。实际工业过程到了要用辨识来确定模型的时候,都是单回路对付不了了,所以都是多变量过程。在理论上,多个输入变量可以同时变化,只要输入变量的变化是相互独立的,数学上容许多个输入变量同时变化,而辨识可以正确地辨别模型。然而,在使用实际过程的历史数据时,常常遇到多个输入变量并不相互独立的问题。比如说,在制作巧克力的过程中,香草巧克力比较“苦”,或者说不太甜,而牛奶巧克力比较甜。问题是做牛奶巧克力时,不光加糖,还要加牛奶(废话,不加牛奶那还是牛奶巧克力吗?)由于两者总是同时出现,在甜度模型里,就难以辨别甜度是由于加糖的关系,还是由于加牛奶

    的关系。有的时候可以根据对具体过程的认识,人工地限制辨识的过程,来消除这种影响,有的时候,就不太容易了,只好不用历史数据,专门做试验,用各自独立的输入,辨识模型。

    第五个问题是模型结构。模型结构包括两个方面,一是模型的阶数,二是剔除在物理上不可能的模型。辨识的模型归根结底还是差分方程,这就有一个如何预设阶数的问题。数学上有很多验前和验后的检验方法,在工业上,人们偷一个懒,改用费参数模型,也就是用一条响应曲线而不是一个方程来表述一个模型,这样就可以绕过阶数的问题。但是剔出不现实的模型还是一个手工活,需要对每一个模型仔细研究,以确定模型所描述的动态关系是否合理。数学方法还是不够可靠。

    在搞模型的人中间,常常会听到黑箱、白箱和灰箱的说法。黑箱模型就是不理会实际过程的物理、化学等性质,纯粹从数学出发,假设一个模型结构,然后用种种数学方法找出一个最好的模型。白箱反其道而行之,从物理、化学等性质出发,建立机理模型。黑箱模型的好处是“放之四海而皆准”,不需要对具体过程有深入的了解。黑箱模型是一种削足适履的作法,但是如果履本身就做得比较好,具有相当的灵活性和适应性,就并不需要削足。由于黑箱模型可以自由假设模型结构,黑箱模型的处理和使用都比较方便。黑箱模型是经验主义的, 数据里没有包含的情况,黑箱模型无法预测。白箱模型则是“量身度造”的,反映了过程的物理、化学等性质,对实际过程的数据没有太大的依赖,对数据中不包含的情况也能可靠地预测。但是白箱模型的结构有具体问题决定,得出的模型不一定容易使用。在实际中,人们经常在假设一个模型结构的时候考虑进大大简化的过程机理,所以模型结构不是凭空拍脑袋出来,而是粗略地抓住了过程的基本特质,然后再用黑箱方法的“数据绞肉机”,将简化模型没有能够捕捉的细微末节一网打尽。

    这种模型结合了黑箱和白箱的特点,所以称为灰箱。实际建模中,纯粹黑箱或白箱的成功例子很少,灰箱的成功机会就要多得多。不管什么箱,最后还是有一个如何辨识实际过程的问题。闭环辨识的好处不用多说了,问题是如何从闭环辨识中获得有用的模型。工业上有一个办法,没有一个“官名”,但实际上是一个开环-反馈过程。具体做法是这样的:先用粗略的过程知识构造一个简单的多变量控制器,其任务不是精确控制被控过程,而是将被控变量为此在极限之内,一旦逼近或超过极限,就采取动作将其“赶”回极限内;但只要在极限内,就按部就班地做阶跃扰动,测试过程特性。测试的结果用来改进控制器的模型,然后再来一遍。几遍(一般两遍就够了)之后,模型精度应该很不错了。这个方法比较好地解决了辨识精度和过程稳定性的要求。

    自适应控制

    西游记里最好看的打斗是孙悟空大战二郎神那一段。孙悟空打不过就变,二郎神则是“敌变我变”,紧追不舍,最后把个无法无天的顽皮猴子擒拿归案。用控制理论的观点看,这“敌变我变”的本事就是自适应控制控制器结构根据被控过程的变化自动调整、自动优化。

    自适应控制有两个基本思路,一是所谓模型跟踪控制,二是所谓之校正控制。模型跟踪控制也叫模型参考控制,在概念上对人们并不陌生。毛_主_席那阵子,经常树立各种榜样,目的就是要在党发出号召时,我们比照榜样的行为,尽量调整自己的行为,使我们的行为了榜样的行为接近。这就是模型跟踪控制的基本思路。模型跟踪控制在航空和机电上用得比较多,在过程控制中很少使用。自校正控制的思路更接近人们对自适应的理解。自校正控制是一个两步走的过程,首先对被控过程作实时辨识,然后再辨识出来的模型的基础,实时地重新构造控制器。思路简单明了,实施也不算复杂,但自校正控制在一开始的欢呼后,并没有在工业上取得大范围的成功,原因何在呢?

    原因之一是闭环辨识。虽然自校正控制不断改变控制器的参数,在一定程度上打破了固定增益反馈控制对输入、输出带来的因果关系,但是因果关系还是存在,还是相当强烈,对辨识模型的质量带来影响。

    原因之二是所谓“协方差爆炸”。数学上当然有严格的说法,但简单地说,就是自校正控制器的目的当然还是是系统稳定下来,但是在系统越来越稳定的过程中,自校正控制器对偏差和扰动的敏感度越来越高,最后到“万籁俱静”的时候,敏感度在理论上可以达到无穷大,然而,这时如果真的扰动来了,控制器一下子就手足无措了。

    原因之三是实际过程的复杂性。在辨识实际过程时,最重要的步骤不是后面的“数学绞肉机”,而是对数据的筛选,必须把各种异常数据剔除出去,否则就是“垃圾进来,垃圾出去”。但是,要实时、自动地剔除异常数据,这个要求非同小可,比设计、投运一个自校正控制器费事多了。这是自校正控制在实际中成功例子有限的最大原因。

    模型预测控制

    自动控制从一开始就是以机电控制为主导的。60 年代数学派主导了一段时间后,70 年代化工派开始“小荷才露尖尖角”。自校正控制已经有很多化工的影子,但化工派的正式入场之作是模型预测控制(model predictive control,MPC)。这是一个总称,其代表作是动态矩阵控制(dynamic matrix control,DMC)。DMC是 Charlie Cuttler 的 PhD 论文,最先在壳牌石油公司获得应用,以后 Cuttler 自立门户,创办 DMC 公司,现在是 Aspen Technology 公司的一部分。

    数学控制理论非常优美,放之四海而皆准,但是像老虎一样,看起来威猛,却是干不得活的,干活毕竟靠老牛。DMC 的成功之处在于应用伪理论,将一些本来不相干的数学工具一锅煮,给一头老老实实的老牛披上一张绚烂的老虎皮,在把普罗大众唬得一愣一愣的时候,悄悄地把活干了。

    DMC 基本就是把非参数模型(在这里是截断的阶跃曲线)放入线性二次型最优控制的架构下,成功地解决了解决了多变量、滞后补偿和约束控制问题。多变量的含义不言自明,滞后放在离散动态模型下也很容易实现预测,这也没有什么稀奇。稀奇的是,DMC 用“土办法”解决了约束控制问题。所有实际控制问题的控制量都有极限。 加速时,油门踩到底了,那就是极限,再要多一马力也多不出来了。庞特里亚金的最大值原理在理论上可以处理约束控制问题,在实际上很难求出有用的解来,最速控制是一个特例。

    那 DMC 是怎么解决约束控制问题的呢?当某个控制量达到极限时,这个控制量就固定在极限值上了,这就不再是变量,而是已知量,把已知量代进去,将控制矩阵中相关的行和列抽掉,重新排列矩阵,剩余的接着求解。这也没有什么稀奇。令人头疼的是如何处理输出约束的问题。DMC 把线性规划和控制问题结合起来,用线性规划解决输出约束的问题,同时解决了静态最优的问题,一石两鸟,在工业界取得了极大的成功。自卡尔曼始,这是第一个大规模产品化的 “ 现代控制技术”,Cuttler 在 DMC 上赚了大钱了,在“高技术泡沫”破碎之前把公司卖给 Aspen Technology,更是赚得钵满盆溢。他女婿是一个医生,也不行医了,改行搞过程控制,跟着 Cuttler 干了。

    DMC 的英明之初在于从实际需要入手,不拘泥于理论上的严格性、完整性,人参、麻黄、红药水、狗皮膏药统统上,只要管用就行。在很长一段时间内,DMC 的稳定性根本没有办法分析,但是它管用。搞实际的人容易理解 DMC 的歪道理,但搞理论的人对 DMC 很头疼。

    DMC 打开局面后,一时群雄蜂起,但尘埃落定之后,如今只有三家还在舞台上。Honeywell 的 RMPCT(Robust Multivariable Predictive Control Technology)是一个中国同胞开创的,他的独特 之处在于引入“漏斗”概念。大部分控制问题都有一个特点:如果扰动当前,有一点控制偏差是可以容忍的;但时间一长,控制偏差应该消除。换句话说,这就像一个时间轴上对偏差的横放的漏斗。这个概念对复杂过程的 MPC 参数整定非常有用,已经在别的公司的产品上也出现了。

    第三家就是方兴正艾的 Pavilion Technology 的 Perfecter。美国公司有一个坏毛病,喜欢对好好的产品取一个不伦不类的名字。Perfecter 的特色 是将神经元技术(neural net)和 MPC 结合起来,所以可以有效地处理非线性过程。神经元模型没有什么神秘的,说穿了,就是具有某些特定复杂形式的回归模型,但是比回归模型更不适宜内插和外推。DMC 也号称可以处理非线性,因为即使阶跃响应曲线拐上几拐,DMC 照样囫囵吞枣,可以计算控制输出来, 这就是非参数模型的好处。但是问题在于 DMC 的结构框架毕竟还是线性的,阶跃响应的概念根本不适合非线性过程,因为非线性响应和输入的绝对数值、相对变化 甚至变化方向有关,甚至可以更复杂,所以所谓 DMC 可以处理非线性是放空炮。如果实际过程的非线性不强,根本可以忽略它;如果实际过程有很强的非线性,DMC肯定抓瞎。那么, Perfecter 用了神经元,是不是就所向披靡了呢?也不尽然。

    Perfecter 继承了 DMC 不问理论、唯实用是问的好 传统,但是 Perfecter 的基本骨架还是线性的 MPC,只是用静态的神经元模型时不时地作一个线性化。Perfecter 在理论上乏善可陈,在实用上还是管用的。

    前面说到 PID 在当今过程控制中占至少 85%,那 MPC 就要占 14.5%了。

    计算机分散控制

    计算机对自动控制的影响要是只局限在离散控制理论上,那也就不是计算机控制了。事实上,80 年代以后新建的化工厂,基本都采用计算机控制。说是可以采用比 PID 更先进的技术,实际上,绝大多数还是在用 PID,加上顺序控制,按部就班地执行一系列动作。那计算机控制的好处到底在什么地方呢?

    过程控制的实际装置最初全是直接安装在现场的,后来出现气动单元仪表,可以把压缩空气的信号管线从现场拉到中心控制室,操作工可以在中控观察、控制全厂了。电动单元仪表防爆问题解决后,中控的使用更加广泛。操作工坐在仪表板前,对所辖工段的情况一目了然。但是随着工厂的增大和过程的复杂,仪表板越来越长,一个大型化工厂随随便便就可以有上千个基本控制回路和上万个各种监控、报警点,仪表板非有几百米长不可,这显然是不可能的。生产过程的高度整合,使一两个人控制整个工厂不光满足削减人工的需要,也对减少 通讯环节、综合掌控全局有利。所以,计算机显示屏就不光是酷,而是必须的了。另外,

    计算机控制使现场仪表(阀门、测量变送器等)的自检成为可能,大大提高了系统的可靠性。于是,计算机控制就是不花没人性了。

    计算机控制从一开始的集中控制(用 IBM 的大型机)到现在的分散控制(所谓 Distributed Control System,DCS)走过一个螺旋形上升的过程。集中控制的要害在于风险集中,要是大型机挂了,全厂都要失控。分散控制将全厂划分为若干条条块块,用以微处理器为基础的一个控制用局部网来分散控制,主要子系统都是实时冗余的,故障时在第一时间内切换到备用系统,主系统和备用系统在平时定期互相自检、切换,以保证可靠。分散控制显然大大提高由于计算机本身引起的可靠性。但是现场仪表和接线终端 (field terminal assembly,FTA)不是冗余的,整个可靠性链还是有漏洞。另外,控制局部网的同轴电缆长度有物理限制,FTA 到 DCS 的长度也有物理限制,所以最后分散控制还是不怎么分散,全是集中在中控室附近或地下室里。不过 DCS 在地理上的集中,并不妨碍其在逻辑上的分散,只要不是一把火把 DCS 的机房烧掉,部件可靠性的问题还是可以很好地隔离在小范围。

    既然 DCS 是一个局部网,那就有一个通信协议的问题。DCS 基本上用两大类型的通信协议:轮询(polling)和中断。轮询由中心控制单元轮流查询所有子系统,不管有没有数据更新,到时候就来问一遍,所以不管什么时候,系统地通信流量都很高,但是恒定。中断方式正好相反,子系统自己先检查一下,如果数据没有变化,就不上网更新;直到数据有变化,再上网“打一个招呼 ”。这个方式的平时通信流量较低,所以网路带宽要求较低。但是生产过程发生异常时,大量警报数据蜂拥而来,如果带宽不够,就会发生通信阻塞的问题。所以, 中断和轮询到最后对带宽的要求是一样的,因为谁也不能承担生产过程异常时通信阻塞的后果。

    二十年前,Honeywell 是第一个吃 DCS 这个螃蟹的公司,今天 Honeywell仍然是行业里的老大,尽管其设备昂贵,被戏称为 Moneywell。当年的 DCS 全是量身度造的硬件、软件。今天在“开放 系统”(open architecture)的大潮里,DCS 的制造厂家都纷纷将控制台和计算、网络控制单元转向通用的 WINTEL 或UNIX 平台,自 己专注于工控专用装置(如基本控制装置,包括 I/O)和系统的软件整合。但是这带来了新的问题。通用/商用硬件、软件的可靠性常常不能满足 24 小时、365 天的连续运转要求。对于大多数 IT 来说,机子坏了,两小时内换上就是很快的了。但是对于生产过程来说,这是不可容忍的。开放结构容许将DCS 和经营、管理、办公网络相连接,极大地提高了信息交流速度和深度、广度,但也带来了网络安全问题,紧接着就是 DCS 前面竖起一道又一道的防火墙,把数据分享和远程操控压缩到最低。另外就是 WINTEL 夜以继日的不断更新换代,使硬件、软件的稳定性十分糟糕,没有过多少时间,又要升级,又是头疼。这是 DCS 的第二个螺旋形上升,只是现在还是盘旋多于上升。

    计算机控制的领地也在扩大,类似 USB 那样的技术也开始用于数字化的仪表。过去的仪表都必须把信号线拉到接线板(marshalling panel)上,然后再连到 FTA 上,这样同样远在百把米外的 10 台仪表,需要并行拉线,很浪费。用了类似 USB 的现场总线(field bus),各个仪表可以“挂”在总线上,然后一根总线连到 DCS 就可以了,大大节约拉线费用和时间,对系统(如加一个测量用的变送器或控制阀)的扩展也极为方便。

    控制软件

    DCS 的最大优越性是可编程。这不是简单的像 PLC(programmable logic controller,可编程序逻辑控制器,多用于机电控制)的梯形逻辑那样编程,而是可以像 C、FORTRAN 那样“正规”的编程。

    没有在 IT 干过,只能和学校里计算机语言课程和大作业的程序相比。DCS 编程和平常的编程相比,还是有一些特点的。首先,DCS 的程序属于“再入”式,也就是定时反复运行的,而不是一次从头到底运行就完事的。所以 DCS 程序可以在运行完毕时在内存里存放数据,到下次运行时再调用,形成所谓“递归”运算。这既是优点,也是缺点,要是别人在你

    两次运算中间把那个中间数据更改了,你就惨了,找债主都不容易。DCS 程序的特色是实时,所以其执行非常取决于一系列事件在时间上的顺序。时序上要是搞岔了,老母鸡也就变鸭了。问题是,分散控制要求越分散越好,不光是可靠性,在系统资源的调度上,分散了也容易使系统的计算负荷均匀。这样一来,一个应用程序包常常将一个巨大的程序打散成很多小程序,各自的时序和衔接就要非常小心。

    和学术型控制计算程序最大的不同,或许还在于对异常情况的处理。一个多变量控制问题在实际上常常会有部分变量处于手动控制,而其余变量处于自动控制的情况。这在理论上是一个麻烦,在实际上是一个噩梦。不光要考虑所有的排列、组合,还要考虑所有情况平顺的切入、切出,不同模式之间的切换。还有就是要考虑异常情况下如何安全、自动地退出自动控制,交还手动控制。有时操作规程上的一句话,程序写写就是一页。如果操作规程上来一句“视情处理”,那就更惨了。在所有控制程序中,控制计算通常不超过 30%,20%为人机接口功能,而 50%为异常情况处理。

    人机界面

    计算机控制不是因为更先进、更有效的人机界面才开始的。从一开始,人机界面 就面临一个管中窥豹的问题。计算机的 CRT 显屏只有这么大,不可能 “一言以蔽之”,在一瞥之中把所有的过程信息尽收眼底。计算机可以不断地换屏,分段显示其他装置、工段的信息,但是把所有的工段、装置分别用各自的画幅表示,如果没有有效的组织,找都不容易找到,就像在同一个目录里杂乱 无章地放上百把个文件一样。分级的菜单是传统的解决办法,但是要逐级上去再逐级下来,很费时间,情急之中,往往来不及更换。大键盘上 short cut 键可以“一键调出”,但需要死记硬背,这可不是几个、十几个画幅,而是上百个甚至更多。很长时间以来,如何有效地在画幅之间导航,可以在最短时间和最少点击内,不需要死记硬背,就可以直观地找到所需要的画幅,一直是一个令人头疼的问题。人机界面设计的另一个问题是色彩。还记得 DOS 2.0 时代的 WordStar 吗?

    那是黑底绿字的。那时候,CRT 亮度不足,寿命也糟糕,黑底可以延长寿命,绿字可以增加反差,帮助阅读,反正机房是暗暗的,黑底并不伤眼睛。到了WordPerfect 5.0 的时候,就是蓝底白字了,字和背景之间的反差大大减小,蓝底也比较适宜于在明亮的房间内使用。到了 Word 的时代,没有昏暗的机房了,基本上都用像纸上写字一样的白底黑字了,再用黑底绿字,太伤眼睛。

    中控室计算机显示也经历了类似的旅程。早期 DCS 的显示都是黑底绿字的,到了用 WINTEL 或 UNIX 的时代,很多人出于习惯,仍然采用黑底绿字,但是现代人机工程研究表明,浅色背景大大减低眼睛的疲劳, 在明亮室内的灯光对屏幕的反光也小,所以控制室的显示开始向浅灰背景进化了。人机工程研究同时发现,色彩可以作为过程信息的一部分,天下太平的时候,应该用最不显眼的灰色,所有的图形、数据都用不同深浅的灰色来表示,只有在过程参数越限或报警时,才采用彩色显示,这样可以一下子就把操作工的注意力吸引到需要的地方。

    但是,出于习惯思维,很多地方还是大量采用各种色彩表示不同的设备状态和参数,即使是正常状态也是一样。这样在平日里色彩缤纷很好看,但在异常情况时,不容易在万马军中找到上将的首级,实际上是舍本逐末。显示器的布置也很有讲究,少了当然不行,也不是越多越好,一个操作工的视界的上下左右有一定的范围,控制台的色彩、构造、照明都不能想当然的。这不是助长修正主义,而是保持操作工最有效地控制生产过程的要求。

    性能评估

    传统上,如果操作工不抱怨,控制回路的性能就是可以接受的,除非你想精益求精,一般不会去没事找事,重新整定参数。在对经济效益斤斤计较的今天,生产过程的工艺条件被推到极端,对控制性能提出极大的挑战,控制回路必需时时、处处都在最优状态。随着控制回路数的迅速增长,单靠人工观察,已经难于随时掌握所有控制回路的性能状况了。控制回路性能评估技术应运而生。

    理论上,对一个过程可以设计一个最优控制,其中一种就叫最小方差控制。这其实是线性二次型最优控制的一种,控制作用比较猛,但是这是理论上的极限,控制方差不可能再小了。90 年代时,理论界提出一个方法,可以用闭环辨识的方法,不辨识模型,而是直接确定理论上的最小方差,然后将实际方差和理论上的最小方差相比,判别控制回路是否需要重新整定。这个方法开创了控制回路性能评估的先河,但是在实用上不容易排除不利影响,应用不多。

    然而,不和理论上的最优值比较,而是和实际上的理想值比较,就可以绕过很多麻烦的理论问题。比如说,流量回路应该在 1 分钟内安定下来,那理想值就是 1 分钟。通过快速富利叶变换和频域分析,可以将理论性能和实际性能相比较,迅速确定回路的当前性能状况。最要紧的是,这可以用计算机自动采集数据,自动计算,每天早上(或随便什么时候)给出报表,控制工程师可以一目了然,哪些回路需要重新整定,哪些没有问题,可以有的放矢。实时频域分析还可以将所有以相近频率振荡的回路罗列出来,接下来控制工程师就可以按图索骥,找出害群之马了。

    控制回路性能评估的下一步当然就是自动整定。这实际上是一个简化的、断续运行的自校正 PID 控制器,在理论上已经没有问题,但实用上还有很多可靠性问题没有完全解决,现在产品不少,但实用的还是不多。

    故障诊断和容错系统

    对控制回路性能评估的更进一步,当然就是对生产过程的故障诊断了。故障就是异常情况,异常就是和正常不一样。所以故障诊断的核心在于如何探测这“不一样”。

    故障总是有蛛丝马迹的,问题在于工业过程的数据量太大,在大海里捞针,等捞到的时候,常常已经时过境迁了。在数据分析中,PLS(其实是 Peojection to Latent Structure,而不是一般所认为的 Partial Least Square)和主元分析 (Principal Component Analysis,PCA)是很流行的方法。PLS 和 PCA 将众多相关的变量归拢到少数几个“合成”的变量, 这样一个有大量变量的复杂大系统就可以简化为一个小系统,就从大海捞针变为碗里捞针了。捞出来的针不再是单个的变量,而是变量的组合。这和实际是相符的, 故障的早期征兆常常是若干变量的组合,而不能单从一两个变量上看出来。

    PLS 和 PCA 还可以和图形方法结合起来使用。比如说,将那些合成变量标称化,就是除以正常值,那所有合成变量的标称值就是 1。把所有变量画成“蜘蛛图”(spider chart),每一个蜘蛛脚代表一个合成变量,由于合成变量的标称值都是 1,蜘蛛图就是大体为圆的。如果哪一个脚出现变化,蜘蛛就不圆了,非常容易看出异常来,接下来就可以有的放矢地寻找故障的早期迹象了。

    图形数据分析的另一个路子是所谓 co-linear 分析。这是 IBM 早年琢磨出来的一个东西,理论上简直没有东西,但要求换一个思路,正所谓退一步海阔天空。平常的数据点,三维以上就没法画了。但是如果把三维空间的所有数轴画成平行线,而不是常见的直角坐标,那三维空间里的一个点,就是连接三根平行线的一根折线。如果仅此而已,那也就是一个简单但愚蠢的数学游戏。平行坐标系的妙处在于,平行线可以尽着画,所以 5 维、20 维、3 千维,只要纸足够大,都可以画,而且可以看见,而不是只能想像。平行坐标只有一个缺点,就是只能表述离散的点,而难以表述连续的线或面,但这对计算机采集的数据来说,不是问题,计算机采集的数据本来就是离散的点。这样,用平行坐标把大量的数据点画成折线簇,可以很直观地看出数据中的模式来。

    故障诊断的另一个思路是对整个过程进行辨识。辨识出来的模型表述系统的行为,故障当然就是行为的改变,所以将实时辨识出来的模型和正常模型相比较,就可以判断系统是否出现异常或故障。

    仿真

    计算机和模型的另一个用处就是仿真。仿真(simulation)也叫模拟,但是模拟容易和模拟电路(analog circuit)搞混,所以现在叫仿真多了。只要对实际过程有一个足够精确的模型,计算机是可以相当精确地模仿实际系统的行为的。仿真有静态仿真和动态仿真。静态仿真基本上就是解一个巨大的非线性联立方程组,描述空间分布的微分方程也被有限元方法分解了。现代静态仿真已经可以做得相当精确,但这也是在多年结合实际过程数据“磨合”模型的基础上才能做到的。静态仿真大量用于工艺设备设计计算,但是对研究实际过程的真实行为的作用有限,因为对整个生产过程和工艺的仿真要考虑进各个设备动作的时间和控制回路的影响,这些静态仿真是无法体现的。动态仿真要解同样巨大的联立微分方程组,由于要达到实时或更快,一般只能大大简化,否则计算速度跟不上。

    仿真在工业上十分有用。现代化工厂越来越稳定,越来越安全,很多操作工一辈子也没有遇到过真正危险的情况。但没有遇到过不等于不会遇到,操作工必须接受足够的训练, 只有这样,才能当遇到危险情况时,首先能及时、正确地识别故障,然后才能及时、正确地作出反应。这就要靠仿真训练了。现代化工厂也在不断地拓展工艺参数的极限,经常需要做各种各样的试验。有了仿真,就可以预先验证试验的构思,和验证对紧急情况的处理。仿真更是控制工程师的好帮手,新的控制回路先放到仿真上试一下,得出初始整定参数,验证异常情况的处理能力,然后再放到真家伙上,可以避免很多不必要的惊讶。

    RTO

    仿真的一个远亲是实时最优化(real time optimization,RTO)。对于斤斤计较的现代制造业,实时最优化当然是求之不得的。实时最优化就是把整个生产过程当一个大的实时仿真来运算,实时(实际上是每小时)计算出最优工况。想法是好的,困难是多的。首先,那么大一个方程组收敛不容易,要划成很多条条块块,分别求解,然后拼起来。问题就出在“拼”上,边界条件碰不拢怎么办?模型总是有相当的简化,其中有些参数必须和实际测量值符合,有些就没有实际测量值对应,就是“经验系数”(fudge factor)了。这些经验系数就是承担收拾烂账的,边界碰不拢,就调整经验系数,使他们对齐。问题是,好多时候,这一招也不灵,所以实时最优化的喇叭吹得很响,真正用起来的很少,花了大钱最后放弃的也不在少数。

    最关键的是人

    和打仗一样,赢得战斗的是武士,不是武器。控制工程师是控制回路成功与否的关键,而不是价值千金的计算机,或者“放之四海而皆准”的数学控制理论。在加拿大,化工系的控制“专业”要选满所有化工学分,然后再加选控制学分,所以要求比一般的化学工程师还要高一点。选满化工学分是很重要的一点,如果没有对化工的话语权,那化工控制也别混了,这一点是国内(至少是二十多年前我读大学的时候)所欠缺的。这就像医生一样,只有对生理、病理有深刻的了解,对病人的具体情况有深刻的了解,才有可能可靠地判断病情,才能可靠地开方治病。只会看单抓药,这就不是医生,而是药剂师了。在实际中,控制工程师对工艺过程的动态行为的理解至少应该和工艺工程师同等,和操作工相当。

    事实上,很多时候,控制工程师的使命就是将工艺工程师和操作工的经验和知识具体化、自动化了,如果你不能深刻理解,那如何实现呢?一个优秀的控制工程师可以在操作工不在的时候,当班操作;可以在工艺工程师不在的时候,做出工艺决定。但是控制工程师毕竟不是工艺工程师,也不是操作工。控制工程师应该掌握前面说到的所有领域,从数学控制理论,到计算机网络,到人机工程,到工艺和仪表知识。这个要求很高,但不是不切实际的。这些是揽这个瓷器活所必需的金刚钻。这也是为什么现在工业界热衷于招雇具有硕士学位的控制毕业生,因为本科的几年已经很难学习必须的知识了。至于博士,那还是有眼高手低的嫌疑,

    专业知识只是成功的一面,控制工程师必须善于与人打交道。工艺工程师比较好说,毕竟有类似的背景,但操作工是控制系统成败的关键,如果无法取得操作工对你个人和你的控制系统的信任和合作,那控制系统很可能就是永久性地被关闭,操作工宁愿手工控制,出了问题还是因为控制系统不可靠,你就等着里外不是人吧。但是取得操作工的信任和合作后,事情会向相反的方向发展。操作工会主动向你提出改进建议,或新的想法,主动找机会帮你试验新的功能,主动拓展控制系统的性能极限。如果说顾客是上帝的话,操作工而不是部门主管才是控制工程师的上帝。

    控制工程师也要善于和头儿打交道,毕竟搞项目、要钱的时候,还是要找头儿的。打报告、作报告、项目控制和管理、和供应商打交道,这些都是必备的技能。

    工艺工程师也是工程师,但用军队的比方来说,他们人多势众,更像常规部队,习惯大兵团协同作战。控制工程师则像特种部队,人数少,行止怪癖(至少对工艺的人来说,他们永远弄不明白控制的人到底在做什么,怎么做出来的),从规划到实施到维修,全一手包办。控制理论的发展历程就是一个寻找“放之四海而皆准”的“神奇子弹”的历程,

    终极目标是可以用一个统一的数学控制工具去“套”任何一个具体的控制问题,而不必对具体过程的物理、化学等特性有深入的理解。控制理论的每一次重大进展,都给人们带来希望,“这一次终于找到了”。但每一次希望都带来了新的失望,新方法、新工具解决了老问题,但带来了新的局限,有的时候甚至转了一圈兜回去了。新的局限往往比老问题更棘手,需要对过程的理解是更多而不是更少。矛和盾就是这么着在螺旋形上升中斗法。

    但是现实常常和人们的认识背道而驰。在商业化的大潮中,推销先进控制算法的公司拍胸脯担保可以如何如何用“万能”的数学控制工具解决一切控制问题,那些绚烂的老虎皮也确实照得不明就里的人眼花缭乱,心旌飘荡;公司的头儿也一口吃进,毕竟“技术万能论”不仅在美军中盛行,在北美的公司文化中也是大行其道。直到有一天,人们发现永动机依然是神话,人还是不能在水上步行,方才想起来,原来世上是没有这等好事的。不过这是题外话了。

    本来就知道这个系列会又臭又长,但是既然写了,就写完吧,希望没有占用太多的带宽,希望没有浪费大家的时间,希望给对自动控制有兴趣的朋友提供一点入门的知识,希望给同好提供一些从实际中得到的经验,错误的地方肯定很多,敬请原谅,同时谢谢阅读。

    展开全文
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分) ...
  • 2018年人工智能之自动驾驶研究报告

    千次阅读 2019-09-02 17:23:18
    摘要 当今,自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面...科研院校、汽车制造厂商、科技公司、自动驾驶汽车创业公司以及汽车零部件供应商在自动驾驶技术领域进行不断地探索,寻求...

    摘要

    当今,自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工 智能技术的应用及推广,在环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网 V2X 等方面实现了全面提升。科研院校、汽车制造厂商、科技公司、自动驾驶汽车创业公司以及汽车零部件供应商在自动驾驶技术领域进行不断地探索,寻求通过人工智能技术来获得技术上的新突破。本报告在此背景下,对自动驾驶汽车进行了简单梳理,包括以下内容: 自动驾驶汽车概念。首先对自动驾驶汽车相关概念、技术以及技术价值进行介绍,接着对国外、国内无人驾驶汽车发展历程及现状进行了梳理。自动驾驶汽车研究情况。对自动驾驶技术研究中的重要技术进行介绍。自动驾驶汽车领域专家介绍。通过 AMiner 大数据平台对 AMiner 的自动驾驶人才库进行数据挖掘,统计分析出领域内学者分布及迁徙。同时,介绍了目前自动驾驶汽车领域的国内外代表性研究学者。自动驾驶汽车应用介绍。自动驾驶汽车已经以交通参与者的身份来到了我们身边,未来主要的应用方向包括公共交通、快递运输、服务于老年人和残疾人等。自动驾驶汽车趋势介绍。到 2020 年,过去积累的自动驾驶技术科研成果及工程进步都将成为现实。自动驾驶汽车即将进入 10~20 年混合模式的时代。随着自动驾驶汽车与人工智能的深度融合,自动驾驶汽车可以实现高度智能化,真正实现 Level 4+级的自动驾驶技术。在享受科技成果的同时,我们也需要认识到,自动驾驶技术可以带来无限憧憬,但也会给社会生活带来巨大的冲击,同时,还面临着巨大挑战。

    一、概念篇

    自动驾驶汽车(Automated VehicleIntelligent VehicleAutonomous VehicleSelf-driving Car;Driverless Car)又称智能汽车、自主汽车、自动驾驶汽车或轮式移动机器人,是一种通过计算机实现自动驾驶的智能汽车。概念篇首先对自动驾驶汽车涉及到的相关概念进行介绍,包括自动驾驶汽车等级标准、智能汽车、无人驾驶汽车等;接着对自动驾驶汽车技术及其技术价值进行概括介绍;重点描绘了国外、国内无人驾驶汽车发展图谱。

    1.1、自动驾驶汽车概述

    1)自动驾驶汽车等级标准

    在介绍自动驾驶汽车之前,我们先来了解一下 SAE J3016 标准。该标准于 2014 年由美国 SAE International(国际汽车工程师学会)制定,内容如下图所示。该标准将车辆分为 Level 0~Level 5 共 6 个级别,并针对道路机动车辆的自动化系统相关条款做了分类和定义。它不但被美国交通运输部采纳为联邦标准,同时也已经成为了全球汽车业界评定自动驾驶汽车等级的通用标准。

    Level 0:无自动化,由人类驾驶员全程操控汽车,但可以得到示警式或须干预的辅助信息。

    Level 1:辅助驾驶,利用环境感知信息对转向或纵向加减速进行闭环控制,其余工作由人类驾驶员完成。

    Level 2:部分自动化,利用环境感知信息同时对转向和纵向加减速进行闭环控制,其余工作由人类驾驶员完成。

    Level 3:有条件自动化,由自动驾驶系统完成所有驾驶操作,人类驾驶员根据系统请求进行干预。

    Level 4:高度自动化,由自动驾驶系统完成所有驾驶操作,无需人类驾驶员进行任何干预,但须限定道路和功能。

    Level 5:完全自动化,由自动驾驶系统完成所有的驾驶操作,人类驾驶员能够应付的所有道路和环境,系统也能完全自动完成。

    2)无人驾驶汽车

    目前对于自动驾驶汽车的研究有两条不同的技术路线:一条是渐进提高汽车驾驶的自动化水平;另一条是“一步到位”的无人驾驶技术发展路线。由 SAE J3016 标准可以看出,通常大家谈论的无人驾驶汽车对应该标准的 Level 4 Level 5 级。无人驾驶汽车是自动驾驶的一种表现形式,它具有整个道路环境中所有与车辆安全性相关的控制功能,不需要驾驶员对车辆实施控制[3]

    3)智能汽车

    在我国,与无人驾驶汽车这个术语相关的概念还有智能汽车。相对于无人驾驶汽车概念,智能汽车定义涵盖的范围更广。《中国制造 2025》将智能网联汽车定义为指搭载先进的车载传感器、控制器、执行器等装置,并融合现代通信与网络技术,实现车内网、车外网、车际网的无缝链接,具备信息共享、复杂环境感知、智能化决策、自动化协同等控制功能,与智能公路和辅助设施组成的智能出行系统,可实现“高效、安全、舒适、节能”行驶的新一代汽车[5]

    4)自动驾驶技术

    无人驾驶技术是对人类驾驶员在长期驾驶实践中,对“环境感知—决策与规划控制与执行”过程的理解、学习和记忆的物化,如右图所示。无人驾驶汽车是一个复杂的、软硬件结合的智能自动化系统,运用到了自动控制技术、现代传感技术、计算机技术、信息与通信技术以及人工智能等。本报告会在技术篇进行详解。

    5)自动驾驶技术的价值

    无人驾驶汽车之所以受到各国政府前所未有的重视,国内外各院校、研究机构都投入了大量人力、物力,各大车企、科技公司、汽车零部件供应商以及无人驾驶汽车创业公司也纷纷在这个领域进行布局,它主要具有以下价值,如下图所示。

    •  改善交通安全。驾驶员的过失责任是交通事故的主要因素。无人驾驶汽车不受人的心理和情绪干扰,保证遵守交通法规,按照规划路线行驶,可以有效地减少人为疏失所造成的交通事故。
    •  实现节能减排。通过合理调度实现共享出行,减少私家车购买数量,车辆绝对量的减少,将使温室气体排量大幅降低。
    •  消除交通拥堵,提升社会效率。自动驾驶汽车可以通过提高车速、缩小车距以及选择更有效路线来减少通勤所耗时间。
    •  个人移动能力更加便利,不再需要找停车场。
    •  拉动汽车、电子、通信、服务、社会管理等协同发展,对促进我国产业转型升级具有重大战略意义。

    1.2、无人驾驶汽车发展图谱

    本节内容将梳理国外无人驾驶汽车发展图谱,上图所示为重要时间节点事件。

    1)科研院校对无人驾驶技术的研究

    20 世纪 70 年代,科技发达国家开始率先进行无人驾驶汽车的研究。1984 年,美国国防高级研究计划署(DARPA)与陆军合作,发起自主地面车辆(ALV)计划,这是一辆八轮车,在校园中能够自动驾驶,但车速并不快。为了推进无人驾驶技术更快、更好地发展,DARPA 2004 年—2007 年共举办了 3 届DARPA 无人驾驶挑战赛,如下表所示。

    20 世纪 80 年代开始,美国著名的大学如卡内基·梅隆大学、斯坦福大学、麻省理工学院等都先后加入无人驾驶汽车的研究工作中。其中,美国卡内基·梅隆大学研制的 NavLab 系列智能车辆最具有代表性。

    • NavLab-1 系统于 20 世纪 80 年代建成。它的计算机硬件系统由 Sun3GPSWarp等组成,用于完成图像处理、传感器信息融合、路径规划以及车体控制等功能。它在典型结构化道路环境下的速度为 28km/h
    • NavLab-5 系统是 1995 年建成的。卡内基·梅隆大学与 Assist-Ware 技术公司合作研制了便携式高级导航支撑平台(PANS)。该平台为系统提供了计算基础和I/O功能,并能控制转向执行机构,同时进行安全报警。它使用了一台便携式工作站 SPARC Lx,能够完成传感器信息的处理与融合、路径的全局与局部规划任务。NavLab-5 实验场环境道路上的自主行驶平均速度为 88.5km/hNavLab-5 进行了首次横穿美国大陆的长途自主驾驶公路试验,自主行驶里程为 4496km,占总行程的 98.1%车辆的横向控制实现了完全自动控制,而纵向控制仍由驾驶员完成。
    • NavLab-11 系统是该系列最新的平台。其车体采用了 Wrangler 吉普车,车上安装有工业级四核计算机,处理各种传感器传输来的信息,并把信息分送到各个子单元。它的最高车速达到了 102km/h

    意大利帕尔玛大学 VisLab 实验室一直致力于 ARGO 试验车的研制。在 1998 年意大利汽车百年行活动中,ARGO 试验车沿着意大利的高速公路网进行了 2000km 长的距离。试验车行驶的道路既有平坦区域,也包括高架桥和隧道。试验车的无人驾驶里程为总里程的 94%,最高车速达到了 112km/h2010 年,ARGO 试验车沿着马可·波罗的旅行路线,全程自动驾驶来到中国上海参加世博会,行程达 15900km。该车装载了 5 个激光雷达、7 个摄像机、GPS全球定位系统、惯性测量设备以及 3 Linux 计算机和线控驾驶系统,全程应用太阳能作为辅助动力源。2013 年,该实验室研制的车辆在无人驾驶的情况下成功识别了交通信号灯、 避开行人、驶过十字路口和环岛等。

    2)汽车制造厂商对无人驾驶技术的研究

    除了科研院校在无人驾驶领域的积极研究外,奥迪、福特、沃尔沃、日产、宝马等众多汽车制造厂商也于 2013 年开始相继在无人驾驶汽车领域进行了布局。这些传统汽车制造企业多采用渐进提高汽车驾驶自动化水平和同时积极研发无人驾驶技术的并进发展路线。目前,对于量产商用车辆来说部分自动驾驶功能已经较为普及,表现比较突出的是德、美、日、韩等汽车制造厂商生产的汽车。其中,德国汽车制造厂商处于领先地位,其生产的几乎所有车型都能提供相关驾驶辅助系统功能(包括 SAE Level 2 级)。2018 新款奥迪 A8 是全球首款量产搭载 Level 3 级别的自动驾驶系统的车型,其携带有 12 个超声波传感器、5 个摄像机、5 个毫米波雷达、1 个激光雷达、1 个红外线摄像机共 24 个车载传感器,可以在60km/h 以下车速时实现 Level 3 级自动驾驶,使驾驶员在拥堵路况下可以获得最大限度的解放。

    2015 10 月,特斯拉推出的半自动驾驶系统 AutopilotAutopilot 是第一个投入商用的自动驾驶技术。目前,特斯拉的量产车上均已安装 Autopilot 1.02.0 2.5 硬件系统,其自动驾驶功能可通过 OTA(空中下载)进行从 Level 2 Level 4+的软件升级,这是在已量产车上,完成了自动驾驶硬件准备。预计今年 8 月推出基于视觉深度神经网络的 Tesla Vision 9.0 软件版本,特斯拉的创始人 Elon Musk 说,由此将实现“完全自动驾驶”。

    2016 年,通用汽车收购了自动驾驶技术创业公司 Cruise Automation,正式进入无人驾驶领域。后者初创于 2013 年,一直从事具有完全自动驾驶功能的无人驾驶技术研发。2018 年1 月,作为通用汽车旗下自动驾驶部门的 Cruise Automation 发布了新一代(第四代)无人驾驶汽车——Cruise AVCruise AV 没有方向盘、油门踏板和刹车踏板,安装了 21 个普通雷达、16 个摄像机和 5 个激光雷达来感知车辆周围的环境和障碍物,是真正的无人驾驶汽车。通用汽车不仅开始量产 Cruise AV 的测试车,以便在美国各城市甚至全世界各地进行实际路试,并且也已向美国国家高速公路交通安全管理局递交请愿书,以便能够在 2019 年开始初 步实际部署无人驾驶车辆。

    3)新技术力量对无人驾驶技术的研究

    以谷歌为代表的新技术力量纷纷入局无人驾驶领域。这些企业多采用“一步到位”的无人驾驶技术发展路线,即直接研发 SAE Level 4+级别的无人驾驶汽车。

    2009 年,谷歌公司宣布,由斯坦福人工智能实验室前主任、谷歌街景的联合发明人Sebastian Thrun 领导组建一支团队,开始研发无人驾驶技术。Sebastian Thrun 的团队创建了机器人车辆 Stanley,该车赢得了 2005 DARPA 大挑战赛。

    2012 年,美国内华达州的机动车辆管理部门为谷歌公司颁发了全球首例无人驾驶汽车的路测许可证。2015 年,谷歌公司的无人驾驶原型车上路进行测试,该车没有方向盘、油门踏板与刹车踏板,同时也没有后视镜,只配有启动和停止两个物理按钮,通过很多传感器、车载计算机来控制汽车。

    2016 12 月,谷歌将无人驾驶业务独立出来,成立了独立公司——Waymo。自 2017年 10 月,Google Waymo 已在美国凤凰城 Chandler 100 平方英里范围内,对 600 辆克莱斯勒插电式混合动力 Level 4 级自动驾驶汽车进行社会公测,这是 Waymo 自动驾驶商业化落地的前奏,首次实现了无驾驶员和安全员的公测无人驾驶出租车。当地时间 2018 5 月31 日,Waymo 宣布向菲亚特·克莱斯勒(FCA)采购 62000 Pacifica 混动厢式车用于打造无人驾驶出租车队。除车辆采购以外,Waymo FCA 双方还在商讨如何将无人驾驶汽车卖给普通用户。这也意味着,在不远的将来,普通用户可以在 FCA 的门店里买到一辆其与 Waymo 共同打造的无人驾驶汽车。2018 年,谷歌还与捷豹路虎合作,计划在 2020 年之前生产另外 20000 辆无人驾驶出租车。

    2016 5 月,Uber 无人驾驶汽车在位于美国宾夕法尼亚州匹兹堡市的 Uber 先进技术中心正式上路测试。Uber 首次路测使用的无人驾驶汽车是一款福特 Fusion 混合动力汽车,它同时进行采集测绘数据并试验自动驾驶功能。Uber 无人驾驶汽车配备了各式传感器,包括毫米波雷达、激光雷达以及高分辨率摄像机,以便绘制周边环境的细节。2016 9 14日,Uber 在美国匹兹堡市推出城区大范围无人驾驶出租车免费载客服务并试运行;尽管上面有两名安全工程师,但商业模式却是大范围的城区,比 Waymo 公测的小镇要大得多。

    4)创业公司对无人驾驶技术的研究

    nuTonomy 为代表的创业公司也纷纷入局无人驾驶领域。这些企业多采用“一步到位”的 SAE Level 4+的无人驾驶技术发展路线。

    nuTonomy 是一家于 2013 年从麻省理工学院分离出来的创业公司。2016 8 月,它成为了新加坡第一家在试点项目下推出自动驾驶出租车的公司。在新加坡的测试中,nuTonomy在自动驾驶汽车上配备了 6 套激光雷达检测系统,前面安装有 2 个摄像机,用于识别障碍物,检测交通信号灯变化。此外,车前座还配备一名司机以应对紧急状况,在后座配备一名研究人员,其职责是观察车载计算机。2017 10 月,德尔福宣布收购 nuTonomy

    Zoox 是硅谷一家神秘的无人驾驶汽车初创公司,目前已经筹集 3.6 亿美元。Zoox 很少向外界介绍其进展。消息显示,Zoox 秘密开发全自动驾驶汽车已有多年。2013 年,该公司展示了其车辆的渲染图。根据 IEEE 的消息,该公司的车型没有挡风玻璃、方向盘和刹车踏板。这种汽车能向任意方向行驶,乘客将面对面而坐。

    1.3、我国无人驾驶汽车发展图谱

    本节将介绍我国无人驾驶汽车研究重要时间节点事件,如上图所示。

    1)我国科研院校对无人驾驶汽车的研究

    与美、欧等发达国家相比,我国在无人驾驶汽车方面的研究起步稍晚,从 20 世纪 80 年代末才开始。不同于国外车企以自主研发为主,我国汽车制造厂商多采取与国内科研院所、高校合作研发无人驾驶技术。

    国防科技大学从 20 世纪 80 年代末开始先后研制出基于视觉的 CITAVT 系列智能车辆。其中,在 CITAVT-Ⅰ、CITAVT-Ⅱ型无人驾驶小车的研制过程中对无人驾驶汽车的原理进行了研究;CITAVT-Ⅲ型的研究以实现在非结构化道路下遥控和自主驾驶为目的;CITAVT-Ⅳ 型自主驾驶车基于 BJ2020SG 吉普车改装而成,该车型以研究结构化道路环境下的自主驾驶技术为目标,空载条件下速度最高为 110km/h,车辆具有人工驾驶、遥控驾驶、非结构化道路上的低速自主驾驶和结构化道路上的自主驾驶四种工作模式。直至 1992 年,国防科技大学才成功研制出中国第一辆真正意义上的无人驾驶汽车。

    清华大学在国防科工委和国家 863 计划的资助下,从 1988 年开始研究开发 THMR 系列智能车。THMR-Ⅴ智能车能够实现结构化环境下的车道线自动跟踪,准结构化环境下的道路跟踪,复杂环境下的道路避障、道路停障以及视觉临场感遥控驾驶等功能,最高车速达150km/h。THMR-Ⅴ智能车采用了基于扩充转移网络的道路识别技术,大幅度降低了道路图像处理和车道线识别的计算量,并通过实验测得在车道线跟踪阶段全部计算过程的周期小于20ms,这保证了实际场景下的实时性要求。

    2)我国汽车制造厂商对无人驾驶汽车的研究

    不同于国外车企以自主研发为主,我国汽车制造厂商多采取与国内科研院所、高校合作研发无人驾驶技术。

    一汽集团于 2007 年与国防科技大学合作。2011 7 月,由一汽集团与国防科技大学共同研制的红旗 HQ3 无人驾驶汽车完成了 286km 的面向高速公路的全程无人驾驶试验,人工干预的距离仅占总里程的 0.78%。2015 4 月,一汽集团正式发布了其“挚途”技术战略,标志着一汽集团的互联智能汽车技术战略规划正式形成。2015 4 19 日,一汽在同济大学举行了“挚途”技术实车体验会,包含手机叫车、自主泊车、拥堵跟车、自主驾驶等四项智能化技术。

    2012 年,军事交通学院的“军交猛狮Ⅲ号”以无人驾驶状态行驶 114km,最高时速为105km/h。该车装有由 5 个毫米波雷达、3 个摄像机和 1 GPS 传感器组成的视听感知系统,能够帮助无人驾驶车辆识别路况,精确判断与前后左右障碍物的距离。

    2015 4 月,长安汽车发布智能化汽车“654 战略”,即建立六个基础技术体系平台,开发五大核心应用技术,分四个阶段逐步实现汽车从单一智能到全自动驾驶。

    2015 8 月,宇通大型客车从郑开大道城铁贾鲁河站出发,在完全开放的道路环境下完成自动驾驶试验,共行驶 32.6km,最高速度为 68km/h,全程无人工干预,为了保障安全,客车上还是配备了司机。这也是国内首次大型客车高速公路自动驾驶试验。2018 5 月,宇通客车在其 2018 年新能源全系产品发布会上宣布,已具备面向高速结构化道路和园区开放通勤道路的 Level 4 级别自动驾驶能力。

    北汽集团在 2016 4 月的北京车展上,展示了其基于 EU260 打造的无人驾驶汽车。车辆通过加装毫米波雷达、高清摄像机、激光雷达和 GPS 天线等零部件识别道路环境,同时配合高清地图进行路径规划实现无人驾驶。北汽无人驾驶汽车目前搭载的无人驾驶感知与控制设备大部分都采用了国产化采购,目的是为未来的量产打下基础。

    2)我国高科技公司对无人驾驶汽车的研究

    除了上述传统的汽车制造厂商在无人驾驶领域的研究外,以百度为代表的高科技公司也相继加入了无人驾驶汽车领域的研究。百度公司于 2013 年开始了百度无人驾驶汽车项目,其技术核心是“百度汽车大脑”,包括高精度地图、定位、感知、智能决策与控制四大模块。2015 年 12 月初,百度无人驾驶汽车在北京进行自动驾驶测跑,实现多次跟车减速、变道、超车、上下匝道、调头等复杂驾驶动作,完成了进入高速到驶出高速不同道路场景的切换,最高车速达到 100km/h

    2015 12 14 日,百度宣布正式成立自动驾驶事业部。2017 4 17 日,百度展示了与博世合作开发的高速公路辅助功能增强版演示车。2018 7 4 日,百度在第二届百度 AI 开发者大会(Baidu Create 2018上宣布,与厦门金龙合作生产的首款 Level 4 级自驾巴士“阿波龙”已经量产下线。这一批次的 100 辆车接下来会被投放到北京、深圳、武汉等城市,在机场、工业园区、公园等行驶范围相对固定的场所开始商业化运营。2019 年年初,百度还会跟日本软银旗下的 SB Drive 合作,将 10 辆“阿波龙”带去包括东京在内的多个日本城市。这款无人驾驶巴士是基于百度的阿波罗自驾车开放平台(3.0 版本)。除了能在某些特定条件下实现无人工介入的自动驾驶,其还加入了自动泊车、面部识别及驾驶者疲劳度检测等功能。另外,在大会现场百度还宣布会与英特尔合作,将 Mobileye 的责任敏感安全模型(Responsibility Sensitive Safety)及周围计算机视觉套件整合入阿波罗,希望以此来进一步提升该平台的行车安全性。

    二、技术篇

    技术篇着重对无人驾驶技术研究中的重要技术进行介绍。其中,自动驾驶汽车关键技术包括环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网 V2X 以及自动驾驶汽车测试与验证技术;人工智能在自动驾驶汽车中的应用包括人工智能在环境感知中的应用、人工智能在决策规划中的应用、人工智能在车辆控制中的应用。

    2.1、自动驾驶汽车关键技术

    自动驾驶汽车通过摄像机、激光雷达、毫米波雷达、超声波等车载传感器来感知周围的环境,依据所获取的信息来进行决策判断,由适当的工作模型来制定相应的策略,如预测本车与其他车辆、行人等在未来一段时间内的运动状态,并进行避碰路径规划。在规划好路径之后,接下来需要控制车辆沿着期望的轨迹行驶。车辆控制系统包括横向控制(转向)与纵向控制(速度)。当然,上述的动作都是基于传感器实时获取环境信息所做的局部路径规划下的动作,还需要与基于完整环境信息的全局路径相结合,如下图所示。

    2.1.1、环境感知

    环境感知作为其他部分的基础,处于自动驾驶汽车与外界环境信息交互的关键位置,是实现自动驾驶的前提条件,起着人类驾驶员“眼睛”“耳朵”的作用。环境感知技术是利用摄像机、激光雷达、毫米波雷达、超声波等车载传感器,以及 V2X 5G 网络等获取汽车所处的交通环境信息和车辆状态信息等多源信息,为自动驾驶汽车的决策规划进行服务。

    (1)摄像机

    自动驾驶汽车中配置的视觉传感器主要是工业摄像机,它是最接近于人眼获取周围环境信息的传感器。摄像机可以识别车辆行驶环境中的车辆、行人、车道线、路标、交通标志、交通信号灯等。它具有较高的图像稳定性、抗干扰能力和传输能力等特点。摄像机按照芯片类型可分为 CCD 摄像机和 CMOS 摄像机两种。

    CCD 摄像机,由光学镜头、时序及同步信号发生器、垂直驱动器及模拟/数字信号处理电路组成,具有体积小、重量轻、低功耗、无滞后、无灼伤、低电压等特点。

    CMOS 摄像机,集光敏元阵列、图像信号放大器、信号读取电路、模数转换电路、图像信号处理器及控制器于一体,具有传输速率高、动态范围宽、局部像素的可编程随机访问等优点。

    (2)激光雷达

    激光雷达是以发射激光束来探测目标空间位置的主动测量设备。根据探测原理,激光雷达分为单线(二维)激光雷达和多线(三维)激光雷达。

    单线激光雷达,通过发出一束激光扫描线对区域进行旋转扫描,并根据区域内各个点与激光雷达的相对空间距离与方位,返回测量值。

    多线激光雷达,通过发出两束或两束以上的激光扫描线对区域进行旋转扫描。多线激光雷达能够检测目标的空间距离与方位,并可以通过点云来描述三维环境模型,可以提供目标的激光反射强度信息,提供被检测目标的详细形状描述,如下图所示。

    目前,国际市场上推出的主要有 4 线、8 线、16 线、32 线和 64 线。激光雷达发出的线束越多,每秒采集的点云越多,同时造价也越高。例如,美国 Velodyne 公司的 16 线激光雷达 VLP-16Puck)目前售价是 3999 美元,而 64 线激光雷达 HDL-64E 的售价高达 7 万美元。

    激光雷达的技术门槛和成本较高。目前,激光雷达已经发展了三代产品,包括第一代机械扫描激光雷达、第二代混合固态激光雷达以及第三代纯固态激光雷达。第三代纯固态激光雷达可以使激光雷达的成本大幅度降低,使激光雷达在自动驾驶汽车上的应用能够普及。

    CES 2018 Velodyne 公司带来两个新产品,分别是固态激光雷达 Velarry 128 线激光雷达 VLS-128。在性能方面,Velarry 能够提供 120 度的水平视角和 35 度的垂直视角,能够在 200m 范围内检测到低反射率的物体。VLS-128 的探测距离可达 300m,扫描精度为3cm,性能是 64 线激光雷达产品的 10 倍,但体积是其 1/32018 北京车展上,Velodyne 亚太区负责人翁炜透露,固态激光雷达 Velarray 将于今年第三季度开始投放市场。预计到 2019年,在 Velodyne 完成 ASIC 工作后,量产化的 128 线激光雷达将会投入市场。价格方面,到2020 年,128 线激光雷达成本在千元美金级别;固态激光雷达 Velarray 在规模化量产后的价格在百元美金级别。

    除了前面提到的Velodyne公司,一些初创公司也进入该领域并展现了相当的技术实力,如美国的 Quanergy 公司、Liminar 公司和以色列的 Innoviz 公司。在 CES 2017 上,Quanergy 公司的纯固态激光雷达 Quanergy S3 是世界上首个低成本的固态激光雷达,因其固态扫描技 术和无机械旋转部件的解决方案获得了汽车智能类的最佳创新奖。Quanergy 的固态传感器 芯片定价仅为 250 美元。2017 11 1 日,Quanergy Sunnyvale 市的工厂有一条全自动化的生产线开工。Quanergy 联合创始人兼 CEO Louay Eldada 表示,车用级别的 Quanergy 激光雷达芯片 2018 9 月就能在市场上买到。他的目标是将激光雷达售价拉低到 100 美元以下。

    (3)毫米波雷达

    毫米波雷达是指工作在毫米波波段、频率在 30—300GHz 之间的雷达。根据测量原理的不同,毫米波雷达可分为脉冲方式毫米波雷达和调频连续波方式毫米波雷达两种。

    脉冲方式毫米波雷达,其基本原理与激光雷达相似,它在硬件结构上比较复杂、成本较高,很少用于自动驾驶汽车,目前大多数车载毫米波雷达都采用调频连续波方式。

    调频连续波方式毫米波雷达,具有结构简单、体积小、成本低廉,容易实现近距离探测。毫米波雷达具有全天候、探测距离远、价格便宜、质量轻、体积小等优点,能够较精确得到目标的相对距离和相对速度。不足之处是分辨率低,在很多场合易受干扰。

    (4)超声波传感器

    超声波传感器是利用超声波的特性研制而成的,工作在机械波波段,工作频率在 20kHz以上。超声波雷达的数据处理简单快速,检测距离较短,多用于近距离障碍物检测。超声波具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等优点。超声波雷达的不足在于距离信息不精准,一般用于精度要求不高的地方,如倒车雷达等。

    (5)环境感知关键技术

    目前,环境感知技术有两种技术路线,一种是以摄像机为主导的多传感器融合方案,典型代表是特斯拉。另一种是以激光雷达为主导,其他传感器为辅助的技术方案,典型企业代表如谷歌、百度等。前面介绍激光雷达的时候提到,随着第三代纯固态激光雷达产品即将量产面世,特别是成本的大幅降低,激光雷达在自动驾驶汽车上的应用将更加普及。当前业界有许多讨论是围绕着是否可以使用成本较低的摄像机去承担更多的环境感知任务,本文 2.2节会重点介绍人工智能在基于视觉的自动驾驶技术中的应用。

    2.1.2、精准定位

    自动驾驶汽车的基础是精准导航,不仅需要获取车辆与外界环境的相对位置关系,还需要通过车身状态感知确定车辆的绝对位置与方位。

    (1)惯性导航系统

    惯性导航系统由陀螺仪和加速度计构成,通过测量运动载体的线加速度和角速率数据,并将这些数据对时间进行积分运算,从而得到速度、位置和姿态。惯性导航系统以牛顿力学定律为基础,工作原理是根据陀螺仪的输出建立导航坐标系并给出姿态角,再根据加速度计的输出解算出运动载体的速度和位置,实现惯性参考系到导航坐标系的转换。惯导属于推算导航方式,即在已知基准点位置的前提下根据连续观测推算出下一点的位置,因而可连续测出运动载体的当前位置。

    (2)轮速编码器与航迹推算

    可以通过轮速编码器推算出自动驾驶汽车的位置。通常轮速编码器安装在汽车的前轮,分别记录左轮与右轮的总转数。通过分析每个时间段里左右轮的转数,可以推算出车辆向前走了多远,向左右转了多少度等。由于在不同地面材质(如冰面与水泥地)上转数对距离转换存在偏差,随着时间推进,测量偏差会越来越大,因此单靠轮测距器并不能精准估计自动驾驶汽车的位姿。

    (3)卫星导航系统

    目前全球卫星导航系统包括美国的 GPS、俄罗斯的 GLONASS、中国的北斗卫星导航系统。

    GPS 是由美国国防部研制的全球首个定位导航服务系统,空间段由平均分布在 6 个轨道面上的 24 颗导航卫星组成,采用 WGS-84 坐标系。

    GLONASS 由苏联在 1976 年启动建设,正式组网比 GPS 还早。苏联解体后,GLONASS由俄罗斯负责运营。空间段由 27 颗工作星和 3 颗备份星组成,27 颗星均匀地分布在 3 个近圆形的轨道平面上。

    北斗卫星导航系统 是中国自主研发、独立运行的全球卫星定位与通信系统,空间段包括5 颗静止轨道卫星和 30 颗非静止轨道卫星,采用我国独自建立使用的 CGCS 2000 坐标系。

    (4)SLAM 自主导航系统

    SLAMSimultaneous Localization And Mapping,即时定位与地图构建),也称为 CML(Concurrent Mapping and Localization,并发建图与定位)。SLAM 最早由 SmithSelf 和 Cheeseman 于 1988 年提出。SLAM 起源于机器人领域,SLAM 问题可以描述为:机器人在未知环境中开始启动,并尝试从一个未知位置开始移动,在移动过程中根据自身位姿估计和地图匹配进行自身定位。然后在自身定位的基础上实现运动中拓展地图,最终实现全局机器人的自主定位和导航。

    目前主流有两种 SLAM 策略。第一种是基于激光雷达的 SLAM,以谷歌汽车为例。车辆携带有 GPS,通过 GPS 对位置进行判断,并以激光雷达 SLAM 点云图像与高精度地图进行坐标配准,匹配后确认自身位姿。

    第二种是基于视觉的 SLAM,以 Mobileye 为例。Mobileye 提出一种 SLAM 的变种定位方法——REM。车辆通过采集包括信号灯、指示牌等标识,得到了一个简单的三维坐标数据,再通过视觉识别车道线等信息,获取一个一维数据。摄像机中的图像与 REM 地图中进行配准,即可完成定位。

    2.1.3、决策与规划

    自动驾驶汽车的行为决策与路径规划是指依据环境感知和导航子系统输出信息,通过一些特定的约束条件如无碰撞、安全到达终点等,规划出给定起止点之间多条可选安全路径,并在这些路径中选取一条最优的路径作为车辆行驶轨迹。通常情况下,自动驾驶汽车的决策与规划系统主要包含以下几点内容:

    路径规划:即路径局部规划时,自动驾驶车辆中的路径规划算法会在行驶任务设定之后将完成任务的最佳路径选取出来,避免碰撞和保持安全距离。在此过程中,会对路径的曲率和弧长等进行综合考量,从而实现路径选择的最优化。

    驾驶任务规划:即全局路径规划,主要的规划内容是指行驶路径范围的规划。当自动驾驶汽车上路行驶时,驾驶任务规划会为汽车的自主驾驶提供方向引导方面的行为决策方案,通过 GPS 技术进行即将需要前进行驶的路段和途径区域的规划与顺序排列。 目前,自动驾驶汽车主要使用的行为决策算法有以下 3 种。

    基于神经网络:自动驾驶汽车的决策系统主要采用神经网络确定具体的场景并做出适当的行为决策。

    基于规则:工程师想出所有可能的“if-then 规则”的组合,然后再用基于规则的技术路线对汽车的决策系统进行编程。

    混合路线:结合了以上两种决策方式,通过集中性神经网络优化,通过“if-then 规则”完善。混合路线是最流行的技术路线。感知与决策技术的核心是人工智能算法与芯片。人工智能算法的实现需要强大的计算能力做支撑,特别是深度学习算法的大规模使用,对计算能力提出了更高的要求。随着人工智能业界对于计算能力要求的快速提升,进入 2015 年后,业界开始研发针对人工智能的专用芯片,通过更好的硬件和芯片架构,在计算效率上进一步带来大幅的提升。

    目前,市场上采用的自动驾驶主流芯片主要分为两种,一种是英特尔-Mobileye 开发的Mobileye® EyeQX™系列车载计算平台。另一种是英伟达提供的 NVIDIA Drive PX 系列车载计算平台。

    (1)英特尔-Mobileye

    Mobileye 公司作为开发高级辅助驾驶系统的全球先行者,是由 Amnon Shashua Ziv Aviram 于 1999 年创立。Mobileye 的目标是开发和推广协助驾驶员在驾驶过程中保障乘客安全和减少交通事故的视觉系统。

    Mobileye 公司的获奖产品 EyeQ™EyeQ2™视觉处理器是一项重大突破,具有高性能、低成本以及多应用整合于一个平台上等特点。它们可提供面向所有细分市场的高端功能组合。

    英特尔在 2017 年以 153 亿美元收购了 Mobileye 公司,并且将其作为自动驾驶技术的研发战略核心。包括菲亚特-克莱斯勒、宝马等多家汽车厂商都已经计划在未来的产品中使用英特尔-Mobileye 提供的自动驾驶技术。

    目前,英特尔-Mobileye 公司已宣布正式加入自动驾驶汽车研发的竞争中,并且在耶稣撒冷投放一组测试车队,在没有使用激光雷达的情况下在城市街道上测试行驶。

    (2)英伟达

    英伟达(NVIDIA)是一家人工智能计算公司,创立于 1993 年,黄仁勋(Jensen Huang)是该公司的创始人兼首席执行官。

    1999 年,英伟达发明了 GPU,这极大地推动了 PC 游戏市场的发展,重新定义了现代计算机图形技术,并彻底改变了并行计算。

    2010 年英伟达开始布局人工智能产品,2014 年宣布了新一代 PASCAL GPU 芯片架构,这是英伟达的第五代 GPU 架构,也是首个为深度学习而设计的 GPU,它支持所有主流的深度学习计算框架。

    2016 年上半年,英伟达又针对神经网络训练过程推出了基于 PASCAL 架构的 TESLAP100 芯片以及相应的超级计算机 DGX-1

    GTC 2017 大会上,英伟达正式发布了新一代处理器架构 Volta,以及使用新架构的第一款设备——适用于深度学习任务的加速卡 Tesla V100,英伟达将这块显卡称为全球最先进的数据中心 GPU

    GTC 2018 大会上,英伟达发布了新一代超级计算机 DGX-2DGX-2 是英伟达首款 2-petaFLOPS 系统,其在两块独立的 GPU 板卡上配备了 16 Tesla V100 GPU,每块 V100 拥有 32GB HBM 2 显存。

    2.1.4、控制与执行

    自动驾驶汽车的车辆控制系统是自动驾驶汽车行驶的基础,包括车辆的纵向控制和横向控制。纵向控制,即车辆的驱动与制动控制,是指通过对油门和制动的协调,实现对期望车速的精确跟随。横向控制,即通过方向盘角度的调整以及轮胎力的控制,实现自动驾驶汽车的路径跟踪。

    (1)纵向控制

    自动驾驶汽车采用油门和制动综合控制的方法来实现对预定车速的跟踪,各种电机-发动机-传动模型、汽车运行模型和刹车过程模型与不同的控制算法相结合,构成了各种各样的纵向控制模式。

    (2)横向控制

    车辆横向控制主要有两种基本设计方法:基于驾驶员模拟的方法和基于车辆动力学模型的控制方法。

    基于驾驶员模拟的方法:一种是使用较简单的动力学模型和驾驶员操纵规则设计控制器;另一种是用驾驶员操纵过程的数据训练控制器获取控制算法。

    基于车辆动力学模型的方法:需要建立较精确的汽车横向运动模型。典型模型如单轨模型,该模型认为汽车左右两侧特性相同。

    (3)车辆控制平台

    车辆控制平台是无人车的核心部件,控制着车辆的各种控制系统。其主要包括电子控制单元(ECU)和通信总线两部分。ECU 主要用来实现控制算法,通信总线主要用来实现 ECU与机械部件间的通信功能。

    ECU又称“行车电脑”“车载电脑”等,从用途上讲则是汽车专用微机控制器,也叫汽车专用单片机。它和普通的单片机一样,由微处理器(CPU)、存储器(ROMRAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成。发动机在运行时,它采集各传感器的信号进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。它还实行对存储器(ROMRAM)、输入/输出接口(I/O)和其他外部电路的控制;存储器 ROM 中存放的程序是经过精确计算和大量实验获取的数据为基础,这个固有程序在发动机工作时,不断地与采集来的各传感器的信号进行比较和计算。把比较和计算的结果用来控制发动机的点火、空燃比、怠速、废气再循环等多项参数。它还有故障自诊断和保护功能。RAM 也会不停地记录行驶中的数据,成为 ECU 的学习程序,为适应驾驶员的习惯提供最佳的控制状态,这个程序也叫自适应程序。

    通信总线:目前,车用总线技术被国际自动机工程师学会(SEA)下的汽车网络委员会按照协议特性分为 ABCD 4 类,A 类总线面向传感器或执行器管理的低速网络,它的位传输速率通常小于 20Kb/s,以 LIN 规范为代表;B 类总线面向独立控制模块间信息共享的中速网络,位传输速率一般在 10~125Kb/s,以 CAN 为代表;C 类总线面向闭环实时控制的多路传输高速网络,位传输速率一般在 125Kb/s ~1Mb/sD 类总线面向多媒体设备、高速数据流传输的高性能网络,位传输速率一般在 2Mb/s 以上。

    2.1.5、高精地图与车联网 V2X

    (1)高精地图

    高精地图拥有精确的车辆位置信息和丰富的道路元素数据信息,起到构建类似于人脑对于空间的整体记忆与认知的功能,可以帮助汽车预知路面复杂信息,如坡度、曲率、航向等,更好地规避潜在的风险,是自动驾驶汽车的核心技术之一。高精地图相比服务于 GPS 导航系统的传统地图而言,最显著的特征是其表征路面特征的精准性。传统地图只需要做到米量级的精度就可以实现基于 GPS 的导航,而高精地图需要至少十倍以上的精度,即达到厘米级的精度才能保证自动驾驶汽车行驶的安全。同时,高精地图还需要有比传统地图更高的实时性。由于道路路网经常会发生变化,如道路整修、标识线磨损或重漆、交通标识改变等。这些改变都要及时反映在高精地图上,以确保自动驾驶汽车的行车安全。

    (2)车联网 V2X

    V2X 表示 Vehicle to X,其中 X 表示基础设施(Infrastructure)、车辆(Vehicle)、行人(Pedestrian)、道路(Road)等。V2X 网联通信集成了 V2NV2VV2I V2P 共四类关健技术。

    V2NVehicle to Network,车-互联网),通过网络将车辆连接到云服务器,能够使用云服务器上的娱乐、导航等功能。

    V2VVehicle to Vehicle,车-车),指不同车辆之间的信息互通。

    V2IVehicle to Infrastructure,车-基础设施),包括车辆与路障、道路、交通灯等设施之间的通信,用于获取路障位置、交通灯信号时序等道路管理信息。

    V2PVehicle to Pedestrian,车-行人),指车辆与行人或非机动车之间的交互,主要是提供安全警告。

    2010 年美国颁布了以 IEEE 802.11P 作为底层通信协议和 IEEE 1609 系列规范作为高层通信协议的 V2X 网联通信标准。2015 年我国开始相关的研究工作,2016 年国家无线电委员会确定了我国的 V2X 专用频谱。2016 6 月,V2X 技术测试作为第一家“国家智能网联汽车试点示范区”及封闭测试区的重点布置场景之一。2017 9 月,《合作式智能交通系统车用通信系统应用层及应用数据交互标准》正式发布。

    V2X 技术的实现一般基于 RFID、拍照设备、车载传感器等硬件平台。V2X 网联通信产业分为 DSRC LTE-V2X 两个标准和产业阵营。

    2.1.6、自动驾驶汽车测试与验证技术

    自动驾驶汽车测试与验证技术如下。

    (1)实测

    让车辆行驶数百万公里,以确定设计的系统是否安全并按照预期运行。该方法的困难在于必须累积的测试里程数,这可能要花费大量的时间。

    (2)软件在环或模型在环仿真

    另一种更可行的方法是将现实世界的测试与仿真相结合。在仿真软件所构建的各种场景中,通过算法控制车辆进行相应的应对操作,来证明所设计的系统确实可以在各种场景下做出正确的决定,这可以大大减少必须完成的测试里程数。

    (3)硬件在环仿真

    为了验证真实硬件的运行情况,硬件在环仿真可以对其进行测试,并将预先记录的传感器数据提供给系统,此种技术路线可以降低车辆测试和验证的成本。

    2.2、人工智能在自动驾驶汽车中的应用

    (1)人工智能在环境感知中的应用

    环境感知包括:可行驶路面检测、车道线检测、路缘检测、护栏检测、行人检测、机动车检测、非机动车检测、路标检测、交通标志检测、交通信号灯检测等。对于如此复杂的路况检测,深度学习能够满足视觉感知的高精度需求。基于深度学习的计算机视觉,可获得较接近于人的感知能力。有研究报告指出深度学习在算法和样本量足够的情况下,视觉感知的准确率可以达到 99.9%以上,而传统视觉算法的检测精度极限在 93%左右,人感知的准确率一般是 95%左右。

    深度学习按照模型的不同可以分为 CNNRNNLSTMDBN Autoencoder 5 种类型,其中 CNN(卷积神经网络)在处理图像和视频上拥有很好的效果。

    深度学习一般包括输入层、卷积层、池化层、输出层等 4 种类型的神经网络层。网络的结构可以 10 层甚至上百层,一般层数越多检测精度越精准。随着网络层数和节点数的增加,可以表达更细、更多的识别物的特征,为检测精度的提高奠定基础。其中,卷积层和池化层是深度学习的核心处理层:卷积层主要是用于负责物体特征的提取,池化层主要是负责采样。

    深度学习的工作一般可以分为两部分,即训练和测试。训练一般是将采集到的样本输入到线下的训练网络中,训练网络进行前向输出,调整参数让输出误差在接受范围内从而得到模型。将训练好的模型进行测试和性能评估。测试时网络可以对输入的图像和视频等进行检测和识别。通常情况下,样本的数量越多,识别的精度越高,所以样本的数量是影响深度学习精度重要的一个因素。由此可见,深度学习需要大数据平台提供支撑。

    (2)人工智能在决策与规划中的应用

    行为决策与路径规划是人工智能在自动驾驶汽车领域中的另一个重要应用。前期决策树、贝叶斯网络等人工智能方法已有大量应用。近年来兴起的深度卷积神经网络与深度强化学习,能通过大量学习实现对复杂工况的决策,并能进行在线学习优化,由于需要较多的计算资源,当前是计算机与互联网领域研究自动驾驶汽车的决策与规划处理的热门技术。

    随着深度强化学习的兴起,越来越多的公司和研究者把强化学习应用到无人车的行为与决策中,并取得了不错的效果。Mobileye 公司是其中的典型代表,根据其最新发表的论文,其设计的车辆模型已经能自如地应对一些复杂的交通任务,如双向通道变线、复杂十字路口等场景。Mobileye 将行为决策分解成两个部分,可学习部分和不可学习部分,可学习部分是由强化学习来决策行驶需要的高级策略,不可学习部分则是按照这些策略利用动态规划来实施具体的路径规划。

    可学习部分是将无人车所处的环境映射成一系列抽象策略的过程。他们设计了一张策略选项图,主要包含无人车的加减速、转向以及对周围车辆的反应,并利用策略网络来选择合适的应对选项。其中,策略网络在给定的车辆环境下,评估每一种应对的可能影响,从而选择最合适的策略。不可学习部分则是将学习到的抽象策略转化成对车辆的实际控制动作,该部分主要对车辆动作进行具体规划,检查抽象策略是否可执行,或者执行满足策略的动作,从而充分保证系统的安全性。

    (3)人工智能在车辆控制中的应用

    相对于传统的车辆控制方法,智能控制方法主要体现在对控制对象模型的运用和综合信息学习运用上,包括神经网络控制和深度学习方法等,这些算法已逐步在车辆控制中广泛应用。

    神经控制,是研究和利用人脑的某些结构机理以及人的知识和经验对系统的控制。利用神经网络,可以把控制问题看成模式识别问题,被识别的模式映射成“行为”信号的“变化”信号。神经控制最显著的特点是具有学习能力。它是通过不断修正神经元之间的连接权值,并离散存储在连接网络中来实现的。它对非线性系统和难以建模的系统的控制具有良好效果。

    深度神经网络学习,源于神经网络的研究,可理解为深层的神经网络。通过它可以获得深层次的特征表示,免除人工选取特征的繁复冗杂和高维数据的维度灾难问题。深度学习在特征提取与模型拟合方面显示了其潜力和优势。对于存在高维数据的控制系统,引入深度学习具有一定的意义。自动驾驶系统需要尽量减少人的参与或者没有人的参与,深度学习自动学习状态特征的能力使得深度学习在自动驾驶系统的研究中具有先天的优势。

    深度强化学习强化学习的灵感来源于生物学中的动物行为训练,训练员通过奖励与惩罚的方式让动物学会一种行为与状态之间的某种联系规则。强化学习就是要解决这类问题:一个能够感知环境的智能体怎样通过学习选择达到其目标的最优动作

    三、人才篇

    本报告 3.1 节通过 AMiner 大数据平台对 AMiner 的自动驾驶人才库进行数据挖掘,统计分析出领域内学者分布及迁徙。3.2 节介绍了目前自动驾驶汽车领域的国内外代表性研究学者。文中排名不分先后

    3.1、学者分布及迁徙

    通过统计分析 AMiner 的自动驾驶人才库,我们得到了全球自动驾驶领域学者分布图,如下图所示。从图中可以看到,自动驾驶领域的学者主要分布在美国,其次是欧洲。中国对自动驾驶汽车的研究紧跟其后,南美洲、非洲和大洋洲则人才相对比较匮乏。

    按国家进行统计来看美国是自动驾驶汽车科技发展的核心。中国的人数紧排在美国之后。其他的专家主要分布在英国、加拿大、德国和意大利。

    AMiner 对全球自动驾驶汽车领域最具影响力的 1000 人的迁徙路径进行了统计分析,得出下图所示的各国人才逆顺差对比图。

    由图中可以看出,各国人才的流失和引进是相对比较均衡的,其中美国为人才流动大国,人才输入和输出幅度都大幅度领先。中国、英国、德国和瑞士等国次于美国,但各国之间人才流动相差并不明显。

    3.2、代表性研究学者

    自动驾驶技术领域的国内代表性研究学者包括贺汉根、李德毅、杨静宇、郑南宁等,国外包括 Sebastian ThrunChris UrmsonElon MuskAmnon Shashua 等。

    • 学习经历、获得荣誉

    完成国家自然科学基金重点项目、国家 863 计划、国际合作等课题 20 余项,先后获国家科技进步三等奖 1 项、国防科工委科技进步一等奖 1 项、教育部科技成果一等奖 1 项等奖励。在国际期刊及国内核心期刊发表论文多篇,享受国务院政府特殊津贴。

    • 科研成果

    2000 年国防科学技术大学以一辆老式北京吉普车为平台的自主驾驶汽车进行了75.6km/h 的高速公路车道跟踪实验。2003 年 6 月,国防科学技术大学与一汽集团合作研制成功红旗 CA7460 自主驾驶轿车。该车在正常交通状况下,高速公路上最高稳定自主驾驶速度为每小时 130km,最高峰值自主驾驶速度为每小时 170km,并具备超车功能,其总体技术性能达到了当时世界先进水平。2006 年 8 月,国防科技大学与一汽集团合作研制成功红旗HQ3 自主驾驶轿车,在硬件系统小型化、控制精度和稳定性等方面都有明显提高。该自主车于当年 9 月参加了在吉林长春举办的东北亚博览会。2007 年 3 月,该车又被国家商务部选送到莫斯科参加“俄罗斯—中国年”展览。2011 年 7 月 14 日,智能化自动驾驶系统在红旗HQ3 轿车平台上研发成功,获准进入京珠高速长沙至武汉段,开展我国首次自动驾驶汽车高速公路长途自主驾驶试验2017 年 3 月 6 日,经有关部门批准同意,新一代红旗自动驾驶汽车获准在长沙绕城高速公路上开展试验。

    • 学习经历、获得荣誉

    1983 年获英国爱丁堡海里奥特·瓦特大学博士学位。1996 年被授予少将军衔,1999 年当选中国工程院院士,2004 年当选为国际欧亚科学院院士。指挥自动化、计算机工程和人工智能专家,中国人工智能学会理事长,中国指挥与控制学会名誉理事长。清华大学、国防大学兼职教授、博士生导师。长期从事不确定性人工智能、大数据和智能驾驶领域研究。

    • 科研成果

    参加了多项电子信息系统重大工程的研制和开发。最早提出控制流—数据流图对理论和一整套用逻辑语言实现的方法;证明了关系数据库模式和一阶谓词逻辑的对等性;提出云模型和发现状态空间,用于不确定性知识表示和数据控制;在智能控制“三级倒立摆动平衡”实验中取得显著成效。先后获得国家科技进步奖,军队科技进步奖,获得发明专利 10 项,发表论文 130 多篇,出版中文著作 5 本、英文专著 3 本,在国际上享有极高声誉。

    • 学习经历、获得荣誉

    1982 2 —1984 4 月,在美国伊利诺斯大学 CSL 实验室 T.S.Huang 指导下进行计算机视觉领域的合作研究,1993 6 —1994 3 月在美国密苏里大学堪萨斯分校计算机系担任访问教授,1997 12 —1998 4 月在加拿大康科迪亚大学国际知名的模式分析与机器智能研究中心担任访问教授。1998 年在加拿大 Concordia University 的模式分析与机器智能中心担任客座教授。全国优秀留学回国人员,享受国务院特殊津贴。目前担任南京理工大学计算机科学与工程学院的国家重点学科“模式识别与智能系统”学术带头人,同时是教育部信息领域规划专家组成员、国防科工局“微小型系统技术”规划组成员、中国人工智能学会常务理事。

    • 科研成果

    2009 年,主持的“特征抽取理论与算法研究”理论研究成果被评为国家自然科学二等奖,实现了南京理工大学在自然科学技术奖上零的突破。研制的我国第一套自主式地面自动驾驶平台,被称为是“在我国智能机器人领域具有开创性,是我国科技战线,特别是高技术领域的一项重大科技成果”。获得国家级科技成果奖 2 项,省部级科技进步奖 15 项。在国际学术刊物发表论文 67 篇,其中 56 篇被 SCI 收录。出版论著和译著 7 部。获得国家发明专利 2项。

    • 学习经历、获得荣誉

    1985 年获日本庆应大学博士学位。现任西安交通大学教授,陕西省科学技术协会主席。1993 年被授予全国优秀教师称号。1996 年获中国青年科学家奖。1999 年当选为中国工程院院士。

    • 科研成果

    提出图像分析和视觉知识描述新方法,为构造计算机视觉系统和基于图像信息的智能控制系统,提供了理论指导和关键技术。完成“精密装配机器人机器视觉系统”研究,获 1996年国家科技进步奖二等奖。发明了一种图像边缘曲线拟合的新方法,获 1995 年国家发明奖四等奖。“高性能机器视觉及车型与牌照自动识别系统”获 1991 年国家科技进步奖二等奖。提出在线交互式立体测深方法,研制出“X 线数字减影血管造影系统”及“DSA1250 数字减影血管造影系统”。研制出具有自主知识产权的数字电视扫描制式转换及视频处理芯片;获已授权的中国发明专利七项。发表论文 100 余篇,著作 2 部。

    • 学习经历、获得荣誉

    1995 年获得波恩大学计算机与统计学双博士学位,后任教于卡内基·梅隆大学。2003 年,加入斯坦福大学,开始自动驾驶汽车的研究。2011 年,获得 Max Planck Research Award 和首届 AAAI Ed Feigenbaum Prize。世界顶级人工智能专家,2007 年当选美国国家工程院院士,目前是斯坦福大学和佐治亚理工学院的兼职教授。

    • 科研成果

    2005 年,Sebastian Thrun 的团队创建了机器人车辆 Stanley,该车赢得了 2005 DARPA大挑战赛,并在史密森尼美国国家历史博物馆展出。2007 年,应谷歌的 Larry Page SergeyBrin 邀请,在谷歌内部主导建立了一个硬件创新实验室,也就是后来的 Google X 实验室,产出了包括自动驾驶汽车、谷歌眼镜在内的众多标志性项目。2012 年初,受到可汗学院启发,参与创立了 Udacity

    • 学习经历、获得荣誉

    2005 年,获得卡内基·梅隆大学机器人方向(Robotics)博士学位。卡内基·梅隆大学的助理研究教授。参加的卡内基·梅隆大学团队赢得了 2007 DARPA 大挑战赛。

    •  科研成果

    2009 年加入 Google X,并于 2013 年接替 Sebastian Thrun 担任项目负责人,于 201629年离任。与 Sterling Anderson 以及 Drew Bagnell 共同创立了一家致力于自动驾驶汽车软件、数据和硬件的创业公司 Aurora Innovation

    • 学习经历、获得荣誉

    本科毕业于宾夕法尼亚大学,获经济学和物理学双学位。2013 11 21 日,美国《财富》揭晓了“2013 年度商业人物”,荣登榜首。2016 9 22 日,彭博全球 50 大最具影响力人物排行榜,排第 11 名。2016 12 14 日,荣获“2016 年最具影响力 CEO”荣誉。2017 年 12 4 日,位列《彭博商业周刊》2017 年度全球 50 大最具影响力人物榜单第 43位。

    • 科研成果

    2015 10 月,特斯拉推出了半自动驾驶系统 AutopilotAutopilot 是第一个投入商用的自动驾驶技术。目前,特斯拉的量产车上均已安装 Autopilot 1.02.0 2.5 硬件系统。

    • 学习经历、获得荣誉

    1985 年,在以色列特拉维夫大学的专业是数学和计算机科学。1989 年,在魏兹曼科学研究所获得计算机科学学位,后在麻省理工学院取得脑与认知科学博士学位。

    • 科研成果

    1996 年以来,一直担任耶路撒冷希伯来大学的计算机科学系教员。1999 年,被任命为副教授,2003 年为全职教授。在 20022005 年间,是希伯来大学工程和计算机科学学院的负责人。多年来,在机器学习和计算机视觉领域发表了超过 100 篇论文。 1999 年,创立 Mobileye,专注于自动驾驶视觉系统,开发了一款鼠标大小的辅助驾驶系统。该设备的摄像机和定制芯片卡在汽车后视镜后面,提供的算法和计算机芯片能够根据图像(由车辆上的摄像机拍摄)预测潜在碰撞事故。2017 3 13 日,英特尔宣布以每股63.54 美元现金收购 Mobileye,股权价值约 153 亿美元。这是以色列有史以来金额最大的一笔交易,也是英特尔发展史上的重大一步。

    四、应用篇

    业界普遍认为,自动驾驶技术在公共交通领域和特定场所的使用将早于在个人乘用车市场的普及。自动驾驶汽车将最先应用的行业包括公共交通、快递运输、服务于老年人和残疾人,如下图所示。

    (1)公共交通

    相比于小汽车,公共交通更能惠及普通群众,让民众感受到人工智能、自动驾驶带来的技术革新和便利,这也是该项技术最初的出发点。

    自动驾驶巴士被认为是解决城市“最后一公里”难题的有效方案,大多用于机场、旅游景区和办公园区等封闭的场所。前面我们提到百度 Level 4 级量产自驾巴士“阿波龙”已经量产下线。阿波龙能够载客 14 人,没有驾驶员座位,也没有方向盘和刹车踏板,最高时速可达 70km,充电两小时续航里程达 100km。这批成车将会被投放到北京、深圳、武汉等城市,在机场、工业园区、公园等行驶范围相对固定的场所开始商业化运营。在阿波龙之前,今年 3 月,法国的 EasyMile 的自动驾驶巴士 EZ10 成为了首辆在加州道路上运营的完全没有司机座驾的汽车。EasyMile 也是第一家受益于加州自动驾驶新政的公司。

    自动驾驶汽车在公共交通领域的另一个重要应用是出租车。前面提到 nuTonomy 2016年 8 月,成为了新加坡第一家在试点项目下推出自动驾驶出租车的公司。Waymo 于当地时间 2018 5 31 日,宣布向菲亚特·克莱斯勒(FCA)采购 62000 Pacifica 混动厢式车用于打造自动驾驶出租车队。

    (2)快递运输

    快递用车和“列队”卡车将是另外一个较快采用自动驾驶汽车的领域。随着全球老龄化问题的加剧,自动驾驶技术在快递等行业的应用将极大地弥补劳动力不足的问题,并且随着自动驾驶技术的成熟与市场普及程度的提高,无人配送将成为必然的趋势。

    2017 年“6·18”,京东首批试点运营的无人配送车在中国人民大学进行快递投递。2018年“6·18”,在京东的北京上地配送站,20 余台配送机器人整齐列阵。随着调度平台命令发出,首批载有“6·18”货物订单的 3 辆配送机器人依次出发,自动奔向订单配送的目的地。目前,京东已经在北京、上海、天津、广州、贵阳、武汉、西安等 20 多个国内城市和泰国曼谷、印尼雅加达就配送机器人项目的应用开展布局,共投放了 100 多台机器人,明年计划投放至万余台。

    2017 6 月,一款名为 Kar-Go 的自动驾驶微型车开始在英国公共道路进行路测。该车可在居民区无标记的道路和人行横道上驾驶,自动送货上门,将削减“最后一公里投递”90%的成本,大大节省运输费用。

    (3)服务于老年人和残疾人

    自动驾驶汽车已经开始在老年人和残疾人这两个消费群体中有所应用。自动驾驶汽车不仅可增强老年人的移动能力,也能帮助残疾人旅行。美国老龄人口到 2050 年预计超过 8000万人,占总人口数的 20%。到 2050 年,中国老龄人口预计将占总人口数的 33%。而在日本,到 2060 年,65 岁及以上人群将占总人口数约 40%。残疾人的市场也很庞大,如在美国,约5300 万成年人有残疾,占成年人人口数的 22%左右。约 13%的美国成年人有出行障碍,约4.6%的成年人有视力障碍。这些有关老年人和残疾人士的庞大数据为无人车提供了现成的市场。

    2012 年,谷歌展示了自动驾驶技术的巨大潜力,谷歌员工让失去 95%视力的 Steve Mahan坐上谷歌自动驾驶车,体验其中的乐趣。随后,谷歌公司为他颁发了“首位无人汽车驾驶者”的称号。自动驾驶技术将使得残疾人变得更加独立。

    五、趋势篇

    (1)未来设想与目标实现

    据《日本经济新闻》5 18 日报道,欧盟的欧洲委员会当地时间 5 17 日公布的自动驾驶时间进度表指出,计划到 2020 年在高速公路上实现自动驾驶,在城市中心区域实现低速自动驾驶;到 2030 年普及完全自动驾驶。为了助力自动驾驶,到 2022 年,欧盟所有新车都将具备通信功能,实现 100%“车联网”。委员会呼吁成员国和汽车企业制定确保安全和明确事故责任的通用规则。力争在国际规则出台之前制定出地区标准,在新一代产业领域掌握主导权。

    此前,我国发布的《节能与新能源汽车技术路线图》指出,到 2020 年,驾驶辅助/部分自动驾驶车辆市场占有率将达50%;到2025年,高度自动驾驶车辆市场占有率将达约15%;到 2030 年,完全自动驾驶车辆市场占有率将近 10%。

    目前,各大自动驾驶技术研发企业与传统汽车制造厂商均在努力加速实现自动驾驶汽车的商业化进程。百度计划 2020 年实现自动驾驶汽车的全面量产;宝马计划 2021 年推出完全自动驾驶汽车;福特计划在 2021 年推出自动驾驶汽车;戴姆勒称,普通道路上实现自动驾驶的卡车将在 2020 年研发成功。

    2020 年,过去积累的自动驾驶技术科研成果及工程进步都将成为现实。我们即将进入 10~20 年混合模式的时代。随着人工智能的飞速发展及自动驾驶汽车与新技术的深度融合,自动驾驶汽车可实现高度智能化,真正实现 Level 4+级的自动驾驶技术。在享受科技成果时,我们也需认识到,自动驾驶技术给我们带来无限憧憬的同时,也会给社会生活带来巨大的冲击,如汽车驾照与保险可能会消失,出租车可能不再需要“的哥”等。

    (2)自动驾驶汽车面临的挑战

    美国当地时间 2018 3 18 日晚,优步自动驾驶测试车在亚利桑那州坦佩市郊区,与一名横穿马路的中年妇女相撞,事故导致该女子不幸身亡。这是人类历史上第一起自动驾驶汽车致人死亡事件。

    美国当地时间 2018 3 23 日,在加利福尼亚州山景城 101 高速公路上一辆高速行驶中的特斯拉 Model X 与路边隔离带相撞,导致车头部分完全损毁,并引发电池起火,驾驶员不幸遇难。

    以上这些自动驾驶车辆事故表明,自动驾驶技术距离成熟应用还有一段漫长而艰辛的发展历程,这不是一蹴而就的。目前,国内自动驾驶技术取得了长足的进步,自动驾驶汽车也逐步得到了公众的认可,但是要实现自动驾驶汽车的普及化仍然需要很长的路要走。核心技术水平不高,关键零部件非国产化严重,政策法规需要逐步完善等问题依然需要不断努力。

    ① 技术问题

    目前自动驾驶技术在“人不多、规定车道、车速不快”的前提条件下确实可以实现,但是面对真正的复杂交通环境,自动驾驶汽车的安全性还需要更长时间来完善。如人类驾驶员能判断前方车辆的驾驶员是老司机还是新手,从而决定与前车保持多远的距离才合适,而自动驾驶技术要理解这些细微的预行为就显得很困难。精确定位和导航是实现自动驾驶最为重要的部分之一,只有实现精确定位和导航的精细化才能保证自动驾驶的安全性与可靠性。目前,我国自主研制的北斗导航系统在性能上与美国的 GPS 相比还存在一定的差距。高精度激光雷达、毫米波雷达等车载传感器作为自动驾驶汽车的眼睛,国内近几年虽有快速的进步,但与国外先进水平相比仍有相当的差距。自动驾驶技术要大规模普及,一方面有待在低成本、高性能的传感技术方面取得突破,还需要大幅提升自动驾驶的计算能力,而这两方面都是国内仍需努力的。

    ② 政策法规

    自动驾驶汽车要想合法上路行驶,首先要解决政策法规的问题。自动驾驶汽车实际行驶过程中难免会因为某些原因而产生事故,如何划分事故责任,如何做到公正裁决等这些都是要进行深入讨论与验证的问题。目前并没有哪些国家对自动驾驶汽车专门制定完善的政策法规,要想真正的实现自动驾驶汽车的普及化,这是一个必须解决并且需要格外小心的问题。

    ③ 困难和挑战

    自动驾驶的一个很重要的用途是用于某些特殊的环境下,由于在某些特殊的环境下,人员生存困难,自动驾驶能克服这些问题,但是其也要解决如极寒、道路条件复杂等各种极端环境的影响,这同样也是自动驾驶未来发展所应面临的困难。由于人工智能的大量应用,自动驾驶技术更依赖于网络,如通过云端获取的高精地图、精准导航等的数据,其安全性显得尤为突出。如何打造安全可靠的数据链路,不被黑客侵扰等也将是需要长期面临的困难与挑战。

    参考文献

    [1] SAE International.Automated Driving - Levels of Driving Automation are Defined in New SAE International Standard J3016.

    [2] 陈虹,郭露露,边宁.对汽车智能化进程及其关键技术的思考[J.科技导报,201735 (11):52-59.

    [3] 陈慧岩,熊光明,龚建伟,等.无人驾驶汽车概论.北京:北京理工大学出版社,2014.

    [4] 刘少山,唐洁,吴双,等.第一本无人驾驶技术书.北京:电子工业出版社,2017.

    [5] 国家制造强国建设战略咨询委员会.《中国制造 2025.2015.

    [6] Wolfgang BernhartMarc WinTerhoffChristopher Hoyesetc.Autonomous Driving.Roland Berger,201411.

    [7] 班智飞,黄波.无人驾驶:在腾飞的前夜.中关村,20181.

    [8] 乔维高,徐学进.无人驾驶汽车的发展现状及方向[J].上海汽车,2007(07).

    [9] 晏欣炜,朱政泽,周奎,彭彬.人工智能在汽车自动驾驶系统中的应用分析.湖北汽车工 业学院学报.20183.

    [10] 夏伟,李慧云.基于深度强化学习的自动驾驶策略学习方法.集成技术,20175.

    [11] 国家发展改革委办公厅.智能汽车关键技术产业化实施方案.201712.

    [12] 李克强,戴一凡,李升波,等.智能网联汽车(ICV)技术的发展现状及趋势[J].汽车安全 与节能学报,201781):1-14.

    [13] 丁毅.浅析无人驾驶汽车环境感知技术.数字技术与应用,20181.

    [14] 贺汉根,孙振平,徐昕.智能交通条件下车辆自主驾驶技术展望.中国科学基金会,2016.

    [15] 陈帅.无人驾驶汽车安全行驶的三大系统.中小企业管理与科技,20184.

    展开全文
  • 数据清洗

    千次阅读 2019-12-11 18:02:33
    判断标准:1)最小最大分布法,按从小到大排序,选取最小的5%和最大的95%数据作为异常值; 2)标准分法:平均±3个标准差(1个标准差:68%;2个标准差:95%;3个标准差:99.7%,6 σ:99.9996%) 3)四分位数法:...
  • 基于SSM的校园二手交易平台的设计与实现

    万次阅读 多人点赞 2018-05-06 14:24:44
    数据需要排序的时候,用到的是快速排序,负责排列热门商品等的信息,并且返回数据到前端页面进行显示。 3 详细设计 3.1 数据字典 用户信息表 字段名 字段类型 是否可为空 备注 Id Int(11) 否 主键 Modify Datetime ...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
     版本支持:系统中的组件或动态联接库可能要升级,由于这些组件或动态联接库都要在注册表中注册,由此可能带来一系列问题,例如,安装新程序时自动安装新组件替换旧组件,有可能使某些必须使用旧组件才可以运行的...
  • C语言图书管理系统设计报告

    万次阅读 多人点赞 2017-06-20 17:37:54
    人民邮电出版社.《啊哈!算法》 [4] 程杰,清华大学出版社.《大话数据结构》      完 成 期 限:   xxxx年x月xx日   指导教师签名:     年 月 日     目 录 1概述.1 ...
  • 文章目录一、确定整体思路二、实际操作部分1、爬取人民日报的数据2、整理爬取的数据3、统计关键词的出现次数4、后续操作 “语象观察”是之前看过的钱钢老师做的一项社会学研究,由于之前用于发布的“尽知天下事”...
  • 上一篇《人民日报》的爬虫文章发布之后,收到了很不错的反馈,文中的爬虫代码也确实帮助到了很多人,我很开心。 跟读者们交流过程中,我也发现了一些比较共性的需求,就是 根据关键词筛选 新闻文章。 最初我的想法是...
  • ES+java操作ES

    千次阅读 2019-12-23 22:22:54
    当创建一个文档,你可以自定义 _id ,也可以让Elasticsearch帮你自动生成。 另外还包括: _uid 文档唯一标识(_type#_id) _source: 文档原始数据 _all: 所有字段的连接字符串 1.2 文档的增删改 在ES中...
  • Python :爬取人民日报新闻

    千次阅读 2020-08-26 11:56:04
    Python :爬取人民日报新闻(txt格式转换为json格式)这是未修改前得到的文本样式代码如下爬取新闻部分代码这里的话我也尝试了将两部分直接合并,然后直接得到txt文件后转化得到json文件,但是一直报错,失败了 ...
  • NLP之汉语自动分词

    千次阅读 2018-09-21 21:47:45
    汉语自动分词就是让计算机识别出汉语文本中的‘词’,在词与词之间自动加上空格或其他边界标记。 目录 一.汉语自动分词中的基本问题 1.1分词规范问题 2.2歧义切分问题 3.未登录词问题 二.汉语分词方法 1.N-...
  • 【原创】聊天机器人与自动问答技术
  • 点击上方蓝字关注我们一种基于深度神经网络的临床记录ICD自动编码方法杜逸超1,徐童1,马建辉1,陈恩红1,郑毅2,刘同柱3,童贵显31中国科学技术大学计算机科学与技术学院,...
  • 作者 | 梧忌毫无疑问,人工智能将改变软件开发的方式 —— 我们已经看到了一些尝试将人工智能应用到软件开发所带来的好处,例如“程序代码自动生成”:根据图像生成代码、通过数据模型生成代码……今天我感兴趣的是...
  • Python 网络爬虫实战:爬取人民日报新闻文章

    万次阅读 多人点赞 2019-05-11 22:44:04
    昨天晚上,我一好哥儿们找我帮忙,他的一个课题中需要爬取《人民日报》中的文章,方便后续对文章内容进行分词,词性标注,词频统计等等一系列数据统计和分析。于是他便找到了我。 关于爬虫的大致需求如下,我简单看...
  • 文本自动生成研究进展与趋势

    千次阅读 多人点赞 2017-08-26 10:12:38
    按照不同的输入划分,文本自动生成可包括文本 到文本的生成、意义到文本的生成、数据到文本的生成以及图像到文本的生成等。上述每项 技术均极具挑战性,在自然语言处理与人工智能领域均有相当多的前沿研究,近几年...
  • 要用浏览器打开公众号的练题库,然后就可以自动获取答案 最下面是我获取到的300多个题 差不多就这些了 可以进一个加个函数自动答题 def fu(): try: browser.refresh() time.sleep(2) xx = browser.find_...
  • 机器学习AI算法工程 公众号:datayx问题描述基于知识图谱的自动问答(Question Answering over Knowledge Base, 即 KBQA)问题的大概形式是,预先给定一个知识库(比如Freebase),知识库中包含着大量的先验知识数据...
  • 网上的答案是第一版的,重新整理了一下《汇编语言程序设计教程》人民邮电出版社第二版 刘慧婷,王庆生 主编 习题及参考答案更多汇编内容请访问:omegaxyz.com第一章至第五章核对及编辑:xyjigsaw习题1 1.1 什么是...
  • 第二个步骤则基于上一步结果,需要考虑句子之间的相似性,避免选择重复的句子(如 MMR 算法[10]),并进一步对所选择的摘要句子进行连贯性排列(如自底向上法[11]),从而获得最终的摘要。近几年学界进一步提出了基于...
  • 先说明一下,这是一篇爬虫+分析+自动化的文章,并不是上节说到的 NumPy 系列文章,NumPy 系列请期待下节内容。 这篇实战文章也属于心血来潮吧,简单说一下: 小一我自从疫情发生了之后,每天早上第一件事就是关注...
  • 无监督文本自动摘要野生技术

    千次阅读 2018-09-23 21:30:00
    编程狗在线自由的编程学习平台前言本文简单介绍文本自动摘要的概念,提供一些简单可行的思路和解决方法,主要功能是记录一些心得和希望读者能得到一些启发。现阶段有监督的文本自动摘...
  • Linux实用教程(第三版)

    万次阅读 多人点赞 2019-08-27 22:55:59
    Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。 Linux系统会不时的进行...
  • WPF ListBox 横向排列

    千次阅读 2018-11-09 01:57:27
    WPF ListBox 横向排列
  • 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来 并具有动态排序 动态生成查询 自动分页功能
  • 余弦定理实现新闻自动分类算法

    千次阅读 2015-07-27 21:53:33
    新闻自动分类器实现的本质也是利用余弦定理比较文本的相似度,于是这个问题的难点就在于这个特征向量哪里来,怎么去获得。特征向量,特征向量,关键两个字在于特征,新闻的特征就在于他的关键词,我的简单理解就是...
  • 用贪心算法来做则需要先将币值从大到小排序,由于币值数组是人为设定的,就省去排序了。  对于每一个工资值,用币值从大到小处就是需要的张数。看着程序应该是可以理解的。  其他的就是数据输入格式,数据输出格式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,117
精华内容 4,846
关键字:

如何自动排序人民