首页 / 模型的控制方法、装置和模型的控制系统

模型的控制方法、装置和模型的控制系统无效专利 发明

技术领域

[0001] 本申请涉及模型开发技术领域,具体而言,涉及一种模型的控制方法、装置、计算机可读存储介质和模型的控制系统。

相关背景技术

[0002] 目前的软件开发方式为团队共同开发,由于项目周期较长,开发过程中会将最新开发的模型上传至服务器,而在开发过程中不同的团队成员负责部分功能开发工作,模型数量庞大,在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间。

具体实施方式

[0024] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0025] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0026] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027] 应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
[0028] 当前电气设备的电子化程度越来越高,功能受软件影响的比重逐步提高,目前电气设备进入了软件定义功能的时代。目前的软件开发方式主要分为手工编写C代码和基于模型的设计(Model‑Based Design,简称MBD)的开发方式。
[0029] 软件开发是一个持续的过程,在一个完整的项目周期中,因开发需求变更、功能优化、Bug修复及特定测试需求等,需要持续不断的开发并将最新开发的模型文件上传至服务器,之后由集成工程师编译集成后,进行测试。
[0030] 目前的软件开发方式为团队共同开发,团队成员均负责部分功能开发工作,模型文件数量庞大,有时会存在模型文件更改后未正确上传,但存在人为主观认为已将最新模型文件上传至服务器的风险,这样会造成软件缺陷,在排查问题时会花费较长的时间。
[0031] 正如背景技术中所说的,现有技术中在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种模型的控制方法、装置、计算机可读存储介质和模型的控制系统。
[0032] 根据本申请的实施例,提供了一种模型的控制方法。
[0033] 图1是根据本申请实施例的模型的控制方法的流程图。如图1所示,该方法包括以下步骤:
[0034] 步骤S101,构建模型配置模块,上述模型配置模块用于存储模型的保存时间;
[0035] 具体地,构建的模型配置模块如图2所示,可以构建两个模型配置模块(block),模型配置模块的数量不作限定,可以根据实际开发情况自行设置,构建的模型配置模块可以存放在Simulink库文件中,以方便开发团队成员使用,其中,MMT_y用于记录年份,MMT_mdHMS用于记录月份、日、小时、分钟、秒数。
[0036] 一种实施方式中,模型配置模块的数量并不限于图2中的两个模型配置模块,还可以是其他数量的模型配置模块,例如三个、四个、五个、六个、七个等等,第一个模型配置模块可以用于记录年份,第二个模型配置模块可以用于记录月份,第三个模型配置模块可以用于记录日,第四个模型配置模块可以用于记录小时,第五个模型配置模块可以用于记录分钟,第六个模型配置模块可以用于记录秒数。
[0037] 又一种实施方式中,还可以构建两个模型配置模块,第一个模型配置模块可以用于记录年‑月‑日,第二个模型配置模块可以用于记录小时‑分钟‑秒数,当然,并不限于以上的情况,本领域技术人员可以根据实际开发情况自行设置每个模型配置模块中记录的保存时间。
[0038] 对于模块的开发过程,实际上模型保存时是可以获取到系统的当前时间的,可以将这个系统的当前时间作为模型的保存时间,这样可以确定模型保存时的系统的当前时间,由于系统的时间较为准确,都是标准且统一的,因此存储的模型的保存时间较为准确,并且为了更加高效地构建模型配置模块,以保证模型配置模块可以更为高效地存储模型的保存时间,本申请的一种实施例中,构建模型配置模块,包括:获取上述模型保存时的当前时间,其中,上述当前时间的格式为数字格式或者字符串格式;根据上述当前时间构建第一模型配置模块,上述第一模型配置模块用于存储上述模型的第一保存时间,上述第一保存时间是指上述模型保存时的上述当前时间中的部分时间;根据上述当前时间构建第二模型配置模块,上述第二模型配置模块用于存储上述模型的第二保存时间,上述第二保存时间是指上述当前时间中除上述第一保存时间以外的时间。
[0039] 具体地,可以构建两个模型配置模块,分别是第一模型配置模块和第二模型配置模块,这样采用不同的模型配置模块存储保存时间,可以通过不同的模型配置模块确定保存模型时的当前时间的中不同的保存时间。
[0040] 另一种实施方式中,还可以构建第一模型配置模块、第二模型配置模块和第三模型配置模块,第一模型配置模块用于存储模型的第一保存时间,第二模型配置模块用于存储模型的第二保存时间,第三模型配置模块用于存储模型的第三保存时间,第三保存时间是指当前时间中除第一保存时间、第二保存时间以外的时间。当然,在构建模型配置模块时并不限于上述的情况,还可以构建更多的模型配置模块以存储模型的保存时间,也可以构建更少的模型配置模块以存储模型的保存时间,模型配置模块的数量不作限定,可以根据实际开发情况自行设置,本领域技术人员可以根据实际开发情况自行设置每个模型配置模块中记录的保存时间。
[0041] 具体地,对于构建第一模型配置模块的过程中,由于获取到的系统的当前时间是一串数字,数字格式不如字符串格式较为稳定(数字格式在配置过程中会出错或者乱码),因此可以将数字格式的当前时间转换为字符串格式(即第一目标格式),保证数据的稳定性较好,当然,获取到的系统的时间也可以是字符串格式,可以直接获取到字符串格式的当前时间,而无需进行格式转换,并且数字格式在转为为字符串后,会有一些无效字符,这些无效字符与当前时间是没有关联的,因此可以将无效字符删除以保证第一保存时间的有效性较好,再根据具体的配置来选择需要显示在第一模型配置模块中的字符,为了进一步高效地构建第一模型配置模块,以保证第一模型配置模块可以更为高效地存储模型的第一保存时间,本申请的一种具体的实施例中,根据上述当前时间构建第一模型配置模块,包括:将上述当前时间转换为第一目标格式,得到第一字符串,上述第一目标格式为字符串格式,上述第一目标格式为多种字符串格式中的一种,不同的目标格式对应的字符串格式不同;删除上述第一字符串中的无效字符,得到第二字符串,上述无效字符是指与上述当前时间无关的字符;删除上述第二字符串中序号在第一范围内的字符,得到上述第一保存时间,并将上述第一保存时间显示在上述第一模型配置模块中。
[0042] 具体地,第一模型配置模块采用Subsystem(子系统模块)封装后得到,第一模型配置模块使用的集成脚本可以是复制回调事件对应的脚本,复制回调事件可以断开模型与库的连接。
[0043] 一种可选的实施方式中,构建第一模型配置模块的逻辑如图3所示,由1个Constant block(常数模块)、1个Signal Conversion block(信号转换模块)和1个Outport block(输出模块)组成,Constant block输出的数据格式为uint16,对Constant block启动调用功能,所调用的事件为PreSaveFcn(模型保存回调事件),集成脚本对应的构建第一模型配置模块的功能包括:1)获取当前时间中的第一保存时间,2)采用第一保存时间设置Constant block的“Value(属性值)”属性,3)采用第一保存时间设置第一模型配置模块的“MaskDisplay(显示)”属性,使得第一模型配置模块的图标显示当前时间中的第一保存时间。
[0044] 第一保存时间可以是年份,当前时间为“2022‑09‑09,10:57:28”,在转换为第一目标格式后,得到的第一字符串为“20220909T105728”,删除第一字符串中的无效字符“T”,得到的第二字符串为“20220909105728”,第一范围可以是“(4,end]”,得到年份为“2022”,如图4所示,将年份显示在第一模型配置模块(MMT_y)中。
[0045] 具体地,对于构建第二模型配置模块的过程中,由于获取到的系统的当前时间是一串数字,数字格式不如字符串格式较为稳定(数字格式在配置过程中会出错或者乱码),因此可以将数字格式的当前时间转换为字符串格式(即第二目标格式),保证数据的稳定性较好,当然,获取到的系统的时间也可以是字符串格式,可以直接获取到字符串格式的当前时间,而无需进行格式转换,并且数字格式在转为为字符串后,会有一些无效字符,这些无效字符与当前时间是没有关联的,因此可以将无效字符删除以保证第二保存时间的有效性较好,再根据具体的配置来选择需要显示在第二模型配置模块中的字符,为了进一步高效地构建第二模型配置模块,以保证第二模型配置模块可以更为高效地存储模型的第二保存时间,本申请的一种具体的实施例中,根据上述当前时间构建第二模型配置模块,包括:将上述当前时间转换为第二目标格式,得到第三字符串,上述第二目标格式为字符串格式,上述第二目标格式为多种字符串格式中的一种;删除上述第三字符串中的无效字符,得到第四字符串,上述无效字符是指与上述当前时间无关的字符;删除上述第四字符串中序号在第二范围内的字符,得到上述第二保存时间,将上述第二保存时间转换为第三目标格式,得到更新后的第二保存时间,并将更新后的第二保存时间显示在上述第二模型配置模块中,上述第三目标格式为字符串格式,上述第三目标格式为多种字符串格式中的一种。
[0046] 具体地,第二模型配置模块采用Subsystem(子系统模块)封装后得到,第二模型配置模块使用的集成脚本可以是复制回调事件对应的脚本,复制回调事件可以断开模型与库的连接。
[0047] 一种可选的实施方式中,构建第二模型配置模块的逻辑如图5所示,由1个Constant block(常数模块)、1个Signal Conversion block(信号转换模块)和1个Outport block(输出模块)组成,Constant block输出的数据格式为uint32,对Constant block启动调用功能,所调用的事件为PreSaveFcn(模型保存回调事件),集成脚本对应的构建第二模型配置模块的功能包括:1)获取当前时间中的第二保存时间,2)采用第二保存时间设置Constant block的“Value(属性值)”属性,3)采用更新后的第二保存时间设置第二模型配置模块的“MaskDisplay(显示)”属性,使得第二模型配置模块的图标显示当前时间中的更新后的第二保存时间。
[0048] 第二保存时间可以是月份、日、小时、分钟、秒数,当前时间为“2022‑09‑09,10:57:28”,在转换为第二目标格式后,得到的第三字符串为“20220909T105728”,删除第三字符串中的无效字符“T”,得到的第四字符串为“20220909105728”,第二范围可以是“[1,4]”,得到月份、日、小时、分钟、秒数为“0909105728”,即第二保存时间,并对第二保存时间的格式进行转换,转换为第三目标格式,得到的更新后的第二保存时间为“09‑09 10:57:28”,如图6所示,将月份、日、小时、分钟、秒数显示在第二模型配置模块(MMT_mdHMS)中。转换为第三目标格式的更新后的第二保存时间的可读性较好。
[0049] 在实际应用中,可以构建两个模型配置模块来分别存储模型的保存时间,当然,也可以采用一个模型配置模块来存储模型的保存时间,这样可以更加快速地确定模型的保存时间,而无需通过多个数量的模型配置模块来确定模型的保存时间,本申请的再一种实施例中,构建模型配置模块,包括:将上述当前时间转换为第四目标格式,得到第五字符串,上述第四目标格式为字符串格式,上述第四目标格式为多种字符串格式中的一种;删除上述第五字符串中的无效字符,得到上述保存时间,并将上述保存时间显示在上述模型配置模块中,上述无效字符是指与上述当前时间无关的字符,上述保存时间包括以下至少之一:年份、月份、日、小时、分钟、秒数。
[0050] 步骤S102,构建集成脚本,上述集成脚本用于在上述模型进行保存时,对上述模型配置模块进行参数配置;
[0051] 具体地,集成脚本主要的作用是参数配置功能,在发生模型保存回调事件的情况下,配置对应的模型配置模块,其中,模型保存回调事件在程序开始执行模型保存命令后且保存模型完成之前,触发指定的集成脚本调用模型配置模块。
[0052] 步骤S103,根据上述模型以及上述模型的上述保存时间生成代码,并将上述代码存储至数据库中,其中,上述代码中至少包括目标变量,上述目标变量用于记录上述模型的上述保存时间。
[0053] 具体地,在模型配置模块有两个(第一模型配置模块和第二模型配置)的情况下,对应的目标变量(Signal)也有两个,如图7所示,包括第一目标变量(Sig_Out4)和第二目标变量(Sig_Out5),Signal的Storage Class(存储类型)可定义为“Volatile(可变的)”,将定义的两个目标变量绑定在第一模型配置模块和第二模型配置模块的输出信号线上(信号线使能属性Signal name must resolve to Simulink signal object,信号名称必须解析为simulink信号对象),每次保存模型时,这两个模型配置模块内部的Constant block的“Value”属性,均取自于当前时间。之后生成代码时,模型保存时的第一保存时间就会记录到Sig_Out4,模型保存的第二保存时间就会记录到Sig_Out5中,生成的代码举例如下:
[0054] 目标变量定义的代码可以为:
[0055] volatile uint32_T Sig_Out4;
[0056] volatile uint16_T Sig_Out5;
[0057] 目标变量赋值的代码可以为:
[0058] Sig_Out4=909112649U;
[0059] Sig_Out5=2022U。
[0060] 上述的方法中,首先构建模型配置模块,模型配置模块用于存储模型的保存时间,之后构建集成脚本,最后根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型已进行保存的情况下,调用模型配置模块,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0061] 具体地,上述的方案中,可以在修改完模型后,执行保存命令时,调用模型配置模块,这样可以将模型的保存时间写入目标变量中,在模型生成的代码中,采用目标变量记录模型的保存时间,这样在排查问题时可以通过对应的目标变量,快速确认上传的模型的版本。例如,在对产品进行测试时,发现了问题,此时通过调式工具监测目标变量的值,开发人员可以快速确认模型的保存时间。
[0062] 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0063] 在有多个模型的情况下,可以直接将第一目标模型中的模型配置模块和集成脚本复制到第二目标模型中,这样在开发第二目标模型中,可以无需再重复开发重复的内容,加快模型开发的速度,进一步保证了模型开发时的效率较高,本申请的另一种实施例中,上述方法还包括:构建复制回调事件,上述复制回调事件用于断开上述模型与数据库的连接。
[0064] 本申请的又一种实施例中,上述方法还包括:构建模型配置事件,上述模型配置事件用于在配置上述模型的过程中,定义时间变量,上述时间变量用于存储上述模型的保存时间;根据上述模型以及上述模型的上述时间变量生成上述代码,并将上述代码存储至上述数据库中。该实施例中,可以无需采用模型配置模型来存储模型的保存时间,直接在初始定义模型的过程中,定义时间变量,这样一开始模型的保存时间就可以直接采用时间变量获取得到,这样可以进一步加快模型开发的速率,进一步保证了模型开发时的效率较高。
[0065] 本申请实施例还提供了一种模型的控制装置,需要说明的是,本申请实施例的模型的控制装置可以用于执行本申请实施例所提供的用于模型的控制方法。以下对本申请实施例提供的模型的控制装置进行介绍。
[0066] 图8是根据本申请实施例的模型的控制装置的示意图。如图8所示,该装置包括:
[0067] 第一构建单元10,用于构建模型配置模块,上述模型配置模块用于存储模型的保存时间;
[0068] 具体地,构建的模型配置模块如图2所示,可以构建两个模型配置模块(block),模型配置模块的数量不作限定,可以根据实际开发情况自行设置,构建的模型配置模块可以存放在Simulink库文件中,以方便开发团队成员使用,其中,MMT_y用于记录年份,MMT_mdHMS用于记录月份、日、小时、分钟、秒数。
[0069] 一种实施方式中,模型配置模块的数量并不限于图2中的两个模型配置模块,还可以是其他数量的模型配置模块,例如三个、四个、五个、六个、七个等等,第一个模型配置模块可以用于记录年份,第二个模型配置模块可以用于记录月份,第三个模型配置模块可以用于记录日,第四个模型配置模块可以用于记录小时,第五个模型配置模块可以用于记录分钟,第六个模型配置模块可以用于记录秒数。
[0070] 又一种实施方式中,还可以构建两个模型配置模块,第一个模型配置模块可以用于记录年‑月‑日,第二个模型配置模块可以用于记录小时‑分钟‑秒数,当然,并不限于以上的情况,本领域技术人员可以根据实际开发情况自行设置每个模型配置模块中记录的保存时间。
[0071] 对于模块的开发过程,实际上模型保存时是可以获取到系统的当前时间的,可以将这个系统的当前时间作为模型的保存时间,这样可以确定模型保存时的系统的当前时间,由于系统的时间较为准确,都是标准且统一的,因此存储的模型的保存时间较为准确,并且为了更加高效地构建模型配置模块,以保证模型配置模块可以更为高效地存储模型的保存时间,本申请的一种实施例中,第一构建单元包括获取模块、第一构建模块和第二构建模块,获取模块用于获取上述模型保存时的当前时间,其中,上述当前时间的格式为数字格式;第一构建模块用于根据上述当前时间构建第一模型配置模块,上述第一模型配置模块用于存储上述模型的第一保存时间,上述第一保存时间是指上述模型保存时的上述当前时间中的部分时间;第二构建模块用于根据上述当前时间构建第二模型配置模块,上述第二模型配置模块用于存储上述模型的第二保存时间,上述第二保存时间是指上述当前时间中除上述第一保存时间以外的时间。
[0072] 具体地,可以构建两个模型配置模块,分别是第一模型配置模块和第二模型配置模块,这样采用不同的模型配置模块存储保存时间,可以通过不同的模型配置模块确定保存模型时的当前时间的中不同的保存时间。
[0073] 另一种实施方式中,还可以构建第一模型配置模块、第二模型配置模块和第三模型配置模块,第一模型配置模块用于存储模型的第一保存时间,第二模型配置模块用于存储模型的第二保存时间,第三模型配置模块用于存储模型的第三保存时间,第三保存时间是指当前时间中除第一保存时间、第二保存时间以外的时间。当然,在构建模型配置模块时并不限于上述的情况,还可以构建更多的模型配置模块以存储模型的保存时间,也可以构建更少的模型配置模块以存储模型的保存时间,模型配置模块的数量不作限定,可以根据实际开发情况自行设置,本领域技术人员可以根据实际开发情况自行设置每个模型配置模块中记录的保存时间。
[0074] 具体地,对于构建第一模型配置模块的过程中,由于获取到的系统的当前时间是一串数字,数字格式不如字符串格式较为稳定(数字格式在配置过程中会出错或者乱码),因此可以将数字格式的当前时间转换为字符串格式(即第一目标格式),保证数据的稳定性较好,当然,获取到的系统的时间也可以是字符串格式,可以直接获取到字符串格式的当前时间,而无需进行格式转换,并且数字格式在转为为字符串后,会有一些无效字符,这些无效字符与当前时间是没有关联的,因此可以将无效字符删除以保证第一保存时间的有效性较好,再根据具体的配置来选择需要显示在第一模型配置模块中的字符,为了进一步高效地构建第一模型配置模块,以保证第一模型配置模块可以更为高效地存储模型的第一保存时间,本申请的一种具体的实施例中,第一构建模块包括第一转换子模块、第一删除子模块和第二删除子模块,第一转换子模块用于将上述当前时间转换为第一目标格式,得到第一字符串,上述第一目标格式为字符串格式,上述第一目标格式为多种字符串格式中的一种,不同的目标格式对应的字符串格式不同;第一删除子模块用于删除上述第一字符串中的无效字符,得到第二字符串,上述无效字符是指与上述当前时间无关的字符;第二删除子模块用于删除上述第二字符串中序号在第一范围内的字符,得到上述第一保存时间,并将上述第一保存时间显示在上述第一模型配置模块中。
[0075] 具体地,第一模型配置模块采用Subsystem(子系统模块)封装后得到,第一模型配置模块使用的集成脚本可以是复制回调事件对应的脚本,复制回调事件可以断开模型与库的连接。
[0076] 一种可选的实施方式中,构建第一模型配置模块的逻辑如图3所示,由1个Constant block(常数模块)、1个Signal Conversion block(信号转换模块)和1个Outport block(输出模块)组成,Constant block输出的数据格式为uint16,对Constant block启动调用功能,所调用的事件为PreSaveFcn(模型保存回调事件),集成脚本对应的构建第一模型配置模块的功能包括:1)获取当前时间中的第一保存时间,2)采用第一保存时间设置Constant block的“Value(属性值)”属性,3)采用第一保存时间设置第一模型配置模块的“MaskDisplay(显示)”属性,使得第一模型配置模块的图标显示当前时间中的第一保存时间。
[0077] 第一保存时间可以是年份,当前时间为“2022‑09‑09,10:57:28”,在转换为第一目标格式后,得到的第一字符串为“20220909T105728”,删除第一字符串中的无效字符“T”,得到的第二字符串为“20220909105728”,第一范围可以是“(4,end]”,得到年份为“2022”,如图4所示,将年份显示在第一模型配置模块(MMT_y)中。
[0078] 具体地,对于构建第二模型配置模块的过程中,由于获取到的系统的当前时间是一串数字,数字格式不如字符串格式较为稳定(数字格式在配置过程中会出错或者乱码),因此可以将数字格式的当前时间转换为字符串格式(即第二目标格式),保证数据的稳定性较好,当然,获取到的系统的时间也可以是字符串格式,可以直接获取到字符串格式的当前时间,而无需进行格式转换,并且数字格式在转为为字符串后,会有一些无效字符,这些无效字符与当前时间是没有关联的,因此可以将无效字符删除以保证第二保存时间的有效性较好,再根据具体的配置来选择需要显示在第二模型配置模块中的字符,为了进一步高效地构建第二模型配置模块,以保证第二模型配置模块可以更为高效地存储模型的第二保存时间,本申请的一种具体的实施例中,第二构建模块包括第二转换子模块、第三删除子模块、第四删除子模块,第二转换子模块用于将上述当前时间转换为第二目标格式,得到第三字符串,上述第二目标格式为字符串格式,上述第二目标格式为多种字符串格式中的一种;第三删除子模块用于删除上述第三字符串中的无效字符,得到第四字符串,上述无效字符是指与上述当前时间无关的字符;第四删除子模块用于删除上述第四字符串中序号在第二范围内的字符,得到上述第二保存时间,将上述第二保存时间转换为第三目标格式,得到更新后的第二保存时间,并将更新后的第二保存时间显示在上述第二模型配置模块中,上述第三目标格式为字符串格式,上述第三目标格式为多种字符串格式中的一种。
[0079] 具体地,第二模型配置模块采用Subsystem(子系统模块)封装后得到,第二模型配置模块使用的集成脚本可以是复制回调事件对应的脚本,复制回调事件可以断开模型与库的连接。
[0080] 一种可选的实施方式中,构建第二模型配置模块的逻辑如图5所示,由1个Constant block(常数模块)、1个Signal Conversion block(信号转换模块)和1个Outport block(输出模块)组成,Constant block输出的数据格式为uint32,对Constant block启动调用功能,所调用的事件为PreSaveFcn(模型保存回调事件),集成脚本对应的构建第二模型配置模块的功能包括:1)获取当前时间中的第二保存时间,2)采用第二保存时间设置Constant block的“Value(属性值)”属性,3)采用更新后的第二保存时间设置第二模型配置模块的“MaskDisplay(显示)”属性,使得第二模型配置模块的图标显示当前时间中的更新后的第二保存时间。
[0081] 第二保存时间可以是月份、日、小时、分钟、秒数,当前时间为“2022‑09‑09,10:57:28”,在转换为第二目标格式后,得到的第三字符串为“20220909T105728”,删除第三字符串中的无效字符“T”,得到的第四字符串为“20220909105728”,第二范围可以是“[1,4]”,得到月份、日、小时、分钟、秒数为“0909105728”,即第二保存时间,并对第二保存时间的格式进行转换,转换为第三目标格式,得到的更新后的第二保存时间为“09‑09 10:57:28”,如图6所示,将月份、日、小时、分钟、秒数显示在第二模型配置模块(MMT_mdHMS)中。
[0082] 在实际应用中,可以构建两个模型配置模块来分别存储模型的保存时间,当然,也可以采用一个模型配置模块来存储模型的保存时间,这样可以更加快速地确定模型的保存时间,而无需通过多个数量的模型配置模块来确定模型的保存时间,本申请的再一种实施例中,第一构建单元包括转换模块和删除模块,转换模块用于将上述当前时间转换为第四目标格式,得到第五字符串,上述第四目标格式为字符串格式,上述第四目标格式为多种字符串格式中的一种;删除模块用于删除上述第五字符串中的无效字符,得到上述保存时间,并将上述保存时间显示在上述模型配置模块中,上述无效字符是指与上述当前时间无关的字符,上述保存时间包括以下至少之一:年份、月份、日、小时、分钟、秒数。
[0083] 第二构建单元20,用于构建集成脚本,上述集成脚本用于在上述模型进行保存时,对上述模型配置模块进行参数配置;
[0084] 具体地,集成脚本主要的作用是参数配置功能,在发生模型保存回调事件的情况下,配置对应的模型配置模块,其中,模型保存回调事件在程序开始执行模型保存命令后且保存模型完成之前,触发指定的集成脚本调用模型配置模块。
[0085] 第一处理单元30,用于根据上述模型以及上述模型的上述保存时间生成代码,并将上述代码存储至数据库中,其中,上述代码中至少包括目标变量,上述目标变量用于记录上述模型的上述保存时间。
[0086] 具体地,在模型配置模块有两个(第一模型配置模块和第二模型配置)的情况下,对应的目标变量(Signal)也有两个,如图7所示,包括第一目标变量(Sig_Out4)和第二目标变量(Sig_Out5),Signal的Storage Class(存储类型)可定义为“Volatile(可变的)”,将定义的两个目标变量绑定在第一模型配置模块和第二模型配置模块的输出信号线上(信号线使能属性Signal name must resolve to Simulink signal object,信号名称必须解析为simulink信号对象),每次保存模型时,这两个模型配置模块内部的Constant block的“Value”属性,均取自于当前时间。之后生成代码时,模型保存时的第一保存时间就会记录到Sig_Out4,模型保存的第二保存时间就会记录到Sig_Out5中,生成的代码举例如下:
[0087] 目标变量定义的代码可以为:
[0088] volatile uint32_T Sig_Out4;
[0089] volatile uint16_T Sig_Out5;
[0090] 目标变量赋值的代码可以为:
[0091] Sig_Out4=909112649U;
[0092] Sig_Out5=2022U。
[0093] 上述的装置中,第一构建单元构建模型配置模块,模型配置模块用于存储模型的保存时间,第二构建单元构建集成脚本,第一处理单元根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型进行保存的情况下,对模型配置模块进行参数配置,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0094] 具体地,上述的方案中,可以在修改完模型后,执行保存命令时,调用模型配置模块,这样可以将模型的保存时间写入目标变量中,在模型生成的代码中,采用目标变量记录模型的保存时间,这样在排查问题时可以通过对应的目标变量,快速确认上传的模型的版本。例如,在对产品进行测试时,发现了问题,此时通过调式工具监测目标变量的值,开发人员可以快速确认模型的保存时间。
[0095] 在有多个模型的情况下,可以直接将第一目标模型中的模型配置模块和集成脚本复制到第二目标模型中,这样在开发第二目标模型中,可以无需再重复开发重复的内容,加快模型开发的速度,进一步保证了模型开发时的效率较高,本申请的另一种实施例中,上述装置还包括第三构建单元,第三构建单元用于构建复制回调事件,上述复制回调事件用于断开上述模型与数据库的连接。
[0096] 本申请的又一种实施例中,上述装置还包括第四构建单元和第二处理单元,第四构建单元用于构建模型配置事件,上述模型配置事件用于在配置上述模型的过程中,定义时间变量,上述时间变量用于存储上述模型的保存时间;第二处理单元用于根据上述模型以及上述模型的上述时间变量生成上述代码,并将上述代码存储至上述数据库中。该实施例中,可以无需采用模型配置模型来存储模型的保存时间,直接在初始定义模型的过程中,定义时间变量,这样一开始模型的保存时间就可以直接采用时间变量获取得到,这样可以进一步加快模型开发的速率,进一步保证了模型开发时的效率较高。
[0097] 上述模型的控制装置包括处理器和存储器,上述第一构建单元、第二构建单元和第一处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0098] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少模型排查问题所花费的时间。
[0099] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
[0100] 本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述模型的控制方法。
[0101] 本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述模型的控制方法。
[0102] 本申请还提供了一种模型的控制系统,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
[0103] 上述的系统中,由于包括任一种上述的方法,该方法中首先构建模型配置模块,模型配置模块用于存储模型的保存时间,之后构建集成脚本,最后根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型进行保存的情况下,对模型配置模块进行参数配置,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0104] 本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
[0105] 步骤S101,构建模型配置模块,上述模型配置模块用于存储模型的保存时间;
[0106] 步骤S102,构建集成脚本,上述集成脚本用于在上述模型进行保存时,对上述模型配置模块进行参数配置;
[0107] 步骤S103,根据上述模型以及上述模型的上述保存时间生成代码,并将上述代码存储至数据库中,其中,上述代码中至少包括目标变量,上述目标变量用于记录上述模型的上述保存时间。
[0108] 本文中的设备可以是服务器、PC、PAD、手机等。
[0109] 本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
[0110] 步骤S101,构建模型配置模块,上述模型配置模块用于存储模型的保存时间;
[0111] 步骤S102,构建集成脚本,上述集成脚本用于在上述模型进行保存时,对上述模型配置模块进行参数配置;
[0112] 步骤S103,根据上述模型以及上述模型的上述保存时间生成代码,并将上述代码存储至数据库中,其中,上述代码中至少包括目标变量,上述目标变量用于记录上述模型的上述保存时间。
[0113] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0114] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0115] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0116] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0117] 上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0118] 从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
[0119] 1)、本申请的模型的控制方法,首先构建模型配置模块,模型配置模块用于存储模型的保存时间,之后构建集成脚本,最后根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型进行保存的情况下,对模型配置模块进行参数配置,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0120] 2)、本申请的模型的控制装置,第一构建单元构建模型配置模块,模型配置模块用于存储模型的保存时间,第二构建单元构建集成脚本,第一处理单元根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型进行保存的情况下,对模型配置模块进行参数配置,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0121] 3)、本申请的模型的控制系统,由于包括任一种上述的方法,该方法中首先构建模型配置模块,模型配置模块用于存储模型的保存时间,之后构建集成脚本,最后根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,其中,代码中至少包括目标变量,目标变量用于记录模型的保存时间。该方案中,通过构建模型配置模块和集成脚本,可以在模型进行保存的情况下,对模型配置模块进行参数配置,采用模型配置模块存储模型的保存时间,进而根据模型以及模型的保存时间生成代码,并将代码存储至数据库中,从而可以在排查模型的问题时,根据模型的保存时间即可以准确且快速地确定上传的模型的版本,进而解决了在更新的模型未正常上传的情况下会造成软件缺陷,在排查问题时会花费较长的时间的问题。
[0122] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页 第1页 第2页 第3页
相关技术
控制系统相关技术
方法装置相关技术
周世明发明人的其他相关专利技术