赞
踩
1目标车辆模型搭建
设Car1为目标车辆,也就是主车的目标车辆,在其车辆模型参数设置板块中,选择CarSim软件中的B-Class,Sport Car为基准车。
进入B-Class,Sport Car参数设置。其中的车辆模型参数设置主要是对车身、仿真动画、动力系统、制动系统、转向系统、前后悬以及车轮的选型及参数设置。在动力传动系统设置中,目标车辆的动力系统设置为传统传动系统,如图所示,使用内部引擎,也就是发动机进行动力输入,传统传动系统动力传动过程为:发动机→液力变矩器/离合器→变速器→差速器→输出动力。
图3.5 目标车辆动力输入系统
对目标车辆的车辆模型设置中,大部分参数都无需改变,需要设置的最重要的是目标车辆的行驶车速,即目标车速。本文中主要对电动汽车的两种行车路况进行建模仿真,一种为直线路况下巡航,一种为弯道路况巡航。在自适应巡航仿真过程中,需要先设置目标车辆的速度变化,在Procedure设置版块中,在Driver Controls下的目标车速中对Car1的位移和车速关系进行设置。
对目标车辆而言,没有输入的参数,只有输出参数,如下表所示。
表3.1 目标车辆输出参数
输出变量 描述
Vx 车辆纵向速度
Xo 车辆质心横坐标
Yo 车辆质心纵坐标
Yaw 车辆横摆角
2主车模型搭建
设Car2为主车,在其车辆模型参数设置板块中,选用CarSim中的E-Class,Sedan为基准车,基准车如图所示。
图3.6 CarSim中基准车E-Class,Sedan
在主车车辆模型设置中,最重要的是动力输入系统,主车是电动车,没有发动机,依靠电机作为动力源,所以在CarSim中的车辆动力系统需要采用外部动力源(External Engine)。本文通过在Simulink模型中搭建一个电动机,用电机输出的扭矩来驱动主车Car2。如图所示,将传动系统中的发动机模型去掉,采用轮毂电机进行控制。在Simulink中搭建电机模型作为Car2的外部动力。
图3.7 主车动力输入系统
主车所建立的CarSim车辆仿真模型和Simulink的输入接口以及为PID控制算法提供参数的接口如表所示,输入包括制动器主缸压力、雷达输入参数和左右轮毂电机的转矩,输出包括车辆纵向速度、车辆质心横纵坐标、车辆横摆角以及左右前轮的轮毂电机转速。
表3.2 主车输入输出参数设置
变量名 描述
输入变量 IMP_PCON_BK 制动主缸压力
IMP_DETECT 雷达输入信号
IMP_MY_OUT_D1_R 右侧轮毂电机转矩
IMP_MY_OUT_D1_L 左侧轮毂电机转矩
输出变量 Vx 车辆纵向速度
Xo 车辆质心横坐标
Yo 车辆质心纵坐标
Yaw 横摆角
AVy_R1 右前轮轮速
AVy_L1 左前轮轮速
3 Simulink整车模型搭建
3.1 Simulink介绍
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制以及数字信号处理的建模和仿真中。Simulink拥有丰富的可扩充的预定义模块库[16]。在该环境中,不需要大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统[17]。
3.2 电机类型选择及配置
本文所搭建的主车模型中,用直流无刷电机替代CarSim2019中的引擎,将内部动力输入改为外部动力输入。将Simulink中所搭建的直流无刷电机模型作为其动力输入,依靠电机所输出的转矩为主车的电动汽车模型提供动力。
主车所搭建的电机模型选用两个电压为72V,额定功率为5kw的直流无刷轮毂电机,即采用直流无刷轮毂电机分别控制主车的左右前轮。电机简化模型如下图所示,电机及控制参数如表3.3所示。
图3.8 Simulink右侧前轮直流无刷轮毂电机模型
图3.9 Simulink左侧前轮直流无刷轮毂电机模型
表3. 3 电机及控制系统参数
电机电阻(R)/ Ω 0.125
电感(L)/ mH 3.75
反电动势系数(ke)/ [V·(r·min)-1] 0.25
电流PID调节器系数(KP /Kl / KD) 200/30/2
电流反馈系数(ki) 36
PWM装置的延迟系数(ks) 0.4
额定电压(U)/ V 72
3.3 联合仿真模型
本文所设计的自适应巡航控制主要控制过程如图所示。本文所设计的自适应巡航控制主要采用PID控制。下面将会对该模型进行分析。
图3.10 CarSim与Simulink联合仿真模型图
(1)输入模块
①制动主缸压力
考虑到主车既能跟上目标车辆,又能使目标车辆在主车的雷达探测范围内,经过调试,在水平路面仿真时,本模型中将两车之间的最小安全距离Setup Distance设置为2m。在本文所选坡道上仿真时,最小安全距离设置为4m。随后,将所设置的安全距离与雷达监测到的主车的车头与目标车辆的车位之间的距离进行减法运算,然后经过一个PID控制,即PID Controller2。其中PID控制中比例系数KP取0.3,积分环节系数KI取0,微分环节系数KD取0。由于该部分主要控制制动版块,所以算法较为简单,只需要一个比例控制,且这样已达到本文所设计的要求。经过PID控制之后,将会输出一个数值FB,作为主车制动主缸压力的数值,而制动主缸的压力是需要在一定的数值范围的。根据CarSim车辆模型的制动主缸的上下线数值,将该数值下限设置为0,即下限为没有制动压力,上限即最大的制动主缸压力设置为15,15可看作是车辆刹车踩到底时产生的制动压力。FB是制动压力的信号,这个信号将会输入到主车的车辆模型当中,也就是前文中所提到的主车的输入变量中的IMP_PCON_BK制动主缸压力。
②前轮两电机转矩
在两车车速经过PID控制输入参数到前轮左右两侧电机中之后,两个轮毂电机将输入转矩给主车,即减速或加速运动,或者保持车速不变,以实现主车的巡航控制。
③雷达探测结果
通过雷达控制器对主车与目标车辆的距离及角度的监测,当目标车辆超出雷达探测范围时,雷达控制器将会输出一个信号给控制系统,控制车辆加速前进,跟上目标车辆。当目标车辆在雷达探测范围时,雷达控制器经过监测,将会输出两车的实际距离,通过控制系统运算,从而控制主车的制动轮缸压力,实现主车的加速或减速运动。
(1)输出模块
①两车车速
目标车辆输出车速Vx1,为了完成ACC控制的实现,将目标车辆的车速作为主车的速度的控制,用目标车辆的速度Vx1减去主车的实际速度Vx,得到其差值,再输入到PID控制模块,即上图中的PID Controller。该PID控制由于需要满足主车的跟随工况,情况较为复杂,所以需要比例、积分、微分环节都运用。经过调试,最终确定当比例系数KP取200,积分环节系数KI取190,微分环节系数KD取2时,可以更好地实现巡航控制效果。PID Controller和PID Controller1的作用是将目标车辆与主车的速度差值分别转化为左右前轮轮毂电机的目标转矩。Simulink整车模型中Motor_Left和Motor_Right模块代表主车左侧和右侧的轮毂电机。
②车辆坐标
主车的横纵坐标和横摆角是其输出变量,并且该三者作为雷达模块Radar Sensor的数据输入,即My Data为主车的Xo、Yo、Yaw三个数据。经过雷达控制之后,雷达模块输出一个间距值Distance,与初始设置的Setup Distance的数值进行比较,两者差值输入到PID Controller2中,再进入后续控制模块。当两者差值大于安全距离时,主车制动主缸压力减小,同时转矩增大,车辆将进行加速运动;当两者差值小于安全距离时,主车将进行制动,同时车轮转矩减小,车辆将进行减速运动,以避免碰撞事故发生。
③左右两前轮轮速
主车的左右前轮轮速作为其输出变量,分别输入到左右前轮轮毂电机模块中,经过直流无刷电机模块控制过程,两电机将输出左右前轮的转矩,左右前轮的转矩Torque_Left和Torque_Right又将作为主车的输入变量,实现主车的自适应巡航控制。
3.4 雷达控制模型
在Simulink模块中搭建雷达控制模型,如下图所示。
图3.11 雷达控制模型
该模型左侧CAR_1为目标车辆的横纵坐标及车辆横摆角,My Data为主车的Xo、Yo、Yaw三个数据,分别为主车的横坐标、纵坐标和车辆横摆角。从上图所显示的模型中可以看出,目标车辆的横坐标与主车的横坐标作差,将差值作为目标值输入下一模块中,得到两车间距r。同时,将目标值转化为极坐标值,得到两车行驶方向的夹角Theta。输出Theta到R2D模块,即将弧度值转化为角度值。此时,输出的值即为雷达所探测到的两车之间的夹角。
同时,My Data也会输出车辆横摆角Yaw,车辆横摆角为车辆车体坐标系X轴方向与车辆速度方向夹角。由上图可知,输出主车的车辆横摆角Yaw,因为雷达所监测到的角度是行驶过程中累积的角度,可能将大于360°,但是所需要的是当前车辆的速度方向相对于车体坐标系的夹角,该值应在360°以内,所以需要主车的车辆横摆角对360°取余,即图中的mod模块,可得到一个小于360°的角度值。
当主车跟随前车前进时,不仅需要保证主车能够跟上目标车辆,还需要保证在目标车辆转弯时,主车也能够跟随其转弯。所以,经过取余之后输出的主车前进方向的角度与所探测到的两车之间的夹角作差值,再对差值取绝对值。在设计雷达模型时,需要考虑到在实际控制过程中,并且前车处于正常行驶状态下,为确保主车能够及时跟上目标车辆,两车之间的夹角应小于90°。将取绝对值后得到的值输入到阈值模块,为防止角度超过360°,设置临界值270°。如果输出的角度值大于270°,那么该控制器输出的实际值变为360°减去绝对值。将此时输出的绝对值设为θ0,θ0应为一个较小的角度值。θ0随后输入到第二个阈值模块中,其中临界值设置为15°。
雷达模型中,设置雷达的探测距离范围为70m,70m与所得到的两车间距r输入到取值模块,取两者中的较小值输出。当主车与目标车辆间距大于70m时,即未监测到目标车辆,此时从取值模块输入到下一个模块的值则为70m。同时,从L-Radar输入到该模块的值也为70m,则此时无论输入到该模块的θ0与其阈值15°的大小关系如何,输出值都为70m。此时则需要给雷达的监测模块发送信号,即上图中的Detected,控制系统控制车辆加速运动。同样地,当监测到目标车辆与主车角度大于15°时,则代表目标车辆已转弯而主车未跟上,此时控制系统将会控制主车跟上目标车辆行驶。由图3.9可知,当雷达控制器输出Detected时,将会作为信号输入到车辆控制器中,使车辆加速,以跟上目标车辆。当主车与目标车辆间距小于70m时,该模块的输出值即为两车的实际车距Distance。从图10可知,由雷达监测到的所输出的两车实际间距Distance数值将与所设定的安全距离Setup Distance作差,随后通过控制环节对主车进行控制。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。