基于matlab算法输出的电控柴油机油量控制开发系统和方法

文档序号:5203153阅读:193来源:国知局
专利名称:基于matlab算法输出的电控柴油机油量控制开发系统和方法
技术领域
本发明涉及柴油机燃油供给系统的控制领域,主要是一种基于MATLAB算法输出的电控柴油机油量控制开发系统和方法。
背景技术
电控柴油机对喷射油量的控制是各种燃油喷射系统的核心技术之一,快速而有效的油量控制开发系统和方法是整个燃油喷射系统开发和配套的关键。当前,基于手写代码的电控柴油机油量控制开发系统和方法有如下缺陷
1)周期长。软件开发和硬件开发不能同步进行,软件开发需在硬件较为完善的情况下进行;
2)不可靠。对于复杂油量控制算法,不易发现手写代码的程序错误和缺陷;
3)移植难。手写油量控制算法规范性弱,不利于在不同硬件平台上移植。以往采用手写代码进行油量控制算法的开发往往耗时费力,且所开发的油量控制算法的修改和移植具有平台的局限性,不利于产品的更新换代。

发明内容
本发明的目的在于为弥补上述不足,本发明提供了一种基于MATLAB算法输出的电控柴油机油量控制开发系统和方法。本发明所述的基于MATLAB算法输出的电控柴油机油量控制开发系统,其特征在于包括
一个PC机油量管理开发平台,由MATLAB/Simulink算法开发平台和CodeWarrior编译开发环境组成;将MATLAB/Simulink油量控制算法模型进行算法输出生成油量控制算法,并和底层软件的传感器信号采集例程、驱动例程一起编译链接生成可执行的elf文件;一个BDM背景调试模式接口,用于下载elf文件到电控单元ECU的存储器中;
一个电控单元ECU,采集电控单体泵柴油机传感器信号,结合存储器中的油量控制算法,计算出该发动机工况下需要的喷射油量和喷射定时,并将喷射油量转化为该工况下的喷射脉宽,最后控制柴油机电控单体泵在给定燃油压力下将燃油在指定时刻以指定持续时间喷入汽缸,实现柴油机工作循环的燃油供给,以此进行柴油机油量控制算法验证。本发明所述的PC机油量管理开发平台采用MATLAB/Simulink算法开发平台进行油量控制算法的模块化建模和仿真,利用其算法输出功能将控制算法模型自动生成标准的C代码,用以集成到整个电控单元ECU软件中。本发明在CodeWarrior编译开发环境下根据电控单元E⑶中微控制器的不同模块和不同的控制对象要求,手写C代码封装这些控制要求成为底层软件,从而实现底层软件的模块化。本发明还提供了一种基于MATLAB算法输出的电控柴油机油量控制开发方法,其步骤如下
1)根据柴油机上的信号传感器输入处理与驱动输出需求,在CodeWarrior编译开发环境下采用标准的C代码编写对应的模块驱动例程,包括传感器信号采集例程和驱动例程,并将其封装成功能函数,形成底层软件;
2)根据柴油机的控制功能需求,在MATLAB/Simulink开发环境下建立油量控制模型,并在该环境下进行仿真分析;
3)将油量控制模型进行算法输出,自动生成标准C代码组成的油量控制算法;
4)在CodeWarrior编译开发环境下将油量控制算法和底层软件进行集成,编译生成可执行的elf文件,并用BDM背景调试接口将其下载到电控单元的存储器中。本发明的所述底层软件是根据电控单元微控制器不同的片上资源模块将相应资 源的驱动写成模块驱动例程;同时根据控制任务的需要写成基本任务例程,例程的函数的输入输出均为空,通过全局变量来实现数据传递;基于MATLAB/Simulink的油量控制模型由四部分组成,分别是发动机运行状态判断模块、状态油量控制模块、油量切换和补偿模块及油量量化模块。其中状态油量控制模块由启动控制模块、怠速控制模块和调速控制模块组成,油量量化模块由定时模块和脉宽模块组成,另有输入信号接口和输出信号接口作为模型的输入与输出。本发明所述基于MATLAB/Simulink的油量控制模型,其油量控制方法实现步骤如下
1)发动机运行状态判断,根据发动机传感器采集到的转速、油门位置和冷却水温等输入信息判断发动机的运行状态,以便根据不同的状态采用不同的油量管理方法;
2)依据状态判断,由启动控制模块、怠速控制模块和调速控制模块中某一个模块的控制策略根据转速和油门位置等输入信号计算出当前做功循环的喷油量;
3)根据发动机传感器采集到的不同冷却水温度、进气压力和温度等对喷油量进行补偿,同时对不同控制模块间作油量平稳过渡的切换控制;
4)通过查询定时模块和脉宽模块,结合当前的发动机状态信息,将油量控制模块给出的喷油量量化为基于发动机运行相位的喷射定时和喷射脉宽,从而完成电控单元主要的油量控制任务。
本发明所述基于MATLAB/Simulink的油量控制模型,其算法输出生成C代码后,集成到整个控制软件中,分为五个步骤
1)设置MATLAB环境和CodeWarrior环境;
2)建立油量控制模型;
3)算法输出;
4)在CodeWarrior Project 中导入算法;
5)建立控制任务。本发明的优点在于电控柴油机的油量控制方法采用了 MATLAB算法输出功能,其模型化的算法描述和仿真利于在开发中进行软件仿真和半实物仿真,能加快开发进程,更为重要的是对于控制对象多变的柴油机电控系统,其油量管理控制算法采用MATLAB算法输出,较传统的手写代码,能够极大提高算法改进和不同平台间软件移植的速度,节省开发成本,可以弥补传统开发方式低效率、高耗费的不足,提供一个可靠、便利、通用和模块化的电控柴油机油量控制的开发平台。


图I为基于MATLAB算法输出的油量控制系统结构示意 图2为油量控制模型示意 图3为基于MATLAB算法输出的油量控制软件工作原理示意 图4为输出算法的集成流程 图5为底层软件结构示意图。
具体实施方式

以下结合实施例并对照附图对本发明进行详细说明。如图I所示,本发明包括PC机油量管理开发平台、一个BDM背景调试模式接口、一个电控单元ECU。PC机油量管理开发平台,采用MATLAB/Simulink算法开发平台进行油量管理算法的模块化建模和仿真,然后利用算法输出功能将控制模型自动生成标准的C代码,并集成由传感器信号采集例程和底层驱动例程组成的底层软件,在CodeWarrior的C语言开发平台下进行编译链接生成可执行的elf文件,通过BDM电缆线下载到电控单元ECU的存储器中,从而完成整个软件部分的开发任务。如图2为电控柴油机油量控制模型,由四部分组成,分别是发动机运行状态判断模块、状态油量控制模块、油量切换和补偿模块及油量量化模块。其中状态油量控制模块由启动控制模块、怠速控制模块和调速控制模块组成,油量量化模块由定时模块和脉宽模块组成,另有输入信号接口和输出信号接口作为模型的输入与输出。发动机状态判断模块,其根据转速、油门和冷却水温度等传感器信号的信息判断发动机的运行状态,以便根据不同的状态采用不同的油量控制方法。状态油量控制模块,由启动控制模块、怠速控制模块、调速控制模块三个小模块组成,主要是根据状态判断来判定发动机当前所处的不同运行状态,采用不同的油量控制策略,便于进行模块化改进和移植。油量切换和补偿模块,据发动机上传感器采集到的不同冷却水温度、进气压力和温度等对喷油量进行补偿,同时对不同控制模块间作油量平稳过渡的切换控制。油量量化模块,由定时模块和脉宽模块组成,其功能是结合当前的发动机转速等状态信息将状态油量控制模块给出的油量量化为基于发动机运行相位的喷射定时和喷射脉宽,最后控制柴油机电控单体泵在给定燃油压力下将燃油在指定时刻以指定持续时间喷入汽缸,实现柴油机工作循环的燃油供给,以此进行柴油机油量控制算法验证。如图3所示,本实施例基于MATLAB算法输出的电控柴油机油量控制方法的实现过程主要由传感器信号采集例程、油量控制算法和底层驱动例程组成。传感器信号采集例程是油量控制算法与驾驶员的接口。其主要功能在于正确理解驾驶员的操纵意图并兼顾发动机当前参数,将其解析为油量控制算法能够识别的数字形式。该例程采集对象主要是驾驶员的各种操作信息和发动机参数。
油量控制算法是对发动机的不同状态和各状态转换时的喷油量和喷油定时进行控制,以满足驾驶员的操作要求。为了能取得较好的控制效果,需要获取发动机当前的参数如转速、水温、增压压力和增压温度,以及加速踏板、变速箱和车载附件状态等信息。从油量控制模块得到的是每缸每循环基本喷油量和基本喷油定时,代表了驾驶员的操作需求。底层驱动模块则是根据目标喷油量和定时控制的要求来驱动燃油喷射系统和附件执行器。其中喷射驱动必须与转角信号同步,并根据蓄电池电压进行相应的补偿。该方法的实现过程首先是传感器信号采集例程采集转速、油门位置和冷却水温度等输入信息,油量控制算法根据这些发动机状态信息判断发动机的运行状态,根据不同的状态采用不同的油量控制算法,将计算得到的喷射油量和喷射定时等喷射参数转化为电控单元微控制器能够识别的时钟或者事件,结合采集到的转角脉冲相位信号,通过底层驱动例程发出驱动控制信号,驱动电控单体泵进行燃油喷射,完成电控单元的控制任务。如图4所示为油量控制算法从MATLAB/Simulink模型到飞思卡尔的MPC500系列 控制器的移植过程。其过程由五个步骤组成,依次是设置MATLAB环境和CodeWarrior环境,建立油量控制模型,算法输出,在CodeWarrior Project中导入算法和建立控制任务。MATLAB环境需指定其算法输出的编译工具,Codeffarrior的路径及代码生成的存放路径等信息;同样,在CodeWarrior中也需设置MATLAB的调用路径,代码库文件的访问路径等信息。油量控制模结构型如图2所示,该模型可以在Simulink环境下进行多种方式的仿真,以确保其符合设计意图。算法输出时系统会自动将代码生成,并自动调用CodeWarrior环境,建立一个叫做子系统的工程(subsystem project)。在Codeffarrior工程中导入算法,即将MATLAB生成的工程中的库文件(RTWLibraries)和工程文件(ModelFiles)添加到CodeWarrior的工程中,并进行编译链接;建立控制任务,主要是 subsystem, c 文件中有两个关键的函数,Subsystem_initialize ()和 Subsystem_step () o Subsystem_initialize ()用于初始化且在控制任务开始前执行一次,Subsystem_step()用于计算每次的控制值。在控制任务中需要按照指定控制周期执行。如图5所示为电控单元E⑶整体软件结构,由三部分组成,分别是硬件平台、底层软件和上层软件。硬件平台由接口电路、驱动模块和存储器组成,接口电路实现传感器信号滤波和转化,形成标准TTL电平,驱动模块根据电控单元微控制器输出的喷射脉宽和喷射定时形成对应形状的单体泵电磁阀驱动电流,控制电控单体泵电磁阀的开关时刻和持续时间,驱动电控单体泵泵体建立喷射油压和实现向汽缸内喷射高压燃油。底层软件部分中的存储器资源管理负责对外扩存储的操作和管理,中断仲裁调度负责中断事件管理,根据电控单元微控制器不同的片上资源模块将相应资源的驱动写成模块驱动例程;同时根据控制任务的需要写成基本任务例程,例程的函数的输入输出均为空,通过全局变量来实现数据传递,供油量控制算法进行调用。上层软件主要由油量控制算法组成。
权利要求
1.一种基于MATLAB算法输出的电控柴油机油量控制开发系统,其特征在于包括 一个PC机油量管理开发平台,由MATLAB/Simulink算法开发平台和CodeWarrior编译开发环境组成;将MATLAB/Simulink油量控制算法模型进行算法输出生成油量控制算法,并和底层软件的传感器信号采集例程、驱动例程一起编译链接生成可执行的elf文件;ー个BDM背景调试模式接ロ,用于下载elf文件到电控单元ECU存储器中; 一个电控単元ECU,采集电控单体泵柴油机传感器信号,结合存储器中的油量控制算法,计算出该发动机エ况下需要的喷射油量和喷射定吋,并将喷射油量转化为该エ况下的喷射脉宽,最后控制柴油机电控单体泵在给定燃油压カ下将燃油在指定时刻以指定持续时间喷入汽缸,实现柴油机工作循环的燃油供给,以此进行柴油机油量控制算法验证。
2.根据权利要求I所述的基于MATLAB算法输出的电控柴油机油量控制开发系统,其特征在于PC机油量管理开发平台采用MATLAB/Simulink算法开发平台进行油量控制算法的模块化建模和仿真,利用其算法输出功能将控制算法模型自动生成标准的C代码,用以集成到整个电控单元ECU软件中。
3.根据权利要求I或2所述的基于MATLAB算法输出的电控柴油机油量控制开发系统,其特征在于在CodeWarrior编译开发环境下根据电控単元ECU中微控制器的不同模块和不同的控制对象要求,手写C代码封装这些控制要求成为底层软件,从而实现底层软件的模块化。
4.一种基于MATLAB算法输出的电控柴油机油量控制开发方法,其步骤如下 根据柴油机上的信号传感器输入处理与驱动输出需求,在CodeWarrior编译开发环境下采用标准的C代码编写对应的模块驱动例程,包括传感器信号采集例程和驱动例程,并将其封装成功能函数,形成底层软件; 根据柴油机的控制功能需求,在MATLAB/Simulink开发环境下建立油量控制模型,并在该环境下进行仿真分析; 将油量控制模型进行算法输出,自动生成标准C代码组成的油量控制算法; 在CodeWarriOT编译开发环境下将油量控制算法和底层软件进行集成,编译生成可执行的elf文件,并用BDM背景调试接ロ将其下载到电控单元存储器中。
5.根据权利4要求所述的基于MATLAB算法输出的电控柴油机油量控制方法,其特征在干底层软件是根据电控单元微控制器不同的片上资源模块将相应资源的驱动写成模块驱动例程;同时根据控制任务的需要写成基本任务例程,例程的函数的输入输出均为空,通过全局变量来实现数据传递;基于MATLAB/Simulink的油量控制模型由四部分组成,分别是发动机运行状态判断模块、状态油量控制模块、油量切换和补偿模块及油量量化模块; 其中状态油量控制模块由启动控制模块、怠速控制模块和调速控制模块组成,油量量化模块由定时模块和脉宽模块组成,另有输入信号接口和输出信号接ロ作为模型的输入与输出。
6.根据权利要求4或5所述的基于MATLAB算法输出的电控柴油机油量控制开发方法,其特征在于基于MATLAB/Simulink的油量控制模型,其油量控制方法实现步骤如下 发动机运行状态判断,根据发动机传感器采集到的转速、油门位置和冷却水温等输入信息判断发动机的运行状态,以便根据不同的状态采用不同的油量管理方法; 依据状态判断,由启动控制模块、怠速控制模块和调速控制模块中某一个模块的控制策略根据转速和油门位置等输入信号计算出当前做功循环的喷油量; 根据发动机传感器采集到的不同冷却水温度、进气压力和温度等对喷油量进行补偿,同时对不同控制 模块间作油量平稳过渡的切换控制; 通过查询定时模块和脉宽模块,结合当前的发动机状态信息,将油量控制模块给出的喷油量量化为基于发动机运行相位的喷射定时和喷射脉宽,从而完成电控单元主要的油量控制任务。
7.根据权利要求4或5所述的基于MATLAB算法输出的电控柴油机油量控制方法,其特征在于基于MATLAB/Simulink的油量控制模型,其算法输出生成C代码后,集成到整个控制软件中,分为五个步骤 设置MATLAB环境和CodeWarrior环境; 建立油量控制模型; 算法输出; 在 CodeWarrior Project 中导入算法; 建立控制任务。
全文摘要
本发明涉及一种基于MATLAB算法输出的电控柴油机油量控制开发系统,包括PC机油量管理开发平台,由MATLAB/Simulink算法开发平台和CodeWarrior编译开发环境组成,将整个上层油量控制算法和底层软件编译链接生成可执行的elf文件;一个BDM背景调试模式接口,用于下载elf文件到电控单元存储器;一个电控单元ECU,用于控制电控单体泵柴油机进行油量控制算法验证。本发明还提供了一种对应的方法,采用模块化思想,利用MATLAB/Simulink工具进行油量算法的建模和仿真,用算法输出功能将其转化为标准的C代码;底层软件由手写C代码组成,将上层的控制油量量化为电磁阀喷射驱动的起始时刻和持续时间,在CodeWarrior编译环境下将上述两部分代码编译生成控制器代码,在不失灵活的同时节省了开发时间。
文档编号F02D41/30GK102777277SQ20121031455
公开日2012年11月14日 申请日期2012年8月30日 优先权日2012年8月30日
发明者冯志远, 刘小勇, 夏金法, 汪伦 申请人:江西直方数控动力有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1