亚州一区二区三区中文字幕国产精品-日韩人妻一区二区三区蜜桃视频-亚洲中文字幕久久无码精品-午夜精品亚洲一区二区三区嫩草-日韩人妻一区二区三区蜜桃视频-国产一区二区精品高清在线观看-国产欧美日韩综合精品一区二区

廣州虹科電子科技有限公司

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

時間:2024-7-24 閱讀:833
分享:

在上一篇文章:,我們講述了在構建FMU中,如何通過fmi_simple_car.cpp來實現FMI2.0,即如何實現一個簡單的車輛模型來進行車輛動力學仿真。今天康謀接著展示如何通過simple_car.cpp和simple_car.h構建車輛模型本身。


一、操作步驟

首先simple_car.cpp主要構建了車輛所需的多個動力學參數,包括底盤的位姿、車輪的狀態等,而simple_car.h提供多個函數來實現基于FMI2.0標準將參數寫入到車輛中。



simple_car.cpp主要分為三部分:

  • 初始化車輛動力學參數

  • 計算參數并更新車輛的運動變化

  • 根據車輛的位姿計算車輪的坐標

在頭文件中,除了定義相關函數外,還提供了車輛的一些靜態參數,用于協助動力學參數的計算,比如給定車輛的轉向傳動比、軸距、最大附著加速度、車輪半徑等。


圖1 (1).png


1、實例化

我們來看一個simple_car.cpp中實現車輛狀態更新的簡單示例:

const double wheel_angle =val_refs[STEERING_ANGLE] / m_steer_transmission_ratio;

const double curvature = wheel_angle / m_wheelbase

const double yaw_rate = curvature * val_refs[CHASSIS_SPEED]


這三個分別計算了轉向角、曲率和偏航率。基于這個三個值,再結合車輛的靜態參數,我們可以計算并推算出其他的車輛運動姿態參數。



我們也會通過加速踏板和剎車踏板的狀態來計算車輛(底盤的縱向加速度),其中m_max_adh_acc為在頭文件中預先定義的最大附著加速度:


if val_refs[BRAKE_PEDAL_POSITION] < 0.0


{

val_refs[CHASSIS_LONGITUDINAL_ACCELERATION] = val_refs[BRAKE_PEDAL_POSITION] * m_max_adh_acc;

}



可以注意到我們使用了宏定義的[STEERING_ANGLE]、[CHASSIS_LONGITUDINAL_ACCELERATION]和[BRAKE_PEDAL_POSITION]。



使用這一方式的原因:一是為了計算不同參數時清晰明了,此外更重要的是這和FMU中的modelDescription.xml文件所對應,modelDescription.xml規定了FMU的結構,其結構可以參考FMI系列的第二篇文章。



2、關注參數

在XML文件中,需要關注的參數類型為name和valuReference,STEERING_ANGLE這一name對應的valuReference值為3,那么為了方便我們使用這些參數,可以把這些定義的宏寫入到value_reference_ids.h中,當然也可以寫入simple_car.h這一頭文件里。

圖2 (1).png


3、Cmake 編譯


在完成simple_car.cpp、simple_car.h和FMU描述文件modelDescription.xml文件的構建,最后一步就是要將其編譯成為所需FMU文件并生成我們的動態庫文件(.so/.dll)。




我們采用Cmake來進行編譯,除了定義源文件、添加庫、特定目錄、鏈接庫(主要是glm和fmi2_interface)以外,我們還需要針對FMI平臺進行配置:


圖3 (1).png


以上就是基于FMI2.0構建FMU的全部內容,在下一期中我們將介紹在仿真軟件aiSim中通過車輛動力學API來實現和FMU的聯合仿真。


會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏!
標簽:
保存成功

(空格分隔,最多3個,單個標簽最多10個字符)

常用:

提示

X
您的留言已提交成功!我們將在第一時間回復您~
撥打電話 產品分類
在線留言
主站蜘蛛池模板: 财经| 铜鼓县| 和政县| 遂溪县| 呼和浩特市| 稷山县| 孝义市| 屯留县| 太谷县| 普兰店市| 湛江市| 河南省| 察雅县| 亚东县| 丰镇市| 刚察县| 大竹县| 南平市| 江北区| 崇礼县| 万安县| 安顺市| 县级市| 西昌市| 桂阳县| 罗江县| 吉安市| 北票市| 科技| 灌南县| 陕西省| 沾益县| 长阳| 松滋市| 盐池县| 贞丰县| 锦州市| 麻阳| 台中市| 株洲县| 疏附县|