一种模型集成调度系统的制作方法

文档序号:6551503阅读:356来源:国知局
一种模型集成调度系统的制作方法
【专利摘要】一种模型集成调度系统,包括依次相连的基本参数输入模块、任务触发器、任务分配模块和集成模型,所述任务触发器内设置有依次连接的角度步长计算器、角度累加器和任务触发模块,所述集成模型中设置有多个任务函数模块,所述任务触发器设置有任务函数列表,任务函数列表中的任务函数名与集成模型中的任务函数模块一一对应。本发明触发的任务包括初始化任务、角度任务和时间任务且任务触发器精度可调,同传统模型集成调度系统相比,本发明的任务触发类型更全面,通用性更强,任务触发精度更高。
【专利说明】一种模型集成调度系统【技术领域】
[0001]本发明涉及一种发动机电子控制单元(ECU)的模型集成调度系统,属于发动机【技术领域】。
【背景技术】
[0002]E⑶软件的开发大都采用基于模型的设计,Simulink是其中一种最常用的建模工具,目前对模型的执行主要是基于时间的调度,即使有segment调度,也只是实现了简单的180度调用一次,没有将任务细化,存在着通用性差、任务触发精度不高、调度方式与模型实际运行机制相差较大等缺点,致使模型集成测试不够准确、也不够充分。另外,如果集成的模型发生变化,触发源也会发生变化,触发信号改动较大,费时费力。

【发明内容】

[0003]本发明的目的是提供一种通用 性强,任务触发精度高的模型集成调度系统。
[0004]本发明所述问题是以下述技术方案实现的:
一种模型集成调度系统,包括依次相连的基本参数输入模块、任务触发器、任务分配模块和集成模型,所述任务触发器内设置有依次连接的角度步长计算器、角度累加器和任务触发模块,所述集成模型中设置有多个任务函数模块,所述任务触发器设置有任务函数列表,任务函数列表中的任务函数名与集成模型中的任务函数模块一一对应。
[0005]上述模型集成调度系统,所述模型集成调度系统按如下方式运作:
a.发动机运行时,基本参数输入模块向任务触发器输出以下信号:发动机转速信号RPM、0号缸压缩上止点对应曲轴转角TDC0_Deg、缺齿后第二个齿的下降沿对应曲轴转角S0_FIRST_Deg、缺齿后第二十二个齿的下降沿对应曲轴转角Sl_FIRST_Deg和系统仿真步长dT ;所述TDC0_Deg、S0_FIRST_Deg、和Sl_FIRST_Deg这三个参数是系统定义的参考点,分别对应108度、O度、120度,然后TDC、S0、S1分别每隔180度、即每个冲程出现一次,从而触发相应任务;
b.角度步长计算器接收到由基本参数输入模块送来的发动机转速RPM和系统仿真步长dT后,利用下式计算出角度步长trgSSDeg:
trgSSDeg=RPM*6*dT,
然后将计算结果发送到角度累加器;
C.角度累加器将接收到的角度步长进行累加(初始值默认为O度),以模拟曲轴转角,同时将累加值与发动机曲轴一个工作循环所转过的角度进行比较,如果累加值超过曲轴一个工作循环所转过的角度,则将角度累加器重置为O度,重新累加,周而复始,角度累加器输出的曲轴转角值送入任务触发模块;
d.任务触发器接收角度累加器输出的曲轴转角信号并根据该信号和其内部步长计数器的计数值输出相应的任务触发信号,具体触发的任务包括初始化任务、角度任务和时间任务; e.任务分配模块根据任务触发器输出的任务触发信号和任务函数列表中的任务函数名调用集成模型中相应的任务函数模块;
利用EasyCode编译链接工具,将模型生成代码、代码自动编译链接、生成A2L文件,将Simulink模型、数据字典、调度信息、底层驱动程序集成生成可执行文件,利用P&E下载器下载到ECU开发板中。
[0006]上述模型集成调度系统,所述任务触发器触发角度任务的条件是:若上一个执行周期曲轴转角到当前曲轴转角覆盖目标角度,则触发相应的角度任务。
[0007]上述模型集成调度系统,所述角度任务包括SO任务和SI任务,对于四缸⑶I发动机,SO任务对应的触发角度为O度、180度、360度和540度,SI任务对应的触发角度为120度、300度、480度和660度。
[0008]上述模型集成调度系统,所述任务触发器为每个时间任务分配一个步长计数器,计数器对系统仿真步长进行累加,当计数器的输出信号达到设定值时,任务触发器输出该时间任务的触发信号,并将计数器重置为0,以便进行该任务的下一次触发。
[0009]上述模型集成调度系统,对于四缸⑶I发动机,时间任务对应的时间为1ms、10ms、20ms、50ms、IOOms 和 200ms。
[0010]上述模型集成调度系统,所述任务函数列表中的任务函数名按优先级列于相应任务的.txt文件中,并通过.m文件与集成模型中的对应任务函数模块的触发信号相关联。
[0011]上述模型集成调度系统,所述系统仿真步长设为小于等于0.0001s;数值越小,系统仿真精度越高。
[0012]本发明触发的任务包括初始化任务、角度任务和时间任务且任务触发器精度可调,同传统模型集成调度系统相比,本发明的任务触发类型更全面,通用性更强,任务触发精度更高。本系统通过.m文件将.txt文件中任务函数列表与模型及触发信号关联,模型修改效率更高。
【专利附图】

【附图说明】
[0013]下面结合附图对本发明作进一步详述。
[0014]图1为带调度的模型集成方案;
图2为角度步长计算流程图;
图3为角度累加流程图;
图4为任务触发器设计流程图;
图5为初始化任务触发流程图;
图6为TDC信号触发流程图;
图7为角度任务S0、SI触发流程图;
图8为时间任务触发流程图;
图9为任务列表;
图10为任务分配示意图;
图11为模型集成示意图。
[0015]文中各符号清单为:RPM、发动机转速信号,TDC0_Deg、0号缸压缩上止点对应曲轴转角,S0_FIRST_Deg、缺齿后第二个齿的下降沿对应曲轴转角,Sl_FIRST_Deg、缺齿后第二十二个齿的下降沿对应曲轴转角,dT、系统仿真步长。
【具体实施方式】
[0016]本发明将发动机转速转化为角度步长(精度由系统仿真时间决定),通过角度累加来模拟曲轴转角(O到720度),通过与目标角度比较判断是否达到相应角度,从而触发相应角度任务(S0或SI),时间任务通过计数器来实现,任务触发器用来实现集成模型的调度。主要由基本参数输入模块、任务触发器(角度步长计算器、角度累加器、任务触发模块)、任务函数列表、任务分配模块和集成模型组成,图1中,虚线框表示ECU软件开发的其他环节,不在本发明介绍范围内,通过充分测试的模型会与基础软件集成,最终代码要下载到ECU中。
[0017]该调度系统是通过Simulink建模实现,将发动机相关参数(发动机转速,即每分钟曲轴转过的角度,可以反映不同时刻,发动机处于哪个工作行程,是进气行程、压缩行程、做功行程,还是排气行程,从而应该控制哪些任务执行,如喷油或点火)和系统参数(角度位置定义和仿真步长)作为系统输入,从发动机转速中提取发动机位置信息,从而触发相应任务。
[0018]基本参数输入模块 输出的基本输入参数包含:
RPM (发动机转速):发动机转速可以是定值,也可以是实时变化的量;
TDC0_Deg (O号缸压缩上止点对应曲轴转角):一般定义为108度(以曲轴缺齿后第二个齿的下降沿视为O点),I号缸、2号缸、3号缸对应压缩上止点分别为:288度、468度、648度;
S0_FIRST_Deg (缺齿后第二个齿的下降沿对应曲轴转角):一般定义为O度,相邻两个SO之间间隔角度为180度;
Sl_FIRST_Deg (缺齿后第二十二个齿的下降沿对应曲轴转角):一般定义为120度,相邻两个SI之间间隔角度为180度,SO与SI之间的关系是:S0比SI早120度,或比SI落后60度;SO与SI用于不同功能的角度同步控制,例如,喷油控制使用SO同步,点火控制使用SI同步,与发动机四个冲程工作原理有关系。
[0019]dT (系统仿真步长):该参数决定着整个系统的精度,可以任意调节。
[0020]任务触发器
此部分是方案的核心,用于模拟底层操作系统任务触发调度机制,包含角度步长计算器、角度累加器和任务触发模块:
1.角度步长计算器
将发动机转速(ι/min)转化为每秒转过的角度,再乘以系统仿真步长,便得到角度步长,在调度系统模型运行时,系统仿真步长dT —般要求不能大于0.001秒,例如,dT=0.0001秒,如果发动机转速为每分钟3000转,利用以下公式可计算出角度步长为1.8度,也就是每个调度系统模型运行周期(0.0001秒),模拟的曲轴转角转过1.8度。
[0021]计算公式为: trgSSDeg=RPM*360*dT/60=RPM*6*dT
即:角度步长=发动机转速*6*系统仿真步长 当发动机转速实时变化时,角度步长也会随着变化。
[0022]2.角度累加器
对于四缸GDI发动机来说,一个工作循环(进气、压缩、做功、排气),曲轴转两圈,即720度。此部分通过角度累加器实现,初始值默认为O度,将角度步长(随发动机转速的变化而变化)累加,累加值与720度比较,如果超过720度,则将累加器重置为O度,重新累加,周而复始,这样就可以模拟实际曲轴转角。利用Simulink来搭建角度累加模块。
[0023]角度累加器设计流程图如图3所示。
[0024]3.任务触发模块 具体触发的任务包括:
初始化任务:模拟ECU上电初始化,模型运行第一步触发该任务,之后不再执行;角度任务触发:包括SO和SI任务,SO对应的触发角度为O度、180度、360度和540度,SI任务对应的触发角度为120度、300度、480度和660度,任务触发模块是通过判断上一个执行周期曲轴转角到当前曲轴转角是否覆盖目标角度来决定是否触发相应的角度任务。
[0025]角度任务主要针对的是对发动机同步要求较高的任务,例如喷油必须在发动机工作的压缩行程进行,由于发动机转速时刻在变化,因此,两个缸的压缩行程之间的时间间隔是变化的,无法用时间任务来实现,因此出现了角度任务,以曲轴转角作为参考,在曲轴转到一定角度时,对应不同的工作行程,通过曲轴转角实现角度任务同步,实现压缩行程精确喷油。
[0026]时间任务触发:主要包含1ms、10ms、20ms、50ms、IOOms和200ms任务,如果需要,还可以添加其他任务,时间任务是通过计数器来实现的,每个时间任务对应一个计数器,计数器对系统仿真步长进行累加,当达到相应时间时,触发该时间任务,并将计数器重置为0,以便该任务的下一次触发。
[0027]时间任务主要针对于那些对同步无要求而对时间周期要求较高的任务,如一些传感器的信号采集,节气门的控制等。
[0028]任务触发器设计流程图如图4所示,通过Simulink中的Stateflow来实现。
[0029]任务触发器具体实现如下:
初始化任务触发
在Stateflow中定义标志位B_init初始值为布尔量I,进入Stateflow流程图后首先会判断B_init是否为I,如果为真,B_init会被赋值为O,同时初始化任务事件被触发一次,之后不再触发。
[0030]设计流程图如图5所示。
[0031]TDC信号触发
针对于四缸机,每个缸的压缩上止点触发一个脉冲信号,此信号可用于观察TDC位置,也可用于任务触发。
[0032]通过比较上一执行周期曲轴转角到当前曲轴转角是否覆盖目标角度(TDC)来判断当前曲轴转角是否到达TDC,对于四缸机,TDC之间相隔180度。
[0033]设计流程图如图6所示。
[0034]角度任务S0、SI触发
通过比较上一执行周期曲轴转角到当前曲轴转角是否覆盖目标角度(S0或SI)来判断当前曲轴转角是否到达TDC,对于四缸机,相邻SO之间相隔180度,相邻SI之间也是相隔180度,SO默认从O度开始(可以任意设置),SI从120度开始,这样相邻SO和SI之间,SO超前SI角度为120度,或者SO落后SI角度为60度。每个工作循环,曲轴转两圈,四个缸按照1、3、4、2顺序分别喷油和点火,SO和SI任务分别会被触发4次来实现喷油和点火控制。
[0035]设计流程图如图7所示。
[0036]时间任务触发
时间任务包含1ms、10ms、20ms、50ms、100ms、200ms任务,如果需要还可以添加。通过设置相应计数器,来控制各个任务的触发,设计流程图如图8所示,例如,系统仿真步长设为
0.0001s,即0.1ms,则系统仿真运行10次,Ims任务触发I次,运行100次,IOms任务触发一次,其他时间任务以此类推。
[0037]任务函数列表
根据发动机控制需求,将不同任务函数名分别按照先后顺序(优先级)列于相应任务的.txt文件中。如图9所示。这些文件包含了整个控制系统的任务调度信息。
[0038]4、任务分配模块
txt文件(txt是文本文件,里面列的是任务函数名,体现的是整个系统的调度信息,.m文件是MATLAB中的脚本文件,用于实现文本文件与模型文件之间的关联,在MATLAB环境下运行M脚本文件,会将文本文件中的调度信息导入到模型中,自动生成与文本文件中列的函数顺序对应的触发信号,用于集成模型的调度。)中的任务函数列表与集成模型中的任务函数模块是一一对应的,按照任务类型和优先级进行了分类,放在不同的任务.txt文件中,通过.m文件可以将.txt文件中的函数与模型中对应的任务函数模块触发信号相关联,当集成模型中的任务函数模块发生变化时,通过修改.txt文件中的任务函数列表,运行.m文件,模型中的任务触发信号会自动改变,与需要集成的模型自动对应。
[0039]通过MATLAB编写.m脚本文件,可以将.txt文件中的任务函数名导入到Simulink中,任务触发器输出的各类任务触发信号会按照任务函数数量及顺序分别分割为多个触发
信号,--对应各个任务函数,通过Goto和From模块传递触发信号来调用相应任务函数模块。
[0040]goto模块和from模块是Simulink中的基本信号传递模块,两者一块使用,goto模块可以将其输入连接的信号传递给from模块输出连接的信号,goto和from模块允许信号之间无实线连接而实现信号传递,一个goto可以对应多个from模块。
[0041]5、集成模型
集成模型中的 子模块是按照任务类型区分的,每个任务子模块与.txt文件中的任务
函数列表--对应,也就是和任务触发信号是--对应的,每个任务子模块的触发信号从
任务触发信号中选取(通过.txt和.m文件已经在任务触发器中自动生成)。模型的调度机制模拟的是底层操作系统任务调度机制,集成模型加上调度后,运行机制与底层实际代码运行机制更接近,这样模型的测试会更准确,更充分。另外,对集成的每个任务子模块代码生成项进行了设置,生成的代码,会按照任务类型区分开,同一种任务类型的函数会生成到同一个文件中,便于后期的代码集成与测试。
[0042]集成模块触发信号通过Goto和From模块传递,从总线模块中选择对应的任务函数。
[0043]模块参数设置中的代码生成设置中可以设置模块生成代码对应的函数名,一般与模块名一致,还可以设置生成代码文件名,当多个函数设置的代码生成文件名一样时,这些函数会按照执行顺序将代码生成到同一个文件中,这也是我们所需的,将同类任务生成到同一个文件中,不同任务生成到不同文件中,按照任务类型区分,便于后期代码集成。
【权利要求】
1.一种模型集成调度系统,其特征是,包括依次相连的基本参数输入模块、任务触发器、任务分配模块和集成模型,所述任务触发器内设置有依次连接的角度步长计算器、角度累加器和任务触发模块,所述集成模型中设置有多个任务函数模块,所述任务触发器设置有任务函数列表,任务函数列表中的任务函数名与集成模型中的任务函数模块一一对应。
2.根据权利要求1所述的模型集成调度系统,其特征是,所述模型集成调度系统按如下方式运作: a.发动机运行时,基本参数输入模块向任务触发器输出以下信号:发动机转速信号(RPM)、0号缸压缩上止点对应曲轴转角TDCO_Deg、缺齿后第二个齿的下降沿对应曲轴转角SO_FIRST_Deg、缺齿后第二十二个齿的下降沿对应曲轴转角Sl_FIRST_Deg和系统仿真步长dT ;所述TDCO_Deg、SO_FIRST_Deg、和Sl_FIRST_Deg这三个参数是系统定义的参考点,分别对应108度、O度、120度,然后TDC、SO、SI分别每隔180度、即每个冲程出现一次,从而触发相应任务; b.角度步长计算器接收到由基本参数输入模块送来的发动机转速RPM和系统仿真步长dT后,利用下式计算出角度步长trgSSDeg:
trgSSDeg=RPM*6*dT, 然后将计算结果发送到角度累加器; C.角度累加器将接收到的角度步长进行累加,初始值默认为O度,以模拟曲轴转角,同时将累加值与发动机曲轴一个工作循环所转过的角度进行比较,如果累加值超过曲轴一个工作循环所转过的角度,则将角度累加器重置为O度,重新累加,周而复始,角度累加器输出的曲轴转角值送 入任务触发模块; d.任务触发器接收角度累加器输出的曲轴转角信号并根据该信号和其内部步长计数器的计数值输出相应的任务触发信号,具体触发的任务包括初始化任务、角度任务和时间任务; e.任务分配模块根据任务触发器输出的任务触发信号和任务函数列表中的任务函数名调用集成模型中相应的任务函数模块; 利用EasyCode编译链接工具,将模型生成代码、代码自动编译链接、生成A2L文件,将Simulink模型、数据字典、调度信息、底层驱动程序集成生成可执行文件,利用P&E下载器下载到ECU开发板中。
3.根据权利要求2所述的模型集成调度系统,其特征是,所述任务触发器触发角度任务的条件是:若上一个执行周期曲轴转角到当前曲轴转角覆盖目标角度,则触发相应的角度任务。
4.根据权利要求3所述的模型集成调度系统,其特征是,所述角度任务包括SO任务和SI任务,对于四缸⑶I发动机,SO任务对应的触发角度为O度、180度、360度和540度,SI任务对应的触发角度为120度、300度、480度和660度。
5.根据权利要求4所述的模型集成调度系统,其特征是,所述任务触发器为每个时间任务分配一个步长计数器,计数器对系统仿真步长进行累加,当计数器的输出信号达到设定值时,任务触发器输出该时间任务的触发信号,并将计数器重置为0,以便进行该任务的下一次触发。
6.根据权利要求5所述的模型集成调度系统,其特征是,对于四缸GDI发动机,时间任务对应的时间为 1ms、10ms、20ms、50ms、IOOms 和 200ms。
7.根据权利要求6所述的模型集成调度系统,其特征是,所述任务函数列表中的任务函数名按优先级列于相应任务的.txt文件中,并通过.m文件与集成模型中的对应任务函数模块的触发信号相关联。
8.根据权利要求7所述的模型集成调度系统,其特征是,所述系统仿真步长设为小于等于0.0OOls ;数值越小, 系统仿真精度越高。
【文档编号】G06Q50/28GK104021464SQ201410304767
【公开日】2014年9月3日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】刘少飞, 郭子江, 陈杰, 王魏 申请人:长城汽车股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1