1、内燃机电子控制ECU控制设计与实现本课程的结构电控起源电控结构柴油机控制典型系统/原理电控汽油机发展历史柴油机发展历史传感器结构类型工作原理传输技术量化原理ECU结构控制策略汽油机策略柴油机策略实现技术嵌入式设计实时操作系统RCP/HILS执行机构汽油机系统柴油机系统动力特性发动机特性负载特性能控型参数提前角共轨压力EGR喷油模式自控分析发动机模型控制器设计控制性能分析排放性能及控制排放原理排放特性各系统的特性汽油机系统柴油机系统共轨蓄压HEUI高压共轨ECU的控制设计与实现vECU的开发技术vECU开发流程v实时操作系统技术vECU的技术特征ECU的开发技术ECU的控制功能v对燃油喷射系统的
2、控制v对柴油机其他系统的电子控制v与配套机械系统匹配的电控ECU的研究发展vECU的发展vECU开发技术的发展柴油机电控单元研究发展柴油机电控单元研究发展v电控单元的研究取得的飞速进步,主要得益于电子控制行业的迅速发展和各种现代控制技术在柴油机领域的应用。为了满足各个方面的性能要求,电控技术已经渗透到柴油机的各个部分,采用了许多新的控制技术。现在,柴油机电子控制的内容已由当初的燃油系统单一控制逐步发展到包括发动机各个系统控制、故障诊断、实时管理等功能在内的综合管理系统,各种先进的电子控制技术在电控单元中得到了越来越广泛的应用 控制理论在电控单元研究中的应用 v发动机电子控制使用的控制方法从早期
3、的经典控制理论的PID算法逐步发展到优化控制、自适应控制、模糊控制、神经网络控制以及预测控制等多种现代控制理论。现代控制理论的引入使得电控系统更能适应柴油机这一类复杂多变量系统,时变系统和非线性系统,此外,现代控制理论与不断进步的新型电控器件相结合,使柴油机电控技术在进入实用化方面不断取得新的突破。 自适应控制和鲁棒控制 v内燃机的自适应控制系统首先由Draper和Li在1951年提出,他们介绍了一种能使性能特性不确定的内燃机达到最优性能的控制系统 。v基于模型的自适应控制技术逐渐应用于发动机控制以提高精度,其主要运用范围是发动机的稳态工况。由于动态工况下参数变化快、自适应算法收敛速度限制和控
4、制器计算速度限制等因素,在动态工况下应用存在着不足。神经网络和模糊控制神经网络和模糊控制v柴油机是一种多输入、多输出的非线性控制系统,难以用经典的控制方法来满足控制设计要求。随着控制理论的发展,各种新颖的控制方法正在逐步取代经典的控制方法,并在实际中得到推广,如神经网络和模糊控制等方法。神经网络和模糊控制神经网络和模糊控制v神经网络本质上是并行结构的非线性系统,这给发动机非线性控制系统的描述带来了一种新的数学模型;神经网络是一个多输入输出系统,在信息综合、信息互补与冗余等方面有较强的能力,而且在多变量、大系统与复杂系统的控制方案设计上有很明显的优势。神经网络和模糊控制神经网络和模糊控制v模糊理
5、论与神经网络有共同之处,如均为并行处理结构、都具有非线性映射能力。模糊神经网络是近年来智能控制领域的热点,它既具有模糊系统的便于理解,可以表达人的经验模糊等特点,又有神经网络的并行处理功能、容错能力、强大的自组织、自学习能力。神经网络和模糊控制神经网络和模糊控制v在国外,日本丰田公司较早将神经网络应用于控制,并提出了“智能发动机”的概念。同时还进行了应用神经网络技术控制发动机的试验。另外,M. Michael等开发了一个神经控制器,实现汽车燃油喷射系统的空燃比的实时自适应控制;Lenz U等利用神经网络方法提出了一种高精度控制燃烧室内空燃比的火花点燃式发动机燃烧控制对策 。神经网络和模糊控制神
6、经网络和模糊控制v神经网络和模糊控制的特点是其本质为并行结构,这种特点决定了其计算速度取决于控制器的结构形式。目前,并行计算芯片还处在研究阶段,远未进入控制器领域,这使得理论上计算速度很快的模糊神经网络算法在实际的处理器上速度慢、资源占用量大,实时性差。此外,两者数学基础均不完善,对系统稳定性、动态特性等性能分析都无确定的准则和方法 反馈线性化等非线性反馈技术反馈线性化等非线性反馈技术v20世纪非线性控制理论的突破性进展发端于20世纪70年代初期。随着微分几何理论和微分代数方法的引入,使得非线性系统控制理论及其应用有了一个巨大飞跃。非线性系统的几何理论在20世纪80年代己经初步形成了自己的完整
7、体系,基于微分几何的非线性系统控制理论的出现,也极大地促进了非线性系统鲁棒控制理论的研究。发动机管理系统的功能发展 v随着电子计算机技术和控制技术的快速发展,车辆发动机电控的功能由最初的燃油喷射系统电控逐步发展到集喷油电控、增压电控、怠速电控、进气涡流控制、电控风扇驱动、怠速稳定控制、EGR控制、冷启动电控、柴油机电控液压启动系统、冷却控制、故障诊断为一体的发动机综合电子控制装置。发动机电子控制逐步形成了包括控制、处理、故障诊断和实时管理的发动机综合管理系统 发动机管理系统的功能发展v国外新开发的电控柴油机上都具备监控诊断功能。这已成为现代发动机的一个重要特征。例如,美国CUMMINS公司采用
8、CELECT和CENTRY发动机电子管理系统对发动机进行全面控制和管理。v有些电控系统还包括了对机外排放的控制、安全性控制、以及与其它电控系统的信息通讯等等。如:电控柴油机微粒袋滤系统、壁流式微粒过滤器电加热再生控制系统、电控牵引力控制系统等等。 电控发动机故障自诊断功能 v现代发动机的电子控制系统复杂程度逐步增加,故障诊断功能也被包含进电控系统当中,这不仅要求故障系统对发动机的工作特性进行检测,还要求ECU具有故障自诊断功能以监测电子控制系统各部分的工作状况,如:传感器的故障诊断、执行器的故障诊断和配线电路的故障诊断等等。电控发动机故障自诊断功能v1988年,美国汽车工程师协会(SAE)、美
9、国环保署(EPA)、加州空气资源委员会(CARB)协同提出了OBD-I随车诊断系统,其目的是加快燃油喷射系统的维修速度,提高其维修质量,以降低汽车的废气排放。OBD-I系统能够实时监视控制模块、与控制模块相连的各传感器、燃油表系统以及废气再循环系统等等。v1993年,美国环保署颁布了OBD-II的规定,一些1994年出厂的轻型车上开始配备OBD-II随车诊断系统。v目前已推出了OBD-III型系统 。现场总线技术 v当前,出现了多种现场总线:基金会总线LonWorksProfibusHARTCAN现场总线技术vCAN即控制局域网络,最早由德国BOSCH公司推出,用于汽车内部测量与执行部件间的数
10、据通信。由于其高性能、高可靠性及独特的设计,CAN越来越受到人们的重视。世界上一些著名的汽车制造厂商,如BENZ、BMW、PORSCHE、ROLLS-ROYCE和JAGU都已开始采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。传感器技术传感器技术v近年来,随着控制技术、计算机技术和宽带网络技术的快速发展,多传感器系统得到了越来越多的应用,这对传感器提出了更高的要求,即准确度高,可靠性好,易于组网,并具有信息处理和自检等智力功能。v随着新材料及新技术的应用,电控系统要求传感器集成化和智能化。实现智能化的传感器具有信号放大、处理功能,各种补偿功能,以及自诊断功能,其智能部分还应
11、具有编码和译码的能力。 传感器技术传感器技术v网络化智能传感器是以嵌入式技术为核心,集成了传感单元、信号处理单元和网络接口单元的新一代传感器。v处理器的引入使传感器成为硬件和软件的结合体,能根据输入信号值进行一定程度的判断和制定决策,实现自校正和自保护功能。非线性补偿、零点漂移和温度补偿等软件技术的应用,则使传感器具有很高的线性度和测量精度。网络接口技术的应用使传感器能方便地接入网络。计算机硬件的发展 v电控单元(ECU)是柴油机电控系统的核心,其硬件就是微处理器。目前,在发动机电控单元中除了常用的8位和16位的微处理器外,32位特别是64位微处理器已逐步开始使用,而且,专用的汽车微机也已研制
12、出来。v当前ECU发展的总趋势是从单系统单机控制向多系统集中控制过渡,汽车电控系统将采用计算机网络技术,把发动机电控系统、车身电控系统、底盘电控系统及信息与通信系统等各个系统的ECU相联接,形成机内分布式计算机网络。电控系统开发工具与设计方法的发展 v计算机仿真技术的应用 v实时操作系统的应用 v计算机辅助控制系统设计(CACSD)技术 计算机仿真技术的应用v发动机电子控制技术是改善发动机性能有力的手段。在发动机电子控制系统的开发中,控制算法对系统控制性能的影响很大,通常它的在线整定和调节比较困难、费时,一般需要首先利用电控系统仿真模型。电子控制系统的分析、设计及系统的调试、改造都要应用系统仿
13、真技术。 计算机仿真技术的应用v随着计算机技术的快速发展,出现了较多仿真软件:美国Math Works公司推出的MATLAB。它所带的组件之一Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,是一种通用的仿真软件。v针对发动机领域也出现了一些专用的仿真软件:AVL公司开发的用于发动机性能仿真的HYDSIM德国Tesis公司的en-DYNA软件,是一个发动机动力学分析模型库,可以从模型库中建立实时发动机模型。因而可以测试最新型ECU。美国波音公司的EASY-5软件用于工程分析法国伊梦镜(IMAGINE)公司的AMESim软件用于燃油喷射、制动系统、动力传动、冷却系统等方面实时操作
14、系统的应用v以前电控单元的研制采取的是针对特定的硬件,为特定的功能编程的方法,并且几乎全部采用汇编等可读性差的代码编写方式。这种方式设计的控制器效率高,但可移植性差,无法应用软件工程领域的一些先进技术。v实时系统是对外来事件在限定时间内能做出反应的系统。限定的时间范围可以从微秒到分钟。实时系统的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。近十年来,实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片,从只有实时内核到除了内核外还提供其他功能模块,如高速文件系统,TCPIP网络系统,窗口系统等等。实时操作
15、系统的应用v据Embedded Systems Programming报告,世界各国多家公司,已成功推出200余种可供嵌入式应用的实时操作系统。其中几个著名的实时、嵌入式操作系统是Wind River公司(WRS)的VxWorks、pSOS,Mentor Graphics公司的 VRTX, Microsoft公司的Windows CE,Microware公司的 OS.9,3COM公司的 Palm OS,LYNX公司的Lynx等。实时操作系统的应用v为了设计技术共享和软件重用、构件兼容、维护方便以及合作生产,近几年,一些地区和国家的汽车行业协会纷纷制定嵌入式产品标准,特别是软件编程接口API规范
16、。如,欧共体汽车产业联盟规定以OSEK标准作为开发汽车嵌入式系统的公用平台和应用编程接口(OSEK的名称来自于德文“车内电子设备的开放系统的接口”)。OSEK规定了汽车控制器的通信规程、网络管理规则以及高效利用存贮器的嵌入式操作系统规范。目前,Wind River等嵌入式软件公司已宣布推出兼容的操作系统。计算机辅助控制系统设计(CACSD)技术 v市场对控制系统的开发要求较多:开发周期要求、高可靠性要求、控制算法要求,同时,并行工程要求设计、实现、测试及生产准备同时进行等等。有时控制对象在开发过程中也在不断发生变化。因此,只有计算机辅助控制系统设计(CACSD:Computer-Aided C
17、ontrol System Design)才能满足这一切要求。v计算机辅助控制系统设计不仅仅是进行控制方案的设计和离线仿真,还包括实时快速控制原型(RCP)、已验证的设计向产品型控制器的转换和硬件在环测试 。计算机辅助控制系统设计v快速地建立控制对象及控制器模型,并对整个控制系统进行多次的、离线的及在线的试验来验证控制系统软、硬件方案的可行性,这个过程称为 快速控制原型(RCP)。v已设计完的控制器投入生产后,在投放市场前必须对其进行详细的测试。现在普遍采用的方法就是:在系统测试时,控制器是真实的,其余部分能采用实际的产品就用实际的,不能采用实际的产品,就采用实时数字模型来模拟控制器的外环境,
18、进行整个系统的测试,这个过程称为硬件在环仿真(HILS)。计算机辅助控制系统设计v用于发动机电控单元开发的典型产品之一是德国dSPACE公司开发的dSPACE实时仿真系统。它是基于MATLAB / Simulink /RTW的控制系统开发和半实物仿真的软硬件工作平台,它将ECU的开发、编程、测试集成在一个统一的环境下,从而可以加速与简化开发流程,快速实现控制参数的修改,并能与OSEK标准的实时操作系统链接。 ECU的开发流程电控单元的开发流程 图标定各工作模式下的工作模式选定、标定实验测试数据库设计通讯接口设计测试监控平台设计、实验测试在环仿真控制对象仿真硬件研制)、硬件在环仿真(控制功能代码
19、编制实时操作系统软件设计控制器系统设计驱动电路输出信号处理电路传感器选型输入接口电路设计硬件设计设计制造、控制器原理仿真控制对象仿真硬件研制控制器仿真硬件研制)设计(并行方式快速控制原型离线仿真、控制仿真控制策略确定控制对象建模、建模及控制原理设计MAP654321HILSECURCP电控单元的开发流程v当前的电控开发以虚拟现实技术为主要特征,以dSPACE开发工具为例,介绍电控单元的开发流程。虚拟现实技术v虚拟现实(VR)是虚拟制造理念与技术的主要支撑技术,在虚拟技术出现前,许多技术已经为我们提供了分析世界、观察世界的有力工具,但是这些工具基本上都只能帮助我们进行单方向的推理。我们需要一种简
20、捷的互动环境。虚拟样机技术v虚拟样机技术是一种以人为中心的优化产品开发过程的方法与虚拟现实技术相结合的技术,它将分布的、来之不同了光学克领域的模型集成在一起,不依赖物理样机就可并行协同的进行有效的、可验证的设计工作,提高了产品开发项目中开发者与开发则、产品与客户的交互,使设计面向过程,面向市场快速原型技术(RP)v在开发的初期阶段,快速地建立控制对象及控制器模型,并对整个控制系统进行多次的、离线的及在线的试验来验证控制系统软、硬件方案的可行性。这个过程我们称之为 快速快速控制原型(控制原型(RCP) 硬件在环仿真(HILS)v在系统测试时,控制器是真实的,其余部分能采用实际的产品就用实际的,不
21、能采用实际的产品,就采用实时数字模型来模拟控制器的外环境,进行整个系统的测试,这个过程我们称之为 半实物仿真(半实物仿真(HILS) 汽车控制的解决方案目标代码生成硬件在回路仿真标定Rapid Prototyping快速控制原型功能设计通用汽车公司的燃料电池车欧宝的开发流程v目标目标:在开发过程中使用统一的软硬件平台在开发过程中使用统一的软硬件平台 在办公室作离线仿真在实验室进行原型测试在车上进行标定vMATLAB/dSPACE 被用于 ECU开发的所有阶段当今的开发流程快速控制原型与硬件在回路仿真软件在回路 控制器与控制对象的功能仿真EVM原型控制器在回路 真实的原型控制器 虚拟仿真控制对象
22、硬件在回路真实的ECU虚拟仿真控制对象快速控制原型与硬件在回路仿真功能错误编程错误编译器错误速度内存问题实时响应问题I/O 软件软件在回路仿真原型控制器在回路仿真硬件在回路仿真 ECU开发商需要的工作开发商需要的工作ECU的购买者需要的购买者需要在做实验时应用在做实验时应用结果的精度 当今的开发流程- V循环功能设计功能设计目标代码生成目标代码生成Hardware-in-the-LoopCalibration快速控制原型快速控制原型MATLAB/Simulink/Stateflow/RTW建模与仿真的平台,首先用于离线仿真把框图作为可执行的技术规范基于模型的设计流程模型被修改模型被修改, 细化
23、,实施细化,实施原型代码原型代码嵌入式代码系统仿真快速原型硬件在回路仿真嵌入式系统算法系统设计与分析数据分析, 建模与可视化行为数学模型工程问题数据 I/O代码生成实施实施测试任务任务模型模型对象与环境模型/算法模型设计与设计的方法设计与设计的方法KNOW-HOW模型模型控制器模型数据分析, 建模与可视化控制系统设计与分析测量的数据用户模型环境模型嵌入式系统文档报告生成报告生成快速控制原型硬件在回路仿真代码生成代码生成验证与优化验证与优化可执行的技术规范可执行的技术规范使用者使用者厂商厂商 客户客户仿真基于模型的控制系统设计控制对象模型测试向量测试向量测试xPC ,dSPACE MicroAu
24、tobox TargetLink Simulink, StateflowMATLAB Control Toolboxes在集成的设计环境中开发嵌入式系统嵌入式代码嵌入式代码仿真控制系统设计与分析工程问题行为模型数据分析, 建模与可视化测量数据快速原型RTW嵌入式系统硬件在回路仿真代码生成设计流程中使用的工具设计流程中使用的工具dSPACE SimulatorOSEKMATLAB / Simulink是基本环境 工程计算的标准软件 基于模型的控制器设计 用Simulink对非线性动态系统仿真 大量与定义的图块Stateflowv描述有限状态机(控制逻辑)的交互式工具v集成于 MATLAB/Sim
25、ulinkv对事件驱动系统进行仿真例子: 发动机控制 在 Simulink中进行功能设计 标准的设计描述文件 仿真的基础 快速控制原型的基础 产品代码生成的基础 硬件在回路仿真的基础 控制单元开发人员的“可执行技术规范”当今的开发流程- V循环快速控制原型快速控制原型目标代码生成目标代码生成Hardware-in-the-Loop标定标定功能设计功能设计dSPACE 原型原型实验室与车载测试的可靠方案通过自动代码生成工具可以在几分钟内把框图变成实时的实验多种规格的硬件适用于不同的计算能力与I/O要求生成 I/O代码激活编译/连接器下载应用程序实时硬件Real-Time Interface/实时
26、接口Real-Time Interface/实时接口实时接口自动生成实时接口程序:- 代码生成-加入实时操作系统-下载应用程序生成数据表用于监视数据与参数调节ControlDesk/实验控制台硬件管理硬件配置下载 实验控制开始, 停止, .虚拟仪器可视化的测量变量可视化的模型参数在线调参数据获取 参数编辑 实验管理收集实验数据 典型的开发流程为控制对象为控制对象建立理论模型建立理论模型初步建立初步建立控制规律控制规律通过离线仿真通过离线仿真测试控制系统的设计测试控制系统的设计生成模型的生成模型的实时代码实时代码配置配置 ControlDesk/实验实验控制台获取数据并监视控制台获取数据并监视与
27、改变参数与改变参数在模型中在模型中加入加入 I/O快速原型的组件系统用AutoBox 配置模块化的dSPACE 系统 (用于车载实验) 用笔记本来控制或 PCMCIA 自启动系统独立运行可选择浮点处理器的性能,或使用多处理器可扩展的 I/O板外部信号调理新的 PowerPC 750 处理器板快速控制原型 (MicroAutoBox) 用于发动机或底盘的管理 HIL 和 RCP 并行应用 HIL: 虚拟发动机和车体, 模型开发用了一个月 RCP: 燃油喷射逻辑(考虑湿壁补偿) 的设计在10天之内完成原型ECU发动机模型: 发动机速度 压力 燃油喷射传动模型车体模型曲柄脉冲传感器信号喷射脉冲虚拟发
28、动机和车辆节气阀Toyota:控制原型与硬件在回路目标代码生成目标代码生成Hardware-in-the-Loop标定标定快速控制原型快速控制原型功能设计功能设计TargetLink从MATLAB/Simulink/Stateflow生成定点代码可靠性、效率、可读性能与手工代码媲美对于不同的控制器与编译器可选择不同的优化方法自动定标 (scaling) 当今的开发流程当今的开发流程- V循环循环无缝连接TargetLink原型硬件产品ECUMATLAB / Simulink / Stateflow实时代码生成工具 Real-Time Workshop传统的方法问题问题:v无法交流v规范模糊v资
29、源冲突 很长的循环周期很长的循环周期!产品代码规范功能开发人员功能开发人员 算法知识#include if (a 0) ki = 0.4*x+z1;软件专家软件专家 实施+ 代码知识Time采用代码生成方法软件专家软件专家 实现的知识代码知识代码知识: ANSI-C 扩展的语言 汇编语言 处理器的结构 并且知道怎样根据并且知道怎样根据这些特点来优化这些特点来优化!TargetLink代码生成器代码生成器 代码知识功能开发人员功能开发人员 算法知识效率对比手工代码手工代码(从现有的从现有的ECU中得到中得到的的)TargetLink 生成的Motorola 68332定点 (整型) C代码Fcn
30、1Fcn2Fcn3Fcn4Working with TargetLink Simulink 标准模块blockset 自动替换主机主机浮点仿真浮点仿真算法设计算法设计 行为验证 定标 (自动或手动) 溢出指示 参考轨迹主机主机定点仿真定点仿真定点效果定点效果 量化误差 饱和与溢出 实现选项目标机目标机定点仿真定点仿真EVM代码验证代码验证 检测执行时间 测试堆栈大小 测试 RAM / ROM 最终验证TargetLinkblockset/* pictrl */#define dstypes.h#define G1 (Int32)0 xvoid pictrl(UInt16 r Int16 e,S
31、2,G_1,x1, UInt8 i; e = (Int16)(ref G_1 = (Int16)(a x1 = (e 4)+x1; G_2 = (Int16)(a *u = G2 + G1; C-CodeECU代码 生成TargetLink 的工作流程前端前端独立于目标机后端后端通用ANSI-C后端后端指定目标的 ANSI-C后端后端指定目标的 C &汇编代码生成内核代码生成内核- 模型分析- 关联模块优化TargetLink 代码生成的层次 模型 (= 可执行的规范) 可以携带! 很容易移植到下一代处理器上execution time通用的 ANSI-CANSI-C, 对 SH2优化后使用汇
32、编对 SH2优化系统堆栈user stack执行时间效率检查: 处理器在回路在 PC上仿真S-function评估板RS 232/* pictrl */#define dstypes.h#define G1 (Int32)0 xvoid pictrl(UInt16 r Int16 e,S2,G_1,x1, UInt8 i; e = (Int16)(ref G_1 = (Int16)(a x1 = (e 4)+x1; G_2 = (Int16)(a *u = G2 + G1; C-CodeTargetLinkFiles编译工具或集编译工具或集成环境成环境输入到C:ECUTorque_Contro
33、l_Include_Lib_Tools_Doc生成文件输出到Files遗留的代码遗留的代码文件输出工具文件输出工具目标目录目标目录Model C files and H files, make file fragment, added files_IncludeSystem H files _LibTarget code libraries_ToolsASAP2 make file, info file, file list_DocHTML 文档TargetLink模型模型项目集成Make-Tool or Compiler IDETASK controller PRIORITY = 2; RE
34、SOURCE = res1; .TargetLink 模型模型OSEK System GeneratorTargetLink OIL FilesCode Files生成TASK controller(void) GetResources(res1); controller(); .Code Files*.c*.c*.cLegacyCodeOILImplementationSectionOIL Application Sectiongenerates输入到输入到*.oilreads out在 TargetLink中集成 OSEK RTOSv任务配置任务配置- 优先级,抢占, 自动运行,等等 -
35、事件,资源,等等 v任务激活任务激活- enabled, triggered, cyclic enabled or triggered, - Activate Task, Chain Task, Wait Event + 无限循环, etc.- 外部激活v任务间通信任务间通信 - 队列消息或非队列消息 - 缓存,全局变量v仿真仿真 - 主机与目标机仿真- 在目标机原有的实时操作系统上仿真- 仿真时间与事件v 对所有的对所有的 OSEK实时操作系统进行了测试实时操作系统进行了测试TargetLink 中支持的 OSEK特点当今的开发流程- V循环目标代码生成硬件在回路仿真标定Rapid Prot
36、otyping快速控制原型功能设计什么是硬件在回路仿真?离线仿真: v整个系统都是软件模型v不需要保证实时性硬件在回路仿真: v一些部件是硬件v要保证实时v闭环可编程的信号发生器数据记录激励信号响应开环仿真: v仅仅验证激励信号与响应的关系v开环()实时硬件实时硬件实时仿真器实时仿真器ECU开发的任务实时硬件实时硬件仿真模型仿真模型I/OI/O传感器传感器执行器执行器信号调理信号调理故障仿真故障仿真负载仿真负载仿真电控单元电控单元软件控制软件控制诊断与诊断与标定标定.模型开发模型开发实时实时 I/O信号采集信号采集实验定义实验定义硬件在回路仿真的要素?实际的实际的 ECU仿真过程处理仿真过程处
37、理用户与自动测试程序界面用户与自动测试程序界面输出处理输出处理输入处理输入处理仿真器的输出仿真器的输出仿真器的输入仿真器的输入实际的硬件输出实际的硬件输出实际的硬件输入实际的硬件输入仿真模型与适当的处理器硬件仿真模型与适当的处理器硬件例题: ECU 实际的 ECU 与虚拟的发动机v进行软件测试 (功能 + 诊断)节气门点火提前角点火时间发动机速度曲轴转角发动机扭矩充气量空气质量流量Lambda发动机模型车辆模型车辆速度ECU例题: ECU 网络19.10.99几个 ECU 连网v每个实现不同的功能v来源于不同的厂商Mercedes S Class点火开关CAN B / CAN C Gatewa
38、y发动机 ECU传动车辆动力学.门安全系统空调.CAN C 500 kBdCAN B 83 kBdECU #1ECU #10ECU #1ECU # 24声音 / 视频 /通信诊断 (K-line)ECU 网络vCAN 消息的发送与接受正确吗?v如果有噪音将会怎样?v对整个系统的功能的影响会怎样? “总线仿真”v对不在回路的ECU进行 CAN消息的仿真 v把仿真生成的消息与其它的消息建立参数化的联系 用于生成CAN 消息的工具 硬件在回路仿真 虚拟车辆硬件在回路仿真的层次设计快速原型软件开发单元测试系统测试集成于发布测试标定v单元测试开发商测试新的功能ECU 原型v系统测试ECU 原型集成并对技
39、术环节进行测试车辆部件如发动机或传动系v集成/产品发布测试ECUs 产品集成于虚拟车辆网络功能测试系统是否满足所有功能测试电子系统是否可以发布并批量生产发动机模型 en-DYNA 4-8 缸 V 型发动机 发动机均值模型 (MVEM)- 共轨或单缸喷射- 4 lambda 传感器- 可变的凸轮轴与可变的进气室 可扩展的功能: 熄火诊断的扭矩波动 (OBD II)节气门点火提前角点火时间发动机速度曲轴转角发动机扭矩空燃比空气质量流量lambdaMVEMsimplevehiclemodel车辆速度TESISTESIS en-DYNA 发动机实时模型enDYNA 发动机部件库endynaDYNAwa
40、reTESISenDYNA 基于SimulinkendynaDYNAwareTESISdSPACE Simulator 实时仿真机简介System setup用于软件功能测试:实际的功能测试,例如 I/O 功能在开环或闭环环境下仿真与生成真实的传感器信号当今的开发流程- V循环目标代码生成硬件在回路仿真标定Rapid Prototyping快速控制原型功能设计基于模型的标定工具箱基于模型的标定工具箱帮助制定实验计划帮助制定实验计划模型拟合模型拟合基于模型的标定工具箱基于模型的标定工具箱标定标定 MAP与优化参数表与优化参数表交互式的图表编辑功能交互式的图表编辑功能标定工具的硬件标定工具的硬件使
41、标定工程师可以简捷地操作多种配置通过内存仿真器或NEXUS, NBD 、CCP对ECU参数测量与标定集成于 MATLAB/Simulink支持快速原型硬件的标定Simulink建立传动系模型在AVL 测试台上测试全部模型dSPACE系统用于虚拟车辆仿真采用真实的设备逐步替代模型AVL:发动机、传动系仿真与标定:发动机、传动系仿真与标定ECU的开发阶段的开发阶段实时操作系统技术实时操作系统v实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。有两种类型的实时系统:软实时系统和硬实时系统。在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。v在
42、硬实时系统中,各任务不仅要执行无误而且要做到准时。实时系统的应用涵盖广泛的领域,而多数实时系统又是嵌入式的。过程控制食品加工化工厂汽车业发动机控制防抱死系统(ABS)办公自动化传真机复印机计算机外设打印机计算机终端扫描仪调制解调器通讯类Switch Hurb路由器机器人航空航天飞机管理系统武器系统喷气发动机控制民用消费品微波炉洗碗机洗依机稳温调节器前后台系统多任务系统v多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。
43、在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。多任务系统的资源配置多任务进程调度内核v多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加ROM的用量,内核本身的数据结构增加了RAM的用量。但更主要的是,每个任务要有自己的栈空间,这一特点很消耗内存。内核本身对CPU的占用时间一般在2到5个百分点之间。任务
44、调度v调度(Scheduler)是内核的主要职责之一,是决定该轮到哪个任务运行。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。v基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。然而,究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥夺型的还是可剥夺型内核。不可剥夺型内核v要求每个任务自我放弃CPU的所有权。不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。v异步事件由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中
45、断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。不可剥夺型内核v在任务级,不可剥夺型内核允许使用不可重入函数。每个任务都可以调用非可重入性函数,而不必担心其它任务可能正在使用该函数,从而造成数据的破坏。因为每个任务要运行到完成时才释放CPU的控制权。当然该不可重入型函数本身不得有放弃CPU控制权的企图。v不可剥夺型内核的一个优点是响应中断快。v不可剥夺型内核的另一个优点是,几乎不需要使用信号量保护共享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。不可剥夺型内核运行可剥夺型内核v当系统响应时间很重要时,要使用可剥夺型内核。因此,绝大多数商业
46、上销售的实时内核都是可剥夺型内核。v最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。可剥夺型内核运行可剥夺型内核特点v使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用互斥型信号量来实现。如果调用不可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中的
47、数据有可能被破坏。可重入型函数v可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以保护。可重入型函数举例void strcpy(char *dest, char *src) while (*dest+ = *src+) ; *dest = NUL; v函数Strcpy()做字符串复制。因为参数是存在堆栈中的,故函数Strcpy()可以被多个任务调用,而不必担心各任务调用函数期间会互相破坏对方的指针。不可重
48、入型函数不可重入型函数int Temp;void swap(int *x, int *y) Temp = *x; *x = *y; *y = Temp;不可重入型函数运行不可重入型函数运行避免不可重入性v使用以下技术之一即可使Swap()函数具有可重入性:把Temp定义为局部变量调用Swap()函数之前关中断,调动后再开中断用信号量禁止该函数在使用过程中被再次调用任务调度策略v当两个或两个以上任务有同样优先级,内核允许一个任务运行事先确定的一段时间,叫做时间额度(quantum),然后切换给另一个任务。也叫做时间片调度。内核在满足以下条件时,把CPU控制权交给下一个任务就绪态的任务:当前任务已
49、无事可做当前任务在时间片还没结束时已经完成了。优先级v应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。 v应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。 优先级反转v优先级反转问题是实时系统中出现得最多的问题v为防止发生优先级反转,内核能自动变换任务的优先级,这叫做优先级继承(Priority inheritance),一些商业内核有优先级继承功能。 优先级分配v给任务定优先级需非常谨慎,因为实时系统相当复杂。许多系统中,并非所有的任务都至关重要。不重要的任务自然优先级
50、可以低一些。v软实时系统只是要求任务执行得尽量快,并不要求在某一特定时间内完成。硬实时系统中,任务不但要执行无误,还要准时完成。死锁v死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源T2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行了,发生了死锁。防止死锁v最简单的防止发生死锁的方法是让每个任务都:先得到全部需要的资源再做下一步的工作用同样的顺序去申请多个资源释放资源时使用相反的顺序v内核大多允许用户在申请信号量时定义等待超时,以此化解死锁。当等待时间超过了某一确定值,信号量还是无效状态,就会返回某种形式的出现超时