RT 抛砖引玉 呵呵
我在公司里是搞共轨柴油发动机控制功能开发的,是前期开发
所谓的RCP(Rapid Control Prototyping) 控制功能的快速成型
RCP跟游戏开发的前期很类似,你需要先弄出整个框架的雏形,
角色,设定,情节,大致先开发出一个简单的测试版,看看效果
让客户(或者老板)看了说“不错!这就是我想要的” 于是就可以
继续搞下去 :)
RCP下面有两个基本概念,bypass, fullpass
比如说,你已经有了一套在发动机转速1500转/分,负载60Nm时
控制EGR阀门张开角度的控制算法了,但这个控制是开环控制,
精度很差 于是你把它改成闭环,在一套模拟ECU的机器(可以
把它看作一个单片机)里运算,
把最后算出的结果(阀门张开角度)再传回目标ECU里 这样你就可以
把如何修改目标ECU的软件这个问题放到一边,集中精力去完善
你的控制算法 这个就是bypass fullpass就是所有驱动器bypass
的总和,目标ECU只负责读取传感器信号和驱动各个控制目标
(喷油嘴,阀门等等),所有的计算都在模拟器上完成
只所以需要一台独立于目标ECU之外的模拟器,是因为1. 目标ECU
上剩余的内存和运算能力可能已经不多,不足以实现你的算法
2.修改目标ECU上的程序(C)总是件让人头疼的事情,
你要搞清楚原来的程序的结构和内容,每修改一次都要
重新编译一次,再烧到flash上,相当耗费时间
以BOSCH的子公司ETAS的产品为例,RCP大概有以下内容
用ASCET(类似simulink的建模软件)来搭建控制逻辑模块,
自动生成C代码,编译之后下载到模拟板(ES690/ES1130/ES1135
高端CPU,最快的PowerPC 2GHz)上这样模拟板就代替ECU完成计算,
结果返回到ECU然后就可以用INCA来进行测试和标定,
随时比较不同算法的控制效果 要修改的话只要改模块,
C代码的生成,编译,下载都是自动的 所以能够实现快速开发
也就是所谓Rapid Prototyping
Rapid Prototyping还有一个比较有意思的分支是Virtual Prototyping
这个是基于PC的 也就是在PC上开发控制模块,在PC上运行测试看效果
不需要特制的,实时的,昂贵的模拟板了
以前的PC都是单核的,所以要做到实时很难
但现在双核的CPU很常见了,所以可以让一个核来完成PC的进程和
任务管理,另一个核来模拟实时控制 如果这个能实现,会有
很多很有趣的应用 比如在公司开个双屏,一个跑上极品飞车,
另一个显示数字仪表,测试你的控制模块 :-)
--
FROM 58.147.234.*