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

采用多语言混合编程进行装甲车辆动力性能优化的方法与流程

2023-02-06 13:21:35 来源:中国专利 TAG:


1.本发明属于软件开发技术领域,具体涉及一种采用多语言混合编程进行装甲车辆动力性能优化的方法。


背景技术:

2.装甲车辆是陆军地面作战的主要突击装备,其优良的越野性、机动性、攻击性使得它在未来陆地战争中起着至关重要的角色,其中车辆的动力性能直接与机动性挂钩,关系到车辆的作战、生存、攻击、防御能力,是履带式装甲车辆最基本、最重要的性能要求。在动力性的各种评价指标中,加速时间是最能反应性能高低的指标。
3.现有的动力性能分析及优化主要采用以下两种:
4.(1)先基于物理或者经验公式得到初步的动力性能设计参数,然后制造物理样机后进行实车测试,之后通过反复迭代获得一个较好的动力性能设计参数。该方法时间周期长,成本高,不能精细的研究某些参数变量对动力性能的影响。
5.(2)采用虚拟样机专业仿真技术和仿真集成技术进行参数研究和优化设计。一般先在simulink、amesim中建立整车动力学模型,再在isight等商用优化软件平台上进行仿真流程集成,再针对某些特定的参数进行优化。但该方法存在一些缺点,如isight软件自带的优化算法并不能很好的适应于所优化的问题,不能得到一个最优解。其次,面对多样化的优化变量提取及目标输出需求不能方便、自由的进行变量提取和结果处理,降低了整体仿真流程集成及参数优化的效率。
6.因此,目前仍然缺乏一种集成效率高,变量抽取及结果处理灵活,优化效果好的方法。


技术实现要素:

7.(一)要解决的技术问题
8.本发明要解决的技术问题是:如何提供一种采用多语言混合编程进行装甲车辆动力性能仿真流程集成及参数优化。
9.(二)技术方案
10.为解决上述技术问题,本发明提供一种采用多语言混合编程进行装甲车辆动力性能优化的方法,所述方法包括如下步骤:
11.步骤1:创建项目工程:
12.步骤2:创建matlab脚本:
13.步骤3:创建parsing脚本:
14.步骤4:创建main脚本:
15.步骤5:优化结果对比。
16.其中,所述步骤1中,用pycharm2020.3创建一个名为 demoproject的工程。
17.其中,所述步骤2中,在demoproject工程的根目录下创建 optimization.mlx脚本
文件。
18.其中,所述步骤2中,创建optimization.mlx脚本文件的作用是调用基于matlab语言编写的遗传优化算法函数ga,在该函数执行的过程中,会调用基于python语言编写的assess评价函数,并将优化变量值传入进去,最后对仿真流程得到的结果进行处理后将优化目标值返回,作为优化算法下一次迭代的输入。
19.其中,所述步骤3中,在demoproject工程的根目录下创建 parsing.py脚本文件。
20.其中,所述步骤3中,parsing.py脚本文件用于解析装甲车辆动力性能仿真分析的simulink和amesim模型的参数输入文件,得到输入、输出变量名以及对应的数值。
21.其中,所述步骤4中,在demoproject工程的根目录下创建 main.py脚本文件。
22.其中,所述步骤4中,在这个main.py脚本文件里,首先定义需要优化的变量以及它们各自的优化约束边界、优化算法需要的最大迭代数等优化输入参数,接着通过matlab的python引擎调用基于 matlab语言编写的optimization.mlx优化脚本,并将前面获得的优化输入参数传递进去。
23.其中,所述步骤4中,每次assess评价函数执行时,还会调用基于python语言编写的history优化历程记录函数,将每次迭代的优化变量输入值和计算的优化目标值写到history.txt文本中。
24.其中,所述步骤5中,为了将该方法与用isight软件平台直接集成并进行优化的结果进行对比,在isigh软件中也搭建了相应的集成仿真流程,采用同样的最大1000次的优化迭代次数及优化变量和上下限范围,得到比较结果,显示出采用多语言混合编程进行装甲车辆动力性能仿真流程集成及0-32km/h加速时间优化的方法,相比用 isight软件平台直接集成并进行优化的加速时间优化效果更好,并且采用该方法能根据实际需要,灵活的处理输入输出变量值。
25.(三)有益效果
26.与现有技术相比较,本发明方法能够充分利用python编程语言对于复杂数据处理,复杂软件仿真流程调度和集成的优势,以及 matlab编程语言在数值计算和优化算法方面的优势,使用该方法可以高效、灵活的进行仿真流程集成及参数优化。
附图说明
27.图1是本发明的流程示意图;
28.图2是本发明的整车动力系统仿真模型示意图。
具体实施方式
29.为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
30.为解决上述技术问题,本发明提供一种采用多语言混合编程进行装甲车辆动力性能优化的方法,如图1所示,所述方法包括如下步骤:
31.步骤1:创建项目工程:
32.步骤2:创建matlab脚本:
33.步骤3:创建parsing脚本:
34.步骤4:创建main脚本:
35.步骤5:优化结果对比。
36.其中,所述步骤1中,用pycharm2020.3创建一个名为 demoproject的工程。
37.其中,所述步骤2中,在demoproject工程的根目录下创建 optimization.mlx脚本文件。
38.其中,所述步骤2中,创建optimization.mlx脚本文件的作用是调用基于matlab语言编写的遗传优化算法函数ga,在该函数执行的过程中,会调用基于python语言编写的assess评价函数,并将优化变量值传入进去,最后对仿真流程得到的结果进行处理后将优化目标值返回,作为优化算法下一次迭代的输入。
39.其中,所述步骤3中,在demoproject工程的根目录下创建 parsing.py脚本文件。
40.其中,所述步骤3中,parsing.py脚本文件用于解析装甲车辆动力性能仿真分析的simulink和amesim模型的参数输入文件,得到输入、输出变量名以及对应的数值。
41.其中,所述步骤4中,在demoproject工程的根目录下创建 main.py脚本文件。
42.其中,所述步骤4中,在这个main.py脚本文件里,首先定义需要优化的变量以及它们各自的优化约束边界、优化算法需要的最大迭代数等优化输入参数,接着通过matlab的python引擎调用基于 matlab语言编写的optimization.mlx优化脚本,并将前面获得的优化输入参数传递进去。
43.其中,所述步骤4中,每次assess评价函数执行时,还会调用基于python语言编写的history优化历程记录函数,将每次迭代的优化变量输入值和计算的优化目标值写到history.txt文本中。
44.其中,所述步骤5中,为了将该方法与用isight软件平台直接集成并进行优化的结果进行对比,在isigh软件中也搭建了相应的集成仿真流程,采用同样的最大1000次的优化迭代次数及优化变量和上下限范围,得到比较结果,显示出采用多语言混合编程进行装甲车辆动力性能仿真流程集成及0-32km/h加速时间优化的方法,相比用 isight软件平台直接集成并进行优化的加速时间优化效果更好,并且采用该方法能根据实际需要,灵活的处理输入输出变量值。
45.实施例1
46.本实施例应用simulink、amesim来进行装甲车辆动力性能仿真流程搭建,仿真模型示意图如附图2所示,包括动力系统、传动系统、转向系统、行驶系统、制动系统、驾驶员模型、路面模型等。
47.通过编写的python脚本来集成该仿真流程并进行参数优化,通过基于python语言编写的parsing脚本函数解析输入变量,如缓冲阀弹簧参数、回程弹簧参数以及整车传动部件的惯量,具体变量及含义如下表1所示。同时也解析输出变量并处理后得到优化目标值,如车辆加速时间、滑磨功率、汇流排扭矩冲击,该案例以0-32km/h加速时间为优化目标变量,具体变量及含义如下表2所示。
48.表1输入变量
[0049][0050]
表2输出变量
[0051][0052]
具体的实施步骤:
[0053]
1)创建项目工程:
[0054]
用pycharm2020.3创建一个名为demoproject的工程;
[0055]
2)创建matlab脚本:
[0056]
在demoproject工程的根目录下创建optimization.mlx文件, 其作用是调用基于matlab语言编写的遗传优化算法函数ga,在该函数执行的过程中,会调用基于python语言编写的assess评价函数,并将优化变量值传入。具体实现如下:
[0057]
[0058]
[0059][0060]
在optimization函数中会接受三个参数,分别是lower_bound:变量下限,upper_bound:变量上限,algorithm_config:算法配置参数;
[0061]
3)创建parsing脚本:
[0062]
在demoproject工程的根目录下创建parsing.py文件,其作用是解析、修改输入输出变量。具体的实现如下:
[0063]
[0064][0065]
该函数适合修改普通的脚本
[0066][0067]
4)创建main脚本:
[0068]
在demoproject工程的根目录下创建main.py文件,其作用是定义需要优化的变量以及它们各自的优化约束边界、优化算法需要的最大迭代数等优化模型参数,并通过matlab的python引擎调用基于 matlab语言编写的optimization.mlx优化脚本,并将前面获得的优化输入参数传递进去;同时也为optimization.mlx文件提供一个 assess回调函数。具体的实现如下:
[0069]
#执行优化流程的类
[0070]
[0071]
[0072]
[0073][0074]
main.py文件中有两个类,分别是optimizationprocess:优化参数初始化和优化流程入口;assess:评价函数和优化历程写入。实例化optimizationprocess类后,通过call_opt_process方法调用matlab优化流程。
[0075]
在matlab优化流程中,ga优化函数在每次优化迭代的过程中都会回调assess类中的assess方法来进行评价函数的计算,同时会调用history方法,将每次优化的输入和输出结果写入到hitory.txt 文件中;
[0076]
通过执行main.py文件,得到最后的优化结果如下表所示:
[0077]
表3优化设计结果
[0078]
[0079][0080]
5)优化结果对比:
[0081]
为了将该方法与用isight软件平台直接集成并进行优化的结果进行对比,在isigh软件中也搭建了相应的集成仿真流程,采用同样的最大1000次的优化迭代次数及优化变量和上下限范围,得到如表 4的结果,从其中可以看到采用多语言混合编程进行装甲车辆动力性能仿真流程集成及0-32km/h加速时间优化的方法,相比用isight软件平台直接集成并进行优化的加速时间优化效果更好,并且采用该方法能根据实际需要,灵活的处理输入输出变量值,这对于isight软件而言,在某些情况下是实现不了的。
[0082]
表4优化设计结果对比
[0083]
[0084][0085]
综上所述,本发明提出的方法克服了基于isight等商用优化软件自带的优化算法不能得到一个最优解的缺点,同时提高了在面对多样化的优化变量提取及目标输出需求的仿真流程集成及参数优化的效率,可广泛应用于其他的仿真流程集成及参数优化问题。
[0086]
实施例2
[0087]
本实施例提供一种采用多语言混合编程进行装甲车辆动力性能优化的方法,其包括的步骤如下:、
[0088]
步骤1:用pycharm2020.3创建一个名为demoproject的工程;
[0089]
步骤2:在demoproject工程的根目录下创建optimization.mlx 文件;
[0090]
步骤3:在demoproject工程的根目录下创建parsing.py文件,编写parsingvars,modifyvars函数;
[0091]
步骤4:在demoproject工程的根目录下创建main.py文件,编写optimizationprocess类,assess类。
[0092]
步骤5:优化结果对比。
[0093]
其中,上述步骤2中,在demoproject工程的根目录下创建 optimization.mlx文件,其作用是会调用采用matlab语言编写的遗传优化算法函数ga,在该函数执行的过程中,会调用采用python语言编写的assess评价函数,并将优化变量值传入。具体实现如下:
[0094]
[0095][0096]
在optimization函数中会接受三个参数,分别是lower_bound:变量下限,upper_bound:变量上限,algorithm_config:算法配置参数;
[0097]
3、如权利要求2所述的一种采用多语言混合编程进行装甲车辆动力性能优化的方法,其特征在上述步骤3)中,在demoproject工程的根目录下创建parsing.py文件,其作用是解析、修改输入输出变量。具体的实现如下:
[0098]
[0099]
[0100][0101]
该函数适合修改普通的脚本
[0102][0103]
其中,上述步骤4)中,在demoproject工程的根目录下创建 main.py文件,其作用是定义需要优化的变量以及它们各自的优化约束边界、优化算法需要的最大迭代数等优化输入参数,并通过matlab 的python引擎调用基于matlab语言编写的optimization.mlx优化脚本,并将前面获得的优化输入参数传递进去;同时也为 optimization.mlx文件提供一个assess回调函数。具体的实现如下:
[0104]
[0105]
[0106]
[0107][0108]
optimizationprocess.call_opt_process()main.py文件的中有两个类,分别是optimizationprocess:优化参数初始化和优化流程入口,assess:评价函数和优化历程写入。通过实例化 optimizationprocess类后,通过call_opt_process方法调用matlab 优化流程;
[0109]
在matlab优化流程中,ga优化函数在每次优化迭代的过程中都会回调assess类中的assess方法来进行评价函数的计算,同时会调用history方法,将每次优化的输入和输出结果写入到hitory.txt 文件中;
[0110]
通过执行main.py文件,得到最后的优化结果如下表所示:
[0111]
表5优化设计结果
[0112]
[0113][0114]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献