谈谈汽车电子的“IPO模型”

来源:公众号“汽车信息安全”(转载公众号“侯哥工作感悟”)
2020-06-08
1841

1. 

前天的那篇说域控制器的文章介绍了一个模型:IPO(Input - Process - Output),这个模型也有人称之为S-P-A: Sense– Plan - Act。很多朋友留言提出了很多问题,比如这个模型的意义是什么,有什么作用,等等诸如此类

看到留言,忽然意识到自己还是没有把这个模型解释清楚。今天就再来解释一下。

首先,IPO模型是一个模型。模型在不同的领域有不同的定义,在物理学界,关于物理模型的定义是:一种理想化的物理形态,科学家进行理论研究时,通常都要从构造模型入手,利用抽象、理想化、简化、类比等手法,把研究对象的本质特征抽象出来,构成一个概念、实物或运动过程的体系,即形成模型。由于物理学所分析和研究的实际问题较复杂,所以,无论是做物理研究还是理论学习,理想模型都是必不可少的。

舍弃次要因素,抓住主要因素,从而突出客观事物的本质特征,这就叫构建模型。构建模型可以说是一种研究问题的科学的思维方法。

大家一定记得初中物理课上一些模型,比如说力学中的质点、轻质弹簧、弹性小球等;气体性质中的理想气体;这些都是在现实世界中不存在的一些东西,但是对于我们分析或者预测一些事物很有帮助,自然世界中只有在某种条件下接近这些模型的事物,至少还没有发现这种理想模型中的事物。但是,我们伟大的牛顿的三大定律都是建构于这些虚拟的模型上。

没有模型,理论就没有办法形成的。因为现实世界太复杂了。就像天气预报,大家都抱怨天气预报不准确,但是又都会去看,为啥?因为预报至少不会太离谱,而气象局一定基于一个天气预报的模型,来进行预报的。这个模型也可以看做是一个IPO模型。Input就是各个点的监测数据和各种历史数据,Process就是对数据的各种处理,Output就是推算出来的天气预测数据。

就像控制器一样,那么多种类,每一个种类中那么多个不同的实体,没有一个模型就不好研究分析了。



2. 

有了IPO的模型,大家研究控制器的时候,设计控制器的时候,分析控制器的时候,就可以从Input、Output和Process三个方向或者说维度逐渐入手。否则,直接就谈论MicroController用什么型号,AD芯片使用多少位的精度,是用哪个HSD还是LSD,那么就舍本逐末了。


大家注意到我把Process放在IO的后面了吗?因为Process是为IO服务的。控制器的主要用途还是要去控制,也就是去控制执行器,或者输出信息给它的下游控制器,或者是记录数据--数据本身也是一种输出的产物。也就是说如果没有Output,就不需要控制器了。
Input是Process的基础输入,所有的控制模型一定都是有输入的,可以是各种数字化的数据(比如说总线上的数据)、也可以是各种模拟量,也可以是各种视频信号,或是图像数据等等。凡是可能对输出产生影响的各种外部的信息、动作等均可以称之为输入。
Output也可以是信息、模拟量、数字量或者动作。比如说总线上的信号就是信息,液晶仪表屏幕上显示的图像也是信息,电机的转动是动作,灯的亮灭可以是信息输出的结果,也可以是一个模拟量输出的结果。总的来说,电气世界中的输入和输出本质上都可以归结为信息或者是电气信号。信息其实也是一种电气信号。光、图像、声音、人的动作等也一定是需要转换为电气信号才能够被处理的。
Process本身可以非常复杂,比如说现在的人工智能AI,也可以非常简单:如模拟数字转换,甚至是一个放大器或者反向器所做的事情。Process可以是软件来完成,或者是硬件来完成的,或者是软件和硬件一起完成的。总之,输入的物理量与输出的物理量的种类和之间的关系共同决定了Process需要完成什么,而需要完成的事情直接决定了需要什么样的软件和硬件。


3. 
下面以自动驾驶系统的设计为例来简要说明一下IPO模型的应用。
所谓的驾驶其实就是由驾驶员来驾驶车辆实现从A点到B点的工作。
人类驾驶时需要完成的动作:设定目的地,观察环境信息,随时根据各种信息来控制车辆的速度和方向。也就是进行车辆的横向和纵向控制。
自动驾驶其实就是把原来由驾驶员来控制车辆的工作转换为车辆自己去执行而已。
让我们分析一下这个过程中的数据输入Input:通过驾驶员的眼睛,耳朵来随时接受外部的信息。Process:通过大脑来决定转向和加减速以及前进和后退,并通过手和脚来执行动作控制方向盘、油门、刹车和档位。输出output:就是手和脚的动作,来控制转向、加速和减速(包括前进和后退)。这个就是人类驾驶员的IPO模型。
对于转向和速度控制,现在的车辆已经可以通过电动转向机,电喷系统和ESP等完成。执行本身不是问题了,需要解决的是策略和时机问题。而这个就是自动驾驶系统需要完成的。
如果让车辆完成自动驾驶任务,那么IPO模型就变成了下面这样:
Input:各种环境数据和人类的指令。
Process:根据环境数据来决定转向和加减速以及前进和后退。
Output:控制车辆的方向和速度。执行器就是转向系统,动力系统和制动系统。
Output是比较成熟的技术,我们就不花时间来赘述了。
先分析一下输入。环境数据比较复杂,虽然人眼睛看到的是图像,但是这个图像是三维的,而且处理速度非常快。路况信息,车道,交通信号灯,周边的车辆的速度等等都可以在瞬间被判断出来。而且,人类还可以通过感觉系统知道路面的平整程度,分析各类事物是否可能影响驾驶安全。为了替代人类的眼耳口鼻和身体感知系统,就需要车辆能够来获取这些信息。从而就有了各种摄像头、激光雷达,毫米波雷达等。
人类可以迅速的实现所谓的数据融合,把视觉、听觉、感觉、味觉等获取的信息迅速的处理,并且立即做出决策,并通过四肢来进行执行。
所谓的自动驾驶的决策系统和算法就是来模拟人脑在这个过程中的作用,从而输出指令来控制转向、刹车和油门等执行机构的。
用自动驾驶的控制器来替代人类的大脑,最大的难点就是目前的机器还没有办法达到人类的水平,即使一个几岁的小孩的大脑也比现在最先进的控制器要强大的多。
是不是按照IPO的思路就知道要做些什么了?
自动驾驶和各种能够真的降低事故率、解放人的体力的创新才是真正的应该去投入力量研发的智能网联的工作。


4.
顺便说一下V2X,V2X也就是车辆和周边的车辆以及和周边的基础设备进行通信。为什么要通信呢?一部分是为了获取一些原来驾驶员需要获得的信息。比如说前面车辆的刹车信息,原来是通过驾驶员看到前面车辆的刹车灯和对距离的变化来实现的,现在就可以通过所谓的车辆之间的对话实现了。原来的你对别人按喇叭的动作,可以通过车辆之间自己对话实现了。其实这些还是通过模拟人类之间的通信来获取更多的信息,从而为驾驶决策系统来提供信息而已。
智能驾驶真正能够胜过人类驾驶员的那一天一定是AI足够强大的时候。现在问题是,真正的自动驾驶能够实现吗?我觉得应该会有这么一天,只是会很久,究竟多久,暂时还不知道。

END





主   编:杨文昌 @Vincent Yang
主理人:李   强 @Keellee



收藏
点赞
2000