ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

永磁同步电机5/7次电流谐波注入补偿Simulink仿真

永磁同步电机5/7次电流谐波注入补偿Simulink仿真

简介:面向电机控制与电力电子领域研究人员、工程技术人员的一份专题文档,聚焦永磁同步电机5次、7次电流谐波的成因与注入补偿方案。内容围绕Simulink建模仿真展开,依次说明气隙磁场非正弦、齿槽效应等谐波来源,谐波检测与反向注入的抵消原理,电机模型、谐波检测、谐波注入与PI闭环控制器各模块的搭建方法,并给出补偿前后电流频谱对比,验证谐波幅值下降与转矩脉动、发热改善效果。文中配有MATLAB/Simulink代码片段与参数示例,涉及FFT谐波提取、旋转坐标系谐波分离、相位对齐补偿、带通滤波器应用以及电压限幅与补偿量约束等实战经验,便于读者对照复现模型、排查补偿失效问题。包体为1个PDF文件,约115KB。已有51人学习,适合希望把谐波抑制方案落到仿真的电机控制从业者与高年级学生参考。

1. 台架上那 8% 的电流 THD,才是这套模型的起点

某实验室调试一台 3kW 永磁同步电机台架,母线 540V,样机跑到额定点附近时,示波器一抓电流波形全是毛刺,THD 读数 8.2%,转矩脉动肉眼可见,机壳温度也比同类样机高一截。换电机、换驱动板、抬载波频率都试过,收益有限。问题不在硬件,而在定子电流里那两个始终无法消除的成分:5 次和 7 次电流谐波。这套永磁同步电机 5 次 7 次电流谐波注入补偿 Simulink 模型仿真,做的事就是把这两个成分先测准,再造一个等幅反相的注入信号抵消掉,最后用 FFT 数据证明它确实降下去了。正在做电机控制方向毕设、课设,或者要给电驱项目交一份可复现仿真方案的人,可以照着这套结构走一遍。

2. 需求与技术路线:谐波源、提取、注入、限幅四条链路的职责划分

2.1 为什么先把 5 次和 7 次揪出来

定子电流里的谐波不是凭空冒出来的,源头可以列一长串:气隙磁场空间分布不是理想正弦、定子绕组分布式短距带来的磁动势谐波、齿槽效应引起的磁导变化、逆变器死区带来的电压畸变、铁芯饱和在高负载下进一步恶化波形。这些因素叠在一起,电流波形就开始偏离正弦,靠近基波的几个低次谐波幅值最大,也最难自行消减。

真正决定只盯 5 次和 7 次的,是三相对称无中线这个前提。3 的倍数次谐波属于零序分量,星形接法没有中线时基本不流通,3 次、9 次在相电流里本来就很小;再往上的 11 次、13 次幅值已经衰减得比较明显。于是 5 次和 7 次成了最低次、占比最大、危害最直接的两根谱线。50Hz 基波下,它们分别落在 250Hz 和 350Hz,这也是后面滤波器中心频率、谐振控制器谐振点、FFT 关注频点的取值来源。

换个坐标系看会更清楚。5 次谐波是负序,在同步旋转坐标系里表现为 6 倍频的反向旋转交流量;7 次谐波是正序,同样表现为 6 倍频、方向相反。两者合成后,d/q 轴电流上就叠了一个明显的 6 倍频波动,转矩脉动的主频也正好是 6 倍基频。这解释了为什么抑制电流谐波能直接改善转矩脉动——它们本来就是同一件事的两个侧面。

谐波次数频率(50Hz 基波)序分量同步旋转坐标系下表现主要危害
5 次250 Hz负序6 倍频反向交流量转矩脉动、铜损增加
7 次350 Hz正序6 倍频正向交流量电流波形畸变、铁损增加
11 / 13 次550 / 650 Hz负序 / 正序12 倍频幅值较小,优先级靠后

2.2 四个模块的信号流与采样率约定

整套模型主干还是经典 FOC:采样三相电流,Clarke 变换到 αβ,Park 变换到 dq,转速外环加电流内环双闭环 PI,输出 dq 电压指令,反 Park 后送 PWM。谐波补偿是一条并联支路,从 αβ 电流里把 5 次、7 次成分抽出来,生成反相补偿量,再叠加回电流环。

注入点有两个位置可选,做法差别不小。注到电流给定端,等于让 PI 去追一个带谐波的参考,物理意义清楚、限幅好做,缺点是 PI 带宽有限,补偿相位会被电流环滞后拖偏;注到电压指令端,补偿量直接作用到调制波上,响应快、相位可控,缺点是没有电流环兜底,参数给大了容易引起振荡。我自己更常用后者,但必须配上限幅。

采样率要在动手搭模型之前就定死,后面所有滤波器系数、谐振控制器离散化方式都依赖它。一般约定:功率级仿真步长 1e-6 到 2e-6 秒,用来还原开关纹波;控制算法步长 1e-4 秒,对应 10kHz 开关频率下的单次采样更新;做 FFT 分析的数据记录步长取 1e-5 秒,保证 350Hz 附近有足够的分辨率。

模块输入输出关键参数失效时的典型表现
电机模型三相电压三相电流、转速、转矩Rs、Ld、Lq、psi_f、极对数空载电流偏大、转矩对不上实测
谐波检测i_alpha、i_beta、theta_e5/7 次谐波幅值与相位旋转坐标倍数、低通截止频率补偿通道误读、补偿后谐波反而变大
谐波注入谐波幅值、相位补偿电压或补偿电流注入系数、相位补偿角补偿后波形仍然畸变,甚至发散
控制器转速误差、电流误差dq 电压指令Kp、Ki、谐振增益 Kr阶跃响应缓慢或振荡

提示:把控制步长和功率步长分开设,模型跑得动,波形也看得清。两者混成一个步长,要么仿真慢到没法调参,要么开关纹波糊成一片。

2.3 电机参数与仿真起步配置

参数表建议单独放一个脚本,模型里用变量引用,不要在各个模块里硬编码数字。这样换样机只改一处,做参数敏感性分析也方便。下面是按 3kW 样机写的起步配置,极对数和母线电压按实际电机改。

% PMSM 与仿真环境基础参数(按 3kW 样机示例,实测后替换) Pn = 3000; % 额定功率 3kW Vn = 380; % 额定线电压 380V fn = 50; % 额定频率 50Hz,5次=250Hz,7次=350Hz Rs = 2.875; % 定子电阻 2.875 ohm Ld = 8.5e-3; % d轴电感 8.5mH Lq = 8.5e-3; % q轴电感,表贴式取与Ld相等 psi_f = 0.175; % 永磁体磁链 0.175Wb p = 4; % 极对数,按实际电机填写 Vdc = 540; % 母线电压,用于限幅计算 Ts = 1e-5; % 数据记录步长 Tsc = 1e-4; % 控制算法步长 Tsp = 1e-6; % 功率级仿真步长

这组数字里最容易被忽略的是 Ld、Lq 和 psi_f 的一致性。psi_f 偏大,反电动势算高,弱磁点提前;Ld 偏小,电流环带宽算宽,PI 参数一给就振。稳妥的做法是先用空载反电动势实测值反推 psi_f,再用电感表或堵转试验测 Ld、Lq,最后才去调电流环。参数没对准就直接上谐波补偿,等于在错误的基波上叠加错误的补偿量,两边都错。

3. 谐波提取设计:多同步旋转坐标变换、实时 FFT 与带通滤波的三条路

3.1 用 5 倍、7 倍角速度做 Park 变换把谐波搬成直流

从原理上说,5 次谐波就是频率为基波 5 倍的一个旋转矢量。既然基波靠同步旋转坐标系搬成了直流量,那用 5 倍电角速度再建一个旋转坐标系,5 次谐波同样会变成直流量,而基波和其他次谐波则变成 6 倍频、4 倍频的交流量。这时候接一个截止频率远低于 6 倍基频的低通滤波器,直流量被保留,交流量被滤掉,目标次谐波就单独拎出来了。7 次同理,只是旋转方向不同。

% 5次/7次谐波分离:在对应倍频旋转坐标系下把目标谐波搬成直流量 % theta_e 为电角度(rad),i_alpha、i_beta 为 Clarke 变换后的静止坐标系电流 theta_5h = -5*theta_e; % 5次为负序,旋转方向与基波相反,符号必须取负 theta_7h = 7*theta_e; % 7次为正序,与基波同向 % 5次谐波在该坐标系下的 d/q 分量 i5d = cos(theta_5h).*i_alpha + sin(theta_5h).*i_beta; i5q = -sin(theta_5h).*i_alpha + cos(theta_5h).*i_beta; % 7次谐波在该坐标系下的 d/q 分量 i7d = cos(theta_7h).*i_alpha + sin(theta_7h).*i_beta; i7q = -sin(theta_7h).*i_alpha + cos(theta_7h).*i_beta; % 低通滤波,截止频率取基波的 2 倍以内,既能滤掉 6 倍频,又不会拖慢跟踪 fc_lpf = 40; % 截止频率 40Hz,远低于 300Hz 的交流分量 [b_lpf, a_lpf] = butter(2, fc_lpf/(1/(2*Ts)), 'low'); i5d_f = filter(b_lpf, a_lpf, i5d); i5q_f = filter(b_lpf, a_lpf, i5q);

这几个参数里,角度符号是第一个大问题。5 次谐波是负序,变换角必须写成 -5 倍电角度,写成正的,谐波不会被搬成直流,反而变成 12 倍频交流量,低通一滤就什么也不剩,表现为“补偿通道读数为零”。低通截止频率取 40Hz 是折中:再低,转速变化时跟不上,补偿滞后;再高,6 倍频的基波残留混进来,反相注入就变成往系统里灌噪声。滤波器阶数用二阶足够,阶数越高相位滞后越大,后面还得额外补相位。

角度累加本身也要留一个保护。长时间仿真中 theta_e 会一直增大,单精度下精度损失明显,通常的做法是每圈取模:theta_e = mod(theta_e, 2*pi)。这个操作在角度累加模块之后加一个 Math Function 就够了,不加,跑个几十秒就能看到谐波幅值缓慢漂移,那种飘忽感特别像玄学问题,查到最后往往就是数值精度。

3.2 实时 FFT 的采样窗口与整周期截断

多同步旋转坐标法适合做实时补偿,缺点是只认设定的次数,转速一变谐波频率跟着变,滤波器中心频率也得跟着调。做离线分析时我更愿意用 FFT:一次把整段电流的频谱算出来,5 次、7 次、11 次一目了然,便于验证补偿到底有没有用。

% 实时 FFT 参数:窗口长度取整到 FFT 点数的整数倍,避免频谱泄漏 FFT_size = 1024; % FFT 点数 T_window = round(1/(fn*Ts)); % 一个基波周期的采样点数,约 2000 点 window_length = round(T_window/FFT_size)*FFT_size; % 整周期截断后的窗口长度 % 提取 5 次、7 次谐波幅值与相位 N = window_length; Y = fft(i_a(N), N)/N; f = (0:N-1)*(1/(Ts*N)); % 频率轴 idx5 = round(5*fn/(1/(Ts*N))) + 1; % 250Hz 对应的谱线位置,注意 MATLAB 从 1 开始 idx7 = round(7*fn/(1/(Ts*N))) + 1; % 350Hz 对应的谱线位置 amp5 = 2*abs(Y(idx5)); phase5 = angle(Y(idx5)); amp7 = 2*abs(Y(idx7)); phase7 = angle(Y(idx7));

窗口长度必须取基波周期的整数倍,这是频谱分析里最关键的一条。取样窗口不是整周期,250Hz 的能量就会泄漏到相邻谱线上,测出来的幅值随截断位置来回摆,看着像随机数。上面代码先算出一个基波周期的采样点数,再向下取整到 FFT 点数的整数倍,实际取到 2048 点,两个完整周期。仿真步长如果改了,这段必须跟着重算。

还有一点容易踩。FFT 算出的相位是基于窗口起点的,而补偿信号需要的是相对于当前电角度的相位。窗口起点和当前时刻差了多少个采样点,就要补回对应的角度:delta_phase = 2pif_h*(窗口长度*Ts)。这一步不补,补偿量在相位上整体偏一个固定角,补偿效果能对上一大半,但总觉得差点意思,调半天也上不去。索引从 1 开始这一条也坑过不少人,idx5 少加 1,读到的是 249Hz 附近的谱线,幅值偏低,误判成补偿已经生效。

3.3 带通与带阻滤波器的带宽取法

第三条路是直接上带通滤波器,把 250Hz 和 350Hz 附近的成分滤出来。这条路实现最简单,适合快速验证,但带宽需要讲究。

% 5次、7次谐波带通提取,中心频率随基波频率动态跟踪 f_base = 50; % 基波频率,变速时实时更新 bw = 0.5*f_base; % 带宽取 ±0.5 倍基频,防止转速波动时谐波跑出通带 fs = 1/Ts; % 采样频率 [b5, a5] = butter(2, [(5*f_base - bw/2)/(fs/2), (5*f_base + bw/2)/(fs/2)], 'bandpass'); [b7, a7] = butter(2, [(6.5*f_base)/(fs/2), (7.5*f_base)/(fs/2)], 'bandpass'); i5h = filter(b5, a5, i_a); i7h = filter(b7, a7, i_a);

带宽取 ±0.5 倍基频是经验值。窄了,转速一波动,谐波频率漂出通带,补偿量直接断档,表现出来就是加速过程中补偿突然失效;宽了,邻次谐波和基波的边带混进来,补偿通道里既有 5 次又有别的东西,注入后相位对不上,反而把别的谱线抬高了。实现时我一般用 IIR 而不是 FIR,同样的选择性下计算量小一半,对实时系统友好;代价是相位非线性,得配相位补偿,这一点后面单独说。

多通道同时工作时还有一个耦合问题。5 次通道和 7 次通道的补偿指令会在电压指令上互相叠加,带宽设计不当时,一个通道的输出会落进另一个通道的检测带内,形成正反馈,两个通道越补越乱。常规解法是在每个谐波通道的输入端串一个陷波器,把对方通道的频率点掐掉,做物理隔离。

% 通道隔离:在5次通道入口陷掉350Hz,在7次通道入口陷掉250Hz wo5 = 2*pi*250; wo7 = 2*pi*350; bw_notch = 2*pi*20; % 陷波带宽 20Hz,够窄才不误伤通带 B_n5 = [1, 0, wo5^2]; A_n5 = [1, bw_notch, wo5^2]; B_n7 = [1, 0, wo7^2]; A_n7 = [1, bw_notch, wo7^2]; i5h_clean = filter(B_n5, A_n5, i5h); i7h_clean = filter(B_n7, A_n7, i7h);

陷波带宽控制在 20Hz 以内,既能掐掉串扰,又不会把邻次谐波一起压掉。这一段在模型里不占多少版面,但没有它,多通道补偿的调试过程会异常折磨,调 5 次的时候 7 次变差,调 7 次的时候 5 次又起来,来回收敛不了。

4. 补偿通道实现:反相位注入、准谐振调节器与相位对齐

4.1 注入点选择与反相信号的幅值缩放

补偿信号的生成逻辑很直白:检测到 5 次谐波幅值 A、相位 phi,就造一个幅值 A、相位 phi+pi 的信号注回去,两个矢量在时间上反向,叠加后互相抵消。真正需要设计的是注入系数、注入位置和输出形式。

% 反相位补偿信号生成 k_inj = 0.9; % 注入系数,留 10% 裕量,防过补偿 fifth_injection_amp = k_inj * fifth_amp; fifth_injection_phase = fifth_phase + pi; % 相位翻转 180 度 fifth_injection_signal = fifth_injection_amp*sin(2*pi*5*fn*t + fifth_injection_phase); seventh_injection_amp = k_inj * seventh_amp; seventh_injection_phase = seventh_phase + pi; seventh_injection_signal = seventh_injection_amp*sin(2*pi*7*fn*t + seventh_injection_phase); injection_signal = fifth_injection_signal + seventh_injection_signal; % 两通道合成

注入系数一般先从 0.8 到 0.9 起步,不要一上来给 1.0。给 1.0 意味着完全抵消,但检测环节有幅值误差、相位滞后有残差,实际注入量会略微超出,过补偿的结果是原谐波被压下去、同时在邻近频率长出一个新峰,频谱上看着更难看。0.9 的系数把残差留在原谐波一侧,幅值下降仍然有 20dB 以上,安全边际更足。等模型跑顺、相位对齐验证过,再考虑往 0.95 推。

两个通道各自的幅值缩放系数要独立可调,不要只用一个总系数。实测中 5 次谐波往往比 7 次大不少(示例台架上 5 次约 15A、7 次约 9A),对 7 次来说,为 5 次设计的增益可能偏大,容易引起 7 次通道振荡。分开给,调哪个看哪个,效率高很多。

4.2 把电流环 PI 换成 PI+准谐振并联

纯 PI 在直流信号上增益无穷大,在 250Hz、350Hz 这种交流频率上增益已经很有限,靠它去跟踪补偿指令,幅值和相位都会有明显衰减。更合适的做法是在 PI 上并联准谐振控制器,在指定频率处造一个很高的增益尖峰,让系统对这两个频率的误差有强跟踪能力。

function V_comp = harmonic_resonant(i5, i7, fb, Ts) % 准谐振控制器:在 5 次、7 次频率处提供高增益,抑制对应次电流谐波 % i5、i7 为提取出的谐波分量,fb 为实时基波频率,Ts 为控制步长 w5 = 2*pi*5*fb; % 5次谐波角频率,50Hz基波时为 1571 rad/s w7 = 2*pi*7*fb; % 7次谐波角频率,50Hz基波时为 2199 rad/s wc = 10; % 截止带宽 rad/s,太小跟不上转速波动,太大选择性变差 Kr = 40; % 谐振增益,先给 40,振荡就往下减 s = tf('s'); % 准谐振(PR)传递函数:2*Kr*wc*s / (s^2 + 2*wc*s + w0^2) R5 = (2*Kr*wc*s) / (s^2 + 2*wc*s + w5^2); R7 = (2*Kr*wc*s) / (s^2 + 2*wc*s + w7^2); t = (0:Ts:Ts*(numel(i5)-1))'; V5 = lsim(R5, i5, t); V7 = lsim(R7, i7, t); V_comp = V5 + V7; % 两路补偿电压合成,送限幅环节 end

截止带宽 wc 决定谐振峰的尖锐程度。理想 PR 控制器 wc 取 0,在谐振点增益无穷大,但对频率偏差零容忍,转速稍一波动,谐波频率偏出几赫兹,补偿就完全失效。wc 取 10 rad/s 相当于给了约 1.6Hz 的容差窗口,实际台架上转速波动引起的频率偏移都在这个范围内。给到 50 rad/s 以上,谐振峰变得很宽,对其他频率的增益也上来了,容易引起低频段振荡。

谐振增益 Kr 和注入系数是两个不同的旋钮,别混着调。Kr 影响的是控制器对谐波误差的放大倍数,Kr 大,跟踪快但容易振;注入系数影响的是最终叠加量的大小。调试顺序是先定 Kr 把环路调平,再调注入系数看 THD 曲线。反过来做,会一直觉得“增益不够所以补不干净”,越加越乱。

有一个经验公式可以给出增益量级的起点:k ≈ 1/(2pifh*L)。以 250Hz、8.5mH 计算,量级在 0.075 附近,实际取值再乘几倍做标定。这类公式只是给个起步值,别当圣旨,THD 降到 5% 以下其实就可以收手,再往下追要付出成倍的调参时间,收益很有限。

4.3 相位补偿与转速前馈

检测环节的低通滤波、控制步长带来的一拍延迟、PWM 的零阶保持,这些环节叠加起来,会让提取到的谐波相位相对真实值滞后一个可观的角。350Hz 下,一个 100μs 的控制延迟就对应 12.6 度,相位差这么多,反相注入就不是抵消而是部分叠加,补偿效果能对上一半已经算运气好。

function y = phase_compensator(u) % 二阶相位补偿器:对目标频率附近的信号做可控的超前/滞后 persistent z1 z2 if isempty(z1) z1 = 0; z2 = 0; end b = [0.02, 0.02]; % 零点位置决定超前量,按目标频率整定 a = [1, -1.8, 0.81]; % 极点位置,单位圆内保证收敛 y = b(1)*u + b(2)*z1 - a(2)*z1 - a(3)*z2; z2 = z1; z1 = y; end

这个差分方程看起来不起眼,本质是一个二阶滤波器,通过配置零极点位置在指定频段内提供近似恒定的相位偏移。整定方法不是靠试,是用扫频:给一段 200Hz 到 400Hz 的扫频信号,看 250Hz 和 350Hz 处的相位偏差,目标是把偏差压到 5 度以内。扫频这一步别省,凭波形眼估相位,误差经常在 20 度以上。

变速工况还得再加一层。转速一变,谐波频率跟着变,固定的相位补偿角和固定的谐振点都对不上了。通常的做法是把实时基波频率 fb 作为前馈量,同时送进谐振控制器的 w5、w7 计算和相位补偿器的系数整定,让整条链路跟着转速走。低速段这个影响不大,中高速段如果不加前馈,加速过程中能看到补偿效果明显衰减,THD 曲线先降后升,形成一个很别扭的 U 形。

4.4 动态限幅:别让补偿指令把逆变器顶到过调制

补偿通道的输出最终要叠到电压指令上,而电压指令受母线电压和调制方式约束。谐波补偿叠加上去之后,峰值电压很容易越界,一旦进入过调制区,波形削顶,削出来的高次谐波比原来补偿掉的还多。

% PWM 前动态限幅:幅值限 + 斜率限,两道都要 Vdc = 540; % 母线电压 Vmax = 0.95*Vdc/sqrt(3); % 线性调制区最大相电压幅值,留 5% 裕量 du_max = 2*Vmax*Tsc*200; % 斜率限制,等效 200Hz 带宽 V_sum = V_ref + V_comp; % 基波指令 + 谐波补偿 V_amp = min(max(V_sum, -Vmax), Vmax); % 第一道:幅值限 persistent V_prev if isempty(V_prev), V_prev = 0; end dV = min(max(V_amp - V_prev, -du_max), du_max); % 第二道:变化率限 V_out = V_prev + dV; V_prev = V_out;

幅值限和斜率限要一起上。只做幅值限,指令在限幅点附近来回跳,等效于给系统注入一个方波扰动,电流波形上会出现规律性的台阶。斜率限把跳变抹平,代价是引入一点相位滞后,所以限幅裕量要留足 5% 以上,别卡着母线电压用。这一段的血泪经验是:补偿算法在突加载时最容易出问题,负载一跳,谐波幅值瞬间冲高,补偿量跟着冲高,叠加后直接顶到限幅,处理不好就是功率器件先坏。

5. 避坑与排查:谐波注入补偿最容易翻车的五处

5.1 相位与符号类翻车

现象:补偿通道一投入,5 次谐波幅值不降反升,从 15A 涨到 25A 以上,电机噪声明显变大。原因基本只有两个:反相角的 pi 没加,或者加了但符号搞反,实际变成了同相叠加;再或者 5 次谐波的负序符号没处理,用 +5 倍电角度做变换,提取出来的量本身相位就是错的。排查顺序是先单独跑一路 5 次通道,把补偿量接到示波器上和原始谐波叠在一起看,两条曲线应该严格镜像。镜像不了,就在提取环节查符号,别在注入环节反复试。

现象:补偿后 250Hz 谱线下降明显,但 350Hz 反而抬高了,怎么调都压不下去。原因通常是通道耦合,5 次通道的输出落进了 7 次通道的检测带,形成交叉注入。解决方式是在各通道入口串陷波器做隔离,也可以在补偿指令合成之前先过一次带阻,把对方频点掐掉。加隔离之后如果 7 次还压不下去,就去查 7 次通道的相位补偿角,两个通道的延迟不一样,不能共用一个补偿角。

5.2 稳定性与限幅类翻车

现象:仿真跑到 0.3 秒左右电流开始等幅振荡,逐渐发散,最后报积分饱和。原因多半是谐振增益给太大,或者注入系数直接给了 1.0 还在往上加。准谐振控制器在谐振点增益很高,Kr 从 40 加到 200,环路相位裕度掉得很快。处理方式是把 Kr 减半重跑,配合注入系数从 0.8 起步,先看 THD 有没有下降趋势,再逐级加。发散时不要急着改 PI,先把补偿通道断开,确认基波环本身是干净的,再一段一段接回去。

现象:突加载瞬间电流尖峰很大,功率器件温度异常,严重时直接损坏。原因几乎没有例外,是补偿指令没有限幅或者限幅裕量不够,负载跳变时补偿量冲高,叠加后进入过调制。解决方式就是 4.4 节那两道限:幅值限留 5% 以上裕量,斜率限把跳变抹平。另外建议在突加载工况下单独记录补偿量的峰值,占限幅阈值的比例超过 80% 就该考虑降低注入系数了。

5.3 观测与读数类翻车

现象:THD 读数一直在 6% 到 9% 之间随机跳动,看不出补偿到底有没有用。原因在 FFT 窗口没做整周期截断,频谱泄漏导致邻近谱线的能量互相污染;也可能示波器触发没设成上升沿触发,每次抓的波形起点都不一样。解决方式是先把窗口长度按 3.2 节重算,确认是基波周期的整数倍;再把触发改成上升沿、触发电平设在基波幅值的 30% 左右,让每次抓取落在同一个相位点上。这两步做完,THD 读数的重复性会好很多。

现象:频谱图上补偿前后几乎没有区别,但示波器上看电流波形确实光滑了一些。大概率是 FFT 分析用错了数据段,把补偿投入前的数据和投入后的数据混在一起算了,或者分析窗口跨越了补偿投入的切换时刻。解决方式是切换时刻前后各留一段过渡,只取稳态段做分析;同时确认分析用的信号是同一相、同一工况、同一转速。数据段选错这种问题没有任何技术含量,但排查起来特别花时间,通常的做法是给每段数据打上时间戳和工况标签再进分析脚本。

6. 验收与答辩:三张图、五个数字把补偿效果钉死

验收这套模型,别拿“波形看起来光滑了”当结论。我一般固定用三张图加一张指标表,谁来看都能在三十秒内判断补偿到底成不成立。

第一张是时域对比图,同一相电流在补偿前、补偿后的波形叠在一张图上,时间轴放大到两到三个基波周期,能直接看出毛刺被抹平了多少。第二张是 FFT 频谱对比图,横轴 0 到 500Hz,纵轴用 dB,重点看 250Hz 和 350Hz 两根谱线的落差。第三张是补偿投入时刻的过渡过程,看切换瞬间有没有冲击、限幅有没有被触发。

验收项测点合格线(示例台架)
5 次谐波幅值250Hz 谱线,补偿前后对比15A 降到 1A 量级,或下降 ≥ 20dB
7 次谐波幅值350Hz 谱线,补偿前后对比9A 降到 0.5A 量级
电流 THD稳态额定点,单相电流从 8.2% 降到 2% 以内
相位偏差扫频法测 250Hz、350Hz≤ 5 度
限幅占用率突加载工况下补偿量峰值不超过限幅阈值的 80%

答辩时最容易吃亏的地方,是把一整套推导从头讲到尾,讲到结果只剩两分钟。更有效的顺序是倒着来:先放补偿前后的频谱对比,把 20dB 的落差摆出来;再放时域波形,说明转矩脉动跟着改善;最后才回去讲多同步旋转坐标分离、准谐振控制器和限幅设计。评委对数字最敏感,对推导过程的耐心有限,先给结论再给路径,被追问的概率反而更低。

被问到“为什么只做 5 次和 7 次”时,别只答“因为最常见”。把序分量那条讲清楚:三相无中线,3 的倍数次基本不流通,5 次负序、7 次正序是幅值最大的两个低次分量,在 d/q 轴上合成 6 倍频,正好对应转矩脉动的主频,压这两个等于同时解决电流质量和转矩脉动两件事。被问到“为什么不用纯 PI”时,把 PI 在 250Hz 处的开环增益算出来,和准谐振在谐振点的增益摆在一起对比,不用讲太多形容词。

我自己踩过的坑是反过来的:第一次交方案,把相位补偿那一堆推导写得特别细,结果评审只问了一句“你 THD 到底降到多少”。从那以后,我每次做这类补偿方案,都强制自己先把补偿前后的 FFT 对比图和三组数字贴在第一页,把算法细节压到后面。方案是给别人做判断用的,不是给自己做复盘用的。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进