[發明專利]一種將C代碼封裝成FMU的方法及裝置有效
| 申請號: | 202011597097.0 | 申請日: | 2020-12-28 |
| 公開(公告)號: | CN112667242B | 公開(公告)日: | 2023-08-22 |
| 發明(設計)人: | 張橋;李京燕;何子中 | 申請(專利權)人: | 北京世冠金洋科技發展有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 尹秀 |
| 地址: | 100193 北京市海淀區東北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 代碼 封裝 fmu 方法 裝置 | ||
1.一種將C代碼封裝成FMU的方法,其特征在于,包括:
在接收到封裝請求的情況下,獲取所述封裝請求中包含的待封裝C代碼;
基于FMI標準接口將所述待封裝C代碼封裝為動態鏈接庫文件;
基于預設的描述性模板生成與所述待封裝C代碼對應的描述性文件;
對所述動態鏈接庫文件和所述描述性文件進行打包,得到FMU;
其中,基于FMI標準接口將所述待封裝C代碼封裝為動態鏈接庫文件,包括:
將所述待封裝C代碼的用戶算法進行封裝,得到業務Cpp;
將預設的FMI模板文件與目標Cpp文件中的對應接口建立關聯,其中,所述目標Cpp文件用于調用所述業務Cpp;
基于預設的編譯器對所述業務Cpp、所述預設的FMI模板文件和所述目標Cpp文件進行編譯,得到動態鏈接庫文件;
其中,將所述待封裝C代碼的用戶算法進行封裝,得到業務Cpp,包括:
讀取所述待封裝C代碼中參數,將所述參數添加到Init(param)中;
讀取所述待封裝C代碼中的輸入參數,將所述輸入參數添加到SetValue(param)中;
讀取所述待封裝C代碼中的運算邏輯,將所述運算邏輯添加到DoStep()中;
讀取所述待封裝C代碼中的輸出結果,將所述輸出結果基于GetValue()反饋;
其中,基于預設的描述性模板生成與所述待封裝C代碼對應的描述性文件,包括:
獲取所述預設的描述性模板中包含的各個參數,其中,所述各個參數至少包括:FMU基本屬性、ModelExchange?和?CoSimulation?節至少一個、ModelVariables節和ModelStructure節;
設置所述FMU基本屬性中的GUID;
對所述業務Cpp進行解析,獲取與所述ModelVariables節和所述ModelStructure節相關聯的參數,將所述參數添加到所述ModelVariables節和所述ModelStructure節。
2.根據權利要求1所述的方法,其特征在于,所述FMU中還包括:?Model.png、Documentation、Sources和Resources中的至少一個。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京世冠金洋科技發展有限公司,未經北京世冠金洋科技發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011597097.0/1.html,轉載請聲明來源鉆瓜專利網。





