技术贴 | 将Python代码无缝集成到AVL CRUISE M模型中
2025年9月12日 15:45将Python代码
无缝集成到AVL CRUISE™ M模型中
E-mail: cruise_support_china@avl.com
Author: Matej Adamcevic
Translator: Jing Peng
引言
在当今工程领域,比以往任何时候都更快捷、更灵活的时代,适应性和可定制化能力是不可或缺的功能。本文为大家介绍Python Function和Python 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 模块,并在全局工作区中定义变量和/或函数。
图 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示例一样。
图 2:示例 Python Module的实现
总结
可定制化和灵活性是AVL CRUISE M的灵魂之一。新的Python Function和Python Module组件遵循这一理念,让用户能够处理标准之外的应用。根据任务需求的不同,用户可能会选择在Python Function中进行快速简单的代码编写,或者用户可能需要编写更多的代码量,那么Python Module就是正确的选择。
以上就是本次分享的全部内容,如您对本篇文章感兴趣,欢迎您发送邮件至ast.china@avl.com与我们进一步联系。
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP




















