学海无涯,回头是岸
目录
写在前面
本文由“王浮生不怕生”原创,拒绝任何形式的抄袭及转载!
本文适合拿到四驱仿真任务就开始挠头,想快速的改造出模型,对模型控制策略及相对精度没特殊要求的铁子们,大佬们不用看了,你们都会了。
基于对模型的改造需求,我们分了三种情况,忽悠鬼型、忽悠自己型、忽悠别人型。我们在《如何快速搞定一个双电机四驱仿真模型(1)》一文中讲了“忽悠鬼型”和“忽悠自己型”的模型改造方法,本文我们继续介绍“忽悠别人型”的改造方法。
模型改造
模型仍以《AVL-Cruise纯电动汽车仿真建模教程-能量回收策略的实现》一文中的前驱车型模型为基础,在“忽悠自己型”的模型基础上进行进步一改造。
我们在“忽悠自己型”的模型中实现了四驱,同时考虑了简单的扭矩分配,由于对能量回收扭矩未进行管理,所以在制动时,前后轴电机输出相同的制动扭矩,如下图所示。
而实际车辆制动时,考虑到制动稳定性及轴荷转移状态,通常希望前轴分配较多制动扭矩,所以我们在原策略中加入制动扭矩分配管理。
对于“忽悠别人型”的模型,我们实现以下策略:
【1】以后驱电机为主,低扭矩需求下靠后驱电机驱动
【2】踏板开度大于0.5时,认为有较大的扭矩需求,此时前驱电机进行扭矩补偿。
【3】处理制动扭矩,以固定比例分配前轴后制动扭矩,并对前后轴电液制动进行单独处理。
在Function模块中增加轴间制动扭矩分配及前后轴的电液制动扭矩分配策略,总的策略逻辑如下:
对于车辆模型,需要将后驱系统的相关信号输入到Function模块,主要包含制动分配系数、后驱电机最大制动扭矩、后驱速比、后驱传动系统效率。
首先在constant模块中增加制动分配系数、后驱速比、后驱效率等变量。
在Function模块建立上述信号端口,并建立信号连接
因需对前后电机及液压制动扭矩分别控制,故在Function输出端口增加以下输出信号。
其中前驱电机的负载信号仍由General map模块处理后输出,后驱电机的负载直接连接至Function的后轴电机负载信号。
通过Function实现上述策略的代码如下:
/*INPUT*/
double Brk_Pedal_Trvl=a[0];
double Brk_Total_Max=a[1];
double iFD_Frt=a[2];
double Trans_Eff_Frt=a[3];
double Vechile_Velocity=a[4];
double MaxGenTrqFrt=a[5];
double eBrake_Coeff_spd=a[6];
double eBrake_Coeff_SOC=a[7];
double Acc_Pedal_Trvl=a[8];
double BrkSplitCoeff=a[9];
double iFD_Rear=a[10];
double MaxGenTrqRear=a[11];
double Trans_Eff_Rear=a[12];
/*INTERNAL*/
double Brk_Trq_WheelFrt;
double Brk_Trq_WheelRear;
double Brk_MotFrt;
double Brk_MotRear;
/*OUTPUT*/
double Mot_LoadFrt;
double Mot_LoadRear;
double Mech_Brk_TrqFrt;
double Mech_Brk_TrqRear;
/*C-CODE*/
Brk_Trq_WheelFrt=Brk_Pedal_Trvl*Brk_Total_Max*BrkSplitCoeff;
Brk_Trq_WheelRear=Brk_Pedal_Trvl*Brk_Total_Max*(1-BrkSplitCoeff);
Brk_MotFrt=Brk_Trq_WheelFrt/iFD_Frt/Trans_Eff_Frt;
Brk_MotRear=Brk_Trq_WheelRear/iFD_Rear/Trans_Eff_Rear;
if(Vechile_Velocity>1&&Brk_Pedal_Trvl>0)
{
Mot_LoadFrt=Brk_MotFrt/MaxGenTrqFrt*eBrake_Coeff_spd*eBrake_Coeff_SOC;
Mot_LoadFrt=max(Mot_LoadFrt,-1);
Mech_Brk_TrqFrt=(Brk_Trq_WheelFrt-Mot_LoadFrt*MaxGenTrqFrt*iFD_Frt*Trans_Eff_Frt)/2;
Mot_LoadRear=Brk_MotRear/MaxGenTrqRear*eBrake_Coeff_spd*eBrake_Coeff_SOC;
Mot_LoadRear=max(Mot_LoadRear,-1);
Mech_Brk_TrqRear=(Brk_Trq_WheelRear-Mot_LoadRear*MaxGenTrqRear*iFD_Rear*Trans_Eff_Rear)/2;
}
else
{
Mot_LoadFrt=Acc_Pedal_Trvl;
Mech_Brk_TrqFrt=0;
Mot_LoadRear=Acc_Pedal_Trvl;
Mech_Brk_TrqRear=0;
}
y[0]=Mot_LoadFrt;
y[1]=Mech_Brk_TrqFrt;
y[2]=Mot_LoadRear;
y[3]=Mech_Brk_TrqRear;
如下图为NEDC工况下的仿真曲线,车速跟随依然非常哇塞。在 Loadsignal小于0.5,前驱电机只有回收扭矩,而Loadsignal大于0.5时,前驱电机进行扭矩补偿;同时在车辆制动时前驱电机提供更大的制动扭矩。而在进行全油门加速时,前后驱电机均能满符合输出,符合我们设计需求。
结语
我们通过两篇文章介绍了快速搭建三种双电机四驱仿真模型的方法,铁子们可以根据需求选择相关模型进行参考。当然对于追求模型精度的铁子而言,还是推荐使用联合仿真的形式开展仿真工作。
需要注意的是,本文旨在探讨通过AVL Cruise软件进行双电机四驱电动汽车的仿真建模思路,在建立模型的过程中忽略了若条件,对于工程项目而言本文所述模型并不具备所需精度,请慎用。
关注同名公众号:王浮生不怕生,获取模型。