在电动汽车动力系统设计中,轮毂电机和轮边电机是两种极具代表性的分布式驱动方案。轮毂电机将驱动单元直接集成在车轮内部,实现真正的"轮内驱动";而轮边电机则安装在车轮附近,通过传动轴与车轮连接。这两种布局看似只是电机位置的差异,但在实际工程实现和控制系统设计上却存在显著区别。
从机械结构来看,轮毂电机由于直接安装在轮辋内,省去了传统传动系统中的减速器、差速器和半轴等部件,使得整车结构更为紧凑。但这种集成化设计也带来了簧下质量增加的问题——以某型商用轮毂电机为例,单个电机总成重量达到38kg,相比传统驱动系统增加了约15%的簧载质量。这会对车辆悬架调校提出更高要求。
轮边电机则保留了部分传统传动特征,其典型安装位置是在副车架上,通过等速万向节与车轮连接。这种布局的优点是便于散热系统设计,电机可以配备更大的冷却鳍片。实测数据显示,在连续爬坡工况下,轮边电机的温升速率比同功率轮毂电机低30-40%,这对于保证动力系统的持续输出能力至关重要。
在AVL Cruise中建立四轮驱动电动车模型时,首先需要明确动力总成的拓扑结构。对于轮毂电机方案,应在"Electric Components"下选择"Wheel Hub Motor"模块,每个电机直接与对应的车轮相连;而轮边电机方案则需要添加"Reducer"模块模拟减速齿轮,并通过"Drive Shaft"组件连接电机与车轮。
模型参数化阶段有几个关键数据需要特别注意:
Cruise提供了多种策略开发方式,对于本文讨论的先进扭矩分配算法,建议采用C代码接口实现。在模型配置中需要正确设置以下通信接口:
c复制// 必须定义的输入输出变量
Inputs: vehicle_speed, wheel_speed[4], accelerator_pedal, brake_pedal, steering_angle
Outputs: torque_command[4], regen_flag
Parameters: MAX_TORQUE, REGEN_GAIN, TORQUE_DISTRIBUTION_RATIO
特别需要注意的是,轮边电机模型在接口中要额外考虑同一车轴上两个电机的扭矩耦合关系,这需要通过"Virtual Differential"模块来实现差速功能。而轮毂电机模型则可以直接对四个电机进行独立控制。
轮毂电机系统的扭矩分配具有更高的自由度,其核心算法需要考虑以下因素:
c复制void WheelHub_TorqueDistribution(float throttle, float yaw_rate, float* wheel_torque) {
// 基础扭矩计算
float total_torque = throttle * MAX_TORQUE;
// 横摆力矩补偿
float yaw_compensation = yaw_rate * YAW_GAIN;
// 按轴荷分配
for(int i=0; i<4; i++){
wheel_torque[i] = total_torque * dynamic_load[i]
+ yaw_compensation * steering_factor[i];
}
// 电机保护限制
applyThermalDerating(wheel_torque);
}
这段代码中的dynamic_load数组需要实时读取悬架高度传感器的数据来计算,而steering_factor则与转向角度和车速相关。实测表明,合理的横摆补偿可以使不足转向特性改善15%-20%。
轮边电机系统由于同轴电机之间存在机械连接,其扭矩分配需要额外考虑:
c复制void WheelSide_TorqueDistribution(float throttle, float* wheel_torque) {
// 总需求扭矩计算
float total_torque = throttle * MAX_TORQUE;
// 前后轴扭矩分配(默认40:60)
float front_axle_torque = total_torque * FRONT_RATIO;
float rear_axle_torque = total_torque * (1 - FRONT_RATIO);
// 考虑电子差速的轴内分配
for(int i=0; i<2; i++){
wheel_torque[i] = front_axle_torque * 0.5 * (1 + differential_bias);
wheel_torque[i+2] = rear_axle_torque * 0.5 * (1 - differential_bias);
}
// 滑移率保护
applySlipControl(wheel_torque);
}
其中differential_bias参数在转向时会根据阿克曼几何关系动态调整,范围通常在±0.3之间。这个参数的标定质量直接影响转向时的扭矩分配效果。
能量回收系统的核心在于机械制动与电制动的协调控制,其实现要点包括:
c复制float HybridBraking(float brake_pedal, float vehicle_speed) {
// 基础电制动扭矩计算
float regen_torque = brake_pedal * REGEN_GAIN * speed_factor(vehicle_speed);
// SOC保护
if(battery.SOC >= SOC_LIMIT) {
regen_torque = 0;
}
// 电机能力限制
regen_torque = fmin(regen_torque, motor_max_regen(vehicle_speed));
// 机械制动补偿
float friction_brake = brake_pedal * MAX_BRAKE_TORQUE - regen_torque;
friction_brake = fmax(friction_brake, 0);
return applyBlendingFilter(regen_torque, friction_brake);
}
这里有几个关键点需要注意:
speed_factor函数考虑了低速时能量回收效率下降的特性,通常在20km/h以下开始衰减motor_max_regen函数根据电机转速-扭矩特性动态调整最大回收扭矩applyBlendingFilter实现了制动力平滑过渡,时间常数一般设置为50-100ms能量回收效果很大程度上受电池状态影响,需要特别处理以下边界条件:
c复制void BatteryLimitCheck(float* regen_torque) {
// 充电功率限制
float max_charge_power = battery.max_charge_power(battery.SOC, battery.temp);
float current_power = 0;
for(int i=0; i<4; i++){
current_power += motor[i].speed * regen_torque[i] / 9550;
}
if(current_power > max_charge_power) {
float scale_factor = max_charge_power / current_power;
for(int i=0; i<4; i++){
regen_torque[i] *= scale_factor;
}
}
// 单体电压均衡检查
if(battery.cell_imbalance > 0.1) {
applyBalancingLimit(regen_torque);
}
}
在实际工程中,电池系统的限制往往是影响能量回收效率的主要瓶颈。测试数据显示,在低温(-10°C)环境下,电池允许的充电功率可能下降50%以上,这会显著影响制动能量回收效果。
准确的温度预测对于防止电机过热降额至关重要,Cruise中可以通过以下方式实现:
c复制void MotorTemperatureUpdate(float torque, float speed, float* temp) {
// 计算损耗功率
float loss = copper_loss(torque) + iron_loss(speed);
// 热容模型计算
float delta_T = loss / THERMAL_MASS * TIME_STEP;
// 散热计算
float cooling = (ambient_temp - *temp) / THERMAL_RESISTANCE;
// 温度更新
*temp += delta_T + cooling * TIME_STEP;
// 过热保护
if(*temp > CRITICAL_TEMP) {
triggerDerating(torque);
}
}
对于轮毂电机,其THERMAL_RESISTANCE通常比轮边电机高30%-50%,这意味着在相同工况下,轮毂电机的温升会更快。实测数据显示,连续10次0-100km/h加速测试中,轮毂电机温度可能达到120°C以上,而同功率的轮边电机通常能控制在90°C以内。
主动冷却系统的控制逻辑需要考虑以下因素:
c复制void CoolingControl(float motor_temp, float* fan_speed) {
// 基本PID控制
float error = motor_temp - TARGET_TEMP;
*fan_speed = PID_Controller(error);
// 速度相关修正
*fan_speed += vehicle_speed * 0.2; // 利用行驶风
// 噪声限制
if(vehicle_speed < 30) {
*fan_speed = fmin(*fan_speed, MAX_FAN_SPEED_CITY);
}
// 能量优化
if(battery.SOC < 0.3) {
*fan_speed *= 0.7; // 低SOC时降低冷却功率
}
}
在仿真建模时,需要特别注意冷却系统响应延迟的影响。通常需要设置2-3秒的时间常数来模拟实际冷却系统的热惯性。
完整的模型验证应该包含以下测试场景:
对于轮毂电机系统,需要额外增加:
扭矩分配参数的标定需要遵循以下步骤:
能量回收系统的标定要点包括:
c复制typedef struct {
float speed_breakpoints[5] = {0, 20, 40, 60, 80}; // km/h
float regen_gain[5] = {0, 0.3, 0.7, 1.0, 1.0}; // 速度相关增益
float soc_compensation[5] = {1.2, 1.1, 1.0, 0.8, 0.5}; // SOC补偿系数
} RegenCalibration;
这种基于查表法的标定策略在实际工程中最为常用,需要至少3轮迭代测试才能获得理想参数。