首页/文章/ 详情

PanoCar高精度车辆动力学仿真软件介绍(一)

8月前浏览575

1.PanoCar软件介绍

车辆动力学模型与软件在车辆设计和开发过程中发挥着至关重要的作用,更是汽车电动化和智能化仿真测试不可或缺的重要工具。它对于预测车辆性能、优化车辆设计、提升行驶安全性与舒适度,减少能耗并满足环保要求,以及提高研发效率、降低成本等都具有重要的意义。
PanoCar作为一款自主研发的高精度、功能强大的车辆动力学仿真软件,不仅集成了复杂且精确的车辆动力学模型,而且还具备高效率仿真和高稳定性数值计算等特征,可在包括Windows/Linux等操作系统、NI、LinksBox等各类实时硬件平台,以及Matlab/Simulink等各种软件环境下满足大规模、长周期、稳定可靠的实时仿真需求,与国际主流车辆动力学仿真软件CarSim高度兼容且高度一致。
PanoCar以其精确的车辆模型、卓越的仿真性能、友好的操作体验和高度的可扩展性,赋能电动汽车和自动驾驶的仿真测试!

               

1) 车辆动力学模型简介

PanoCar集成了复杂的车辆动力学模型,可精确模拟车辆在各种道路和驾驶条件下的动态响应,包括不同路面状况、驾驶输入以及车辆系统之间的相互作用。无论是急加速、紧急制动还是高速转弯,PanoCar都能精确地捕捉车辆的瞬态和稳态运动特性,提供全面而深入的车辆性能分析:

(1)车辆底盘模型:车身动力学和车轮动力学模型;

(2)燃油动力传动系统模型:包括发动机模型、燃油消耗量模型、液力变矩器、自动变速器、分动器、差速器建模;支持前驱、后驱和四驱等各种动力驱动构型;   

(3)电驱动系统模型:包括电池模型、电机模型、电机效率模型、再生制动能量回收建模,支持前驱双电机、前驱单电机、后驱双电机、后驱单电机、四驱四电机、四驱双电机等分布式和集中式电驱动构型;

(4)转向系统模型:包括转向管柱、电动助力、齿轮齿条式转向器、转向主销、转向轮等典型转向系统的多刚体动力学建模,包括方向盘转角与扭矩两种控制输入模式,以及后轮转向系统模型;

(5)悬架系统模型:支持非线性弹簧力、阻尼力、上限位块和下限位块约束力等独立悬架力特性元件配置建模,以及悬架系统的非线性运动学特性(Kinematic)和弹性特性(Compliance)配置建模;

(6)制动系统模型:支持包括制动主缸压力、制动轮缸压力、制动热衰退等在内的典型制动系统建模,支持典型制动防抱死(ABS)控制系统等;

(7)驾驶员模型:支持闭环速度和路径跟随控制,支持变速箱挡位自动控制,支持方向盘转角与扭矩控制;

(8)3D道路路面模型:支持典型的基于X-Y坐标和S-L曲线坐标间的相互转换、基于S-L坐标的3D道路及其路面附着系数、滚动阻力系数等建模;

(9)空气动力学模型:支持三维空间空气阻力、升力、侧向力和力矩等建模;

(10)轮胎动力学模型:支持纵侧向复合行驶工况下轮胎力、轮胎弹性迟滞特性、低速行驶工况的建模,支持轮胎滚动阻力矩与功率平衡特性、以及轮胎力与轮胎压缩量或运动量之间关系的建模。

2)软件界面简介

PanoCar提供直观易用的图形界面,可通过直观的图形、生动的动画或详细的图表形式,快速了解车辆性能特点、发现潜在问题,并进行优化改进,从而全面评估并优化车辆操控稳定性、动力及燃油经济性、驾乘舒适性或运动平顺性等。   

PanoCar可根据仿真需求定制车辆模型,包括车辆尺寸、质量分布、悬挂系统特性、轮胎等参数的设置。支持用户自定义参数和扩展功能,可根据需求灵活地调整车辆参数、设置道路条件、配置控制系统等,从而构建精细的仿真工况,以评估不同类型和配置车辆的性能等。

车辆参数配置主页面

车体参数配置页面

动力传动系统参数配置页面(燃油+四驱)

发动机参数配置页面

四电机分布式电驱动参数配置页面

转向系统参数配置页面(激活后轮转向)

轮胎模型参数配置页面

3)数据后处理模块

PanoCar仿真数据后处理的图形渲染采用了功能强大的UE引擎,依托UE内置的Lumen全局光照系统实现逼真的画面动态光影与照明,通过Nanite技术结合PBR物理材质,真实还原了车辆外形、路面环境、障碍物以及远景。PanoCar在此基础上二次开发了专为车辆动力学仿真结果演示的动画软件“Animator”,包含便捷的动画播放控制、视角切换、场景呈现、参数显示、动态展示等功能,为精确、逼真地展示车辆动态行驶过程提供了强力的动画支撑。

动画(第三人称视角)

动画(驾驶室视角)

动画(第三人称视角)

4) I/O接口

PanoCar具备出色的可扩展性和可定制性,其车辆模型拥有丰富的输入输出接口,并附有详细的接口说明文档,支持程序通过I/O读写的方式接入外部算法模型,或者替换车辆子模型(例如:动力传动系统、制动系统、悬架弹簧与阻尼力原件等)。此外,PanoCar还可根据仿真需求进行功能定制和二次开发,以满足不同领域、不同项目的多样化和个性化仿真需求。

此外,PanoCar还与PanoSim无缝集成,通过友好便捷的图形界面操作,全面支持车辆各类环境传感器选配与安装、各类复杂道路与天气光照设置、交通场景设置、驾驶任务与智能驾驶员配置等,全面支持汽车各种工况和场景下的自动驾驶传感感知与决策规划、运动控制与执行等丰富且强大的仿真功能。

5)MATLAB/Simulink联合仿真

PanoCar作为一款功能强大的仿真软件,支持与包括Matlab/Simulink等在内的许多工程软件的无缝对接,通过高效、稳定的数据交换和协同仿真,支持与自动驾驶和智能网联等系统的集成与联合仿真。此外,PanoCar还内置丰富的MATLAB/Simulink测试用例模型,可帮助用户快速掌握车辆模型各子系统接口的物理意义与使用方法,部分测试用例如下:

仿真示例仿真示例(中文)仿真示例说明
ABS Controller制动防抱死控制器该示例可帮助用户了解制动轮缸压力控制的接口及使用方法

Aerodynamics

空气动力学模型

该示例用于测试环境风对车辆行驶动态的影响,帮助用户了解空气动力学六分力的接口及使用方法

Driver Model驾驶员模型

该示例为单点预瞄驾驶员模型,帮助用户了解方向盘输入接口及使用方法,以及如何集成用户自定义的外部车辆侧向控制算法

Electric Vehicle电驱动动力传动系统

该示例展示了一个双电机四驱动力传动系统,帮助用户了解如何使用自定义动力传动系统外部模型替换PanoCar默认内置模型

ESC Controller车身电子稳定性控制系统该示例展示了如何根据车身运动状态调节制动轮缸压力大小,以提高车辆侧向运动稳定性,帮助用户了解相关接口及使用方法
Longitudinal Acceleration Controller纵向加速度控制器

该示例展示了一个纵向PI控制器,帮助用户了解外部自定义纵向控制器接入、以及将加速与制动控制信号分离并作用于PanoCar

Magic Formula Tire Model魔术公式轮胎模型

该示例帮助用户了解如何接入外部自定义轮胎模型,以及轮胎六分力的接口及使用方法

Semi Active Suspension半主动悬架系统模型

该示例分别展示了一个半主动悬架和主动悬架等外部控制算法在PanoCar车辆模型中的接口及使用方法

Wave Road波浪路模型

该示例帮助用户了解如何将车辆动力学模型与外部道路的数据交互(轮胎接地点处的高程坐标、两个方向的导数信息)

OpenCRG Demo

OpenCRG道路信息导入模型

该示例帮助用户了解如何将车辆动力学模型与OpenCRG道路信息数据进行交互(轮胎接地点处的高程坐标、两个方向的导数信息)

VTD DemoVTD与PanoCar联合仿真接口模型该示例帮助用户了解如何将车辆动力学模型与VTD进行数据交互 

6)实时仿真(RT版本)

PanoCar具备高效的仿真速度和数值稳定性,可满足大规模、长周期稳定可靠的实时仿真需求。PanoCar可在各类硬件仿真平台上实现1ms数值积分步长的稳定运行,满足各类HIL系统仿真实时性要求。支持包括NI-RT等在内的各种实时仿真平台,提供PanoCar与实时机通讯配置界面,用户可根据需要设置车辆模型与外接模型的输入输出接口、与实时机的通讯协议、通讯地址等。 


来源:车路漫漫
ACT非线性二次开发系统仿真汽车电子MATLABUMSimulink电机Electric自动驾驶传动控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-10
最近编辑:8月前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 14粉丝 93文章 320课程 0
点赞
收藏
作者推荐

Carla中如何用创建激光雷达进行仿真?

大家好,我是李慢慢。这篇文章简单探索下Carla中激光雷达的仿真方法。通过本文,可以帮助您了解下Carla中激光雷达的建模过程,熟悉激光雷达的参数设置,并查看雷达的输出点云效果。本文参考官方教程链接如下:https://carla.readthedocs.io/en/latest/ref_sensors/#lidar-sensor官方对激光雷达(本文仅探索下旋转激光雷达)的介绍如下。这个旋转式激光雷达的属性定义如下:激光雷达输出数据属性:介绍完参考内容。以下开始搞事情。1、启动Carla服务器2、创建客户端3、客户端中创建主车4、主车上创建激光雷达5、获得激光雷达的输出1、Carla启动服务器。双击Carla图标打开Carla的服务器端界面(windows版,0.9.13版本),启动后的界面如下:2、创建客户端client = carla.Client('localhost', 2000)3、创建主车:my_world = client.get_world()# 获取当前世界中的蓝图库blueprint_library = my_world.get_blueprint_library()# 从蓝图库中筛选出来特斯拉的‘model3’ 这个车车bp = blueprint_library.filter('model3')[0]# 从地图中选择一个生成点spawn_point = my_world.get_map().get_spawn_points()[0]# 利用车辆蓝图和地图生成点,创建车辆vehicle_ego = my_world.spawn_actor(bp, spawn_point)# 设置车辆为自动驾驶模式vehicle_ego.set_autopilot(True)4、在主车上创建激光雷达:lidar_bp = my_world.get_blueprint_library().find('sensor.lidar.ray_cast') # 获得激光雷达蓝图lidar_bp.set_attribute('range', '100') # 设置激光雷达属性:探测距离lidar_bp.set_attribute('upper_fov', '30') # 设置激光雷达属性:fov上边界lidar_bp.set_attribute('lower_fov', '-30') # 设置激光雷达属性:fov下边界lidar_bp.set_attribute('horizontal_fov', '360') # 设置激光雷达属性:水平fov角度lidar_bp.set_attribute('channels', '32') # 设置激光雷达属性:多少线束lidar_bp.set_attribute('rotation_frequency', '60') # 设置激光雷达属性:旋转频率lidar_transform = carla.Transform(carla.Location(x=0, y=0, z=2.4)) # 位置my_lidar = my_world.spawn_actor(lidar_bp, lidar_transform, attach_to=vehicle_ego)5、获得激光雷达的输出:def update_lidar_image(image):disp_size = window_sizelidar_range = 2.0 * float(lidar_bp.get_attribute("range"))points = np.frombuffer(image.raw_data, dtype=np.dtype('f4'))points = np.reshape(points, (int(points.shape[0] / 4), 4))lidar_data = np.array(points[:, :2])lidar_data *= min(disp_size) / lidar_rangelidar_data += (0.5 * disp_size[0], 0.5 * disp_size[1])lidar_data = np.fabs(lidar_data) # pylint: disable=E1111lidar_data = lidar_data.astype(np.int32)lidar_data = np.reshape(lidar_data, (-1, 2))lidar_img_size = (disp_size[0], disp_size[1], 3)lidar_img = np.zeros((lidar_img_size), dtype=np.uint8)lidar_img[tuple(lidar_data.T)] = (255, 255, 255) #surface = pygame.surfarray.make_surface(lidar_img)my_display.blit(surface, (0, 0)) # 更新图像到pygame窗口 #my_lidar.listen(update_lidar_image)最后来看下效果:本文就简单介绍到这里。更多精彩内容将在后续继续研究。需要代码的可以在后台联系我哦。本文完。来源:车路漫漫

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈