基于脉振高频电压注入法的永磁同步电机PMSM矢量控制模型 在d轴注入旋转高频电压信号在q轴进行同步轴系变换及滤波提取含有转子位置的电流信号上述电流信号通过锁相环得到转速经积分得到位置信息基于高频注入方法进行无位置传感器矢量控制实现低速区稳定可靠运行下面有贴转速波形可以加载运行下面有贴转速波形和电流波形。 附带参考文献一篇咱今天聊点硬核的手把手拆解永磁同步电机无位置传感器控制里那个高频注入法的实现套路。这玩意儿在低速工况下特别管用就像给电机装了透视眼不用编码器也能把转子位置摸得门儿清。先看高频信号怎么玩转坐标系。在MATLAB/Simulink里搞这个核心就是坐标变换那套把戏。比如在d轴注入500Hz的正弦电压信号代码里大概是这么操作的% 高频电压注入参数 f_h 500; % 500Hz高频信号 V_h 15; % 注入电压幅值 theta_est ...; % 估计的转子位置 % 生成高频电压分量 Vdh V_h * sin(2*pi*f_h*time); Vqh 0; // q轴不注入 % 逆向Park变换 [Valpha_h, Vbeta_h] park_to_clarke(Vdh, Vqh, theta_est);这里有个坑要注意theta_est是估计的转子位置刚开始运行时肯定不准但系统会自己慢慢校正就像瞎子摸象一样逐步逼近真实值。接下来要处理电流响应里的位置信息。高频电流信号经过带通滤波后得用个锁相环来揪出位置误差。这里有个骚操作——把信号先平方再低通滤波// 锁相环核心处理伪代码 float demodulate_position(Current i_alpha, i_beta, float theta_est) { // 坐标变换到估计的转子坐标系 float ih_alpha i_alpha * sin(2*PI*f_h*t); float ih_beta i_beta * cos(2*PI*f_h*t); // 提取位置误差信号 float epsilon ih_alpha * cos(theta_est) - ih_beta * sin(theta_est); epsilon low_pass_filter(epsilon); // 二阶巴特沃斯走起 // PLL闭环调节 float speed_est PI_controller(epsilon); theta_est speed_est * Ts; return theta_est; }这个环节就像在嘈杂的菜市场里听清特定人说话得先做降噪处理。实际调试时巴特沃斯滤波器的截止频率得卡在比转速变化频率高个5-10倍但又不能离高频信号太近否则位置信息就废了。基于脉振高频电压注入法的永磁同步电机PMSM矢量控制模型 在d轴注入旋转高频电压信号在q轴进行同步轴系变换及滤波提取含有转子位置的电流信号上述电流信号通过锁相环得到转速经积分得到位置信息基于高频注入方法进行无位置传感器矢量控制实现低速区稳定可靠运行下面有贴转速波形可以加载运行下面有贴转速波形和电流波形。 附带参考文献一篇搞过现场调试的兄弟都知道参数整定是重头戏。PI调节器参数要是没设好系统要么反应迟钝要么疯狂震荡。这里有个野路子先把积分系数调到0比例系数从0.1开始往上撸看着转速波形慢慢调直到能跟住目标转速又不过冲。然后加上积分项消除静差但积分时间常数至少要比机械时间常数小一个量级。实测波形显示在10rpm低速工况下转速波动能控制在±0.5rpm以内见下图。带载启动时电流波形那叫一个丝滑完全没有普通滑模观测器那种锯齿状的抽搐。不过要注意注入电压幅值别太大否则铁损会增加导致电机发热具体数值得根据电机参数做折中。最后说个玄学问题——初始位置辨识。有些方案要预定位但咱们这套方法其实能自己收敛。实测时故意给个错误初始位置系统大概需要200ms就能自动对齐就像有个隐形的弹簧把转子拽到正确位置。不过要是初始偏差超过90度可能需要加个扫频信号辅助启动。[1] 王高林, 张国强, 徐殿国. 永磁同步电机无位置传感器控制技术. 中国电机工程学报, 2020.
基于脉振高频电压注入法的永磁同步电机PMSM矢量控制模型 在d轴注入旋转高频电压信号,在q轴进...
基于脉振高频电压注入法的永磁同步电机PMSM矢量控制模型 在d轴注入旋转高频电压信号在q轴进行同步轴系变换及滤波提取含有转子位置的电流信号上述电流信号通过锁相环得到转速经积分得到位置信息基于高频注入方法进行无位置传感器矢量控制实现低速区稳定可靠运行下面有贴转速波形可以加载运行下面有贴转速波形和电流波形。 附带参考文献一篇咱今天聊点硬核的手把手拆解永磁同步电机无位置传感器控制里那个高频注入法的实现套路。这玩意儿在低速工况下特别管用就像给电机装了透视眼不用编码器也能把转子位置摸得门儿清。先看高频信号怎么玩转坐标系。在MATLAB/Simulink里搞这个核心就是坐标变换那套把戏。比如在d轴注入500Hz的正弦电压信号代码里大概是这么操作的% 高频电压注入参数 f_h 500; % 500Hz高频信号 V_h 15; % 注入电压幅值 theta_est ...; % 估计的转子位置 % 生成高频电压分量 Vdh V_h * sin(2*pi*f_h*time); Vqh 0; // q轴不注入 % 逆向Park变换 [Valpha_h, Vbeta_h] park_to_clarke(Vdh, Vqh, theta_est);这里有个坑要注意theta_est是估计的转子位置刚开始运行时肯定不准但系统会自己慢慢校正就像瞎子摸象一样逐步逼近真实值。接下来要处理电流响应里的位置信息。高频电流信号经过带通滤波后得用个锁相环来揪出位置误差。这里有个骚操作——把信号先平方再低通滤波// 锁相环核心处理伪代码 float demodulate_position(Current i_alpha, i_beta, float theta_est) { // 坐标变换到估计的转子坐标系 float ih_alpha i_alpha * sin(2*PI*f_h*t); float ih_beta i_beta * cos(2*PI*f_h*t); // 提取位置误差信号 float epsilon ih_alpha * cos(theta_est) - ih_beta * sin(theta_est); epsilon low_pass_filter(epsilon); // 二阶巴特沃斯走起 // PLL闭环调节 float speed_est PI_controller(epsilon); theta_est speed_est * Ts; return theta_est; }这个环节就像在嘈杂的菜市场里听清特定人说话得先做降噪处理。实际调试时巴特沃斯滤波器的截止频率得卡在比转速变化频率高个5-10倍但又不能离高频信号太近否则位置信息就废了。基于脉振高频电压注入法的永磁同步电机PMSM矢量控制模型 在d轴注入旋转高频电压信号在q轴进行同步轴系变换及滤波提取含有转子位置的电流信号上述电流信号通过锁相环得到转速经积分得到位置信息基于高频注入方法进行无位置传感器矢量控制实现低速区稳定可靠运行下面有贴转速波形可以加载运行下面有贴转速波形和电流波形。 附带参考文献一篇搞过现场调试的兄弟都知道参数整定是重头戏。PI调节器参数要是没设好系统要么反应迟钝要么疯狂震荡。这里有个野路子先把积分系数调到0比例系数从0.1开始往上撸看着转速波形慢慢调直到能跟住目标转速又不过冲。然后加上积分项消除静差但积分时间常数至少要比机械时间常数小一个量级。实测波形显示在10rpm低速工况下转速波动能控制在±0.5rpm以内见下图。带载启动时电流波形那叫一个丝滑完全没有普通滑模观测器那种锯齿状的抽搐。不过要注意注入电压幅值别太大否则铁损会增加导致电机发热具体数值得根据电机参数做折中。最后说个玄学问题——初始位置辨识。有些方案要预定位但咱们这套方法其实能自己收敛。实测时故意给个错误初始位置系统大概需要200ms就能自动对齐就像有个隐形的弹簧把转子拽到正确位置。不过要是初始偏差超过90度可能需要加个扫频信号辅助启动。[1] 王高林, 张国强, 徐殿国. 永磁同步电机无位置传感器控制技术. 中国电机工程学报, 2020.