AVL Cruise从入门到秃头-如何快速搞定一个双电机四驱仿真模型(2)

学海无涯,回头是岸

目录

写在前面

模型改造

结语


写在前面

本文由“王浮生不怕生”原创,拒绝任何形式的抄袭及转载!

原文链接:https://mp.weixin.qq.com/s?__biz=MzIwOTM0MTcwOQ==&mid=2247484043&idx=1&sn=ac0ddd4e585ebe280321cebe7c8cd506&chksm=97741ee9a00397ff2220277f5f939056e6489eec75e81d59619db992172449c19ad4ebfd18f8&token=617491543&lang=zh_CN#rd

本文适合拿到四驱仿真任务就开始挠头,想快速的改造出模型,对模型控制策略及相对精度没特殊要求的铁子们,大佬们不用看了,你们都会了。

基于对模型的改造需求,我们分了三种情况,忽悠鬼型、忽悠自己型、忽悠别人型。我们在《如何快速搞定一个双电机四驱仿真模型(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软件进行双电机四驱电动汽车的仿真建模思路,在建立模型的过程中忽略了若条件,对于工程项目而言本文所述模型并不具备所需精度,请慎用。

关注同名公众号:王浮生不怕生,获取模型。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值