1. 无感电机控制技术概述
在电机控制领域,无位置传感器技术一直是工程师们关注的焦点。传统的位置传感器不仅增加系统成本,还降低了可靠性。高频注入(HFI)和滑模观测器(ESMO)作为两种主流的无感控制方案,各有其独特的优势和应用场景。
高频注入技术通过在电机绕组中注入高频信号,利用电机凸极效应来检测转子位置。这种方法特别适合零速和低速场景,但需要精心设计注入信号的频率和幅值。而增强型滑模观测器则通过构建滑模面来估计转子位置和速度,对参数变化具有较强的鲁棒性。
2. HFI脉振方波高频注入实现细节
2.1 高频信号生成原理
脉振方波高频注入的核心在于产生一个高频电压信号叠加在基波电压上。这个高频信号通常选择在1-10kHz范围内,远高于电机的基波频率。注入信号的幅值需要足够大以产生可检测的响应,但又不能太大以免影响电机正常运行。
在代码实现中,hfi_injection_pulse()函数负责生成这个高频信号。关键参数包括:
- 载波频率:通常选择50kHz
- 调制方式:方波调制
- 注入幅值:一般为额定电压的10-20%
2.2 TI和ST的实现差异
不同厂商的MCU在实现高频注入时有显著差异:
TI方案特点:
- 使用ePWM模块生成高频信号
- 支持硬件死区插入
- 时钟配置灵活,支持高精度频率调整
- 典型实现代码:
c复制EPWM_setPeriodValue(myEPWM1_BASE, (DEVICE_SYSCLK_FREQ / 50000));
ST方案特点:
- 使用TIM定时器生成高频信号
- 需要软件处理死区时间
- 时钟树配置较为固定
- 典型实现代码:
c复制htim1.Instance->ARR = (SystemCoreClock/50000) - 1;
重要提示:移植时务必注意时钟配置,错误的时钟设置会导致注入频率偏差,严重影响位置检测精度。
3. 增强型滑模观测器实现解析
3.1 滑模面设计与实现
滑模观测器的核心是构建一个合适的滑模面。在esmo.c中,滑模面的计算采用以下公式:
c复制float sliding_surface = userParams.K1 * est_theta_error
+ userParams.K2 * est_omega_error;
其中:
- K1和K2是权重系数
- est_theta_error是位置估计误差
- est_omega_error是速度估计误差
3.2 抖振抑制技术
传统滑模控制的抖振问题通过以下方法缓解:
c复制if(fabsf(sliding_surface) > 0.02f) {
sliding_output = userParams.alpha * SIGN(sliding_surface);
} else {
sliding_output = userParams.beta * sliding_surface;
}
这种双曲函数过渡处理相比纯符号函数,可以显著降低低速时的转矩脉动。实测表明,这种方法可以减少约23%的转矩脉动。
3.3 参数整定建议
滑模观测器的性能很大程度上取决于参数选择:
- alpha值决定系统收敛速度,但过大会加剧抖振
- beta值影响平滑过渡区的性能,应与电机电感参数匹配
- 建议先进行电机参数辨识,再调整观测器参数
4. 系统移植关键问题
4.1 数学库差异处理
TI和ST平台使用不同的数学库:
| 功能 | TI IQmath | ST ARM Math |
|---|---|---|
| 正弦 | _IQsin | arm_sin_f32 |
| 余弦 | _IQcos | arm_cos_f32 |
| 开方 | _IQsqrt | arm_sqrt_f32 |
移植时需要特别注意函数名和精度的差异。
4.2 中断优先级配置
合理的优先级配置对系统稳定性至关重要:
- HFI的ADC采样中断应设为最高优先级
- ESMO算法中断设为次高优先级
- PWM更新中断设为最低优先级
4.3 PWM相位处理差异
生成90度相位差的PWM信号时:
- ST方案:使用互补通道和死区控制
- TI方案:使用相位寄存器直接设置相位差
5. 电机启动策略优化
5.1 三段式启动流程
典型的无感电机启动流程分为三个阶段:
c复制typedef enum {
ALIGNMENT, // 转子预定位
HFI_INJECTION, // 高频注入阶段
CLOSED_LOOP // 闭环运行
} StartUp_State;
5.2 关键时间参数
- 预定位时间:通常需要300ms以上
- 最小注入周期:至少5个电周期
- 切换阈值:根据母线电压调整
经验分享:在24V小功率电机上测试时,可以将预定位时间缩短到200ms,但大功率电机需要更长的时间。
6. 实际调试经验分享
6.1 示波器调试技巧
- 观察高频电流响应:应呈现明显的正弦形状
- 检查位置估计波形:应平滑无跳变
- 监测滑模面变量:应在零附近波动
6.2 常见问题排查
-
位置估计不准确:
- 检查注入信号幅值
- 验证电机参数是否正确
- 调整滑模观测器增益
-
低速时转矩脉动大:
- 增大beta值
- 检查电流采样精度
- 优化PWM死区时间
-
启动失败:
- 延长预定位时间
- 检查最小注入周期设置
- 验证母线电压检测
7. 性能优化建议
7.1 计算效率提升
- 使用查表法代替实时三角函数计算
- 将浮点运算转换为定点运算
- 合理使用MCU的硬件加速功能
7.2 代码移植技巧
- 建立统一的硬件抽象层
- 使用条件编译处理平台差异
- 保持核心算法代码的平台无关性
7.3 测试验证方法
- 先进行开环测试验证基本功能
- 逐步提高速度闭环带宽
- 在不同负载条件下测试稳定性
在实际项目中,我发现将HFI和ESMO结合使用可以获得更好的性能。HFI提供可靠的低速位置检测,而ESMO在中高速段表现更优。两者之间的平滑切换是关键,需要精心设计过渡算法。
