Carsim基本介绍-Path and Road Surfaces - 1

Carsim中的车辆模型在3D路面上运动,遵循全球坐标系。模型通过参考路径进行运动,道路表面涉及几何特性和摩擦系数。路径由连续的S-L坐标系定义,支持50个参考路径和道路表面。路径构建包括段的连接,VS提供了多种界面进行路径定义和坐标转换。驾驶员和目标模型依赖参考路径确定运动轨迹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     carsim中的3D模型都是在3D路面上,由驾驶员/骑手控制的。模型的运动方程都是根据全局X-Y-Z坐标系计算的。所有的位置,速度,加速度都是可以在全局坐标系下得到的,某些情况下,局部坐标系下也可以得到。

    在大多数的仿真中,模型是跟随者相关的路径来运动的,轮胎与路径周围的地面相接触。“道路表面”这一概念,主要是指道路特性(几何特征和摩擦系数)。VS道路是由树平面上位置、梯度连续的VS路径所创造出坐标系的一种表达。

    为了能够用坐标系表达出路面的几何特性,VS参考路径被用来定义车辆模型和转向控制器的路径追踪。

   VS模型支持50个参考路径和50个道路表面。道路表面之间和一链接起来,来高效的描述表面的几何特性金和摩擦。

   1. 参考路径

   参考路径是指在水平面上位置和梯度都连续的线。参考路径的目的是给位置提供一个2D坐标系。路径坐标系是驻点S(沿着道路的长度)和侧向位置L。在道路坐标系中,S坐标是沿轴向固定的,但是不一定就必须是直的,L坐标也是根据一条轴线,方向距离都是可变的。


  S可能会长达数百到几千米,但L只能在一定范围内,比如道路的宽度。

    与路径相关的S-L坐标系在VS中的主要用途:

  1.     减少闭环转向控制器所使用的前瞄点的在坐标系中L的绝对值。
  2.     目标可以由S-L来定位
  3.     Lanes可以由参考路径的L来定义,或者有配置函数LTARG
  4.     参考路径所对用道路的高度和摩擦都可以由S-L来定义

VS参考路径是由一系列的连续路径组成的。

2.    坐标转换

    VS可以完成X-Y到S-L和S-L到X-Y两种坐标的互相转换。

3.    使用参考路径

    驾驶员模型和目标模型使用参考了路径来定义模型的运动。

    VS有5个配置界面来定义参考了路径:

  1. Path: Segment Builder
  2. Path: X-Y Coordinates
  3. Path: X-Y Coordinates for Segment
  4. Path: X-Y Coordinates (Legacy)
  5. Path/Road: Segment Builder (Legacy) 

The Path Segment Builder Screen


    路径是从初始全局位置(X和Y坐标)开始的段构建的,为了保持路径的连续性,各个段的首位要互相连接。

参数:

### MATLAB与CarSim联合仿真实现控制仿真 #### 设置CarSim路径 为了在MATLAB中使用CarSim进行车辆动力学分析,首先需要正确配置CarSim的路径。以下是具体的代码示例: ```matlab % 添加CarSim安装目录到MATLAB路径 carsimPath = 'C:\Program Files\CarSim R2023a'; % 替换为实际安装路径 if ~ispc carsimPath = '/usr/local/CarSim/R2023a'; % 如果是在Linux/Mac环境下运行 end addpath(fullfile(carsimPath, 'bin')); savepath; disp('CarSim路径已成功添加'); ``` 上述代码实现了将CarSim的二进制文件夹添加至MATLAB路径的功能[^1]。 --- #### 联合仿真基础 MATLAB与CarSim可以通过接口实现无缝连接,从而完成复杂场景下的车辆控制系统开发和验证。例如,在自动驾驶领域常用的自动紧急制动(AEB)算法测试中,可以利用MATLAB的强大计算能力以及CarSim的真实动态响应特性来评估系统的性能[^2]。 以下是一个简单的AEB算法测试框架: ```matlab function aebTest() % 初始化CarSim模型 sim('carSimModel'); % 定义控制器参数 kp = 1; ki = 0.1; kd = 0.5; % PID控制器增益 % 获取传感器输入信号 distanceToObstacle = getDistanceSensorData(); % 假设函数获取障碍物距离 currentSpeed = getCurrentVehicleSpeed(); % 当前车速 % 计算目标减速度 error = desiredStoppingDistance - distanceToObstacle; dError_dt = (error - prevError) / dt; % 微分项 integralSum = integralSum + error * dt; % 积分项 targetDeceleration = kp * error + ki * integralSum + kd * dError_dt; % 输出控制指令给CarSim setBrakeCommand(targetDeceleration); end ``` 此代码片段展示了如何通过PID控制器调节刹车力度以实现AEB功能。 --- #### 高级应用:基于模型预测控制(MPC) 对于更高级的应用需求,比如自适应巡航控制(ACC),则可能需要用到模型预测控制技术。下面是一段简化版的MPC实现思路: ```matlab % 创建MPC对象并指定状态空间矩阵 plant = ss(A,B,C,D); mpcobj = mpc(plant,Ts); % 设定约束条件 mpcobj.MV.Min = -1; % 输入最小值 mpcobj.MV.Max = 1; % 输入最大值 mpcobj.OV.Min = [-Inf,-Inf]; mpcobj.OV.Max = [ Inf, Inf]; % 运行仿真 simOut = sim(mpcobj,N,x0,u0,[],[],'closedloop'); % 将结果传递回CarSim setThrottleCommand(simOut.u(:,1)); setSteeringAngle(simOut.u(:,2)); ``` 这段脚本说明了如何结合MATLAB/Simulink中的MPC工具箱与CarSim共同搭建一个支持主动避障及跟随功能的虚拟平台[^3]。 --- #### 总结 以上分别介绍了从基本路径设置到具体应用场景下不同层次的技术细节。无论是初学者还是有经验的研究人员都可以从中找到适合自己的切入点来进行深入探索。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值