来源:
1 概述
计算机技术的发展,车辆上的控制系统变得越来越复杂,因而控制算法变得也非常复杂,所以控制系统开发的主要工作是内部的控制算法的开发。我们知道近几年国外先进的开发过程是呈V 字形,它分为下面几个阶段[1]:
(1) 系统设计建模与离线模拟
在这一阶段主要验证控制算法与概念,验证系统的可行性,使用MATLAB/Simulink 软件可以很容易实现控制算法并进行系统建模,这些模型可以同样应用于实时硬件模拟。
(2) 系统原型实施
这一阶段仍是采用PC 计算机或功能较强的计算机,如DSP。将系统的硬件信号加入到模拟系统中,从而实现真实的物理系统。可以采用MATLAB 工具箱,例如RTW 和xPC 等。很容易在PC 计算机中实现实时硬件控制。例如可以直接用PC 计算机对车辆进行控制验证。
(3) 目标代码产生
目标代码的产生是最困难的一步,可以采用专用的工具如Targetlink,它可以从Simulink 可视化算法直接转化为C 代码,MATLAB/Simulink 中的实时嵌入式代码生成器工具箱也具有这类功能。但生成可用于大量生产的实用代码还要作较多的修改,或许要嵌入较多的用户手工代码。
(4) 实时硬件模拟
这一步骤是验证控制器硬件和软件算法,它的环境与实车比较类似,其相似程度取决于模拟模型与实际车辆的差别。如果模型比较准确,则经过这一系统验证后再到实车试验,其工作量就降低到最少,但一般情况下模型与实车都存在较大差距,所以仍需要较多的工作。
(5) 系统验证与调试
这一过程是将控制系统在实车上进行验证并进行系统的标定及参数修改等工作。如果前面的工作比较完善,则这一步的工作量就可以减少,并节省时间与费用。这一过程是一个一般的过程,但也存在下面几个方面的不足。
1) 传统的开发大多采用模拟的方法,纯软件模拟可以部分地验证控制算法,但大部分的纯模拟控制算法都是运行在PC 计算机上。利用通用的编程工具如VC、VB、MATLAB/SIMULINK,它们都是采用浮点数运算,也不必顾及内存空间的大小。这种模拟当得到理想的结果后再向目标计算机上进行移植,这种目标计算机往往要进行产业化生产,要求有较高的性能价格比,所以它的内存空间较小,同时采用整形数。模拟验征很好的代码一旦移植到这种目标计算机。由于上述差距的存在就会使控制算法的性能大大降低,这往往需要用户重新进行构造控制算法,这样就导致开发效率降低,那么最好是从一开始就使目标计算机参与到系统上来。
2) 实时硬件闭环模拟是一种非常好的工具,目前在开发过程被大量的使用。它可以有效地验证控制器的软硬件系统,但这种系统在实际使用中事实上主要是验证控制算法。硬件的验证只要没有故障,则在以后的工作中就不会再有什么作用。
3) 实时硬件模拟验证只是在实验室内进行,如果拿到实车上就很不方便,特别是一些混合模拟由于设备庞大,很难拿到车辆上。在实际车辆上调试ECU 控制代码时要进行很多算法修改及参数的调整,这种修改与调整有些可能对算法的影响是很大的,有些情况可能会使控制失效。这样就需要再回到试验室中用实时硬件模拟再去验证算法,反反复复这样调试就会耗费比较多的时间。
4) 好的开发环境应该将这些过程集成到同一个环境下,如果系统要在不同的系统中切换,势必造成移植的困难。
基于在控制器开发过程中这几个比较困难的事情,本文提出了实时软件模拟方法以有效地解决上述系统的缺陷。
2 系统硬件
图1 系统硬件框图
为了实现从模拟到最终样机的一体化集成开发,采用高性能奔腾P4 嵌入式PC 作为主机,主频1GHz,嵌入式PC 可以带有电子盘。采用嵌入式系统具有下面的优点:
1)系统是单板式结构,所以系统可靠性高。
2)采用PC104 总线,具有抗振性,且体积也比较小。
3)PC 计算机性能高,可以作为模拟用主机,即直接用MATLAB/SIMULINK 建模。
4)用PC 计算机可以利用它采用MATLAB 中的xPC 工具箱生成较小内存的控制器代码,然后内置于主机板的电子盘中,形成可靠的基于PC 的控制系统。
5)采用嵌入式PC 体积较少,便于形成车载控制系统。
系统硬件包括下面几个部分:
(1) PC 主板:嵌入式系统,PⅢ或PIV 主机。
(2) 采集卡:PC104 总线,用于数据采集及系统控制。
(3) 仿真器:单片机仿真器主要用于控制器程序的调试,也可采用PC104 总线,这样可以使开发系统一体化,并在一台计算机上加以实现。
(4) 信号及驱动设备箱:这是一个专用信号调理箱,这种系统要根据车辆上应用确定信号调整的类型及驱动类型,作为一个通用的系统,采集驱动系统有如下功能:
1)A/D 采集 8 路:用于模拟量采集用调理箱,对信号进行放大,并规整变为0~5V 电压。
2)D/A 输出 2 路:用于模拟量采集用调理箱,对信号进行放大,并规整变为0~5V 电压。
3)数字输入:16 路,主要采集一些输入信号,如开关量。
4)数字输出:16 路,主要是一些驱动信号,如对电磁阀,通过调理箱对信号进行功率放大。
5)脉冲输入采集,8 路,主要对一些速度信号进行采集,一般的采集卡很难准确进行采集,采用专用的采集卡,可以对脉冲进行准确的计算,信号调理箱则可以完成信号的整形放大等处理。
6)脉冲输出,8 路,主要对一些速度信号进行模拟,一般的采集卡很难准确输出脉冲,采用专用的采集卡,可以对脉冲进行准确的计算,信号调理箱则可以完成信号的方波转换为正弦波等处理。
7) CAN 通信:共有15 个信息帧可以编程使用,CAN 标准为2.0B,CAN 通信参数可以定义。
另一种系统配置是采用笔记本电脑。PC 计算机固有的外设有串口、并口、USB 和网络接口,串口由于通信速度慢,显然不适于作采集数据。网络接口由于与单片机的接口比较复杂,也不太适于作系统的数据交换与通信。USB和并口通信速度比较高,并且与单片机的接口也比较简单,这样可以外挂两个独立的外设。一般在我们的系统中一个作为单片机的仿真器用,一个作为采集卡构成实时模拟系统,这样采用笔记本就增加了移动性,方便灵活。图2 为这一系统的框图。
图2 笔记本PC 构成的开发系统框图
通过这一系统构成一体化的开发测试系统,即满足下面几项功能:
1)纯模拟系统:采用MATLAB 建模,进行控制系统的模拟。
2)集成单片机开发系统:采用PC104 总线结构,控制算法直接生成C 代码,并直接下载到单片机仿真器中运行,这样可以实时修改控制算法,即可以在试验室条件下进行,也可以在实车上进行调试。
3)集成测试系统:利用PC104 采集卡可以对车辆非控制器参数进行采集,如压力、速度等,用这些数据可以有效地对控制效果进行评估。
4)集成实时硬件模拟系统:利用采集卡可以发出各种模拟的传感器信号,如模拟量通过D/A 发出,脉冲信号通过PWM 信号发出。
5)集成的车载系统:采用专用的计算机抗振机箱,整套系统可以直接放到车辆上进行ECU 的调试,调试过程中可以采集各种物理量,同时此系统可以进行各个阶段的模拟。这种系统将软件及硬件一体化,同时应用于车辆控制系统各个开发阶段,最有效地提高了设备的利用率,避免了开发环境的切换,从而可以缩短开发时间。图3 为这一系统的外形图。这一系统首先硬件实现了从模拟到系统的集成化,硬件是同一设备完成各个阶段的开发,下面要介绍的软件也是一体化的。
图3 开发系统外形图
3 实时软件模拟方法
系统软件采用MATLAB 系统建立控制对象模型,即车辆模型。混合控制器的模型就可以形成纯模拟系统,但这种纯模拟系统可以采用统一的MATLAB 环境控制器模型,也采用SIMULINK 可视化模型,这是最初的模型。如果要使用MATLAB 中的工具箱,这类模型有一定的限制,如不能采用连续性模块,采用嵌入式代码生成器工具箱,可以将控制器子系统生成C 代码,也可以采用专用的单片机代码生成器生成C 代码,如目前MATLAB 中已有Motorola MPC555、TI TMS320C6000、Infineon C167 系统单片机专用工具箱控制C 代码的生成并可以控制C 代码的编译、连接,最后生成可执行代码。生成可执行代码后,可以将系统直接下载到目标单片机上,这时就可以用目标单片机直接对应用对象即实际车辆进行控制了。但单片机代码不能直接对模拟模型进行控制了,这样就造成了开发过程的脱节。因为由SIMULINK生成代码的过程,有可能改变了系统算法的特性。不同厂商的编译器也会存在一些问题,所以直接用生成的单片机代码对模拟对象进行控制是最便利的,当然这时可以利用实时硬件闭环系统进行模拟与验证。但由于控制器硬件的过早介入要花费很大的精力去调整信号,而往往硬件连接会带来很多麻烦,如信号连接等。再者在算法调整阶段并不需要硬件的介入,在这种情况下,就需要有一种连接单片机与计算机之间的数据交换界面,从而形成一种快速实时交换数据方式,使车辆模型系统与控制系统能够实现快速通信,从而实现软件实时模拟,基于此在本系统中采用两种数据交换方式。
(1) CAN 通信方式
(2) 双口RAM 通信方式
其结构方式见图4。
图4 数据交换方式
双口RAM 方式的原理是将仿真器的一部分内存地址映射为PC 机外设设备的可访问的空间。通过这部分的共享内存进行数据交换,这种方式可以映射比较大的空间,交换的数据量也比较大,实时特性好,但这要求仿真器具有特殊的总线访问地址。一般通用的仿真器不具有这类功能,必须用户进行自己研制。本系统中也采用过这一方案,但它要求对仿真器系统作较多的研制与改进,所以难度较大,但这种方案是普通适用的,适合于任何类型的计算机。
采用CAN 总线通信比较方便,这是因为目前许多单片机已内置了CAN 控制器,一般CAN 控制器具有15 个信息体,新出现的单片机则可以带更多的CAN 控制器,每个信息体有8 个字节,这样就可以有120个字节用于实时数据交换,同时CAN 的最高通信速度为1MHz 波特率,足以满足实时模拟的要求。在PC计算机方面一般没有CAN 接口,但CAN 的接口卡是比较多的。本系统采用自制的CAN 采集卡,该采集卡可以采用USB接口转换,也有并口、ISA、PCI 几种接口,只用两根CAN 通信线就可以将单片机与PC计算机进行通信连接。当然串口与单片机的连接也很方便,除非是一些低速简单的控制系统,但串口通信一是速度慢,二是它的数据传递不像CAN 是数据包的形式,所以容易产生错误。
CAN 通信只能传送字节型数据,对不同的数据类型要进行变换,例如要传送浮点数据,先把它变换为字节型变量,接收后要进行解码,把它还原为浮点数据类型。系统的原理见图5。
图5 CAN 数据交换原理
CAN 通信的基本设置可以通过MATLAB 的GUI 界面编制定义程序,将参数定义可以保存在采集卡的EEPROM 中,用户可以通过这个界面进行参数的定义与修改,例如数据长度、波特率、屏蔽字。
4 实时软件模拟的应用
4.1 改进的开发过程
前面介绍的V 字形的开发过程由于存在各个阶段的不衔接,导致开发效率的降低,通过实时软件闭环模拟系统可以有效地改进开发效率,基于这一系统可以形成改进的开发系统。
(1) 系统建模与模拟:这一阶段从一开始即开始进行实时模拟,不但应对对象模型可以贯彻整个开发过程,而且控制器模型也始终贯彻整个开发过程。
(2) 单片机实时模拟:在这一阶段通过嵌入式工具箱生成实时代码,通过S 函数建立CAN 通信模块实现数据的交换。在这一阶段模拟过程是运行单片机的程序,所以控制算法得到真实的验证。
(3) 实时硬件模拟:这一过程是在上阶段的基础上进行,主要是控制器硬件的验证,所以只需比较短的时间。因为大量的算法验证主要在第二阶段,第三阶段只是验证硬件,这样大大降低了开发难度。
(4) 系统验证:这一阶段主要用于道路试验,将车辆模型用实际车辆代替。采用同一套开发系统直接放到车辆上进行控制,在调试过程当控制程序参数修改时,采用第二阶段的纯软件实时模拟进行验证,待算法没有问题时就可以马上进行道路试验,这样增加了程序的可靠性。
可以看出,通过这一过程可以有效地缩短开发过程,开始的模拟与最后的产品样机几乎是同一套模型,这样实现了开发过程的每个阶段有机衔接,无缝连接。图6 为新的开发过程。
图6 软硬件集成化的开发过程
在开发过程中最大的工作量是第一阶段,模拟建模这一系统一旦建立起来则对以后阶段都有重要的作用。道路调试也有较多的工作,则主要是作为一个最终的产品要求有较高的可靠性。要在道路上进行比较细致的调整,各种工况的校验,一般还要经历冬季和夏季试验等。这一系统的重要定义在于在进行道路试验的同时,可以同时交替地使用单片机纯模拟,以验证每一次修改的正确性。
4.2 系统实际工作过程的标定
车辆控制系统不同于一般的控制系统,它要求高可靠性,而它的工况是各种各样的,特别是传感信号是至关重要的,由于有各种干扰的存在,控制器抗干扰要强,但在模拟情况下很难产生真实的带有干扰的传感信号,这样模拟很好的控制系统往往在实际系统中得不到很好的控制效果,这要求把实际系统的信号进行采集,类似于采集”路谱”,然后在试验系统中进行回放,这样就可以测试控制器的响应并修改相关的控制算法。采用本系统可以很容易实现这一功能,这对ECU 的改进具有重要的意义。这一工作包括两个部分,一部分是信号的采集,利用CAN 通信将控制器采集的信号传递到上位PC 中,在MATLAB 环境中可以将它们存入数据工作空间中。
在试验室条件下可以循环播放这一数据,仔细验证与修改控制参数,研究滤波方案,这样提供了一种非常真实的模拟环境。为节省时间可以参考这些实际数据,人工产生各种噪声信号(用软件很容易产生各种信号,例如压力的干扰信号用纯模拟可以非常容易地合成,但用硬件的方法则很困难产生,并且费时费工)。采用纯软件单片机模拟可以避开硬件传感系统,直接将真实的传感信号导入到单片机内部,这是非常简单的。
对于外部硬件驱动来说,在实时硬件模拟时需要功率系统一次次工作,有些设备耗电也比较大,危险性也大,采用软件模拟则可以有效地避免这类问题。
4.3 模块化的实时硬件系统
实时硬件系统实际上包含有输入和输出两个部分,在许多情况下并不需要输入、输出都参与工作,有下面两种工况,即输入硬件和输出硬件模拟。
全硬件模拟部分
图7 不同模拟系统的配置
输入硬件模拟是指单片机一方来说的,即单片机控制器的输入。在输入硬件系统中,其输入的硬件是真实的信号连接,而输出部分是采用CAN 接口连接构成软件的数据交换连接,同样输出硬件模拟则是以单片机输出驱动和采集卡构成硬件连接,而输入部分是以CAN 进行数据连接。如果输入输出部分都以硬件进行连接,通过采集卡构成数据的交换与传递,则这种系统就是全硬件模拟系统,但实际系统中为方便和灵活,则采用不同的模拟系统。可以分别调试输入和输出系统,图7 为不同模拟系统的配置。
5 结束语
本文介绍的快速开发系统已成功地应用于不同的开发项目,并将本系统产品化,系统在使用中不断的完善,并逐步被客户所接受。本系统特点是软、硬件系统一体化,并贯穿整个开发过程中,大大提高了开发效率,缩短了开发时间。系统是一种通用的开发平台,几乎可以应用于任何车辆电子控制系统,更重要的是,它是一个开放的开发平台,所有资源对用户都是开放的,用户可以自行修改和建立特定的模拟开发模型。
(转载)