添加了自动振动补偿功能,并在电机驱动 ISR 中进行调用以计算前馈扭矩电流。
- 在工程的构建配置中添加预定义符号 MOTOR1_VIBCOMPA(如Topic Link Label3.2.2 所述)以启用振动补偿。
- 在 CCS Debug 透视图中向“Expressions”窗口添加变量 vibCompAlpha、vibCompGain 和 vibCompIndexDelta,并根据压缩机和空调系统调整这些参数以实现预期的振动补偿性能。
- vibCompAlpha 用作学习速度。该值越高(最大值为 1.0),学习算法的速度就越慢。不过,取较高的值也有好处,可以提供抗噪性。
- vibCompIndexDelta 将输出波形提前一点点,以便在机械角达到该点时产生的电流非常接近所需的值。建议使用典型值 10,但最终需要用户进行微调。
- vibCompGain 是前馈扭矩基准扭矩电流值的增益系数(最大值为 1.0)。
- 更改转速基准 (motorVars[0].speedRef_Hz) 和转速控制器增益(motorVars[0].Kp_spd 和 motorVars[0].Ki_spd)。该步骤用于使电机由于脉动负载而振动。为了使振动补偿更好地工作,增加转速控制器增益的值。不过,前提是要确保转速控制器保持稳定。
- 在工程的构建配置中添加预定义符号 DEBUG_MONITOR_EN(如Topic Link Label3.2.2 所述)以启用电机运行转速振动。现在,通过设置标志 vibCompFlagEnable = 1 来启用振动补偿输出。然后使其运行 5 至 10 秒,然后通过设置位 motorVars[0].flagClearRecord = 1 来实现新转速变化。记录转速变化约为 2Hz。
- 如果振动没有减少,请尝试增加转速控制器增益。此外,还可以尝试通过每次将 vibCompAlpha 的值递减 0.02 来提高振动补偿算法的学习速度,因此可以尝试0.99、0.97、0.95 等,每次更改 vibCompAlpha 时,使其运行几秒钟并通过重置该计算来读取转速变化:motorVars[0].flagClearRecord = 1。
- 调整并修正这些变量值后,使用 user_mtr1.h 文件中新定义的参数记录监视窗口值。
USER_MOTOR1_VIBCOMPA_ALPHA = vibCompAlpha 的值。振动补偿模块的学习速率范围为 0.0 至 1.0。
USER_MOTOR1_VIBCOMPA_GAIN = vibCompGain 的值。振动补偿模块的增益范围为 0.0 至 1.0。
USER_MOTOR1_VIBCOMPA_INDEX_DELTA = vibCompIndexDelta 的值。振动补偿模块的相位提前范围为 0 至 360。
基于压缩机扭矩与角度的电机电流控制是对抗转速纹波变化的替代技术。在工程的构建配置中添加预定义符号 MOTOR1_VIBCOMPT(如Topic Link Label3.2.2 所述)以启用该振动补偿方法。
根据滚动活塞角度,可以在转速 PI 控制器输出中添加或减去额外的扭矩电流分量。需要在压缩阶段添加电流,并在排气期间减去电流(它有助于活塞运动,使转速增加),并且可以根据经验计算其幅度以匹配压缩机的扭矩曲线。算法将 360 度机械角分成 3 个扇区,可以通过变量 VibCompAlpha0、120 和 240 分别添加补偿电流。经过粗调补偿后,转速纹波从 200Hz 减小至 100Hz 以下 (1200rpm)。如果更加贴合扭矩曲线进行调整,可以进一步降低转速纹波。通常对介于 1200 - 2000rpm (100Hz) 之间的压缩机转速启用振动补偿,这往往可以减小其影响。