3. 速度闭环控制基础
任务目标
在InstaSPIN-FOC速度闭环模式下,通过实验方法整定PID参数(Kp、Ki),使电机能够快速达到设定转速并保持稳定运行,无明显振荡与稳态误差。
环境与依赖
- 硬件:支持InstaSPIN-FOC的C2000 LaunchPad(如LAUNCHXL-F28069M)+ BOOSTXL-DRV8301电机驱动板 + 三相PMSM电机(如HP 400W伺服电机或低惯量PMSM)
- 软件:CCS(Code Composer Studio)10.x及以上,MotorWare或C2000Ware中的InstaSPIN例程工程
- 关键文件:
proj_lab10.c(速度闭环例程),user.h(用户参数配置)
实现原理与整定流程
速度闭环采用PI控制器,输出为电流环的转矩参考值。整定目标是使速度响应快、超调小、稳态无静差。本案例采用先内环后外环的整定顺序:先确认电流环已由InstaSPIN自动辨识并稳定,再手动整定速度环PI参数。
关键完整代码
以下代码在proj_lab10.c的速度环ISR中实现PI控制器,并开放两个全局变量用于在线调参(通过CCS的Expression Window实时修改):
// 速度环PI参数(可在CCS调试界面实时修改)
float32_t Kp_spd = 0.5f; // 比例增益
float32_t Ki_spd = 0.05f; // 积分增益
// 速度环PI控制器(在ISR中调用,频率为10kHz)
void speedLoopPI(float32_t speedRef, float32_t speedFb)
{
static float32_t integral = 0.0f;
float32_t error = speedRef - speedFb;
// 抗积分饱和:限制积分项输出范围
float32_t maxIntegral = 0.5f; // 与电流环最大转矩指令相关
integral += Ki_spd * error;
if (integral > maxIntegral) integral = maxIntegral;
if (integral < -maxIntegral) integral = -maxIntegral;
// PI输出 = 比例项 + 积分项
float32_t torqueRef = Kp_spd * error + integral;
// 限幅到电流环允许范围(-1.0 ~ 1.0,对应额定转矩)
if (torqueRef > 1.0f) torqueRef = 1.0f;
if (torqueRef < -1.0f) torqueRef = -1.0f;
// 写入电流环参考(全局变量,由电流环ISR读取)
gTorqueRef = torqueRef;
}
在user.h中确认以下配置已启用速度闭环模式:
#define SPEED_LOOP_ENABLE 1 // 使能速度环
#define ISR_FREQUENCY_HZ 10000 // 速度环ISR频率
运行与整定步骤
- 编译工程并烧录至LaunchPad,打开CCS的Expression Window,添加变量
Kp_spd、Ki_spd、gSpeedRef(设定转速)和gSpeedFb(反馈转速)。 - 初始设定
Kp_spd = 0.2,Ki_spd = 0.01,给定转速gSpeedRef = 1000RPM(或电机额定转速的30%)。 - 运行电机,观察
gSpeedFb的响应曲线(可用CCS Graph工具)。 - 先调Kp:逐步增大Kp(每次增加0.1),观察是否出现振荡。当转速出现等幅振荡时,取当前Kp的50%~60%作为最终Kp。
- 再调Ki:在确定Kp后,逐步增大Ki(每次增加0.01),观察稳态误差是否消除。若出现低频振荡,则减小Ki至振荡消失。
- 微调:在额定转速和轻载/满载条件下分别验证,确保系统在工况变化下仍稳定。
验证方法与通过标准
- 启动响应:给定阶跃转速指令,电机应在1~2秒内达到设定值,超调量小于10%。
- 稳态精度:稳定运行后,
gSpeedFb与gSpeedRef的偏差小于±5 RPM(或设定值的0.5%)。 - 抗扰能力:手动施加短暂负载(如用手轻捏电机轴),转速跌落应小于50 RPM并在1秒内恢复。
- 无振荡:在整定范围内,速度波形无持续等幅振荡。
常见问题
- 电机啸叫或电流过大:Kp过大导致转矩指令振荡,立即减小Kp。
- 转速缓慢爬升无法到达设定值:Ki过小,增大Ki。
- 转速超调后长时间振荡:Ki过大,减小Ki并适当增加Kp。
完成上述整定后,速度闭环即达到稳定运行要求。若需进一步优化动态响应,可引入微分项(Kd),但PMSM速度环通常PI已足够,Kd会放大噪声,不建议优先使用。