永磁同步电机二次起步处理

一、电机二次起步问题

1.1 第一次启动 (电机零速启动)

在电机零速启动时,电机的状态是:

  • (电角速度为 0)
  • (反电动势为 0)

此时我们的控制刚刚启动,给出的其内部的电流环 PI 和输出给定为:

  • = 0
  • (电流环积分器) = 0
  • = 0

之后积分器和 Uq 输出根据设计上升,电机正常启动,无问题。

1.2 第二次启动 (电机滑行中启动)

在电机滑行的状态时,电机的状态是:

  • (电角速度为 0)
  • (反电动势为 0)

根据 q 轴电压方程 (简化、稳态):

将其变形得到:

  • = q 轴电压
  • = q 轴电流
  • = 定子电阻
  • = 电角速度
  • = 永磁体磁链

此时因为我们的 ω 不为 0,导致 不为 0。但是我们控制器在刚刚启动是将 Uq 输出为 0,这就会导致,也就是此时的情况为:

  • (q 轴电压为 0)
  • (反电动势不为 0)

这就会导致:

也就是转子已经在转了,但 q 轴电压不够,结果电机反推控制器。这种情况导致 q 轴电压瞬间为负,表现为电流环 PI 控制器被干扰,导致电流有冲击,反向力矩。

1.3 问题实际现象与总结

可见我们在电机有惯性 (有反电动势) 的情况启动后在电流和电压上均会出现尖峰:

本质原因是电机已在转,反电动势已存在,而控制器接管瞬间 q 轴电压为 0 (或过小),导致 q 轴电流瞬间为负,引发电流冲击和反向转矩。

二、解决办法

2.1 解决思路

二次起步的核心问题是接管瞬间 q 轴电压不足以抵消已存在的反电动势,导致 q 轴电流反向冲击。

解决办法是在进入闭环前,根据当前转速估算反电势,并将其作为 q 轴电压前馈或 PI 积分器初始值,使接管瞬间电压与电机状态匹配,从而实现无冲击切换。

也就是在二次起步进入闭环前:

  • = Iq 的积分项
  • = 电角速度
  • = 永磁体磁链
  • = 反电动势

为了实现这一步骤,我们在 Simulink 模型中输入母线电压、三项电压和转速 (转速只做判断方向使用),最终我们输出的是近似的反电动势幅值,将其传递给我们的 q 轴 ki 的积分中,我们在二次启动电机时就用这个 ki 积分值,而不是 0。

2.2 获取三项相电压

将我们获取的三项端电压取中点得到端电压,之后除以母线电压,得到 0~1 的标幺量:

2.3 对电压进行 Clack 变换

对电压进行 Clack 变换得到 α、β 轴电压:

2.4 估算反电动势幅值

用 α、β 电压幅值估算反电动势幅值。

首先将 α、β 的电压值求 VS,也就是:

其中的 K 等于 ,这个常量将我们电压扩大到 SVPWM 能输出的尺度,再做低通滤波,作为一个稳定的反馈量输出。

Filter 做一个一阶低通滤波器使用,根据实际进行滤波效果设定即可。

2.5 全部的仿真框架

  • ① 获取三项相电压
  • ② 对电压进行 Clack 变换
  • ③ 估算反电动势幅值

我们只需要在电机停止输出后 (iq、id均为 0) 调用这个模块,让其赋值给 iq 中 ki 的积分。

三、使用效果

可见,我们再二次启动时,不再有电压的尖峰了,电机也不会有异响。

相关推荐
DLGXY3 小时前
STM32——TIM定时器、定时中断、RCC时序(八)
stm32·单片机·嵌入式硬件
CQ_YM3 小时前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式
让世界再也没有bug4 小时前
测试工具之一 ------示波器
单片机·嵌入式硬件·硬件测试·嵌入式软件测试
CircuitWizard4 小时前
STM32 + 淘晶驰T1串口屏波形显示
stm32·单片机·嵌入式硬件
A9better4 小时前
嵌入式开发学习日志53——互斥量
stm32·嵌入式硬件·学习
Q_21932764556 小时前
基于单片机的个性化服装尺寸红外 测量仪的设计
单片机·嵌入式硬件
Polanda。6 小时前
定时器-PWM参数测量实验
stm32·单片机·嵌入式硬件
恶魔泡泡糖7 小时前
51单片机串口通信
c语言·单片机·嵌入式硬件·51单片机
wotaifuzao7 小时前
【Keil 5安装】keil 5最新版本安装+环境配置+下载百度资源分享(安装包,注册机等)
stm32·单片机·嵌入式硬件·mcu·学习·keil5·最新keil