1. 关键参数设置
与原先M3514软件算法有所差异,新版本把各个软件配制参数做了分离,主要的系统的配置主要分为4个,分别是
- parameter.h:
包括系统层参数配置、硬件参数配置、电机运行状态参数配置、电机异常状态检测参数配置、各个PI环路参数整定及设定、功率环控制等;
- user_motor_parameter_config.h:
电机核心电气参数配置、电机参数统一标定配置。
- user_obs_mode_config.h:
低速观测器参数配置、高速观测器参数配置、顺逆风参数配置。
- user_work_mode_config.h:
电机启动方式设定、顺逆风启动使能设定、IPD初始位置检测启动使能设定等。
2. 运行模式
与原先软件算法相比,新版本支持闭环启动,在user_work_mode_config.h文件中修改宏定义START_MODE_SET 可设置为 START_OPENLOOP_MODE(开环启动) 和 START_CLOSELOOP_MODE (闭环启动)

3. 程序基本参数设置
3.1. 测量
此部分主要涉及到电机的相关参数(可通过电桥及万用表等设备),包括相电阻、电感、极对数等,并在user_motor_parameter_config.h文件中修改相关参数。**默认使用开发板调试,因此不介绍其他与硬件电路相关参数。

数字万用表欧姆档,探头两端夹在任意两相之间测量,然后调换顺序,测量出三组值,平均后结果除2。
数字电桥(Ls-Rs Freq:10K V:0.3V)两端夹在任意两相之间测量,转动电机,找出电感的最大最小值,然后调换顺序,测量出三组值,平均后结果除2。Lq = L_max / 2;Ld = L_Min / 2。
可将电机其中两相,接入一个低电压,低电流电源,手动转动电机转子,感受电机顿挫感,一个顿挫感代表一个极对数。
3.2. 电压设置

此部分主要设置:
在parameter.h中,设置电机电压工作范围,可参考电机规格书设置,保证电机工作时不会出现过压损坏或欠压无法正常工作。
3.3. 电流设置

此部分需要设置:
在parameter.h中,设置软件过流保护值,可参考电机规格书设置,保证电机工作时不会出现过流保护,速度PI调节电流值限制可以设置比保护值略小。
3.4. 电机参数设置
此部分主要涉及到电机的转速设定:包括额定转速,转速标幺量程,旋钮控制时转速的最大、最小值等,并在user_motor_parameter_config.h文件中修改相关参数。额定转速(MOTOT_SPEED_RPM_RATED)一般根据电机规格书设定,标幺转速(SPEED_CALIBRATION)需要一般建议设置为125%左右即可。过大会导致控制精度偏低,过小会导致异常。

同时在parameter.h中设置电机保护最小转速和电机保护最大转速,防止电机启动时因为速度过大产生保护。

3.5. 电机状态机切换速度阈值设置
在parameter.h文件中找到下面几个宏定义:

**STOP_TO_RUN_RPM(**停止到运行切换速度阈值):
这个阈值应该足够小,以便快速响应启动命令,但又不能太小,避免噪声误触发;建议:最大转速的1-2%。
STARTUP_TO_SPIN_SPEED(开环到闭环切换速度阈值):
观测器能够可靠工作的最低速度,低于这个速度,观测器估算的角度和速度不可靠,高于这个速度,才能从开环切换到闭环;建议:额定转速的5-10%。
考虑因素:
- 电机类型:PMSM通常可以更低,BLDC需要更高
- 负载特性:重载时需要更高速度
- 观测器性能:滑模观测器通常需要100RPM以上
FREEWHEEL_SPEED (自由轮速度):
当速度低于此值时进入自由轮状态,应该比停止到运行阈值稍高,形成迟滞,建议:最大转速的2-3%。
3.6. 电机工作模式设定
在user_work_mode_config.h中设定电机工作模式,建议先使用开环启动模式(START_OPENLOOP_MODE)

同时如果不是风机应用,关闭顺逆风启动**(#define WIND_ENABLE (0));**

4. 调试步骤
此时调试方式可参考M3514 V1.0版本调试步骤:
4.1. 先预定位调节电流环PI
由状态机切换逻辑可以了解到,预定位到开环切换逻辑在慢环速度环中实现的,因此修改慢环预定位代码如下所示,屏蔽预定位到开环的判断逻辑。
*/
static void M1_RunAlignSlow(void)
{
stc_FocCtrl.stc_IdqCmd.s16q15_D = 0;
if(stc_FocCtrl.s16_SpdCmd > 0)
{
stc_FocCtrl.stc_IdqCmd.s16q15_Q = ramp_s16(CUR_ALIGN,&stc_IdRamp);
}
// if(abs(stc_FocCtrl.stc_IdqCmd.s16q15_Q) == CUR_ALIGN)
// {
// M1_SwitchRunAlignStartup();
// stc_IdRamp.s32q20_OutTemp = 0;
// }
if(abs(stc_FocCtrl.s16_SpdCmd) < STOP_TO_RUN_SPEED)
{
/* Switch from Stop to Run state*/
ATMR_PWMOutput(DISABLE);
eM1_MainState = MainState_Stop;
eM1_RunSubState = RunState_Calib;
/*复位参数*/
variable_reset();
}
}
修改合适的预定位电流值:

下载代码进入开发板,观察电机是否动一下;
新版本程序在原先基础上添加了电流环参数自动计算功能,但对于部分电机来说,靠计算的PI参数,可能会出现低速情况下能正常运行,在高速运行下,容易出现电流波动较大的情况,建议实际使用手动调整最佳。
**ELECT_CUT_OFF_FREQ:**基于电机电气换算的截至频率(自动计算)
**FORCE_CUT_OFF_FREQ:**自行设定的截至频率,需手动配置,自行设定的截至频率 2pi*f 单位rad/s
**FINAL_CUT_OFF_FREQ:**选取截止频率的方式,可选取ELECT_CUT_OFF_FREQ或 FORCE_CUT_OFF_FREQ
可在parameter.h文件中找到下面几个宏定义进行修改:

下图是使用 ELECT_CUT_OFF_FREQ 自动计算调节出的电流环D、Q轴电流。电流跟随比较好,有点部分震荡,如追求较好效果,建议手动调试优化PI参数。

4.2. 开环状态调节锁向环PI以及观测器增益和误差范围

屏蔽下面两段代码


在parameter.h文件中找到下面几个关于锁相环PI参数宏定义进行修改:

在user_obs_mode_config.h文件中,主要修改高速观测器误差范围和高速观测器增益范围这两项值,此处建议使用手动配置--手动填写观测器增益系数。如对滑膜观测器有较深理解可以采用观测器增益自计算。

此部分主要调节观测器速度能否快速收敛到设定的斜坡速度上,具体效果可结合实际,

在此处我们引入了一个叫PLL归一化使能(HOBS_NORMALIZED_PLL_ENABLE)的参数。默认不开启,在部分应用场合开启会有一定优化效果。
4.2.1. 什么是PLL归一化处理?
4.2.1.1. 基本原理

我们知道滑模观测器主要靠反电动势估算转子角度,计算速度值,但是在低速区域会有性能严重退化问题。
- 归一化目的:
- 消除转速变化对位置估算的影响
- 高速时反电动势幅值大
- 低速时反电动势幅值小
- 直接使用会影响PLL的收敛性和精度
4.2.2. PLL归一化处理的主要作用
- 提高位置估算精度
- 消除转速变化引起的估算误差
- 使PLL在整个速度范围内保持一致的动态性能
- 降低高速和低速时的位置估算偏差
2. 增强系统鲁棒性
- 参数变化适应:减弱电机参数变化(如磁链变化)的影响
- 抗扰动能力:对负载变化和外部干扰具有更好的适应性
- 稳定性提升:避免因幅值波动导致的PLL失锁
3. 改善动态响应
- 快速收敛:PLL能更快地锁定转子位置
- 减小超调:位置跟踪过程更加平稳
- 宽速域性能:从零速到高速都能保持良好性能
4. 简化PLL设计
- 参数整定简化:PLL参数不需要随速度调整
- 标准化处理:统一的处理方式简化了算法实现
- 可移植性:便于在不同功率等级电机上应用
4.2.3. 归一化处理在PLL中的工作流程

部分参考代码实现如下所示:
// 典型归一化处理代码示例
void Normalize_BackEMF(float *e_alpha, float *e_beta)
{
// 计算反电动势幅值
float E_amplitude = sqrtf(*e_alpha * *e_alpha + *e_beta * *e_beta);
// 归一化处理(避免除零)
if(E_amplitude > EPSILON) {
*e_alpha = *e_alpha / E_amplitude;
*e_beta = *e_beta / E_amplitude;
} else {
*e_alpha = 0;
*e_beta = 0;
}
}
4.2.4. 技术优势与注意事项
优势
- 全速域一致性:高速和低速性能均衡
- 降低对精确参数的依赖:对电机参数变化不敏感
- 易于实现:计算量小,适合嵌入式系统
注意事项
- 低速处理:接近零速时反电动势幅值很小,需要特殊处理
- 除零保护:必须加入幅值阈值判断
- 噪声影响:归一化可能放大测量噪声,需要适当滤波
实际应用效果
- 位置估算误差:通常可降低30%-50%。
- 速度估算范围:扩展至更低速度(可达额定转速的1%-2%)
- 动态响应:转速突变时的恢复时间缩短20%-40%
**总结:**归一化处理是提升滑模观测器PLL性能的关键技术之一,特别适用于对低速性能和全速域稳定性要求较高的FOC应用场合
4.3. 闭环调节速度环PI,即可正常运行。
在parameter.h文件中找到下面几个关于速度环PI参数宏定义进行修改:


若出现停机的最后时刻电机异常抖动,说明 FREEWHEEL_SPEED 阈值设置不对,观测器最后速度观测异常,可找到改点速度值,计算出速度阈值。

至此如无报错信息,电机基本可正常运行,可做后续测试,再结合实际调整参数。