超碰偷拍-一区二三区在线 | 中国-jlzzjlzz亚洲女人-国产十八禁在线观看免费-久久久受-亚洲青涩在线-乱视频在线观看-91在线亚洲-天堂va欧美ⅴa亚洲va免费-国产成人精品福利一区二区三区-91大神视频在线播放-欧美福利影院-色欲色欲日韩www在线观看-av夜夜-亚洲综合精品在线

Technical Articles

技術文章

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

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

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

在之前的兩篇文章中(文末往期回顧中可查看),我們主要介紹了功能模型接口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| 国精产品一品二品国在线 | 亚洲国产综合无码一区 | 永久免费看啪啪网址入口 | 鸭子tv国产在线永久播放 | 午夜不卡无码中文字幕影院 | 亚洲色偷偷色噜噜狠狠99网 | 中文字幕5页 | 志在出位国语完整在线观看 | 亚洲日韩在线观看免费视频 | 一级特黄a大片免费 | 国产精品1区2区3区在线观看 | 成人免费视频观看 | 日韩激情一区 | 天天操夜夜拍 | 五月婷婷俺也去 | 午夜成人亚洲理论片在线观看 | 苍井空浴缸大战猛男120分钟 | 天天干,天天操,天天射 | 国产九九在线 | 午夜欧美理论2019理论 | 无码av片av片av无码 | 中文乱码人妻系列一区二区 | 久久久亚洲综合久久久久87 | 欧美在线网站 | 欧美亚洲色倩在线观看 | 亚洲成av 人片在线观看无码 | 啊轻点内射在线视频 | 亚洲日韩精品无码专区网址 | 欧美成人精品网站 | 久久99精品国产麻豆不卡 | 国产精品美女在线观看 | 1000部啪啪未满十八勿入下载 | 国产欧色美视频综合二区 | 超碰国产精品久久国产精品99 | 国产成人久久综合第一区 | 国产成人免费无码视频在线观看m | 麻豆国产97在线 | 中文 | 国产你懂的 | av在线播放日韩亚洲欧我不卡 | 久久精品囯产精品亚洲 | 成人av一区二区三区 | 又大又长粗又爽又黄少妇毛片 | 精品人妻无码专区中文字幕 | 西西大胆午夜人体视频 | 日本高清免费毛片久久 | 国产超碰人人爽人人做av | 免费国产一二三区四区乱码 | 蜜桃臀无码内射一区二区三区 | 国产大奶在线 | 成人无码a片一区二区三区免 | 免费国产又色又爽又黄的网站 | 中出人妻中文字幕无码 | 中文字幕无码不卡在线 | 欧美精品高清在线观看 | 国产欧美日韩另类 | 亚洲国产成人精品无码区软件 | 欧美a视频在线观看 | 91成人一区| 久久亚洲精品中文字幕无码 | 国产天天操 | 国产无套精品一区二区 | 小视频国产| 天天操天天玩 | 欧美日韩无线码在线观看 | 伊人狠狠色丁香婷婷综合 | 成人av免费播放 | 毛片精品 | 96精品国产| 又硬又粗进去好爽免费 | 国产麻豆天美果冻无码视频 | 成年男人午夜片 | 亚洲福利网 | 国产传媒在线视频 | 超碰2023 | 亚洲日本在线在线看片 | 日本黄色一级视频 | 亚洲鲁丝片一区二区三区 | 一区二区亚洲精品国产精华液 | 99re9| 免费专区丝袜调教视频 | 森泽佳奈中文字幕 | 超碰按摩| 国产精品国语对白露脸在线播放 | 久久午夜影视 | 一区二区不卡视频在线观看 | 超碰av在线播放 | 人妻熟女αⅴ一区二区三区 | 亚洲一级在线观看 | 日日狠狠久久 | 国产熟妇精品高潮一区二区三区 | 天堂网www在线资源最新版 | 狠狠色丁香久久综合婷婷 | 99精品色 | 人人玩人人添人人澡超碰 | 亚洲综合网站久久久 | 绝顶丰满少妇av无码 | 国产区精品系列在线观看 | 国内精品久久人妻无码妲己 |