91小视频网站 I 免费性色视频 I 国语一区二区 I 美日韩一级大片 I 琪琪综合网 I 波多野结衣av在线无码中文18 I 麻豆国产精品va在线观看不卡 I 欧洲无码一区二区三区在线观看 I 香蕉久久a毛片 I 色网站在线观看视频 I 亚洲欧洲日产国码久在线 I 四库影院永久国产精品地址 I 精品无码人妻一区二区免费蜜桃 I 性高潮免费视频 I 日韩 欧美 中文 I 国产最新av在线播放不卡 I 97精品免费公开在线视频 I 亚洲日本午夜 I 91精品国产91久久久 I 久久久国产精品va麻豆 I 国产xx在线观看 I 久久精品中文字幕无码绿巨人 I 久久精品99无色码中文字幕 I 日本五十路岳乱在线观看 I 2021年精品国产福利在线 I 亚洲夜夜爱 I 毛片女人18片毛片女人免费 I 巨骚综合 I 激情伊人五月天久久综合 I 久久免费99

Technical Articles

技術文章

當前位置:首頁  >  技術文章  >  康謀分享 | 自動駕駛聯合仿真——功能模型接口FMI(三)

康謀分享 | 自動駕駛聯合仿真——功能模型接口FMI(三)

更新時間:2024-07-10      點擊次數:1158

在之前的兩篇文章中(文末往期回顧中可查看),我們主要介紹了功能模型接口FMI的主要組成部分和一些使用場景,今天就以康謀自動駕駛仿真軟件aiSim為例,來展示一下如何建立一個FMU并實現基于UDP和FMI聯合仿真(co-simulation)數據通信。


一、相關配置

OS:Ubuntu22.05

仿真軟件:aiSim 5.2.0


首先是要構建所需要的FMU,在一些動力學仿真軟件上,如CarSim,可以直接導出動力學模型對應的FMU文件,但本次我們基于C++從零構建FMU文件。


需要編輯的6份文件分別是:


二、操作步驟

首先是fmi_simple_car.cpp文件主要包含了6個部分,最終實現為模擬控制一個簡單的車輛模型,包括了實例化、設置參數,執行仿真步驟以及獲取和設置模型參數的功能。


頭文件:


1、實例化

實例化FMU,在之前的文章中我們以C語言為例,本次采用C++來做示范。

fmi2Component fmi2Instantiate(  

fmi2String /*實例名稱*/,

fmi2Type fmuType /*實例類型(ME/CO)*/,

fmi2String /*標識符*/,

fmi2String /*資源位置*/,

const fmi2CallbackFunctions* /*回調函數*/,

fmi2Boolean /*是否可見*/,

fmi2Boolean /*是否啟用日志*/)

{/*此處可以與用判斷車輛實例是否在使用、檢查FMU的類型是ME模型交換還是CO聯合仿真、執行實例化車輛*/

car_is_used = True; //預先設置的標志變量,用于表示表示車輛是否正在使用

returen &only_one_car; //預先定義的全局SimpleCar對象only_one_car

}


2、FMU交互

實例化完成后,我們要實現一系列函數用于FMU交互的具體實現,主要包含獲取和設置變量,執行仿真步驟等。


① 獲取類型

獲取實數,通過遍歷引用數組vr,獲取對應的值并存儲。

fmi2Status fmi2GetReal(fmi2Component /*c*/, const fmi2ValueReference vr[], size_t nvr, fmi2Real value[]){

for (size_t i = 0; i<nvr; ++i)    {

value[i] = only_one_car.GetValue(vr[i]);  

}  

return fmi2OK;

}

同樣還能夠實現獲取整數、布爾值和字符串值。


② 設置類型

設置實數,同樣通過only_one_car.SetValue(vr[i], value[i])設置對應的值。

fmi2Status fmi2SetReal(fmi2Component /*c*/, const fmi2ValueReference vr[], size_t nvr, const fmi2Real value[]){

for (size_t i = 0; i<nvr; ++i)    {

only_one_car.SetValue(vr[i], value[i]);

}

return fmi2OK;

}

同樣還能夠實現獲取整數、布爾值和字符串值。


③ 執行仿真

獲取實聯合仿真函數(CO),可以是根據之前實數和證書引入導數計算,又或是引入仿真步驟的執行和取消數,通過遍歷引用數組vr,獲取對應的值并存儲。

比如執行仿真步驟,其中DoStep將會在Simple_car.cpp中實現:

fmi2Status fmi2DoStep(fmi2Component /*c*/, fmi2Real /*currentCommunicationPoint*/, fmi2Real communicationStepSize, fmi2Boolean /*newStep*/){    

log_to_file("fmi2DoStep()");    only_one_car.DoStep(communicationStepSize); 

return fmi2OK;

}

同樣還能夠實現獲取整數、布爾值和字符串值。


3、初始化和釋放

除此之外,我們還需要注意在仿真過程中FMU實例的初始化和釋放。


比如我們可以簡單的通過設置car_is_used= false實現實例的釋放,可以通過only_one_car = SimplerCar()來實現FMU的重置,其中SimplerCar類的具體實現在simple_car.cpp中。


以上就是基于FMI2.0實現車輛模型時所需的基本內容,剩余的內容我們將在后續的文章中進行分享。

400-999-3848
歡迎您的咨詢
我們將竭盡全力為您用心服務
3634354716
關注微信
版權所有 © 2025 廣州虹科電子科技有限公司  備案號:粵ICP備15080866號
主站蜘蛛池模板: 在线播放的av | 99热这里只有精品4 九月丁香婷婷 | 中文字幕 日韩欧美 | 亚洲中久无码永久在线观看同 | 久草手机在线播放 | 国产精品毛片在线完整版sab | 国产精品视频在线看 | 97超碰中文字幕久久精品 | 国产精品久久久久久久网 | 亚洲国产长腿丝袜av天堂 | 色婷婷亚洲一区二区三区 | 无码av动漫精品一区二区免费 | 色综合天天综合色综合av | 制服肉丝袜亚洲中文字幕 | 免费国产作爱视频网站 | 黄色三级免费网址 | 夜夜嗨av 禁果av 粉嫩av懂色av | 日韩精品卡通动漫网站 | 国产毛片不卡野外视频 | 国产果冻豆传媒麻婆精东 | jvid福利写真一区二区三区 | 亚洲欧美成aⅴ人在线观看 日韩中文字幕视频在线 | 中文字幕漂亮人妻熟睡中被公侵犯 | 欧美精品1 | 二宫光在线播放88av | 91麻豆网站 | 青青草国产成人久久 | 国产成人午夜视频 | 国产精品久久久久潘金莲 | 4455永久免费视频 | 久久香蕉国产线看观看亚洲小说 | 天天色欧美 | 亚洲中文字幕日产无码 | 国产精品无码av不卡顿 | 精品国产精品国产自在久国产 | 色五月丁香六月欧美综合 | 日日夜夜天天综合 | 91精品久久久久久久久青青 | 久久www免费人成看片高清 | 亚洲无线看 | 毛片基地在线播放 | 国产女人水真多18毛片18精品 | 亚洲欧美一区二区视频 | 天堂亚洲网 | 黄色网在线看 | 日本香港三级亚洲三级 | 国产真实高潮太爽了 | 双乳奶水饱满少妇呻吟 | 久久久久青草线蕉亚洲麻豆 | 一本无码字幕在线少妇 | 一本久道视频一本久道 | 国产免费观看高清视频 | 国产精品高清一区二区不卡 | 九九国产在线视频 | 国产偷抇久久精品a片69麻豆 | 国产精品伦理 | 国产一区二区 | 久久99精品国产麻豆婷婷 | 日本又紧又色又嫩又爽的视频 | 国产成人精品一区二区在线 | 成年在线免费视频 | 久久久久久久久久99 | 黄在线免费观看 | 黄片毛片一级片 | 亚洲ⅴ欧洲第一的日产av | 天天久 | 高清不卡视频 | 免费直接观看黄色 | 成人做爰视频免费高清 | 丰满少妇人妻无码专区 | 亚洲制服丝袜精品久久 | 丁香婷婷六月综合交清 | 久久久www影院人成_免费 | 大陆极品少妇内射aaaaa | 婷婷色影院 | 夜夜躁日日躁狠狠久久88av | 久久久久国产精品人妻aⅴ免费 | 伊人av免费 | 久久国产精品区 | 欧美熟妇乱子伦xx视频 | 亚洲色无码中文字幕yy51999 | 亚洲一区二区三区日本久久九 | deos| 欧美aa一级 | 9.1成人看片免费版 亚洲精品免费播放 | 潮喷失禁大喷水av无码 | 精品国产一区二区三区免费 | 国产做爰xxxⅹ久久久小说 | 亚洲三级大片 | 欧美一区| 99久久精品国产片果冻的功能特点 | 欧美日韩中文字幕在线视频 | 中国美女黄色一级片 | 亚洲偷精品国产五月丁香麻豆 | 国产精品自在线拍国产手机版 | 91xxx在线观看 | 污软件导航 | 老司机精品视频一区二区 | 亚洲网站在线免费观看 |