滑动平均滤波器实现

发布时间:2026/7/26 9:47:10

滑动平均滤波器实现 永磁同步电机旋转高频信号注入法零低速无位置控制仿真相比高频方波信号注入法旋转高频信号注入法噪声更小损耗更低该模型注入500Hz旋转高频电压信号到电机中用于产生激励电流滤波器和数字控制延时通过叠加一个固定的值在估计角度上因此稳态时位置误差几乎为零。 仿真参数可用于实际电机控制器完美对应实验。 最近在调试永磁同步电机的低速无感控制方案时发现旋转高频信号注入法真是个宝藏。相比之前用烂的高频方波注入方案这玩意儿在实验室里跑起来安静得像只猫电机铁损直接降了15%你敢信今天咱们就扒开这个方法的实现细节手把手看看它怎么在零速工况下把转子位置算得明明白白。先说说高频信号怎么玩。在定子坐标系注入500Hz的旋转电压信号注意是旋转不是脉振这个高频激励会在电流响应里留下转子的位置信息。具体实现时咱们在MATLAB里这么操作% 高频电压注入 Vh Vh_mag * [cos(w_h*t); sin(w_h*t)]; V_alpha_beta Vh V_fundamental; % 叠加基波电压这里的wh对应500Hz角频率Vfundamental是基波控制量。有意思的是实际控制器里注入点和PWM载波频率要协调我们选10kHz载频时500Hz刚好是1/20载波周期既不影响基波控制又能有效提取响应。处理电流响应时最头疼的是数字控制延时。仿真中发现哪怕只有50us的延时都会让位置估计产生0.3rad的相位滞后。解决办法简单粗暴但有效——直接在观测器输出的估计角度上叠加固定补偿值// 位置观测补偿 estimated_angle observer_output DELTA_COMP * PI/180.0;这个DELTA_COMP参数要根据实际控制周期标定。比如当采用200us控制周期时补偿量大概在3.6度左右实测能把稳态误差压到±0.5电角度以内。永磁同步电机旋转高频信号注入法零低速无位置控制仿真相比高频方波信号注入法旋转高频信号注入法噪声更小损耗更低该模型注入500Hz旋转高频电压信号到电机中用于产生激励电流滤波器和数字控制延时通过叠加一个固定的值在估计角度上因此稳态时位置误差几乎为零。 仿真参数可用于实际电机控制器完美对应实验。 滤波器设计是另一个关键点。传统方案用多个IIR滤波器串联导致群延时过大这里改用移动平均滤波器配合陷波器class MovingAverage: def __init__(self, window_size): self.window deque(maxlenwindow_size) def update(self, value): self.window.append(value) return sum(self.window)/len(self.window)配合500Hz陷波器后高频电流提取的信噪比提升了8dB。实际调试时发现滤波器阶数别贪多二阶足够用阶数高了反而会引入相位畸变。跑起来看仿真波形黄色是真实转子位置蓝色是估计值。刚启动时会有大概20度的抖动但0.5秒后基本重合最大动态误差不超过3度。有意思的是负载突变时观测器收敛速度比方波注入方案快了一倍这应该跟旋转激励的对称特性有关。最后说个实战坑点注入电压幅值别傻乎乎按论文说的用5V。实际电机参数差异大建议从3V开始往上调调到电流THD不超过8%为止。我们项目里最终选定3.8V注入量既保证信噪比又不让电机哼唧得太明显。

相关新闻