技術貼 | 將Python代碼無縫集成到AVL CRUISE M模型中
將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




















