%查看运行报告
%profile on 开启
%profile off 关闭
%profile clear 清空数据
%profile viewer 在profile中看结果
clear all
clc
%------------------------声明(枚举和结构体)------------------------%
ePbcActuatorStateParkApplied=ENUM_CODE1,
ePbcActuatorStateHoldApplied=ENUM_CODE2,
ePbcActuatorStateReleased=ENUM_CODE3,
ePbcActuatorStateApplying=ENUM_CODE7,
ePbcActuatorStateReleasing=ENUM_CODE8,
ePbcActuatorStateCompletely=ENUM_CODE9,
ePbcActuatorStateUnknown=ENUM_CODE10
%------------------------INT------------------------%
CAL_COOL_BRAKE_TEMPER_PAR1 = 7;
CAL_COOL_BRAKE_TEMPER_PAR2 = 2360;
RELT_BrakeTemperature_Left = 0;
LeftCoolingTemDelta_U16 = 0;
CAL_TEMPERATURE_COOLING_DEGRSDE = 2;
WHEEL_INERTIA_REF_B=4;
CAL_HOT_BRAKE_TEMPER_PAR2=2100;
%----------------------修正随速因子---------------------------%
if vspeed_mid<7
cool_threshold=CAL_COOL_BRAKE_TEMPER_PAR1-4;
elseif vspeed_mid<20
cool_threshold=CAL_COOL_BRAKE_TEMPER_PAR1-3;
elseif vspeed_mid<40
cool_threshold=CAL_COOL_BRAKE_TEMPER_PAR1-2;
elseif vspeed_mid<80
cool_threshold=CAL_COOL_BRAKE_TEMPER_PAR1-1;
else
cool_threshold=CAL_COOL_BRAKE_TEMPER_PAR1;
%修正降温随速因子
RTL_TEMP_PH =[3000 2000 300];
COOL_ADJ =[2 1 0];
if RELT_BrakeTemperature_Left>RTL_TEMP_PH(0)
cool_threshold_RL=cool_threshold + COOL_ADJ(0);
elseif RELT_BrakeTemperature_Left>RTL_TEMP_PH(1)
cool_threshold_RL=cool_threshold + COOL_ADJ(1) ;
elseif RELT_BrakeTemperature_Left>RTL_TEMP_PH(2)
cool_threshold_RL=cool_threshold + COOL_ADJ(2);
else
cool_threshold_RL = 2;
%计算降温累加出来的能量
LeftCoolingTemDelta_U16+=(RELT_BrakeTemperature_Left>>5)*cool_threshold_RL;
//LeftCoolingTemDelta_U16+=(RELT_BrakeTemperature_Right>>5)*cool_threshold_RR;
/*set delta = T*0.03125*/
while(LeftCoolingTemDelta_U16>CAL_COOL_BRAKE_TEMPER_PAR2)
{ %计算降低的温度
if(RELT_BrakeTemperature_Left>CAL_TEMPERATURE_COOLING_DEGRSDE)
{
RELT_BrakeTemperature_Left=RELT_BrakeTemperature_Left-CAL_TEMPERATURE_COOLING_DEGRSDE;
}
LeftCoolingTemDelta_U16=LeftCoolingTemDelta_U16-CAL_COOL_BRAKE_TEMPER_PAR2;
}
/*----------------------------------------------------------------------------------*/
if(ePbcActuatorStateApplying==PbcOut.ActuatorStateLeft)
{ %计算升温累加出来的能量
if(ePbcActuatorStateApplying!=PbcOut.ActuatorStateRight)
{
LeftBrakeEnergyAccum_U16+=2*(vehicle_brake_acc*WHEEL_INERTIA_REF_B)*RLspeed_mid;
}
else
{
LeftBrakeEnergyAccum_U16+=(vehicle_brake_acc*WHEEL_INERTIA_REF_B)*RLspeed_mid;
}
%计算EPB升高的温度
while(LeftBrakeEnergyAccum_U16>CAL_HOT_BRAKE_TEMPER_PAR2)
{
RELT_BrakeTemperature_Left+=HDRheat_threshold_RL;
LeftBrakeEnergyAccum_U16=LeftBrakeEnergyAccum_U16-CAL_HOT_BRAKE_TEMPER_PAR2;
}
}
评论0