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

Technical Articles

技術(shù)文章

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

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

更新時間:2024-07-10      點擊次數(shù):1600

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


一、相關(guān)配置

OS:Ubuntu22.05

仿真軟件:aiSim 5.2.0


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


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


二、操作步驟

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


頭文件:


1、實例化

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

fmi2Component fmi2Instantiate(  

fmi2String /*實例名稱*/,

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

fmi2String /*標識符*/,

fmi2String /*資源位置*/,

const fmi2CallbackFunctions* /*回調(diào)函數(shù)*/,

fmi2Boolean /*是否可見*/,

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

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

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

returen &only_one_car; //預(yù)先定義的全局SimpleCar對象only_one_car

}


2、FMU交互

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


① 獲取類型

獲取實數(shù),通過遍歷引用數(shù)組vr,獲取對應(yīng)的值并存儲。

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;

}

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。


② 設(shè)置類型

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

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;

}

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。


③ 執(zhí)行仿真

獲取實聯(lián)合仿真函數(shù)(CO),可以是根據(jù)之前實數(shù)和證書引入導(dǎo)數(shù)計算,又或是引入仿真步驟的執(zhí)行和取消數(shù),通過遍歷引用數(shù)組vr,獲取對應(yīng)的值并存儲。

比如執(zhí)行仿真步驟,其中DoStep將會在Simple_car.cpp中實現(xiàn):

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

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

return fmi2OK;

}

同樣還能夠?qū)崿F(xiàn)獲取整數(shù)、布爾值和字符串值。


3、初始化和釋放

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


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


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

400-999-3848
歡迎您的咨詢
我們將竭盡全力為您用心服務(wù)
3634354716
關(guān)注微信
版權(quán)所有 © 2026 廣州虹科電子科技有限公司  備案號:粵ICP備15080866號
主站蜘蛛池模板: 欧美成人片一区二区三区 | 亚洲国产精品无码中文字满 | 精品久久久久久久久久久久久久久久久久 | 高跟av| 色婷婷久久久亚洲一区二区三区 | 欧美黄色大全 | 精品国产免费一区二区三区香蕉 | 欧美性xxxxxx| 久久精品人人做人人爱爱 | 99在线精品视频高潮喷吹 | 干干日日 | 亲嘴扒胸摸屁股激烈网站 | 激情欧美日韩一区二区 | 婷婷色婷婷开心五月 | 岛国一区二区三区 | 精品动漫一区二区三区 | 五月激情av | 精品国产男人的天堂久久 | 尤物在线精品视频 | 吃奶摸下激烈床震视频试看 | 国产精品jizz在线观看美国 | 国产精品99无码一区二区 | 99热这里只有精品99 | 精品免费一区二区在线 | 亚洲加勒比久久88色综合 | 国产精品免费高清在线观看 | 无码人妻少妇伦在线电影 | 亚洲欧美色国产综合 | 免费无码成人av电影在线播放 | 国产亚洲精品字幕在线观看 | 九九热视频在线 | 成人无码视频在线观看网站 | 中文字幕日韩亚洲 | 最新国产av最新国产在钱 | 亚洲vav在线男人的天堂 | 国模冰莲大胆自慰难受 | 国产精品国产三级国产aⅴ下载 | 欧美性生活一级 | 亚洲精品人成无码中文毛片 | 欧美狂野乱码一二三四区 | 国产美女被遭强高潮免费一视频 | 欧美日韩中文字幕在线视频 | 色一区二区 | 中文字幕网伦射乱中文 | 性欧美性另类巨大 | 国产做受高潮漫动 | 亚洲成人精品久久 | 99热国产| 999www| 免费国产作爱视频网站 | 国产熟妇高潮叫床视频播放 | 成人影片麻豆国产影片免费观看 | 国产精品制服一区二区 | 亚洲精品国产欧美在线观看 | 亚洲欧美网站 | 女人被做到高潮视频 | 在线高清免费不卡全码 | 性大片免费视频观看 | 国产91免费在线观看 | 免费在线观看黄 | 50岁熟妇的呻吟声对白 | 亚洲婷婷五月综合狠狠app | 嫖妓大龄熟妇正在播放 | 婷婷午夜精品久久久久久性色av | 国产国语性生话播放 | 免费看成人午夜福利专区 | 操皮视频| 亚洲性夜色噜噜噜网站2258kk | 欧美成人免费观看视频 | 精品国产乱码久久久久久软件大全 | 久久久久国产精品人妻aⅴ毛片 | 欧美亚洲日韩不卡在线在线观看 | 亚洲色无码中文字幕yy51999 | 日韩a∨无码中文无码电影 久操影视 | 三区在线视频 | 东方aⅴ免费观看久久av | 久操免费视频 | 在线a网| 亚洲精品午夜无码电影网 | 国产精品成 | 最近中文字幕mv在线mv视频 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 亚洲国产综合视频 | 免费黄色资源 | 中文字幕乱码一区二区免费 | 亚洲免费成人 | 三级网站免费 | 国产视频亚洲 | 波多野吉衣久久 | 男人的天堂中文字幕熟女人妻 | 看片地址 | 国产欧美激情 | 亚洲黄色一区二区 | 国产在线麻豆精品观看 | 国产精品视频一区二区三区四区国 | 日本午夜网 | 国产一区二区免费在线 | 成 人片 黄 色 大 片 | 四虎影视永久免费观看 |