车辆的纵向控制之标定
目录
前言
一、纵向控制开篇
二、油门/刹车标定表制定(电车)
1.Carsim设置
1.1、主界面设计:
1.2、Procedure设置
2.MATLAB仿真设计
2.1、整体框架图
2.2、CarSim S-Function设置
2.3、moto model模型设计
2.4、制动模块设计
总结
前言
自动驾驶越来越受到关注,其中车辆控制分为横向控制和纵向控制,横向控制是控制车辆的前轮转角,即航向角
CarSim联合simulink仿真横向控制_路在脚下,梦在心里的博客-CSDN博客;那么车辆纵向控制到底是如何控制车辆的呢,控制的是车辆的什么呢,下面我们就车辆纵向控制进行详细介绍。
一、纵向控制开篇
横向控制的原理:方向盘----->前轮转角----->车的航向角
那么当我们踩油门/刹车时,到底在控制车辆的什么东西呢?刹车相对来说容易理解,这里作者直接给出:刹车----->制动压力增大----->制动盘摩擦增大----->阻力增大----->车减速(类似于我们骑自行车时压刹车,会有一个刹车片压到轮胎上)。那么踩油门控制的是什么呢?
油门----->?----->车加速,这里的问号到底是什么呢?
当我们踩油门时,发动机的功率肯定是提高的,但是发动机的功率不能直观体现车的加速,那么当我们踩油门到底控制的是什么呢?
下面的公式相信大家并不陌生:
其中:P表示功率,M表示扭矩,W表示角速度。
知识点补充:旋转物体的扭矩计算公式为T=9550P/n,P是功率,单位是KW。n是转速,单位是r/min。扭矩单位为Nm。一般的扭矩就是力*力臂。
扭矩·:扭矩就是圆周运动时的力矩,可以简单理解为作用力迫使物体产生旋转的一种特殊力矩。对应发动机曲轴就是燃料燃烧做功产生的压力驱使曲轴产生旋转,最终将旋转的力矩传递出去。
物理中:力矩=力X力臂(直线)
而在旋转状态下:扭矩(特殊的力矩)=力X旋转半径r,因此要想知道发动机的扭矩那曲轴旋转半径r必须是已知的,我们需要知道作用力扭矩怎么算出来的_高三网 (gaosan.com)。所有油门控制可以表示为:油门----->功率----->转速/扭矩----->车速/车加速度----->车速度。
二、油门/刹车标定表制定(电车)
1.Carsim设置
1.1、主界面设计:
1.2、Procedure设置
1.2.1、车辆初始情况的设置(制动情况)
注意:如果是给油门的情况,那么就只有初速度不一样,设置为0,其余设置均一样。
1.2.2、道路设置
注意:如果搭了我们上一篇文章的仿真,这里的路径可能是一个弯角,需要重新设计路。
1.3、Carsim输入设置
输入:油门和制动
1.4、Carsim输出设置
输出:纵向速度,纵向加速度,转速
2.MATLAB仿真设计
2.1、整体框架图
2.2、CarSim S-Function设置
2.3、moto model模型设计
代码设计如下:
function torque = fcn(power,rpm) //power:油门,rpm:转速Tmax=380*power;if(rpm<=4523)torque=Tmax;elsetorque=Tmax*4523/rpm;end
end//输入:油门和转速
//输出:扭矩
注意:这里可以自己参考电车的转速扭矩曲线图设计 。
2.4、制动模块设计
代码示例(生成标定表):
brake=0.1; %初始化油门
for i=1:80sim('calibration');%注,如果这里出错可以参考工作区里面是否把输出存放在ans中,解决方法有两种,第一种将代码改为v_temp(:,i)=ans.vx.data%第二种,Ctrl E打开model setting,然后找到single simulation output取消钩选,这样代码就不需要更改v_temp(:,i)=vx.data; a_temp(:,i)=ax.data;brake_temp(:,i)=ones(length(vx.data),1)*brake;brake=brake+0.1;
end%合并
vbr=v_temp(:,1)';
abr=a_temp(:,1)';
bra=brake_temp(:,1)';
for i=2:80vbr=[vbr,v_temp(:,i)'];abr=[abr,a_temp(:,i)'];bra=[bra,brake_temp(:,i)'];
end%拟合
F=scatteredInterpolant(vbr',abr',bra'); %转成列向量
vubr=0:0.05:50;
aubr=-8:0.05:0;
tablebr=zeros(length(vubr),length(aubr));
for i=1:length(vubr)for j=1:length(aubr)tablebr(i,j)=F(vubr(i),aubr(j));end
end%刹车标定的时候,carsim中将初速度设置为180,表tablebr的第一行第1061列对应的是a=0,v=0,我们手动将值设置为0.3
查看标定表(制动):
测试:
saturation参数为-9和0;saturation参数为0和9。
制定油门标定表MATLAB代码:
%% MATLAB和simulink的联动代码% thr=1; %变量名要与simulink模型变量名一致
% sim('calibration'); %模型名要与simulink模型名一致%%
thr=0; %初始化油门
for i=1:11sim('calibration');%注,如果这里出错可以参考工作区里面是否把输出存放在ans中,解决方法有两种,第一种将代码改为v_temp(:,i)=ans.vx.data%第二种,Ctrl E打开model setting,然后找到single simulation output取消钩选,这样代码就不需要更改v_temp(:,i)=vx.data; a_temp(:,i)=ax.data;thr_temp(:,i)=ones(length(vx.data),1)*thr;thr=thr+0.1;
end%合并
v=v_temp(:,1)';
a=a_temp(:,1)';
tr=thr_temp(:,1)';
for i=2:11v=[v,v_temp(:,i)'];a=[a,a_temp(:,i)'];tr=[tr,thr_temp(:,i)'];
end%拟合
F=scatteredInterpolant(v',a',tr'); %转成列向量
vu=0:0.1:50;
au=0:0.1:5;
table=zeros(length(vu),length(au));
for i=1:length(vu)for j=1:length(au)table(i,j)=F(vu(i),au(j));end
end%注意,油门标定的时候需要将carsim中的初速度设置为0
总结
这里的标定还是传统的方法,当前标定可以联合强化学习进行,后面将记录作者学习车辆纵向控制的学习过程,希望大家多多交流,共同进步。
车辆的纵向控制之标定相关推荐
- 模型预测控制算法基础与车辆纵向控制仿真分析
模型预测控制算法基础与车辆纵向控制仿真分析 第三章 模型预测控制算法基础与控制仿真分析 模型预测控制算法基础 模型预测控制的基本思想就是利用已有的模型.系统当前的状态和未来的控制量去预测系统未来的输出 ...
- 四轮独立驱动电动汽车转矩分配控制 CarSim与Simulink联合 三自由度车辆模型(纵向、横向、横摆)
四轮独立驱动电动汽车转矩分配控制 CarSim与Simulink联合 三自由度车辆模型(纵向.横向.横摆) 控制方法为离散LQR(包括连续系统的离散方法和求解方法) 带有完整详细的控制器.二自由度稳定 ...
- Apollo代码学习(五)—横纵向控制
Apollo代码学习-横纵向控制 前言 纵向控制 横向控制 前馈控制 注意 反馈控制 总结 补充 2018.11.28 前言 在我的第一篇博文:Apollo代码学习(一)-控制模块概述中,对横纵向控制 ...
- 车辆动力学及控制_道路自适应车辆动力学控制研究(127页)【附下载】
点击"蓝字"关注我们 导读/ 无人驾驶车辆的关键技术主要包括环境感知.智能决策.路径规划和车辆运动控制.无人车的运动控制需要车辆在保证安全的前提下,准确跟踪期望轨迹,车辆控制主要分 ...
- 自动驾驶横纵向耦合控制-复现Apollo横纵向控制
自动驾驶横纵向耦合控制-复现Apollo横纵向控制 基于动力学误差模型,使用mpc算法,一个控制器同时控制横向和纵向,实现横纵向耦合控制 matlab与simulink联合仿真,纵向控制已经做好油门刹 ...
- 基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度与间距控制
基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matlab联防实现速度与间距控制. ID:4529677970280675一無所有`
- 车辆自动编队控制优质论文推荐(中文论文)
一.论文汇总 [1]马小婷,赵军辉,孙笑科,贡毅.基于MEC的车联网协作组网关键技术[J].电信科学,2020,36(06):28-37.论文地址 [2]王树凤,张钧鑫,张俊友.基于人工势场和虚拟领航 ...
- 固定翼无人机的自主降落-Simulink纵向控制仿真
本项目来源于一项课程设计,用于简单固定翼模型的降落 需要模型的请点击下载链接,通过积分获取 https://download.csdn.net/download/nudt_zrs/12454986 练 ...
- 车辆动力学及控制pdf_Simulink软件仿真平台之车辆模型
之前一篇文章简要介绍了新能源车控制策略仿真平台的基本内容,主要包括驾驶员模型.控制策略.车辆模型三部分,如下图所示.今天我们详细说说第三部分车辆模型(车辆平台)的相关内容,也是最复杂的部分. 车辆模型 ...
最新文章
- python基础与大数据_Python大数据基础与实战第10章数据可视化.pptx
- 伏安特性实验误差分析_人教高中物理必修第三册《3 实验:电池电动势和内阻的测量》...
- php传输数组给axios
- 【约束布局】ConstraintLayout 13 种相对定位属性组合 ( 属性组合 | 用法说明 )
- 不会c语言能学习python_为什么很多人学不会C语言?学霸说:你要是像我一样学肯定能行!...
- 计算c53的c语言的程序,C程序设计的常用算法.doc
- 第12章 使用Samba或NFS实现文件共享
- C#反射设置属性值和获取属性值
- “贵妇”必备的高价糖水,我给燕窝上了10年智商税
- 2020 mit6.s081 os Lab: xv6 traps
- 华为安装gsm框架_华为Mate20手机怎么下载安装谷歌服务助手,GMS框架安装教程
- 日志:实现微信公众号自动问答机器人(待整理)
- 如何使用手机打开CAJ文件?
- 基础-02-日语单词的词性与分类
- 资源下载类网站源码 第二版本分享
- Java8 新特性之 Stream 练习题
- android界面自动跳转,android实现欢迎界面的自动跳转
- Linu中的网络配置(设置ip,网关(路由功能),dns),虚拟机上网
- 用SendMessage/PostMessage发送WM_SIZE消息
- msvcr110.dll系统文件丢失解决方案