一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于集成配置文件的模型软件自动集成和动静态校验方法与流程

2021-10-29 22:52:00 来源:中国专利 TAG:集成 校验 配置文件 静态 模型


1.本发明涉及一种基于集成配置文件的模型软件自动集成和动静态校验方法。


背景技术:

2.当前控制器应用功能开发多数采用模型化开发方式,需要对sumilink/targetlink等模型进行集成后进行桌面级mil/sil动态仿真测试。而目前只能对实现对源代码进行自动集成,但是对源代码进行集成不能进行态mil/sil仿真测试及问题分析。若采用手动集成方式进行模型软件集成,不仅集成效率低,而且集成质量还无法保证。


技术实现要素:

3.本发明的目的是提供一种基于集成配置文件的模型软件自动集成和动静态校验方法,以解决目前不能针对模型软件自动集成的问题。
4.为解决上述技术问题,本发明提供一种基于集成配置文件的模型软件自动集成和动静态校验方法,包括以下步骤
5.s1:根据集成配置文件创建集成模型文件,并根据集成模型文件的配置项进行配置;
6.s2:扫描所述集成配置文件的子函数模型文件,并根据软件架构将所述子函数模型文件添加到集成模型文件中;
7.s3:根据所述子函数模型文件的输入接口创建信号来源,根据子函数模型文件的输出接口创建信号目标;
8.s4:在模型软件自动集成过程中对集成模型进行静态校验。
9.进一步地,该方法还包括:
10.s5:在自动集成完成后,对集成模型进行动态校验。
11.进一步地,所述步骤s2具体包括:
12.s21:提取集成配置文件的所有子函数模型文件名称,在集成配置文件同路径下搜索是否存在所有子函数模型文件,若是,则执行步骤s22,否则提示具体不存在的子函数,并结束;
13.s22:通过引用模型法将集成配置文件中的所有应用功能子函数模型添加到集成模型文件中,并将引用模型的名称设置为对应应用功能子函数名称;
14.s23:通过创建原子子系统法在集成模型文件中创建与集成配置文件中的所有任务子函数对应的任务子函数,并命名为对应任务子函数名称;
15.s24:将添加到集成模型文件中的任务子函数剪切到集成模型文件中对应的功能子函数中;
16.s25:定义集成模型文件中子函数的布局。
17.进一步地,所述根据所述子函数模型文件的输入接口创建信号来源所采用的方法具体包括:
18.s311:获取集成模型文件中每层中的每个功能子函数的输入接口;
19.s312:逐一判断所述功能子函数的输入接口变量名称是否包含在所述集成配置文件中相应子函数输入接口变量列表中,若否,则提示具体子函数具体输入接口变量名称在集成配置文件中未定义,然后跳转到步骤s315;否则执行步骤s313;
20.s313:判断输入接口变量的来源是否为集成模型以外,若是,则通过add_block函数在该输入接口前添加inport模块,然后将该模块名称设置为该输入接口变量名称;否则执行步骤s314;
21.s314:判断每个输入接口变量的来源子函数是否比该子函数先执行,若是,则执行步骤s315,否则执行s316;
22.s315:通过add_block函数在该接口前添加from模块,并将模块属性tag设置为该输入接口变量名称,然后通过add_line将该模块与该输入接口连接起来,;
23.s316:通过add_block函数在该接口前添加delay模块,将该模与该输入接口连接起来;再添加from模块,将模块属性tag设置为该输入接口变量名称,将与delay模块连接起来。
24.进一步地,所述根据子函数模型文件的输出接口创建信号目标具体包括:
25.s321:获取集成模型文件每层中的每个功能子函数的输出接口;
26.s322:逐一判断所述功能子函数的输出接口变量名称是否包含在所述集成配置文件中相应子函数输出接口变量列表中,若否,则提示具体子函数具体输出接口变量名称在集成配置文件中未定义,然后跳转到步骤s325;否则执行步骤s323;
27.s323:判断输出接口变量的目标是否为集成模型以外,若是,则通过add_block函数在该接口后添加outport模块,并将该模块名称设置为该输出接口变量名称,然后跳转至步骤s325;否则执行步骤s324;
28.s324:判断每个输出接口变量的目标是否仅为集成模型以内,若是,则执行步骤s325,否则执行s326;
29.s325:通过add_block函数在该接口后添加goto模块,并将模块属性tag设置为该输出接口变量名称,并通过add_line将该模块与该输出接口连接起来;
30.s326:通过add_block函数在该接口后添加goto模块和outport模块,将该两个模与该输出接口连接起来。
31.进一步地,所述步骤s4具体包括:
32.s41:判断集成配置文件每层中是否存在能够与goto模块或from模块配对的模块,若否,则提示具体子函数的输入from模块或输出goto模块配对失败,然后执行步骤s42;否则直接执行步骤s42;
33.s42:获取集成模型文件中每个子函数的输入接口个数和输出接口个数的最大值,根据所述最大值设置子函数的y向高度;
34.s43:通过get_param和set_param函数设置模块的position属性,使每个子函数的输入输出两端模块与子函数对齐;
35.s44:保存集成模型文件;
36.s45:逐一对集成配置文件中集成模型输入输出接口列表中的变量是否包含在integratedmodel中进行判断,如果否,则提示具体变量名称。
37.进一步地,所述步骤s5具体包括:
38.s51:创建集成模型测试文件,向集成模型测试文件中添加model模块,并设置该model模块的引用模型为所述集成模型文件;
39.s52:获取集成模型文件模型的输入接口变量名称,对集成模型的输入接口的信号来源进行校验;
40.s53:获取集成模型文件模型的输出接口变量名称,对集成模型的输出接口的信号目标进行校验。
41.进一步地,所述步骤s52具体包括:
42.s521:获取集成模型文件模型的输入接口变量名称;判断所有输入接口变量名称是否包含在集成配置文件的集成模型输入接口变量列表中,若否,则提示具体输入接口变量名称在集成配置文件中未定义;否则,执行s522;
43.s522:判断输入接口变量是否为数组,若否,则通过add_block函数在该接口前添加constant和convert模块,将这两个模连接起来后再连接到输入接口,根据集成配置文件对constant的值和convert的输出数据类型进行设置;若是,通过add_block函数在该接口前添加mux和convert模块,根据集成配置文件中描述的该输入接口变量数组维数添加相应个数的constant模块,并对constant模块的值、convert模块的输出数据类型和mux模块的输入个数进行设置,将constant模块与mux模块连接,mux与convert模块连接,convert模块连接到该输入接口。
44.进一步地,所述步骤s53具体包括:
45.s531:获取集成模型文件模型的输出接口变量名称;
46.s532:逐一判断输出接口变量名称是否包含在集成配置文件的集成模型输出接口变量列表中,若否,则提示具体输出接口变量名称在集成配置文件中未定义;否则根据集成配置文件设置集成模型测试文件的仿真配置。
47.进一步地,该方法还包括:
48.s6:据集成模型文件模型的输出接口设置集成模型测试文件的仿真配置;然后判断能否通过sim函数运行集成模型测试文件,如果否,则提示用户动态校验失败,否则提示用户动态校验通过;
49.s7:保存所述集成模型测试文件。
50.本发明的有益效果为:通过根据集成配置文件创建集成模型文件并设置模型软件配置,然后根据软件架构将子函数添加到集成模型文件中,再根据子函数模型文件输入/输出接口创建信号来源/信号目标能够实现模型软件的自动集成,可提高软件开发效率;通过集成过程中进行校验,可提高软件开发的质量并确保集成配置文件文档与模型软件的一致性程度。
附图说明
51.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,在这些附图中使用相同的参考标号来表示相同或相似的部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
52.图1为本发明一个实施例的方法流程图。
53.图2为本发明一个实施例的模型集成与静态校验步骤流程图;
54.图3为本发明一个实施例的集成模型动态校验步骤流程图。
具体实施方式
55.如图1所示的基于集成配置文件的模型软件自动集成和动静态校验方法,包括以下步骤:
56.s1:根据集成配置文件创建集成模型文件,并根据集成模型文件的配置项进行配置;
57.s2:扫描所述集成配置文件的子函数模型文件,并根据软件架构将所述子函数模型文件添加到集成模型文件中;
58.s3:根据所述子函数模型文件的输入接口创建信号来源,根据子函数模型文件的输出接口创建信号目标;
59.s4:在模型软件自动集成过程中对集成模型进行静态校验;
60.s5:在自动集成完成后,对集成模型进行动态校验;
61.s6:据集成模型文件模型的输出接口设置集成模型测试文件的仿真配置;然后判断能否通过sim函数运行集成模型测试文件,如果否,则提示用户动态校验失败,否则提示用户动态校验通过;
62.s7:保存所述集成模型测试文件。
63.如图2所示为本发明一个实施例的模型集成与静态校验步骤详细流程图;
64.图3为本发明一个实施例的集成模型动态校验步骤流程图。下面结合说明书附图分别对各个步骤进行详细描述:
65.所述步骤s1具体包括:
66.s11:读取集成配置文件,并记录集成配置文件所在路径;其中集成配置文件中包含模型软件配置、模型软件的分层设计、每层中子函数模型的执行顺序、每个子函数模型的输入输出接口变量列表、集成模型输入输出接口变量列表等;
67.s12:获取集成配置文件的集成模型文件名称,采用matlab中函数new_system创建文件名称为integratedmodel的sumulink模型文件;
68.s13:获取集成配置文件中的模型软件配置信息,并逐一对集成模型(integratedmodel)文件的配置项进行配置;
69.所述步骤s2具体包括:
70.s21:提取集成配置文件的所有子函数模型文件名称,在集成配置文件同路径下搜索是否存在所有子函数模型文件,若是,则执行步骤s22,否则提示具体不存在的子函数,并结束;
71.s22:通过引用模型法将集成配置文件中的所有应用功能子函数模型添加到集成模型文件中,并将引用模型的名称设置为对应应用功能子函数名称;
72.s23:通过创建原子子系统法在集成模型文件中创建与集成配置文件中的所有任务子函数对应的任务子函数,并命名为对应任务子函数名称;
73.s24:将添加到集成模型文件中的任务子函数剪切到集成模型文件中对应的功能子函数中;
74.s25:定义集成模型文件中子函数的布局。
75.所述步骤s3具体包括:
76.s311:获取集成模型文件中每层中的每个功能子函数的输入接口;
77.s312:逐一判断所述功能子函数的输入接口变量名称是否包含在所述集成配置文件中相应子函数输入接口变量列表中,若否,则提示具体子函数具体输入接口变量名称在集成配置文件中未定义,然后跳转到步骤s315;否则执行步骤s313;
78.s313:判断输入接口变量的来源是否为集成模型以外,若是,则通过add_block函数在该输入接口前添加inport模块,然后将该模块名称设置为该输入接口变量名称;否则执行步骤s314;
79.s314:判断每个输入接口变量的来源子函数是否比该子函数先执行,若是,则执行步骤s315,否则执行s316;
80.s315:通过add_block函数在该接口前添加from模块,并将模块属性tag设置为该输入接口变量名称,然后通过add_line将该模块与该输入接口连接起来,;
81.s316:通过add_block函数在该接口前添加delay模块,将该模与该输入接口连接起来;再添加from模块,将模块属性tag设置为该输入接口变量名称,将与delay模块连接起来。
82.进一步地,所述根据子函数模型文件的输出接口创建信号目标具体包括:
83.s321:获取集成模型文件每层中的每个功能子函数的输出接口;
84.s322:逐一判断所述功能子函数的输出接口变量名称是否包含在所述集成配置文件中相应子函数输出接口变量列表中,若否,则提示具体子函数具体输出接口变量名称在集成配置文件中未定义,然后跳转到步骤s325;否则执行步骤s323;
85.s323:判断输出接口变量的目标是否为集成模型以外,若是,则通过add_block函数在该接口后添加outport模块,并将该模块名称设置为该输出接口变量名称,然后跳转至步骤s325;否则执行步骤s324;
86.s324:判断每个输出接口变量的目标是否仅为集成模型以内,若是,则执行步骤s325,否则执行s326;
87.s325:通过add_block函数在该接口后添加goto模块,并将模块属性tag设置为该输出接口变量名称,并通过add_line将该模块与该输出接口连接起来;
88.s326:通过add_block函数在该接口后添加goto模块和outport模块,将该两个模与该输出接口连接起来。
89.所述步骤s4具体包括:
90.s41:判断集成配置文件每层中是否存在能够与goto模块或from模块配对的模块,若否,则提示具体子函数的输入from模块或输出goto模块配对失败,然后执行步骤s42;否则直接执行步骤s42;
91.s42:获取集成模型文件中每个子函数的输入接口个数和输出接口个数的最大值,根据所述最大值设置子函数的y向高度;
92.s43:通过get_param和set_param函数设置模块的position属性,使每个子函数的输入输出两端模块与子函数对齐;
93.s44:保存集成模型文件;
94.s45:逐一对集成配置文件中集成模型输入输出接口列表中的变量是否包含在integratedmodel中进行判断,如果否,则提示具体变量名称。
95.所述步骤s5具体包括:
96.s51:创建集成模型测试文件,向集成模型测试文件中添加model模块,并设置该model模块的引用模型为所述集成模型文件;
97.s52:获取集成模型文件模型的输入接口变量名称,对集成模型的输入接口的信号来源进行校验;所述步骤s52具体包括:
98.s521:获取集成模型文件模型的输入接口变量名称;判断所有输入接口变量名称是否包含在集成配置文件的集成模型输入接口变量列表中,若否,则提示具体输入接口变量名称在集成配置文件中未定义;否则,执行s522;
99.s522:判断输入接口变量是否为数组,若否,则通过add_block函数在该接口前添加constant和convert模块,将这两个模连接起来后再连接到输入接口,根据集成配置文件对constant的值和convert的输出数据类型进行设置;若是,通过add_block函数在该接口前添加mux和convert模块,根据集成配置文件中描述的该输入接口变量数组维数添加相应个数的constant模块,并对constant模块的值、convert模块的输出数据类型和mux模块的输入个数进行设置,将constant模块与mux模块连接,mux与convert模块连接,convert模块连接到该输入接口;
100.s53:获取集成模型文件模型的输出接口变量名称,对集成模型的输出接口的信号目标进行校验;所述步骤s53具体包括:
101.s531:获取集成模型文件模型的输出接口变量名称;
102.s532:逐一判断输出接口变量名称是否包含在集成配置文件的集成模型输出接口变量列表中,若否,则提示具体输出接口变量名称在集成配置文件中未定义;否则根据集成配置文件设置集成模型测试文件的仿真配置。
103.最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜