技术贴 | 将Python代码无缝集成到AVL CRUISE M模型中

将Python代码

无缝集成到AVL CRUISE™ M模型中

技术贴 | 将Python代码无缝集成到AVL CRUISE M模型中的图1

E-mail: cruise_support_china@avl.com

Author: Matej Adamcevic

Translator: Jing Peng

引言

在当今工程领域,比以往任何时候都更快捷、更灵活的时代,适应性和可定制化能力是不可或缺的功能。本文为大家介绍Python FunctionPython Module可以将Python语言直接无缝地集成到您的AVL CRUISE™ M 模型中

由于编程技能、编程的乐趣或完成一项工程任务(而非编程任务)所给定的时间都是有限的,AVL CRUISE M根据实际情况提供了两种不同类型的Python组件。

  • 为了实现快速便捷的控制逻辑原型设计,AVL CRUISE M提供了Python Function:这是基于Python的编译函数的变体,包含大量标准和第三方Python模块供您使用。
  • 对于更通用的做法,可以考虑Python Module:将现有的Python文件直接集成到AVL CRUISE M中,并在需要时使用自定义的Python环境。

Python Function

对于熟悉Compiled Function的人来说,Python Function会上手很快。相同的输入和输出通道结构,相同的参数类型:整数、浮点数金额、向量、一维特征、二维规则映射和矩阵,以及相同的变量命名方案——主要的区别在于所使用的语言。在可移植性和性能方面,Compiled Function可能会胜过 Python Function,但在用于快速控制逻辑原型设计时,Python 可能是无与伦比的。


图 1 展示了一个简单的 Python Function结构,具有 1 个输入通道和 2 个输出通道。与Compiled Function一样,主执行代码在每个仿真步中都会执行。另外两个代码编辑器使您能够导入标准和第三方 Python 模块,并在全局工作区中定义变量和/或函数。

技术贴 | 将Python代码无缝集成到AVL CRUISE M模型中的图2

图 1:示例 Python Function结构及仿真输出


Python Module

如果您已经有一个包含控制逻辑的Python文件——定义一个简单的接口类,帮助AVL CRUISE M与您的代码进行交互,并将您现有的代码库直接无缝集成到AVL CRUISE M中。配置自定义Python环境,并任意导入文件可能需要的其他Python模块。

接口类描述您的模块的外部接口:输入和输出通道、固定参数,支持的参数类型包括:整型、浮点型、浮点型向量、字符串、文件和目录。基于定义的接口类,在AVL CRUISE M中加载(或重新加载)文件时会自动生成输入和输出通道以及参数编辑器。

如果您觉得Python Module所提供的功能和结构与 FMI 标准相似,这其实是有意为之。如果您觉得您在Model.CONNECT™ 中已经见过这个Python Module,这也是有意安排的。如果您因 Model.CONNECT 缺少物理特性而受阻,不妨转用AVL CRUISE M,并将您的自定义Python模块与AVL CRUISE M丰富的组件库结合使用。

图 2 展示了一个简单的Python文件,其中包含一个 Python Module接口类,其结构和逻辑与图 1 中的Python Function示例一样。

技术贴 | 将Python代码无缝集成到AVL CRUISE M模型中的图3

图 2:示例 Python Module的实现

总结

可定制化和灵活性是AVL CRUISE M的灵魂之一。新的Python Function和Python Module组件遵循这一理念,让用户能够处理标准之外的应用。根据任务需求的不同,用户可能会选择在Python Function中进行快速简单的代码编写,或者用户可能需要编写更多的代码量,那么Python Module就是正确的选择。

以上就是本次分享的全部内容,如您对本篇文章感兴趣,欢迎您发送邮件至ast.china@avl.com与我们进一步联系。

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1
2