当前位置: 首页 > news >正文

自动驾驶基础一车辆模型

  1. 模型概述
    • 自行车动力学模型通常用于研究自行车在骑行过程中的行为,如稳定性、操控性和速度等。
    • 模型可以基于不同的简化假设和复杂度,从简单的二维模型到复杂的三维模型,甚至包括骑行者的动态。
  2. 力学方程
    • 基础物理学方程F=ma(力 = 质量×加速度)被应用于自行车运动。在恒定速度下,这简化为FP=FR,其中FP是推进力,FR是所有阻力的总和。
    • 阻力包括重力阻力(在斜坡上骑行时)、向前运动的空气阻力、滚动阻力、车轮轴承阻力和车轮转动的空气阻力等。
  3. 动力学建模方法
    • 自行车动力学模型可以使用不同的数学工具和方法来建立,如牛顿-欧拉方法、拉格朗日方程等。
    • 拉格朗日方程以能量和功作为力学基本量,特别适用于受约束系统的动力学问题。对于自行车一人体系统,由于刚体数目较少,经典的拉格朗日方程是一个合适的选择。
  4. 空气动力学应用
    • 空气动力学在自行车设计中非常重要,特别是在降低风阻和提高稳定性方面。
    • 通过优化车架结构、改变车手体位和车轮形状等措施,可以减少空气阻力的影响,提高自行车的速度和效率。
  5. 模型参数
    • 模型参数可以包括自行车的质量、车轮半径、转动惯量、阻力系数等。
    • 骑行者的体重、身高、骑行技能等也会影响模型的结果。
  6. 动力学模型中,有几个重要的参数需要考虑

3. 算法流程

  1. 质量参数
    • 自行车和骑手的总质量(m):这个参数影响重力阻力和其他阻力的计算。例如,在重力阻力的公式 Fg = mgsin(arctan(G)) 中,m 代表了自行车和骑手的总质量。
  2. 阻力系数
    • 空气阻力系数(Cd):在向前运动的空气阻力 FA = 0.5 * Cd * A * ρ * vA^2 中,Cd 是阻力系数,代表了自行车和骑手形状的空气动力学特性。
    • 滚动阻力系数:这通常与轮胎材料和路面条件有关,影响滚动阻力 FR 的大小。
  3. 几何尺寸
    • 自行车和骑手的正面面积(A):用于计算空气阻力。
    • 自行车长度(lf 和 lr):质心到前后轮中心的距离,这些参数在车辆动态方程中用于计算轮胎的侧向力。
  4. 物理常数
    • 重力加速度(g):通常取 9.81 m/s^2,用于计算重力阻力。
    • 空气密度(ρ):影响空气阻力的计算,通常根据环境条件(如海拔、温度等)进行调整。
  5. 运动学参数
    • 期望速度(v_desired):个体自由行驶时的速度,这反映了骑行者的意图和期望。
    • 反应系数:包括横向和纵向两类,描述了个体对于横向和纵向个人空间的需求程度。
    • 动作持续时间和避让力强度:这些参数描述了骑行者在面对障碍物或需要改变行驶方向时的反应。
  6. 环境参数
    • 坡度(G):影响重力阻力的计算,陡峭的坡度会对骑行者的努力产生更大的需求。
    • 路面条件:这会影响滚动阻力和轮胎的侧向力。
  7. 传输系统效率(η)
    • 在将骑手的输入功率(P_in)转换为推进功率时,需要考虑传输系统的效率。这反映了自行车机械部件(如链条、齿轮等)的摩擦损失。
  8. 车辆动态参数
    • 车辆的动态方程可能会包含其他参数,如车辆的转动惯量、车轮的半径和宽度等,这些参数在更复杂的模型中可能会考虑。
  9. 自行车尺寸参数
    • 轴距(Wheelbase):前后轮轴之间的距离,影响车辆的稳定性和操控性。
    • 车轮半径(Wheel radius):用于计算车辆的滚动速度和角速度。
    • 自行车高度(Bicycle height):从地面到自行车顶部的距离,可能影响空气动力学特性。
  10. 自行车惯性参数
    • 自行车质量分布(Mass distribution):质心位置,影响车辆的操控稳定性和侧翻阈值。
    • 转动惯量(Moments of inertia):车辆绕不同轴的转动惯量,影响车辆的旋转动态。
  11. 轮胎参数
    • 轮胎侧偏刚度(Cornering stiffness):描述轮胎在侧向力作用下的抵抗变形能力,影响车辆的操控性和稳定性。
    • 轮胎滚动摩擦系数(Rolling friction coefficient):影响滚动阻力和车辆的滑行特性。
  12. 骑行者参数
    • 骑行者体重(Rider weight):影响车辆的总质量和重力阻力。
    • 骑行者身高(Rider height):可能用于计算骑行者的舒适骑行姿势和空气动力学特性。
    • 骑行者骑行技能(Riding skill):尽管这不是一个物理参数,但骑行者的技能水平会显著影响车辆的实际动态行为。
  13. 操控参数
    • 方向盘/手柄转角(Steering angle):用于控制车辆的转向。
    • 踏板力/功率(Pedal force/power):用于控制车辆的速度和加速度。
  14. 外部干扰参数
    • 风速和风向(Wind speed and direction):影响车辆的空气动力学特性和稳定性。
    • 路面不平度(Road roughness):影响车辆的振动和操控稳定性。
  15. 控制策略参数(如果模型包含控制策略):
    • 控制增益(Control gains):用于调整控制器对车辆动态行为的影响程度。
    • 控制延迟(Control delay):反映实际控制系统中的响应时间延迟。
  16. 车辆状态参数
    • 纵向速度(Longitudinal velocity):车辆前进的速度。
    • 横向速度(Lateral velocity):车辆侧向移动的速度,通常较小但在曲线行驶时很重要。
    • 偏航角(Yaw angle):车辆前进方向与绝对坐标系的夹角。
    • 偏航率(Yaw rate):车辆偏航角的变化率,即车辆的转向速度。
  17. 1. 车辆动力学模型

    车辆动力学模型是描述汽车运动规律的微分方程,它通常基于牛顿第二定律(F=ma)来推导。在这个模型中,车辆的运动受到多种力的影响,包括驱动力、制动力、阻力和转弯力等。

    2. 关键参数和公式

  18. 质量(m):车辆的质量,影响加速度和动能的计算。
  19. 速度(v):车辆的速度,可以分解为纵向速度(v_x)和横向速度(v_y)。
  20. 加速度(a):车辆的加速度,描述了速度的变化率。
  21. 扭矩(T):发动机或电动机产生的扭矩,与转速(n)和马力(P)的关系为 T = P × 5252 / n。
  22. 马力(P):发动机或电动机的功率,与扭矩和转速的关系为 P = T × n / 5252。
  23. 动能(KE):KE = 0.5 × m × v^2,描述了车辆由于运动而具有的能量。
  24. 动量(p):p = m × v,描述了车辆的质量和速度的乘积。
  25. 刹车距离(d):d = (初速度 - 终速度)^2 / (2 × 刹车减速度),用于估算车辆的制动距离。
  26. 车辆建模:根据车辆的结构和参数,建立车辆动力学模型。
  27. 数据采集:通过车辆传感器和控制单元实时采集车速、油门位置、制动状态等数据。
  28. 目标优化:根据驾驶情况和用户需求,确定优化目标,如最小化燃油消耗、最大化加速性能或最小化排放。
  29. 控制策略:基于动力系统模型和优化目标,采用先进的控制策略来调整引擎功率、电机输出、换挡时机等。
  30. 实时优化:在车辆运行过程中,根据实时采集的数据和控制策略,不断优化车辆的动力性能。
  31. RK4(Runge-Kutta 4阶方法)是一种用于解决常微分方程的数值方法,以下是对其的详细解释:

  32. 定义与原理
    • RK4是一种高精度的算法,用于求解微分方程的数值解。
    • 它是一种迭代方法,通过逐步逼近精确解来得到数值解。
    • RK4方法基于泰勒级数展开的思想,通过在差商区间内取多点斜率加权平均代替导数方法来提高精度。
  33. 算法步骤
    • 假设要求解初值问题:(y' = f(t, y), y(t_0) = y_0)。
    • RK4的迭代公式为:
      (y_{n+1} = y_n + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4))
      其中,(h) 是仿真步长,满足 (h < \text{某个给定值}),而 (k_1, k_2, k_3, k_4) 是基于当前函数值和导数值的加权斜率。
    • (k_1, k_2, k_3, k_4) 的计算方式如下:
      • (k_1 = f(t_n, y_n))
      • (k_2 = f(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_1))
      • (k_3 = f(t_n + \frac{h}{2}, y_n + \frac{h}{2}k_2))
      • (k_4 = f(t_n + h, y_n + hk_3))
  34. def rk4(func: Callable, state: np.ndarray, dt: float = 0.01, t: float = 0, **kwargs):"""single-step fourth-order numerical integration (RK4) methodfunc: system of first order ODEsstate: current state vector [y1, y2, y3, ...]dt: discrete time step sizet: current time**kwargs: additional parameters for ODE systemreturns: y evaluated at time k+1"""# evaluate derivative at several stages within time intervalf1 = func(t, state, **kwargs)f2 = func(t + dt / 2, state + (f1 * (dt / 2)), **kwargs)f3 = func(t + dt / 2, state + (f2 * (dt / 2)), **kwargs)f4 = func(t + dt, state + (f3 * dt), **kwargs)return state + (dt / 6) * (f1 + (2 * f2) + (2 * f3) + f4)class BicycleVehicle(Vehicle):"""A dynamical bicycle model, with tire friction and slipping.See Chapter 2 of Lateral Vehicle Dynamics. Vehicle Dynamics and Control. Rajamani, R. (2011)"""MASS: float = 1  # [kg]LENGTH_A: float = Vehicle.LENGTH / 2  # [m]LENGTH_B: float = Vehicle.LENGTH / 2  # [m]INERTIA_Z: float = (1 / 12 * MASS * (Vehicle.LENGTH**2 + Vehicle.WIDTH**2))  # [kg.m2]FRICTION_FRONT: float = 15.0 * MASS  # [N]FRICTION_REAR: float = 15.0 * MASS  # [N]MAX_ANGULAR_SPEED: float = 2 * np.pi  # [rad/s]MAX_SPEED: float = 15  # [m/s]def __init__(self, road: Road, position: Vector, heading: float = 0, speed: float = 0) -> None:super().__init__(road, position, heading, speed)self.lateral_speed = 0self.yaw_rate = 0self.theta = Noneself.A_lat, self.B_lat = self.lateral_lpv_dynamics()
    

相关文章:

自动驾驶基础一车辆模型

模型概述&#xff1a; 自行车动力学模型通常用于研究自行车在骑行过程中的行为&#xff0c;如稳定性、操控性和速度等。模型可以基于不同的简化假设和复杂度&#xff0c;从简单的二维模型到复杂的三维模型&#xff0c;甚至包括骑行者的动态。力学方程&#xff1a; 基础物理学方…...

机器学习:数据分布的漂移问题及应对方案

首先&#xff0c;让我们从一位高管告诉我的一个故事开始&#xff0c;很多读者可能对此感同身受。 大约两年前&#xff0c;他的公司聘请了一家咨询公司开发一个机器学习模型&#xff0c;帮助他们预测下周每种食品杂货需要多少&#xff0c;以便他们可以相应地补货。这家咨询公司…...

公链常用的共识算法

1. 工作量证明&#xff08;Proof of Work, PoW&#xff09; 工作原理&#xff1a;要求节点&#xff08;矿工&#xff09;解决一个数学难题&#xff0c;这个过程称为挖矿。第一个解决难题的矿工将有权添加一个新的区块到区块链上&#xff0c;并获得一定数量的加密货币作为奖励。…...

详解 Flink Table API 和 Flink SQL 之函数

一、系统内置函数 1. 比较函数 API函数表达式示例Table API&#xff0c;>&#xff0c;<&#xff0c;!&#xff0c;>&#xff0c;<id1001&#xff0c;age>18SQL&#xff0c;>&#xff0c;<&#xff0c;!&#xff0c;>&#xff0c;<id‘1001’&…...

rsa加签验签C#和js以及java互通

js实现rsa加签验签 https://github.com/kjur/jsrsasign 11.1.0版本 解压选择需要的版本&#xff0c;这里选择all版本了 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>JS RSA加签验签</title&g…...

C语言中数组和指针的关系

在C语言中&#xff0c;数组和指针之间存在着密切的关系&#xff0c;尽管它们在概念上是不同的。以下是关于C语言中数组和指针关系的一些要点&#xff1a; 数组名作为指针&#xff1a; 在大多数情况下&#xff0c;数组名在表达式中会被当作指向其第一个元素的指针。例如&#x…...

idea 新建一个 JSP(JavaServer Pages)项目

环境设置&#xff1a; 确保你的开发环境中已经安装了 Java 开发工具包&#xff08;JDK&#xff09;和一个 Java Web 开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;比如 Eclipse、IntelliJ IDEA 或者 NetBeans。你还需要一个 Web 服务器&#xff0c;比如 Apache T…...

【名词解释】Unity中的表格布局组件及其使用示例

Unity中的表格布局组件通常指的是GridLayoutGroup&#xff0c;这是一个在Unity的UI系统中用来布局子对象的组件。它可以帮助开发者将UI元素按照网格的形式进行排列&#xff0c;非常适合创建表格、网格视图等布局。 名词解释&#xff1a; GridLayoutGroup&#xff1a;Unity UI…...

判断当前设备为移动端自适应 平板和pc端为375移动端样式

在libs的setRem.js中&#xff1a; let html document.querySelector("html"); function setRem() {let ui_w 375;let cl_w document.documentElement.clientWidth || document.body.clientWidth;cl_w > 750 ? cl_w 375 : "";html.style.fontSize …...

Science Advances|用于胃部pH监测和早期胃漏检测的生物可吸收无线无源柔性传感器(健康监测/柔性传感/柔性电子)

2024年4月19日,美国西北大学 John A. Rogers和中国科学技术大学吕頔(Di Lu)团队,在《Science Advances》上发布了一篇题为“Bioresorbable, wireless, passive sensors for continuous pH measurements and early detection of gastric leakage”的论文。论文内容如下: 一、…...

C# 使用 webview2 嵌入网页

需求&#xff1a;C#客户端程序, 窗口里嵌入一个web网页&#xff0c;可通过URL跳转的那种。并且&#xff0c;需要将登录的身份验证信息&#xff08;token&#xff09;设置到请求头里。 核心代码如下&#xff1a; // 打开按钮的点击事件 private void openBtn_Click(object sen…...

公司面试题总结(五)

25.谈一谈箭头函数与普通函数的区别&#xff0c;箭头函数主要解决什么问题&#xff1f; 箭头函数与普通函数的区别&#xff1a; ⚫ 语法简洁性&#xff1a; ◼ 箭头函数使用>符号定义&#xff0c;省略了 function 关键字&#xff0c;使得语法更为紧凑。 ◼ 对于单行函…...

Flutter笔记:关于WebView插件的用法(上)

Flutter笔记 关于WebView插件的用法&#xff08;上&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…...

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop Hive

课题研究的意义&#xff0c;国内外研究现状、水平和发展趋势 研究意义21世纪是一个信息爆炸的时代&#xff0c;人们在日常生活中可接触到的信息量非常之巨大。推荐系统逐步发展&#xff0c;其中又以个性化推荐系统最为瞩目。个性化推荐系统的核心在于个性化推荐算法&#xff0c…...

phpcms仿蚁乐购淘宝客网站模板

phpcms仿蚁乐购网站模板&#xff0c;淘宝客行业模板免费下载&#xff0c;该模板网站很容易吸引访客点击&#xff0c;提升ip流量和pv是非常有利的。本套模板采用现在非常流行的全屏自适应布局设计&#xff0c;且栏目列表以简洁&#xff0c;非常时尚大气。页面根据分辨率大小而自…...

leetcode695 岛屿的最大面积

题目 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0&#xff08;代表水&#xff09;包围着。 岛屿的面积是岛上值…...

小程序无法调用服务端问题排查

1、问题描述 突然有一天线上的小程序不能登录&#xff0c;经查小程序无法调用。经查无法小程序页面无法调用后台服务。 2、排查过程 由于无法登录小程序发布服务器&#xff0c;无法测试小程序前端服务器到服务端网络&#xff0c;并且小程序无法看到日志。所以就得从服务端和网…...

Linux:多线程的操作

多线程操作 进程与线程线程的创建 create_pthread创建线程池给线程传入对象的指针 线程等待 pthread_join退出线程 pthread_exit线程等待参数 retval 与 线程退出参数 retval 线程中断 pthread_cancel获取线程编号 pthread_self线程分离 pthread_detach 进程与线程 进程是资源…...

kunpeng的aarch64架构cpu、openeuler系统、昇腾服务器适配文档转换功能(doc转docx、ppt转pptx)

一、安装flatpak sudo yum install flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo二、安装libreoffice flatpak install flathub org.libreoffice.LibreOffice三、使用 对于使用 flatpak 安装的 LibreOffice,不需要手…...

unity 打包PC安装包中常见文件的功能

目录 前言 一、打包好的文件 二、常用文件 1.文件夹XXX_Data 2.文件夹MonoBleedingEdge 3.文件夹XXX_Data内部 三、文件的应用 1.如果你替换了一个图片 2.如果你新增了或减少了图片和资源 3.场景中有变动 4.resources代码加载的资源改了 5.如果你代码替换了 四、作…...

【Ardiuno】实验使用ESP32单片机实现高级web服务器暂时动态图表功能(图文)

接下来&#xff0c;我们继续实验示例代码中的Wifi“高级web服务器”&#xff0c;配置相关的无线密码后&#xff0c;开始实验 #include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h>const char *ssid "XIAOFE…...

深入浅出服务网格(Service Mesh):现代微服务架构的护航者

什么是服务网格&#xff1f; 服务网格是一种专用于处理微服务间通信的基础设施层&#xff0c;通常以轻量级代理&#xff08;sidecar&#xff09;的形式部署在每个服务实例旁边。它主要负责以下几项任务&#xff1a; 服务发现&#xff1a;自动检测和注册服务实例&#xff0c;使…...

node调试

vscode安装插件&#xff1a;JavaScript Debugger (Nightly) 点击后生成一个launch.json文件 打断点&#xff0c;并发送一个请求来执行代码到断点处 按右上的向下箭头&#xff0c;进入源码&#xff0c;进行查看&#xff0c;左边查看变量等值...

docker拉取镜像失败超时的解决方法,docker配置国内镜像源

更换国内源 创建或修改 /etc/docker/daemon.json 文件 安装docker后一般只有 /etc/docker 这个目录 下面并没有 daemon.json 文件 我们直接创建 &#xff1a; vim /etc/docker/daemon.json {"registry-mirrors" : ["https://registry.docker-cn.com"…...

建造气膜结构体育馆需要注意的事项—轻空间

气膜结构体育馆以其快速建造、低成本、灵活性高等优势&#xff0c;越来越受到各类运动场所的青睐。气膜结构利用空气压力支撑膜材&#xff0c;从而形成自持结构&#xff0c;无需传统的钢筋混凝土框架。这类建筑适用于各种气候条件&#xff0c;且可根据需要快速搭建和拆卸。然而…...

使用脚手架创建vue2项目(关闭eslint语法检查 、运行项目时自动打开网址、src文件夹简写方法)

使用脚手架创建vue2项目会默认安装的插件&#xff08;eslint) 这个插件是检查语法的。 假设我们在main.js中定义了一个变量&#xff0c;没有使用 eslint 就会检测出错误 &#xff08;事实是我们并没有写错而是eslint 给我们判断是错的&#xff0c;所以这样会很麻烦&#xff…...

谷粒商城实战(036 k8s集群学习2-集群的安装)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第343p-第p345的内容 k8s 集群安装 kubectl --》命令行操作 要进入服务器 而且对一些不懂代码的产品经理和运维人员不太友好 所以我们使用可视化…...

复旦微FMQL20SM全国产ARM+FPGA核心板,替代xilinx ZYNQ7020系列

FMQL20SM核心板一款全国产工业核心板。基于复旦微FMQL20S400M四核ARM Cortex-A7&#xff08;PS端&#xff09; FPGA可编程逻辑资源&#xff08;PL端&#xff09;异构多核SoC处理器设计的全国产工业核心板&#xff0c;PS端主频高达1GHz。 核心板简介 FMQL20SM核心板是一款全国…...

NPM常见问题

文章目录 NPM常见问题1. 使用淘宝源安装包出错2. listen EADDRINUSE 服务端口被占用报错3. npm start 启动后过一会崩溃结束&#xff1a;内存溢出4. npm install的时候使用特定的源安装5. npm安装指定版本、最新版本6. npm ERR! cb() never called! 解决7. Unable to authentic…...

二开版视频CMS完整运营源码/新版漂亮APP手机模板/集成员分销功能等

一个二开的影视CMS&#xff0c;直接上传源码至网站根目录&#xff0c;访问网站域名即可安装。 测试环境&#xff1a;Nginx 1.20.1—MySQL 5.6.50–PHP-7.2&#xff08;安装拓展/fileinfo&#xff09; 上传源码&#xff0c;访问域名直接安装 后台地址&#xff1a;域名/MDadmi…...

wordpress内存占用大/安卓嗅探app视频真实地址

以下以读数据为例&#xff0c;写数据同理。 读数据的两个阶段 读数据有两个阶段&#xff1a; ①内核中有数据可读&#xff1b;&#xff08;下文称为第一阶段&#xff09; ②数据从内核缓冲区拷贝到用户缓冲区。&#xff08;下文称为第二阶段&#xff09; 五种IO模型 UNP中…...

常州网站制作公司排名/可以免费推广的平台

今天临时加了个需求&#xff0c;我想着用 Spring 来装载&#xff0c;配合 localcache 这样就能做到无感在 web 启动的时候预先将需要的数据加载到内存中。以便于以后直接拿来使用&#xff0c;不用再次进行加载。 目录 ApplicationContextAware 初始化 实现ApplicationContext…...

云网站功能/网站如何在百度刷排名

一些SEM的投放页会针对不同地域做针对性的内容推广&#xff0c;下面我把实现方法分享出来。 一、引用新浪提供的IP查询的js库 <script src"http://int.dpool.sina.com.cn/iplookup/iplookup.php?formatjs" type"text/ecmascript"></script> 二…...

哪里有南宁网站建设/网址注册

值得注意的是,对于一个纯python程序,更适合使用要调用的c程序。如果python程序包含其他第三方库,调用很可能出错,它不是容易找到原因。通常一个大型python项目,如SSD目标探测、等等,需要调用很多第三方库,和多个模块是相互交织在一起的,虽然当你配置的路径与python项目环境,相对…...

网站备案名称规定/成人教育机构排行前十名

我想用python(Jupyter)打印一个向量(148K长度)。但只有8-10个字符。就像这样:[0 0。。。0 0 0]我想看看结果。import reimport nltkimport numpyimport pandasfrom nltk.corpus import stopwordsfrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.a…...

订阅号怎么做免费的视频网站/网站搜索排名

内存页表 1&#xff0c;在日常使用的Linux和Windows系统下&#xff0c;程序不能直接访问物理内存&#xff0c;内存通常分为固定大小的页&#xff0c;通过虚拟内存(Virtual Address)到物理内存(Physical Address)的映射&#xff0c;访问实际存储数据的物理内存位置。 2&#xff…...