1. 电动车电驱系统中的振动抑制挑战
电动车在加速和减速过程中,电机与传动系统之间经常会产生令人头疼的机械振动。这种振动不仅影响驾驶舒适性,长期来看还会缩短传动系统寿命。作为一名在电驱系统领域摸爬滚打多年的工程师,我发现主动阻尼控制技术是解决这一问题的利器。
在实际项目中,我们最常遇到的是20-200Hz范围内的中高频振动。这类振动主要来源于两个方面:一是电机转矩脉动与机械系统固有频率的耦合,二是路面激励通过传动系统反向传递到电机。传统被动阻尼方法(如增加机械阻尼器)往往效果有限,而主动阻尼控制通过软件算法实现振动抑制,具有成本低、适应性强的优势。
关键提示:电动车传动系统的扭转共振频率通常在30-80Hz之间,这是主动阻尼控制需要重点关注的频段。
2. 二质量模型的理论基础
2.1 模型构建与参数辨识
二质量模型是分析电驱系统动态特性的黄金标准。这个模型将电机转子惯量J₁与负载等效惯量J₂通过弹性系数K和阻尼系数B连接起来。在Matlab中建模时,有几个关键参数需要特别注意:
matlab复制% 典型电动车传动系统参数
J1 = 0.015; % 电机惯量 [kg·m²]
J2 = 0.25; % 负载等效惯量(含减速器、半轴等)
K = 1200; % 扭转刚度 [Nm/rad]
B = 2.5; % 固有阻尼系数 [Nms/rad]
这些参数的准确性直接影响仿真结果。我们通常通过阶跃响应测试或频率扫描实验来辨识实际系统的参数。例如,给电机施加一个阶跃转矩指令,通过编码器测量转速振荡曲线,就能反算出系统的固有频率和阻尼比。
2.2 模型验证与特性分析
建立模型后,我们需要验证其准确性。一个实用的方法是对比仿真结果与台架测试数据:
matlab复制% 仿真与实测数据对比示例
t = 0:0.001:1; % 1秒时间序列
u = 10*(t>0.1); % 0.1秒时施加10Nm阶跃转矩
[y_sim,~] = lsim(sys,u,t); % 仿真结果
y_meas = load('实测数据.mat'); % 加载台架数据
figure
plot(t,y_sim,'b',t,y_meas,'r--')
legend('仿真','实测')
xlabel('时间(s)'); ylabel('转速(rpm)')
通过这样的对比,我们可以调整模型参数,直到仿真结果与实测数据吻合度达到90%以上。验证后的模型就能用于控制算法的开发和测试。
3. 主动阻尼控制实现方案
3.1 转速波动提取与补偿
巴特沃斯滤波器是我们提取转速波动信号的利器。与Chebyshev或椭圆滤波器相比,巴特沃斯滤波器在通带内具有最平坦的幅频特性,特别适合需要保持信号相位一致性的控制应用。
matlab复制% 改进型巴特沃斯高通滤波器设计
fs = 2000; % 采样频率 [Hz]
fc = 40; % 截止频率 [Hz]
n = 3; % 滤波器阶数
[b,a] = butter(n,fc/(fs/2),'high');
% 零相位滤波实现
w_filt = filtfilt(b,a,w_actual); % w_actual为实际转速信号
这里使用filtfilt函数实现零相位滤波,避免常规滤波带来的相位延迟问题。在实际ECU代码中,我们会将其转换为二阶节(SOS)形式,提高数值稳定性:
c复制// C语言实现示例
typedef struct {
float b0,b1,b2,a1,a2;
float x1,x2,y1,y2;
} BiquadFilter;
float biquadFilter(BiquadFilter *f, float input) {
float output = f->b0*input + f->b1*f->x1 + f->b2*f->x2
- f->a1*f->y1 - f->a2*f->y2;
f->x2 = f->x1; f->x1 = input;
f->y2 = f->y1; f->y1 = output;
return output;
}
3.2 转矩补偿算法优化
单纯的滤波补偿可能引入新的相位滞后问题。我们开发了自适应补偿算法,能根据工况自动调整补偿系数:
matlab复制% 自适应补偿系数算法
function Kt = adaptive_gain(w, w_ref)
persistent Kt_min Kt_max learning_rate
if isempty(Kt_min)
Kt_min = 0.05; Kt_max = 0.3; learning_rate = 0.01;
end
error = abs(w - w_ref);
Kt = Kt_min + (Kt_max-Kt_min) * (1 - exp(-learning_rate*error));
end
这个算法会根据转速偏差自动调整补偿强度:偏差大时增强补偿,偏差小时减弱补偿,避免过度补偿带来的副作用。
4. 加速度反馈的工程实现
4.1 加速度估计方法
由于直接测量电机加速度成本较高,我们通常采用软件估算方案。最常用的是基于转速微分的方法:
matlab复制% 加速度估算(带低通滤波)
alpha = 0.1; % 滤波系数
acc_est = zeros(size(w));
for k = 2:length(w)
acc_raw = (w(k)-w(k-1))*fs;
acc_est(k) = alpha*acc_raw + (1-alpha)*acc_est(k-1);
end
在实际应用中,我们会结合加速度观测器提高估计精度:
matlab复制% 龙伯格观测器实现
function [w_hat, acc_hat] = observer(u, w_meas, Ts)
persistent x_hat
if isempty(x_hat)
x_hat = [0;0]; % [转速;加速度]
end
A = [1 Ts; 0 1];
B = [Ts^2/(2*J1); Ts/J1];
C = [1 0];
L = [0.5; 0.1]/Ts; % 观测器增益
% 预测步骤
x_hat = A*x_hat + B*u;
% 校正步骤
y_hat = C*x_hat;
x_hat = x_hat + L*(w_meas - y_hat);
w_hat = x_hat(1);
acc_hat = x_hat(2);
end
4.2 惯量补偿控制
加速度反馈等效增加电机惯量的原理,可以通过以下控制律实现:
matlab复制% 惯量补偿控制
J_add = 0.02; % 期望增加的等效惯量
tau_fb = J_add * acc_est; % 反馈转矩
tau_total = tau_cmd + tau_fb; % 总转矩指令
这个简单的控制律能让系统表现得好像电机惯量增加了J_add,从而改善阻尼特性。在实际项目中,我们通常将J_add设为电机实际惯量的20-50%。
5. 工程实施中的关键问题
5.1 参数敏感性分析
主动阻尼控制性能对模型参数非常敏感。我们通过蒙特卡洛分析评估参数偏差的影响:
matlab复制% 参数敏感性分析
n_samples = 100;
K_nom = 1200; K_var = 0.2; % 刚度±20%变化
results = zeros(n_samples,2);
for i = 1:n_samples
K_actual = K_nom*(1 + K_var*(2*rand-1));
% 重新计算系统极点
[wn,zeta] = damp(ss(A,B,C,D));
results(i,:) = [wn(1),zeta(1)];
end
分析结果显示,刚度K变化20%会导致系统固有频率变化约10%,阻尼比变化约15%。因此在实际应用中需要保留足够的稳定裕度。
5.2 实时性优化技巧
在资源有限的MCU上实现这些算法时,我们总结了几点优化经验:
- 将高阶滤波器分解为多个二阶节串联实现
- 使用定点数运算替代浮点数运算
- 预先计算并存储常用函数查表
- 合理安排控制周期(通常为100-500μs)
例如,巴特沃斯滤波器的定点数实现:
c复制// 定点数二阶滤波器实现
#define Q 14 // 定点数小数位
int32_t biquadFilter_fixed(BiquadFilter_fixed *f, int32_t input) {
int64_t acc = (int64_t)f->b0*input
+ (int64_t)f->b1*f->x1
+ (int64_t)f->b2*f->x2
- (int64_t)f->a1*f->y1
- (int64_t)f->a2*f->y2;
int32_t output = (int32_t)(acc >> Q);
f->x2 = f->x1; f->x1 = input;
f->y2 = f->y1; f->y1 = output;
return output;
}
6. 实际项目效果验证
在某量产电动车项目中,我们对比了采用主动阻尼控制前后的振动数据:
| 测试工况 | 振动幅值(未控制) | 振动幅值(主动控制) | 改善率 |
|---|---|---|---|
| 急加速 | 12.5 rpm | 3.2 rpm | 74% |
| 急减速 | 9.8 rpm | 2.7 rpm | 72% |
| 匀速运行 | 1.2 rpm | 0.4 rpm | 67% |
测试数据显示,主动阻尼控制在不同工况下都能显著降低振动幅值。特别是在急加速工况下,振动幅值从12.5rpm降至3.2rpm,改善效果非常明显。
在另一个极端案例中,某车型在特定转速区间(约3500rpm)会出现强烈共振。通过我们的主动阻尼控制方案,共振峰值降低了82%,完全达到了量产要求。这个案例特别之处在于,我们发现了传动轴的不平衡质量是主要激振源,通过结合转速同步补偿,实现了比单纯阻尼控制更好的效果。