康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(四)

发布时间:2024-09-11  

一、操作步骤

首先simple_car.cpp主要构建了车辆所需的多个动力学参数,包括底盘的位姿、车轮的状态等,而simple_car.h提供多个函数来实现基于FMI2.0标准将参数写入到车辆中。


simple_car.cpp主要分为三部分:

  • 初始化车辆动力学参数

  • 计算参数并更新车辆的运动变化

  • 根据车辆的位姿计算车轮的坐标


在头文件中,除了定义相关函数外,还提供了车辆的一些静态参数,用于协助动力学参数的计算,比如给定车辆的转向传动比、轴距、最大附着加速度、车轮半径等。

wKgaomaga4qAaTULAAFYZldGreo680.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系列的第二篇文章:“康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(二)https://www.elecfans.com/d/3535805.html”。


2、关注参数

在XML文件中,需要关注的参数类型为name和valuReference,STEERING_ANGLE这一name对应的valuReference值为3,那么为了方便我们使用这些参数,可以把这些定义的宏写入到value_reference_ids.h中,当然也可以写入simple_car.h这一头文件里。

wKgZomagbGWAIYFqAAP_TDgDKig915.png

3、Cmake 编译

在完成simple_car.cpp、simple_car.h和FMU描述文件modelDescription.xml文件的构建,最后一步就是要将其编译成为所需FMU文件并生成我们的动态库文件(.so/.dll)。

我们采用Cmake来进行编译,除了定义源文件、添加库、指定目录、链接库(主要是glm和fmi2_interface)以外,我们还需要针对FMI平台进行配置:

wKgaomagbHuAWYReAAHfZ6od84Y167.png


以上就是基于FMI2.0构建FMU的全部内容,在下一期中我们将介绍在仿真软件aiSim中通过车辆动力学API来实现和FMU的联合仿真。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    )23d:底盘俯仰和侧倾分离的横向自行车模型(3)3d:具有3D刚性车身和独立车轮悬挂的横向轮胎模型(计算量很大)(4)拖车模型:用于牵引车辆(5)FMU:基于FMI对于车辆动力学的不同描述 整个联合仿真的......
    基于Simulink的汽车2自由度模型;本期采用Simulink建立汽车2自由度动力学模型。为了便于掌握汽车稳定性的基本特性,对汽车简化为线性二自由度的汽车模型,忽略转向系统的影响,直接......
    显,我们需要一个整车模型来参与仿真的过程,通常意义上,这个整车模型就是CarSim的RT版本。 基于第一章节的实时性探讨,我们同样可以使用非RT版本的CarSim,而仅仅通过实时调用CarSim相关......
    基于Simulink的汽车3自由度模型搭建;线性2自由度汽车模型是汽车操纵稳定性分析中最简单、最典型的模型。在汽车转向过程中,汽车的稳定性主要取决于侧向和横摆运动,但是......
    是一种用于实时嵌入式系统的开发和测试技术。汽车的车载系统一般由传感器——控制器——执行器构成,一般地,HiL硬件在环测试平台的测试对象是控制器,传感器信号、执行器信号以及其他通讯和负载信号由HiL测试平台提供,相当于将控制器置于仿真的......
    = G_trans_min;     return end 2、并联混合动力汽车仿真分析 发动机功率: 电动机功率: 电池SOC: 结果表明:基于Simulink搭建的并联混合动力汽车模型和所提出的仿真......
    输出信号通过电流驱动电路驱动电动机。 三、汽车转向系统模型 对于现在的汽车实验研究来说,转向系统模型是必不可少的,其作用是用来描述方向盘转角与前轮转角以及方向盘回正力矩之间的关系。转向系统模型关系到汽车动力学的仿真......
    设计 本节先介绍阿克曼小车模型,小车仿真设计包括SolidWorks和gazebo三维建模。 1.1.1 阿克曼小车 阿克曼小车是一款经典的车模,小车模型后轮是通过电机直驱,前轮......
    基于MATLAB仿真的车辆协调再生制动控制策略与集成线控制动系统开发;随着汽车电气化的发展,具有再生制动能力的电子液压制动(EHB)和电机(EM)的集成带来了在三种制动模式之间转换的挑战:电制......
    还涉及大量的设计布局选择和技术安全限制,需确保满足有关车辆上路的各方面标准。此外,各个地区对汽车的要求也不尽相同。 通过GenAI软件工具,汽车制造商仅需调整几个输入参数就能创建逼真的3D汽车模型,设计师还可以向GenAI提问......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>