仿真技術的困境
隨著科技的發展,我國在安全攸關領域對于嵌入式軟件的應用日益廣泛,并且對于軟硬件的性能及可靠性等方面要求變得更高。面對各種復雜的系統設計所提供的設計和分析手段也逐漸完善,其中仿真技術在近幾年越來越受到重視,其在西方發達國家的多個工業領域中,都得到了廣泛的應用。
仿真技術的成熟應用為復雜的系統設計提供了貫穿V流程的全生命周期的分析手段,它可以作為實物實驗的有效補充手段,能夠在仿真可信度較高的情況下有效降低實物實驗的次數,大大節省成本并提高實驗效率。但是仿真技術發展至今,在取得工程應用認可的同時,也出現了一些不足和亟待改善的地方,例如下圖所示。
▲圖1. 仿真工具碎片化
亟待解決的問題:
1)目前全國各單位部門都有自己的仿真工具,這些仿真工具可能是自己開發的可能是采購的,樣式五花八門,協議各有不同,如果不是事先設計好,很難相互聯合仿真,造成了工具碎片化的問題,這就很可能要投入很多的精力去解決這些模型的重用和維護等問題,引起嚴重的成本浪費。
2)在聯合仿真的過程中,供應商也要解決代碼的知識產權保護問題,如何讓別人在不接觸模型代碼的情況下完成聯合仿真也成為了亟待解決的問題。
什么是FMI
為解決上述問題,歐洲仿真屆提出了FMI標準,FMI標準的全稱是Functional Mock-up Interface,它是一個不依賴于工具的標準,其通過XML文件和已編譯的C代碼的組合來同時支持動態模型的模型交換(Model Exchange)和聯合仿真(Co-Simulation)。
系統集成商和供應商都遵循FMI標準,供應商各自的仿真模型通過FMI標準生成FMU模型交給集成商,集成商可以使用FMU聯合仿真軟件快速構建系統模型,不用再提前開發定制接口。同時,FMI標準也提供了FMU模型導出加密的方法,供應商也不用擔心產品泄密等安全問題。
▲圖2.基于FMI標準的系統集成環境
FMI標準包含兩種模型重用的方式:Model Exchange(模型交換)和Co-Simulation(聯合仿真)。模型交換不包含求解器,只包含輸入/輸出接口以及模型的相關信息。聯合仿真則包含求解器,這是兩者之間的主要區別。
▲圖3.模型交換方式
其中聯合仿真又包含三種模式,分別是代碼導出方式、工具耦合方式、分布式方式。
(1) 代碼導出方式:
導出的FMU文件脫離原導出工具,使用時無需原導出工具的License限制,主控軟件可以同時控制多個FMU模型求解。
▲圖4.代碼導出方式
(2) 工具耦合方式:
導出的FMU文件綁定原導出工具的License,FMU文件只作為聯合仿真的接口封裝和數據對接,模型的實際求解還在原導出工具中,中控軟件與從屬軟件只負責各自的求解。
▲圖5.工具耦合方式
(3) 分布式方式:
除包含工具耦合方式的所有特點外,還可以在多個平臺進行聯合仿真。
▲圖6.分布式方式
FMI在SkyEye中的應用
迪捷軟件的軟件測試和仿真工具SkyEye,中文全稱天目全數字實時仿真軟件,是基于可視化建模的硬件行為級仿真平臺,支持用戶通過拖拽的方式對硬件進行行為級別的仿真和建模。
目前SkyEye采用分布式方式創建的FMU模型,將FMI封裝的模型庫通過網絡的方式與遠端的SkyEye進行通訊。SkyEye仿真嵌入式硬件環境運行嵌入式軟件進行求解等操作。
創建FMU模型主要需要實現包含了描述模型接口信息和數據的XML文件、實現模型動態行為功能的C代碼或二進制文件和其他用戶希望包含在FMU中的文件和數據。
XML文件描述了FMU 模型的版本、ID、輸入、輸出等信息,需要實現如下圖中節點信息。
▲圖7.XML文件描述
C代碼或二進制文件實現了模型的控制行為等接口,需要按照要求實現如下圖中所有函數。
▲圖8.FMI函數信息
在上述函數中實現了對SkyEye的操作如時間控制、值的獲取、設置值、重啟等操作。
總結
FMI為集成商和供應商提供了一套統一的接口標準,解決了工具碎片化導致的各種問題。迪捷軟件的SkyEye對于FMI標準的支持也極大的方便了客戶的集成仿真。SkyEye能根據實際的工程需求實現更多的應用場景,滿足客戶的更多集成需求。