【自动驾驶】控制算法(九)深度解析车辆纵向控制 | 从算法基础到 Carsim 仿真实践

news2024/9/20 8:53:52

写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花

📚 系列专栏:【运动控制】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~


文章目录

  • 引言
  • 一、纵向控制简介
  • 二、油门与刹车的控制逻辑
    • 2.1 横向控制与纵向控制的直观性比较
    • 2.2 油门与刹车对车辆速度的影响
    • 2.3 功率、扭矩和转速的关系
  • 三、汽车基础知识中的发动机与变速器
    • 3.1 发动机特性与效率
    • 3.2 变速器的作用与类型
  • 四、电机与发动机的对比
    • 4.1 发动机扭矩与转速特性
    • 4.2 发动机与电机的性能对比
  • 五、电机在电动汽车中的优势
  • 六、基于实验标定的纵向控制算法
    • 6.1 电动汽车的纵向控制算法
    • 6.2 电机的转速-扭矩曲线构建
    • 6.3 实验标定与控制算法的实用性
  • 七、Carsim 电机设置
    • 7.1 创建 Carsim 和 Simulink 联合仿真模型
    • 7.2 设置输入和输出
    • 7.3 创建电机模型函数
    • 7.4 配置变速器参数
    • 7.5 调整怠速设置
    • 7.6 设置仿真路面
    • 7.7 生成和修改仿真文件
  • 八、总结
  • 参考资料


引言

  各位小伙伴们大家好,经过了漫长的第八节四个部分的学习,终于来到了纵向控制。本篇博客是是第九节纵向控制的开篇。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。


一、纵向控制简介

  与横向控制相比,纵向控制难度较低,不需要太多的数学知识。但需要补充汽车动力系统的相关知识,当然这些知识也非常简单。

  在横向控制中,如果没有开过车是可以学下去的,因为横向控制的数学知识比较多,只要数学比较好,就可以学。但纵向控制有很多知识是要开车才会明白。所以纵向控制可能对于没有开过车的可能会稍微的麻烦一点,不过问题也不大,因为都是非常简单的知识。


二、油门与刹车的控制逻辑

首先问各位一个问题,当踩下油门和刹车时,到底在控制什么?

2.1 横向控制与纵向控制的直观性比较

  拿横向控制来举例子,横向控制是控制方向盘,方向盘的改变会导致车辆前轮转角改变,进而导致车辆的航向角改变。

方向盘
前轮转角
车辆航向角

  当打方向盘时,肉眼可见前轮转角在动,所以横向控制的逻辑非常直观。

  但纵向控制并不直观,当踩下油门和刹车时:

油门/刹车
?
车辆加减速

  是什么导致车加速或减速的呢?上图中的问号到底是什么?当踩下油门或刹车时,是什么被改变了,从而导致车速改变了呢?

2.2 油门与刹车对车辆速度的影响

  上图的问号直观上很容易想象成发动机的转速或扭矩,就是踩了油门,发动机转得更快了,速度就上来了;或者踩了油门,发动机输出的力矩更大,车辆就开始加速。

  但这两种解释都是错的,发动机的转速和发动机的扭矩和油门有一定关系,但不是直接原因。和前端转角与方向盘转角的对应关系不同,前端转角和方向盘转角就是比例关系,方向盘转角直接影响前端转角。方向盘转角转多少度,前轮转角就相应转多少度,可能要乘传动比之类的,就是直接关系。

  但是发动机的油门与发动机的转速和扭矩不是直接关系,并不是油门增加一倍,发动机转速就增加一倍,或者发动机的扭矩增加一倍。有相应增加,但不是这种直接关系。

那么油门和刹车和什么东西是直接相关的呢?

  正确答案是油门直接导致发动机的功率被改变,功率改变再导致问号,然后问号会导致车辆加速,加速过程如图所示:

油门
发动机功率被改变
?
车辆加速

  刹车时导致制动压力增大,制动压力增大就会导致制动盘的摩擦增大,进而导致阻力增大,从而导致整个车减速,减速过程如图所示:

刹车
制动压力增大
制动盘摩擦增大
阻力增大
车辆减速

  这就是纵向控制的逻辑,刹车和车的减速直接相关,因为刹车就是导致制动压力增大,车辆就会减速。其实严格来说也不是直接相关,因为还要看是什么路面,是在正常路面,还是在湿滑路面,还是在冰面上。如果不考虑摩擦力的附着极限,制动压力和车的减速就是直接相关的,也就是的刹车踩得越深,制动力就越大;刹车踩得越浅,制动力就越小。

  但功率与车加速之间的关系并不直观,并不是功率越大,车就跑得越快,车的加速就越猛。与车加速直接相关的是 v v v a a a。如果 v v v 一直在上升,或者 a a a 只要大于 0 0 0 就可以,和车加速是直接相关的。

  这两个指标: v v v a a a 本质上是发动机转速与发动机扭矩。因为发动机转得越快,车轮转速也就越快,所以车速就会变得越快。如果发动机力距很大,那么车轮的力距也很大,加速度也就会很大。

  所以纵向控制的逻辑是这样:

油门
功率
转速
车辆速度
车辆加速
扭矩
车辆加速度

  油门改变直接导致发动机功率改变,从而导致转速和扭矩改变,转速扭矩的改变导致车辆的速度和加速度改变,从而导致车开始加速。

  所以在踩油门时,实际上控制的是发动机的功率。

2.3 功率、扭矩和转速的关系

那么功率 P P P 与扭矩 M M M、转速 ω \omega ω 之间的关系是什么呢?

P = F v ⇒ F ⋅ r ⋅ v r = M ⋅ ω P=Fv\Rightarrow F\cdot r\cdot \frac{v}{r}=M\cdot \omega P=FvFrrv=Mω  即 P = M ⋅ ω P=M\cdot \omega P=Mω  所以并不是油门越大,加速度就越大,要看转速是多少,如果转速已经非常高了,当再踩下油门时,加速度增大不了多少,因为 P = M ⋅ ω P=M\cdot \omega P=Mω ω \omega ω 越大, M M M 就会越小。所以为什么汽车都有设计的最高车速,不可能超过最高车速。原因就在于此,因为车速越高,力就越小,必然就有最高车速,是在车速下,驱动力和阻力相互平衡,再踩油门都没用,不可能超过最高车速。

  但公式只是理论公式,并不是实际公式。因为 M M M 不能无穷大,如果按照公式的话,在车刚启动时,转速是 0 0 0。如果有一定功率, M M M 直接就变成无穷大,肯定是不可能的。所以发动机 M M M 有最大的扭矩限制。

真实的发动机的转速、扭矩、功率三个变量的关系是什么呢?

  一般没有明确解析式,所以一般通过做实验标定标出来发动机的转速、扭矩、功率曲线。


三、汽车基础知识中的发动机与变速器

  下面顺带讲一讲汽车基础知识中的发动机与变速器。

3.1 发动机特性与效率

  发动机的转速、扭矩和功率曲线长这样子:

在这里插入图片描述

  不同发动机有不同曲线,但大概都差不多,可能有的高点有的低点,就是不同功率上发动机的转速和扭矩不同。可以看到曲线并不呈反比例,只是曲线的末端有一点反比例曲线的味道,但前端并不是反比例曲线。

为什么 P P P 不等于 M M M ω \omega ω 呢?

  就是因为 P P P 有一部分用要用于发热,因为内燃机发动机的功率,很多都被热能给耗散掉了,所以曲线并不成反比例关系。

  在低速情况下,发动机相对于做功时发热很大,所以在低速情况下热耗散为主导;但在高速情况下,热还是那么多,但做功做的多了,所以以机械功为主导,所以在高速情况下近似呈现反比例关系,即 P ≈ M ⋅ ω P\approx M\cdot \omega PMω,但在低速情况下,因为热占主导,所以不成反比例关系。

  发动机的最高峰一般在 3000 3000 3000 左右。发动机的特性决定了发动机最好只在高效区或高扭矩区运行,才能发挥其最大优势。但发动机的高效区非常短。

  发动机的特性就这样,在低速区有大量能量直接变成热烧掉了,只有少部分能量变成机械功。但是在特高速区时,摩擦损耗也会加剧,所以高速区的效率也不是特别高,比低速区相对高,所以只在中速区扭矩比较大,加速也比较猛,效率也比较高,因此在中速区间运行最好。但是此区域非常短,也就是峰值转速扭矩最大,对应的转速大概是 3000 3000 3000。当然不同发动机不一样,发动机的高效区间也就几百转,可能就 2900 2900 2900 转到 3200 3200 3200 转,剩下的区间效率都非常低。

3.2 变速器的作用与类型

  所以变速器应运而生。如果没有变速器,车想要高效运行的话,意味着车辆只能运行在发动机很短的高效区内的某个速度,无法大范围调速。因为开车不可能只有某个速度。既要在高速公路上开非常快,也要能在城市堵车时开得非常慢,即车辆必须要在不同速度下都能跑。

  发动机是这样子:
在这里插入图片描述

  和发动机相连的是 变速器(gearbox),就是齿轮箱。变速器实际上就是一堆齿轮。比如发动机时转速 3000 3000 3000 转。如果想保持发动机转速在 3000 3000 3000 转上不变,在高效区运行,又想获得比较低的车辆速度,那就捏合大半径齿轮即可,比如这样:
在这里插入图片描述
  可以得到 1000 1000 1000 转的速度。原理就是
ω 1 r 1 = ω 2 r 2 \omega _1r_1=\omega _{_2}r_2 ω1r1=ω2r2  当半径过大时,速度就降下来了,这就是变速器的作用。

  同样的,又想保持发动机比较高效,在 3000 3000 3000 转的工作曲线运行,又想获得比较大的速度,那就捏合小齿轮,比如说这样的小齿轮:

在这里插入图片描述

  这样转速就会被提升到 7000 7000 7000 转,这就是变速器的作用。变速器通过齿轮切换,将发动机的高效转速拓宽。

  齿轮切换的术语叫 换挡,就是一档、二档、三档、四档、五档,一档时速度最慢,同时时扭矩最大;五档时速度最快,扭矩最小。

  • 一档一般用于启动和爬坡
  • 五档一般用于跑高速
  • 二档、 三档、四档一般用于城市道路

为什么速度越慢扭矩越大,速度越快扭矩越小?

  这就是杠杆原理,省力费距离,费力省距离。速度快了力就小,速度慢了力就大。齿轮实际上就是杠杆作用。

  这样发动机和变速器的知识就介绍完了,做自动驾驶控制只需要这些知识就够了。


四、电机与发动机的对比

  回到控制部分来,接下来讲发动机与电机的扭矩与转速的对比,纵向动力学建模非常重要。

4.1 发动机扭矩与转速特性

  发动机前面已经介绍过了,扭矩与转速图就长这样,高效区非常短。比如 2900 − 3200 2900- 3200 29003200 的范围,一般发动机的高效区就几百转的长度。而电机的转速扭矩图一般长这样:

在这里插入图片描述

  发动机前面扭矩很小,后面才慢慢大起来,到最后面才变小。而电机在前半部分就有很大扭矩,直到转速超过一定转速后,扭矩才慢慢变小。

4.2 发动机与电机的性能对比

  发动机与电机对比如下:

比较项发动机电机
最高转速 6500 r p m 6500rpm 6500rpm 16000 r p m 16000rpm 16000rpm
高效区间 ( 2900 , 3200 ) (2900, 3200) (2900,3200) ( 300 , 11000 ) (300 , 11000) (300,11000)
变速器需要不需要
特点低速差,高速较强低速极强,高速差
代表车型法拉利、兰博基尼特斯拉
百公里加速 2.4 s 2.4s 2.4s 1.9 s 1.9s 1.9s
动力源 V 12 V12 V12发动机永磁同步电机
最高效率 40 40 40% 90 90 90%

  所以电机在高速区一般严格遵循 P = M ⋅ ω P=M\cdot \omega P=Mω 的反比例关系,因为效率很高,不需要发那么大热,当然电机也有最大扭矩的限制,因为发热量不大,所以在前半部分可以以最大恒扭矩进行运行,直到达到最大功率后,以反比例功率运行。

  因此发动机一定需要变速器,因为高效区间太拉胯,需要变速器拓宽。但电机一般不需要变速器,因为自己就能 有很宽广的调速。


五、电机在电动汽车中的优势

为什么电动汽车百公里加速成绩那么好呢?

  特斯拉 Model S 百公里加速只有 1.9 1.9 1.9 秒,如果换成汽油车,只有法兰利和兰博基尼这样级别的超级跑车才能达到这样的速度,因为电机在低速实在太强,发动机完全打不过汽油车,汽油车如果想达到这样的加速效果的话,需要 V 12 V12 V12 发动机,即发动机有 12 12 12 个气缸才有可能做到。如果是电机,只需要永磁同步电机即可,难度根本不是一个级别的。

  一般来说汽油车的发动机都是四缸,只有比较豪华的品牌可能会有六缸。像这种 12 缸的只会在超级跑车上,而且发动机缸越多越难做,而且缸越多车就越重,车重的话的能耗就很差。缸越多,润滑、供油、冷却都是呈几何级数难度的递增,缸越多发热量就越大。缸越多,喷油系统以及排气系统也越复杂,所以 V 12 V12 V12 发动机非常难做,而且成本非常贵。

  电机相对来说就很便宜,而且也好做,提升电机的功率比发动机要容易得多,因为电机不用考虑那么复杂的,不需要供油,只需要电就可以了,不需要太复杂的润滑,只需要冷却即可,冷却也容易做,因为和发动机的燃烧相比,电机只是电阻,发热相对容易控制。


六、基于实验标定的纵向控制算法

6.1 电动汽车的纵向控制算法

  本博客的控制算法讲的是电动汽车,不讲燃油车的纵向控制,虽然电动车和燃油车的横向控制差不多一样,但纵向控制有区别,所以只讲电动车的作用方式。

那为什么不讲汽油车呢?

这是因为

  • 很多自动驾驶用的是电动车,电动化已经大势所趋,不可逆转
  • 电动车控制简单,不需要变速器,如果要讲汽油车的控制,必须讲换挡策略,就是到了什么速度就要换挡,从一挡换到二挡,换到三挡,很麻烦,会增加难度,所以就用电动汽车,没有变速器,不需要换挡,就非常方便。

  但很遗憾,仿真软件 Carsim 只有燃油车,即只有发动机,并没有电机,所以为了做控制,先要把 Carsim 相关的电机造出来,然后再仿真,发动机和电机的区别就在于转速扭矩曲线不一样,所以只要把电机的转速扭矩曲线把时输进去即可。

6.2 电机的转速-扭矩曲线构建

  电机的转速扭矩曲线很好写:
在这里插入图片描述

  前面那段就是横扭矩区,后面那段就是横功率区,电机在到达最大功率之前,以恒定的最大扭矩运行,等转速达到最大功率点,就以恒定最大功率的反比例曲线运行。按照这样的关系,造一段电机的转速扭矩曲线。

  电机参数从网上找,最大扭矩是 380 N m 380Nm 380Nm ,最大功率是 180 k W 180kW 180kW 。这个参数对应油门踩到底不能再往下踩时,电机所释放的扭矩和功率,扭矩转速曲线差不多长这样:

在这里插入图片描述

  这是对应于油门等于 1 1 1 时,转速和扭矩的曲线, ω \omega ω 等于最大的功率除以最大扭矩:
ω = P M = 180000 380 = 473.68 ( r a d / s ) = 28421.0526 ( r a d / m i n ) = 4523 ( r p m ) \begin{aligned} \omega &=\frac{\text{P}}{\text{M}}=\frac{180000}{380}=473.68\left( rad/s \right)\\ &=28421.0526\left( rad/min \right) =4523\left( rpm \right)\\ \end{aligned} ω=MP=380180000=473.68(rad/s)=28421.0526(rad/min)=4523(rpm)  这样算出来大概是 4523 r p m 4523rpm 4523rpm,不过曲线只是当油门踩到底时的转速扭矩曲线,如果只踩一点点油门,转速扭矩曲线就无法得到了,因为不同电机不一样,不呈线性关系,但也没有其他数据,所以只能假设是线性关系,也就是踩 0.1 0.1 0.1 的油门对应 18 k W 18kW 18kW 千瓦, 0.2 0.2 0.2 的油门时对应 36 k W 36kW 36kW 。在图上时就是这样关系,就是当 thr = 0.1 时, 对应 38 N m 38Nm 38Nm 的最大扭矩, thr = 1 时,对应 76 N m 76Nm 76Nm 的最大扭矩。

  扭矩 M M M 与转速 ω \omega ω 的关系是
M = { 380 ⋅ t h r o t t l e 0 < ω < 4523 r p m 380 ⋅ 4523 ⋅ t h r o t t l e ω ω ≥ 4523 r p m M=\begin{cases} 380\cdot throttle& 0<\omega <4523rpm\\ \frac{380\cdot 4523\cdot throttle}{\omega}& \omega \ge 4523rpm\\ \end{cases} M={380throttleω3804523throttle0<ω<4523rpmω4523rpm  前面是恒扭矩,后面是恒功率。

6.3 实验标定与控制算法的实用性

  本篇博客所介绍的仿真方法不只适用于电机,对于不同的电机,方法都是一样的。只是因为 Carsim 没有电机,所以必须自己造电机。但方法是通用的,不管是什么样的电机,都可以用这一套同样的方法,因为方法不是根据电机建模型,需要电机参数来计算了。而是基于实验的方法,无论是什么电机,哪怕是发动机也好,都可以用此方法,只要能做实验。所以不管电机参数什么样,方法都是通用的。具体方法到下一节再讲。

  有人可能会认为电机的转速-扭矩曲线过于完美,始终保持恒定的 380 380 380 扭矩,没有丝毫误差和波动。而在 4523 4523 4523 转速之后,曲线又完美地遵循恒功率和反比例关系,这种理想化的曲线可能让人觉得这种方法不太实用。
  但博主要告诉大家的是,即使转速-扭矩曲线看起来杂乱无章,没有规律,也没有关系。因为这种方法是通过实验标定得来的,不是直接从曲线推导出来的。因此,即使曲线看起来再怎么混乱,只要方法是基于实验的,就能够产生效果。


七、Carsim 电机设置

  下面来看一下在 Carsim 中如何设置这样的电机。

7.1 创建 Carsim 和 Simulink 联合仿真模型

  打开 Casim 界面,首先要设置新的 Carsim 和 Simulink 联合仿真的模型:

在这里插入图片描述

7.2 设置输入和输出

  看一下输入和输出的设置,输入是发动机的扭矩,在 N m Nm Nm 单位里找:

在这里插入图片描述

  输出是 v x , a x v_x,a_x vx,ax 以及电机曲轴转速 AV_Eng,转速在 r p m rpm rpm 项目里找:

在这里插入图片描述

  然后点 Send to Simulink,模型已经事先建好:

在这里插入图片描述

7.3 创建电机模型函数

  本节用到的是发动机转速,把发动机转速导进 Matlab Function 里,电机模型的函数如下:

function torque = fcn(thr,rpm)
Tmax=380*thr;%最大扭矩等于 380 乘 thr
    if (rpm<=4523)%如果 rpm小于等于4523
        torque=Tmax;%时就是最大扭矩
    else
        torque=Tmax*4523/rpm;%否则时就是恒功率曲线
    end
end

  函数实际上就是油门 thr 和 转速 rpm 的函数,就是前面推导的电机转速功率曲线。

7.4 配置变速器参数

  首先在 C-class 里面点进去,点 Systems ,里面有变速器,把变速器设置一下:
在这里插入图片描述

  这在这里已经设置好了,点进去看一下:

在这里插入图片描述

  可以发现所有的传动比都是 2 2 2,就证明变速器根本没有齿轮切换。这就是典型电动车的配置,因为电动车不需要变速器,只需要齿轮进行减速即可,不需要切换。

  但如果做初始设置的话,可能并不是像这样已经设置好了,要进行修改,修改就跟着操作来就可以了。

  点击 calibration 进去:

在这里插入图片描述

  • 第一个是传动比
  • 第二个是每个齿轮的惯量
  • 第三个有两列是机械效率

  参数按照上图设置即可。

  这是典型电动车的配置,严格来说应该叫减速器,不叫变速器,因为档位很少,变速器一般都有五档变速。减速器有的是一档,就像这样;也有的减速器是两档,一般最多也就两档。

  设置完毕就完成了,起个名字就行。

  再看一下发动机,点进去就看到转速扭矩曲线:

在这里插入图片描述

  这是发动机的转速扭矩曲线。所以严格来说可以不用像这样在 Simulink 里再写函数,然后模拟电机,直接在这里修改成电机的转速扭矩曲线也可以进行电机模拟。

  但这里就不这么改了,写成函数的话,方便修改参数以及调试,而且就算不改转速扭矩曲线也没关系,虽然发动机是按照曲线跑的,但是因为模型的输入是发动机扭矩,所以 Carsim 会自动在发动机扭矩输入口把软件的输入切断,然后切换成这里的输入。

  如果写 Matlab 函数的话,曲线也可以不用改,就仿真变速器,弄好之后一定要点Send to simulink,否则就白做了。

  给 thr = 1 的油门,运行一下,得到速度和加速度变化曲线:

在这里插入图片描述

在这里插入图片描述

  把油门调低一点,再跑一下看看,可以看到时速度基本上要掉下来,这就比较符合油门为 0 0 0 的预期。大家想一想,如果油门是 0 的话,车会不会停?把油门设置成0。然后惊奇的发现时居然还有速度和加速度。

那这是为什么呢?为什么油门是0,车辆还有速度?
不知道各位有没有考过驾照,在考科目二时,没踩油门,车还在跑。

  虽然用自己造的电机替代发动机,但毕竟是燃油车烧汽油的,所以会有些根本的特性,就是发动机有怠速,即没有踩油门,发动机自己转的速度就是怠速,说白了就是发动机启动时的速度,无论是发动机还是电机时都有启动速度,所以即使不给油门也会转,所以说汽车也会跟着跑。

那为什么正式开车时不踩油门车就不会跑了?

  这实际上是离合器的事情,大家开过车就会明白,如果是手动变速箱,踩离合时,动力就会被切断,所以即使发动机在转了,车也不会动。如果是自动变速箱,就会自动切断动力,但在这里就没有此功能,就认为有发动机的转速,就会带着车跑,没有离合切断的过程。所以即使油门是 0 0 0,车也会跑。

7.5 调整怠速设置

  在发动机里设置,Idle speed 就是怠速。

在这里插入图片描述

  在这里设置怠速为 750 转每分。

  对于电机而言,是否具备怠速功能取决于电机的设计和控制策略。早期的电动车辆电机通常不包含怠速功能,这是因为电机在没有电流输入时会停止旋转,与内燃机不同,内燃机一旦启动就难以立即停止。而现代电动车辆通常会设计怠速功能,这是出于以下几个原因:

  为了提供平顺的驾驶体验,电机在低速时通常具有较高的扭矩输出。如果没有怠速,当电动车辆启动时,可能会出现剧烈的加速感,类似于弹射起步,这会给乘客带来不舒适的感觉。为了避免这种冲击感,制造商通常会调整电机的控制策略,设定一个较慢的启动速度,从而实现平稳的起步。

  因此,现代电动车辆的电机不仅具有怠速功能,而且在启动时会设定一个较低的启动速度,以实现平稳的加速。这样,即使将传动比设置为零(即不改变传动比),电机也能够平稳地启动,而不会产生强烈的加速感。

7.6 设置仿真路面

  最后还有路面要改一下。如果各位做横向控制的话,可能用的还是横向控制的歪七八扭的路面,但纵向控制用这种长路面就行了,要重新设置一下。把 Treat as loop 取消掉,不然设置不了,设置 2000 米的长直路面,作为做纵向控制所要的路面。

在这里插入图片描述

7.7 生成和修改仿真文件

  最后点击 Send to simulink ,把生成的 simfile.sim 文件名修改一下,改成纵向控制所要的文件名,否则因为做横向控制时,有横向控制所使用的 simfile.sim 文件,如果纵向控制也用这个名字的话,这就不太合适。

  当点 Send to simulink 时,文件夹里会自动生成 simfile.sim 的文件,把文件的名字修改成想要的名字,然后在 Simulink 中也输入相同的名字。


八、总结

  本篇博客讲解的是纵向控制到底在控制什么,以及为下一节所做的准备,设置 Carsim 和 Simulink 联合仿真的模型,修改了 Carsim 的变速器和 Carsim 的输入输出模块,道路也修改了,以及怠速可改可不改。修改了 Simulink 文件名,主要做了这几项工作,这些工作做完后就万事俱备了。

  下一篇博客开始用所修改的模型来做纵向控制。欢迎关注后续内容!


参考资料

  【基础】自动驾驶控制算法第九讲 纵向控制开篇


后记:

🌟 感谢您耐心阅读这篇关于 深度解析车辆纵向控制 | 从算法基础到 Carsim 仿真实践 的博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】常见的C语言概念

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 什么是C语言2.C语言的历史3. 编译器的选择VS20223.1 编译和链接3.2 编译器的对比3.3 VS2022的优缺点 4.VS项目和源文件、头文件介绍5. 第一个C语言程序6. main函数7. printf和库函数8. 关键字介绍9. 字符和ASCII编…

【machine learning-十-梯度下降-学习率】

学习率 学习率不同的学习率 在梯度下降算法中&#xff0c;学习率的选择很重要&#xff0c;不恰当的选择&#xff0c;甚至可能导致损失发散&#xff0c;而非收敛&#xff0c;下面就看一下学习率的影响。 学习率 学习率是下图中的红框圈出来的部分&#xff0c; 学习率是模型的超…

Python 复制Excel 中的行、列、单元格

在Excel中&#xff0c;复制行、列和单元格是日常工作中经常需要进行的操作&#xff0c;它可以帮助你快速调整数据布局、复制数据模板或进行数据的批量处理。 本文将详细介绍如何使用Python将Excel中的行、列、或单元格范围复制到指定位置。 所需Python库 要使用Python操作Exc…

今天不写项目,聊聊后端面试吧

首先感谢大家之前的观看呀~兄弟们~ 这边把我去过几家公司面试的题目都写一下哈&#xff0c;像我大二下&#xff0c;就是前两个月7-9进了公司进行后端实习&#xff0c;哎.....反正就是学学学..话不多说~ 1.Frist 1.HashMap实现原理 HashMap是基于哈希表的Map接口的非同步实现…

Zabbix 部署----安装 Zabbix(监控服务器)

目录 zabbix 官网: 1、准备一台虚拟机 1.整理配置yum源(192.xx.xx.10) 2.设置主机名(192.xx.xx.10) 3.防火墙 4.selinux 2、准备Zabbix-repo 使用阿里提供的zabbixYUM源 3、安装Zabbix服务器 4、初始化数据库 1.安装数据库 2.启动数据库 3.授权zabbix账号 4.初始化…

数据结构强化(直播课)

应用题真题分析&备考指南 (三)线性表的应用 (六)栈、队列和数组的应用 &#xff08;四&#xff09;树与二叉树的应用 1.哈夫曼&#xff08;Huffman&#xff09;树和哈夫曼编码 2.并查集及其应用&#xff08;重要&#xff09; &#xff08;四&#xff09;图的基本应用 …

74、Python之函数式编程:深入理解惰性求值与生成器

引言 我们在过程式编程或者面向对象编程中&#xff08;当然也不局限于这些&#xff09;&#xff0c;涉及到计算、数据的转换处理时&#xff0c;通常是执行到对应的语句或者表达式时&#xff0c;就会完成计算或者数据处理。大多数场景下&#xff0c;这样立即计算的方式是没有问…

基于SpringBoot的社团管理系统【附源码】

基于SpringBoot的社团管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 5.1.2 社长信…

【kafka-04】kafka线上问题以及高效原理

Kafka系列整体栏目 内容链接地址【一】afka安装和基本核心概念https://zhenghuisheng.blog.csdn.net/article/details/142213307【二】kafka集群搭建https://zhenghuisheng.blog.csdn.net/article/details/142253288【三】springboot整合kafka以及核心参数详解https://zhenghui…

Golang | Leetcode Golang题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; func canPartition(nums []int) bool {n : len(nums)if n < 2 {return false}sum, max : 0, 0for _, v : range nums {sum vif v > max {max v}}if sum%2 ! 0 {return false}target : sum / 2if max > target {return false}dp …

修复 blender 中文输入 BUG (linux/wayland/GNOME/ibus)

blender 是一个很好的 开源 3D 建模/动画/渲染 软件, 功能很强大, 跨平台 (GNU/Linux, Windows 等系统都支持). 然而, 窝突然发现, blender 居然不支持中文输入 (linux) ! 这怎么能忍 ? 再一查, 不得了, 这居然是个 3 年前一直未解决的陈年老 BUG. 不行, 这绝对忍不了, 这个 …

关于单片机的技术原理及应用

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片机的技术原理及应用的相关内容&…

【Qt网络编程】Tcp多线程并发服务器和客户端通信

目录 一、编写思路 1、服务器 &#xff08;1&#xff09;总体思路widget.c&#xff08;主线程&#xff09; &#xff08;2&#xff09;详细流程widget.c&#xff08;主线程&#xff09; &#xff08;1&#xff09;总体思路chat_thread.c&#xff08;处理聊天逻辑线程&…

1、CycleGAN

1、CycleGAN CycleGAN论文链接&#xff1a;Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks CycleGAN 是一种流行的深度学习模型&#xff0c;用于图像到图像的转换任务&#xff0c;且不需要成对的数据。在介绍CycleGAN之前&#xff0c;必须…

Msf之Python分离免杀

Msf之Python分离免杀 ——XyLin. 成果展示&#xff1a; VT查杀率:8/73 (virustotal.com) 火绒和360可以过掉&#xff0c;但Windows Defender点开就寄掉了 提示&#xff1a;我用360测的时候&#xff0c;免杀过了&#xff0c;但360同时也申报了&#xff0c;估计要不了多久就寄…

《Linux运维总结:基于Ubuntu 22.04操作系统+x86_64架构CPU部署二进制mongodb 7.0.14分片集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、简介 1、应用场景 当您遇到如下问题时,可以使用分片集群解决: a、 存储容量受单机限制,即磁盘资源遭遇瓶颈。 b、 读写能力受单机限制,可能是CPU、内…

开关磁阻电机(SRM)系统的matlab性能仿真与分析

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 SRM的基本结构 4.2 SRM的电磁关系 4.3 SRM的输出力矩 5.完整工程文件 1.课题概述 开关磁阻电机(SRM)系统的matlab性能仿真与分析&#xff0c;对比平均转矩vs相电流&#xff0c;转矩脉动vs相电流&a…

Python OpenCV精讲系列 - 高级图像处理技术(九)

&#x1f496;&#x1f496;⚡️⚡️专栏&#xff1a;Python OpenCV精讲⚡️⚡️&#x1f496;&#x1f496; 本专栏聚焦于Python结合OpenCV库进行计算机视觉开发的专业教程。通过系统化的课程设计&#xff0c;从基础概念入手&#xff0c;逐步深入到图像处理、特征检测、物体识…

JavaWeb---纯小白笔记01:JavaWeb概述和Tomcat安装

本次将对WEB开发的相关的概念和Tomcat等进行介绍。 Web开发简介&#xff1a; C/S和B/S是两种常用的网络架构模式 区别&#xff1a; C/S&#xff1a;client/server --客户端与服务器之间直接进行通信,对用户&#xff0c;本地电脑要求高 B/S&#xff1a;browser/server--通过…

人工智能-大语言模型-微调技术-LoRA及背后原理简介

1. 《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》 LORA: 大型语言模型的低秩适应 摘要&#xff1a; 随着大规模预训练模型的发展&#xff0c;全参数微调变得越来越不可行。本文提出了一种名为LoRA&#xff08;低秩适应&#xff09;的方法&#xff0c;通过在Transf…