☰
永磁同步电机5次7次谐波补偿:FFT整周期与相位对齐避坑
2026/11/3 5:46:05 网站建设 项目流程

简介:电流谐波抑制是电机控制中提升波形质量与运行平稳性的基础环节。以FFT进行谐波检测时,采样窗口需覆盖基波整周期,否则频谱泄漏和栅栏效应会使5次、7次分量幅值与相位读数漂移;补偿信号还需经过滤波、坐标变换、电流环和PWM延时,反相180°到绕组处可能已偏移,需用相位补偿与扫频实测校正。双通道并联时,电压指令叠加、检测带宽重叠和dq轴6倍频耦合会引发互相激励,常通过窄带带通、陷波隔离及准比例谐振控制器先单后双整定。结合过调制限幅、变速重算与THD、相电流峰值联合验收,可把永磁同步电机5次7次谐波补偿从“一投就翻车”推进到可复现的工程调试流程。

1. 谐波补偿一投就翻车:5 次 7 次幅值反升的典型现场

永磁同步电机的 5 次和 7 次电流谐波补偿,在 Simulink 仿真里属于那种“原理三句话讲完、一使能就翻车”的活。谐波注入补偿的思路确实直白:检出 5 次、7 次分量的幅值和相位,生成一个等幅反相的信号怼回去。可真跑起来,最常见的现场是 FFT 里两根柱子一个劲儿地跳,补偿模块一投,5 次谐波从 0.6A 涨到 1.2A,THD 从 6% 爬到 11%,转速环跟着一起抖。这篇笔记按我在谐波抑制调试里踩过的顺序,把检测抖动、反相失效、双通道耦合、过调制这几类故障的根因和解法拆开写,每条都落到能直接抄进模型的参数和操作上,适合正在搭 PMSM 谐波补偿仿真、被波形反复教育的人。

2. FFT 读出的 5 次 7 次幅值一直跳:采样窗口没卡整周期的连锁反应

先还原一个特别常见的场景:模型跑起来,示波器上看相电流明明是个稳定的周期波形,FFT 分析模块输出的 5 次谐波幅值却在 0.5A 到 1.1A 之间来回摆,7 次更夸张,相位读数每次刷新都不一样。有人第一反应是电机参数不对,回头去改定子电阻和电感,改完发现读数还是跳。这时候基本可以判定,问题不在电机模型,在谐波检测这条链路的取样方式上。

2.1 幅值抖动的根因:窗口没落在基波整周期上

FFT 的本质是把一段有限长的信号拆成若干个整数倍频的复指数。它默认你截取的这段信号在首尾是连续的,也就是刚好包含整数个基波周期。一旦窗口长度不是整周期,首尾拼接处就会出现一个阶跃,这个阶跃在频谱上会向两侧扩散,把能量糊到邻近的频点上,这就是频谱泄漏。5 次和 7 次谐波离基波不算远,泄漏过来的能量足以让它们的幅值读数漂移十几个百分点。

还有一层是栅栏效应。FFT 的频率分辨率是 fs/N,只有正好落在 k·fs/N 这个格点上的频率才能被准确读出。如果 250Hz 不落在格点中心,读出来的幅值是真实值乘以一个 sinc 包络的衰减系数,而且这个系数随窗口滑动不断变化,表现出来就是读数在跳。很多人给 FFT 加汉宁窗想压住抖动,结果幅值整体偏小,又得回头补一个窗函数增益系数,越修越乱。根子上还是窗口长度的问题。

第三个容易被忽略的点是转速。基波频率跟着转速走,你用额定 50Hz 算出来的窗口长度,在 1200r/min 工况下就不成立,泄漏重新出现。所以整周期这件事不是配一次参数就完事,得跟着基波频率动态算。

2.2 把采样窗口卡到基波整周期

我一般的做法是先固定工况,把窗口长度对齐到基波周期,确认检测链路本身没问题,再去处理变速工况。下面这段参数配置可以直接放进模型的初始化回调里。

% ---- FFT 采样窗口配置:窗口长度必须是基波周期的整数倍 ---- f0 = 50; % 基波频率 Hz,对应额定转速 Ts = 1e-5; % 仿真步长 s,采样频率 100 kHz fs = 1/Ts; % 采样频率 N_T0 = round(1/(f0*Ts)); % 一个基波周期内的采样点数,这里等于 2000 Nfft = N_T0; % 取单周期点数,频率分辨率 = fs/Nfft = 50 Hz

逻辑说明:N_T0是基波一个周期里能采到多少个点,把它直接作为 FFT 点数,窗口时长就严格等于 20ms。此时频率分辨率 fs/Nfft 刚好等于 50Hz,5 次谐波 250Hz 落在第 5 个频点上,7 次 350Hz 落在第 7 个频点上,能量全部集中在一个 bin 里,不会向邻居泄漏。参数上唯一要动的是f0和Ts,Ts改了N_T0自动跟着变,不用手算。

如果要更细的分辨率,把Nfft取成2*N_T0或4*N_T0,也就是截两个或四个完整基波周期。这时候分辨率变成 25Hz 或 12.5Hz,5 次谐波落在第 10 或第 20 个频点上,同样是对齐的。千万别取 1024、2048 这种“看起来整齐”的 2 的幂点数,1024 点对应 10.24ms,既不是整周期也不是半周期,抖动就是从这儿来的。

变速工况下窗口要在线重算,下面这段放在每个采样步或每个控制周期里执行:

% ---- 变速工况:根据当前电频率动态调整窗口长度 ---- p = 4; % 极对数 n_rpm = 1200; % 当前机械转速 f0_now = p * n_rpm / 60; % 当前电频率,这里等于 80 Hz N_T0 = round(1/(f0_now*Ts)); % 当前基波周期的采样点数 Nfft = floor(N_T0/64)*64; % 向下取整到 64 的倍数,兼顾实时性

参数说明:极对数p必须和电机模型里配的一致,配错了电频率整体偏移,后面所有谐波频点全错。floor(N_T0/64)*64是为了让点数尽量规整,代价是窗口不是严格整周期,会残留少量泄漏,但通常能压到 1% 以内。如果对精度要求高,就别取整,直接让Nfft = N_T0,用可变长度的缓冲实现。

2.3 检测值可不可信,用三步自检确认

调补偿之前,先确认检测通道本身是准的,这一步能省掉后面大量的误判。我的习惯是绕开电机模型,直接灌一个已知幅值和相位的合成信号进 FFT 模块,看读出来的数对不对。

% ---- 用已知信号自检 FFT 链路 ---- t = (0:Nfft-1)'*Ts; i_test = 10*sin(2*pi*f0*t) ... + 0.80*sin(2*pi*5*f0*t + 0.30) ... + 0.50*sin(2*pi*7*f0*t - 0.70); Y = fft(i_test) * 2 / Nfft; % 乘 2 得到单边幅值谱 k5 = 5*f0*Nfft/fs + 1; % 5 次谐波对应的 bin 下标(MATLAB 从 1 开始) k7 = 7*f0*Nfft/fs + 1; A5 = abs(Y(k5)); P5 = angle(Y(k5)); A7 = abs(Y(k7)); P7 = angle(Y(k7)); fprintf('5 次: %.3f A / %.1f deg\n', A5, rad2deg(P5)); fprintf('7 次: %.3f A / %.1f deg\n', A7, rad2deg(P7));

逻辑说明:合成信号的 5 次分量是 0.80A、相位 0.30rad(约 17.2°),7 次是 0.50A、相位 -0.70rad(约 -40.1°)。如果读出来幅值误差在 2% 以内、相位误差在 2° 以内,检测链路就是可信的。fft后乘2/Nfft是为了把双边谱折算成单边幅值,漏掉这个系数,读出来的幅值只有真实值的一半,很多人就是被这个系数坑到怀疑电机参数。

第二个检查是看谱线是否落在 bin 中心。把abs(Y)在 5 次和 7 次附近几个点都打出来,如果能量只集中在一个点上,说明对齐了;如果左右两个点各占一半,说明频率正好卡在两个 bin 中间,需要调整Nfft。

第三个检查是对比滑窗 FFT 和理论值。真实模型里电流是时变的,窗内幅值本身就在变,读数有波动是正常的,关键看波动幅度。稳态下如果 5 次谐波读数波动超过 10%,就说明窗口或滤波环节还有问题,别急着往下调补偿。

3. 补偿后谐波不降反升:反相 180° 失效的相位对齐排查

检测确认准了,把补偿量投进去,本该往下走的谐波柱子纹丝不动甚至更高,这是谐波注入补偿里最打击人的一类故障。绝大多数情况下不是算法写错了,是补偿信号的相位在链路里被拖偏了,等它到达电流环的时候已经不再是反相。

3.1 理想反相在真实链路里会偏多少

课本上写的是“注入一个与目标谐波幅值相等、相位相反的信号”。这里的相反指的是在电机绕组处相反,而补偿信号从检测点到绕组要经过滤波器、坐标变换、电流环、PWM 调制和功率器件,每一级都带延时和相移。把这些串起来,实际到达绕组的补偿信号相位已经偏离理想值几十度。

偏差有多大影响可以直接算。设残余谐波为 A·|1 - e^(jΔθ)| = 2A·|sin(Δθ/2)|,Δθ 是相位偏差。偏差 5° 时残余只剩 8.7%,对应衰减 21dB,这就是为什么正文里把 5° 当作验收线;偏差 30° 时残余 51.8%,只衰减 5.7dB,看起来“补了但没效果”;偏差 60° 时残余 100%,等于没补;偏差超过 90° 就是负优化,谐波比不补还大。现场遇到的“越补越大”,基本都是 Δθ 落在 90° 到 180° 之间。

还有一层是检测环节自己引入的相移。带通滤波器在通带边缘有相位变化,截止频率附近的群延时会把 5 次和 7 次信号分别拖后不同的角度。如果用 FIR 滤波器做检测,线性相位还相对好算;用 IIR 的话,两个谐波频点的相移不一样,一套统一的相位补偿角度根本盖不住。

3.2 用二阶相位补偿网络把偏差拉回 5° 以内

补偿通道里串一个相位校正环节是最直接的做法。一个二阶差分网络在 250Hz 到 350Hz 这个窄频段里,能提供可控的超前量。

function y = phase_compensator(u) % 二阶相位补偿网络:在 250~350 Hz 段提供可调的超前角 persistent x1 x2 y1 y2 if isempty(x1) x1 = 0; x2 = 0; y1 = 0; y2 = 0; end b = [0.02, 0.02]; % 分子系数,决定高频增益 a = [1, -1.80, 0.81]; % 分母系数,双极点半径 0.9 y = b(1)*u + b(2)*x1 - a(2)*y1 - a(3)*y2; x2 = x1; x1 = u; y2 = y1; y1 = y; end

逻辑说明:这是个标准的直接 II 型二阶 IIR,x1、x2存输入历史,y1、y2存输出历史。a(1)恒为 1,所以计算式里只出现a(2)和a(3),这一点在抄代码时最容易写错,写成a(1)*y1就整体发散。参数说明:极点半径由sqrt(a(3))决定,取 0.81 的平方根就是 0.9,极点越靠近单位圆,相位曲线在目标频率附近越陡,可调范围越大,但数值敏感性也越高。零点位置由-b(2)/b(1)决定,这里等于 -1,落在奈奎斯特频率上。

这组系数不是唯一解,也不该照抄。更工程化的做法是用一阶全通滤波器,相位公式是闭式的,容易反解参数:

function y = allpass1(u, a) % 一阶全通:H(z) = (a + z^-1)/(1 + a*z^-1),|H| = 1,只改相位 persistent x1 y1 if isempty(x1) x1 = 0; y1 = 0; end y = a*u + x1 - a*y1; x1 = u; y1 = y; end

参数说明:在目标角频率 ω 处,这个全通环节提供的相位是 φ = -2·atan((1-a)/(1+a)·tan(ω/2))。基波 50Hz、目标 250Hz 时 ω = 2π·250·Ts = 0.0157rad,代入不同 a 值就能画出相位对照表。实际调的时候我先按计算值设一个 a,跑扫频看残差,再微调 ±0.02,一般两三轮就能压到 5° 以内。一阶全通只在一个频点精确,5 次和 7 次要分别串一个,别指望一个环节同时校正两个频点。

3.3 扫频测相位:别信公式,信实测

从检测端到绕组端的真实相移,靠手算很难算准,PWM 延时、电流环带宽、滤波器群延时都在里面。我一般直接用单频相关法测总传函的相位,比看 FFT 稳得多。

% ---- 单频相关法测补偿通道总相位 ---- f_list = [5*f0, 7*f0]; % 250 Hz 和 350 Hz N = 20 * round(fs/f0); % 至少 20 个基波周期,去掉暂态 for k = 1:numel(f_list) f = f_list(k); t = (0:N-1)'*Ts; u = sin(2*pi*f*t); y = lsim(H_total, u, t); % H_total:检测端到注入端的总传函 num = sum(y .* exp(-1j*2*pi*f*t)); den = sum(u .* exp(-1j*2*pi*f*t)); fprintf('%d Hz 通道相位 = %.1f deg\n', f, rad2deg(angle(num/den))); end

逻辑说明:用exp(-j2πft)对输出和输入分别做单点 DFT,两者相除就是该频点的复频响,取角度就是相移。这种方法只关心一个频点,不受其他谐波和噪声的干扰,比对着 FFT 谱线估相位可靠得多。参数说明:N取 20 个基波周期是为了让暂态衰减干净,如果电流环带宽低,得加到 50 个周期。H_total可以把检测滤波、相位补偿、电流环闭环传函、PWM 延时串起来用series或connect求,也可以直接在 Simulink 里打断点灌正弦测。

测出来的角度如果和目标值差得多,不要硬调补偿网络,先回头查 1.5 个开关周期的数字延时是不是没算进去。10kHz 开关频率下,1.5 个开关周期对应 150μs,在 250Hz 上就是 13.5° 的滞后,这个量级足以让补偿从有效变成无效。

4. 5 次和 7 次一起补就打架:双通道耦合的根因与隔离手段

单补 5 次的时候 THD 从 8.2% 掉到 3.1%,看着挺美,把 7 次通道一开,THD 反而回到 5.8%,两个通道的补偿量还都在往上涨,最后顶到限幅。这种“一加一小于一”的现象在双次谐波补偿里非常普遍,根因是两个通道不是独立的。

4.1 耦合从哪来:三条共享路径

第一条是电压指令叠加。两个谐振控制器并联在同一个 q 轴电压指令上,5 次通道的输出会被 7 次通道当作扰动去抑制,7 次通道的输出同样会被 5 次通道追着调,形成一个正反馈的拉锯。谐振控制器在谐振点附近的增益很高,两个高增益环节共用一个执行器,稳定性裕度会被吃掉一大块。

第二条是检测带宽重叠。如果用带通滤波器提取 5 次和 7 次分量,带宽设到 ±50Hz,5 次通道的通带就盖到了 300Hz,把 6 倍频的脉动也放进来。7 次通道反过来也会捡到 5 次泄漏过来的能量,两个通道的“检测值”互相污染,补偿方向自然就乱了。

第三条是坐标变换的交叉耦合。5 次谐波是负序分量,在同步旋转坐标系下表现为 -6 倍频;7 次是正序,表现为 +6 倍频。两者在 dq 轴上都是 6 倍频脉动,只是旋转方向相反。如果你用同一个低通滤波器去分离,两个方向的脉动会混在一起,分不干净。

4.2 带通和陷波把两个通道关进隔离舱

最省事的隔离手段是给每个检测通道配一个窄带带通,带宽压到 20Hz 以内,让 5 次和 7 次的通带完全不重叠。

% ---- 5 次、7 次检测用窄带带通隔离 ---- fs = 1/Ts; bw = 20; % 带宽 20 Hz,覆盖转速 ±5% 波动 [b5, a5] = iirpeak(5*f0/(fs/2), bw/(fs/2)); % 中心 250 Hz [b7, a7] = iirpeak(7*f0/(fs/2), bw/(fs/2)); % 中心 350 Hz % 离线分析用 filtfilt 做零相位滤波,避免检测通道自己带相移 i5 = filtfilt(b5, a5, i_alpha); i7 = filtfilt(b7, a7, i_alpha);

逻辑说明:iirpeak生成的是二阶峰值滤波器,Wo是归一化中心频率(实际频率除以奈奎斯特频率),BW是归一化带宽。中心 250Hz、带宽 20Hz,意味着通带大致覆盖 240Hz 到 260Hz,7 次谐波 350Hz 完全在阻带里,两个通道互不干扰。参数说明:bw别超过 30Hz,太宽会把相邻次谐波和基波泄漏一起抓进来;也别低于 10Hz,否则转速稍有波动谐波就跑出通带,检测值直接掉零。

filtfilt是零相位滤波,正反各滤一遍,相位完全抵消,代价是需要整段数据,只能离线用。实时仿真里只能用单向滤波,这时检测通道会引入相位滞后,得用第 3 章的方法补回来。我一般的处理是:实时模型里用单向 IIR 带通,把它的群延时算进相位补偿角里,一起校正。

除了带通,在每个补偿通道的输出前再串一个陷波器,把对方频点的能量挡掉,相当于给两个通道各加一道防火墙。陷波器的 Q 值取 5 到 10,太高的 Q 对参数漂移太敏感,转速一变就失谐。

4.3 谐振控制器参数整定:先单后双

两个通道都靠准比例谐振控制器生成补偿电压,参数整定顺序直接决定能不能收敛。

function Gr = pr_resonant(fh, Kr, wc) % 准比例谐振控制器:fh 谐振频率 Hz,Kr 谐振增益,wc 截止带宽 rad/s s = tf('s'); w0 = 2*pi*fh; Gr = (2*Kr*wc*s) / (s^2 + 2*wc*s + w0^2); end % 整定顺序:先只开 5 次通道,收敛后再并联 7 次 Kr5 = 0.10; wc5 = 10; R5 = pr_resonant(5*f0, Kr5, wc5); Kr7 = 0.08; wc7 = 10; R7 = pr_resonant(7*f0, Kr7, wc7);

逻辑说明:准 PR 控制器在谐振频率 w0 处增益接近 Kr,离开谐振点后增益迅速衰减,所以它只对目标次谐波“使劲”,不会干扰直流分量。分母里的2*wc*s是阻尼项,wc越大,谐振峰越宽,对频率漂移的容忍度越高,但选择性变差。参数说明:wc取 5 到 15rad/s 比较合适,对应 0.8Hz 到 2.4Hz 的带宽,能覆盖转速的小幅波动。Kr的量级可以用 1/(2π·fh·L) 估一下,电感 8.5mH、目标 250Hz 时算出来约 0.075,实际从 0.1 起调,边加边看 THD 和电流纹波。

整定顺序上,我坚持先单通道跑到稳态,记录 THD 和补偿电压峰值,再开第二个通道。两个通道同时从零开始加增益,很容易在中间某个时刻互相激励起来,波形看着像随机振荡,根本分不清是谁的问题。如果双通道运行后仍然不收敛,把 7 次通道的Kr降到 5 次的一半再试,先保证稳定,再慢慢把增益补回去。

5. 避坑清单:五条谐波补偿踩坑记录和现场处置

下面这五条是调试过程中反复出现的,每条我都按“看到什么现象、根因在哪、怎么处置”记下来,方便对号入座。

5.1 突加载就过调制,相电流削顶

现象:负载从零突加到额定,相电流波形顶部被削平,转速环输出顶在限幅上,THD 从 3% 恶化到 9%,仿真里能看到补偿电压和基波电压叠加后超过了母线能支撑的范围。

原因:谐波补偿电压是在基波电压之上叠加的,稳态时两者相位关系还算温和,突加载瞬间基波电压已经接近调制上限,补偿量再叠上去就进入过调制区。过调制会让实际输出的电压波形畸变,产生新的低次谐波,反过来又激励补偿通道,形成恶性循环。

解决:在 PWM 生成前加幅值限幅加斜率限制,把合成后的电压指令约束在线性调制区内。

% ---- 基波与补偿电压合成后的动态限幅 ---- Vdc = 380; % 母线电压 V Vmax = 0.95 * Vdc / sqrt(3); % 线性调制区上限,留 5% 裕量 Tsw = 1e-4; % 开关周期,对应 10 kHz rate = Vmax / (0.5*Tsw); % 允许的电压变化率 persistent V_prev if isempty(V_prev) V_prev = 0; end V_raw = V_ref + V_comp; % 基波 + 谐波补偿 V_lim = min(max(V_raw, -Vmax), Vmax); % 先做幅值限幅 dV = min(max(V_lim - V_prev, -rate*Ts), rate*Ts); % 再做斜率限制 V_out = V_prev + dV; V_prev = V_out;

逻辑说明:Vmax取母线电压除以根号三再乘 0.95,是 SVPWM 线性调制区的常用上限,留 5% 裕量给死区和管压降。斜率限制的作用是防止限幅瞬间电压指令跳变,跳变会在电流里激起高频振荡。参数说明:rate取Vmax/(0.5*Tsw),意思是半个开关周期内最多走完整个线性区,这个值可以根据实际动态响应要求调紧或放松。

5.2 转速一变,谐波就跑出检测带

现象:额定转速下补偿效果很好,升到 1200r/min 后 5 次谐波读数掉了一半,补偿量跟着变小,THD 反弹。

原因:带通滤波器的中心频率是按 50Hz 基波写死的,转速升到 1200r/min、极对数 4 时电频率变成 80Hz,5 次谐波从 250Hz 移到 400Hz,直接掉出 20Hz 带宽的通带,检测值自然塌掉。

解决:把基波频率作为变量实时传给滤波器和谐振控制器,系数在线重算。

% ---- 谐振频率跟随转速在线更新 ---- p = 4; % 极对数,必须与电机模型一致 n_rpm = 1200; % 当前转速 f0_now = p * n_rpm / 60; % 电频率,这里等于 80 Hz R5 = pr_resonant(5*f0_now, Kr5, wc5); % 谐振点从 250 Hz 移到 400 Hz R7 = pr_resonant(7*f0_now, Kr7, wc7); % 谐振点从 350 Hz 移到 560 Hz

参数说明:p和n_rpm的乘积除以 60 得到电频率,这是标准换算关系,别把机械角速度和电角速度搞混。在线重算的频率不建议每个仿真步都做,按 1ms 或 10ms 周期更新一次就够,tf对象的创建有开销,每步重建会拖慢仿真。

如果嫌在线重算麻烦,另一种做法是用 5 倍频、7 倍频的旋转坐标变换提取谐波,再用低通滤波取直流分量。这种方法的检测中心频率天然跟着电角度走,转速变化时不需要重算任何系数。

5.3 两个通道互相喂饭,越补越乱

现象:单独开 5 次通道,THD 从 8.2% 降到 3.1%;再开 7 次通道,THD 回到 5.8%,两个通道的补偿电压都在缓慢爬升,最后顶到限幅。

原因:两个 PR 控制器并联在同一电压指令上,互相把对方的输出当作扰动去抑制;检测带通带宽过宽,两个通道的输入信号互相污染。

解决:检测端带宽压到 20Hz 以内,输出端各串一个对方频点的陷波器,整定时先单通道收敛再并联。这三条做完还不收敛,就把 7 次通道的增益降到 5 次的一半,先保证系统稳定,再看能补多少。

5.4 改了开关频率,相位补偿全废

现象:10kHz 开关频率下相位补偿调得挺好,改成 8kHz 后补偿效果断崖式下降,谐波幅值反而上升。

原因:采样、零阶保持、PWM 更新合起来大约有 1.5 个开关周期的等效延时,这个延时折算成相位角是随开关频率变化的。10kHz 时 150μs 在 250Hz 上对应 13.5°,8kHz 时变成 16.9°,固定的相位补偿角盖不住这 3.4° 的差值。

解决:把延时折算成角度,跟着开关频率在线算。

% ---- 数字延时对应的相位滞后,随开关频率变化 ---- Tsw = 1/fsw; % 开关周期 Td = 1.5 * Tsw; % 采样 + 零阶保持 + PWM 等效延时 for fh = [5*f0_now, 7*f0_now] phi_delay = 2*pi*fh*Td; % 延时在目标频点上的相位滞后,rad % 该角度要叠加进补偿通道的相位校正量里 end

参数说明:1.5 这个系数是平均值,单采样单更新时取 1.5,双采样双更新时可以取 0.75,具体要看模型里的采样和更新配置。把算出来的phi_delay和扫频实测的通道相位相加,才是最终要补的总角度。

5.5 只盯 THD,掩盖了时域尖峰

现象:THD 从 8% 降到 2%,看着很漂亮,但相电流峰值比补偿前高了 40%,长时间跑下去电机模型里的铜耗明显上升。

原因:谐波补偿在频域上压低了 5 次和 7 次分量,但时域上补偿信号和基波叠加后可能形成尖峰,尤其是相位没完全对齐的时候。THD 是个全局指标,对局部尖峰不敏感,只看它容易被骗。

解决:验收时同时看四个量,THD、相电流峰值、有效值、dq 轴电流纹波。四个量里任何一个恶化超过 10%,就说明补偿参数还没调到位,别急着收工。

6. 快速定位:二十分钟跑完的谐波补偿排查顺序

谐波补偿模型的故障排查,最怕一上来就盯着总波形看。总波形里所有环节的输出都叠在一起,看不出是谁的问题。我现在的固定顺序是逐级打断点、逐级验证,二十分钟能过一遍。

第一步先验检测。断掉补偿通道,只留 FFT,灌合成信号自检,看幅值和相位误差。这一步不过关,后面所有调试都是白费。第二步开环注入单频信号,只留 5 次通道,看补偿信号到达电流环时的相位偏差有多大。第三步闭环单通道,把 5 次的 THD 贡献压下去,记录补偿电压峰值。第四步再开 7 次通道,观察两个通道的输出是否互相爬升。最后才加上突加载和变速工况,验证限幅和前馈。

下面这张表是我贴在工位上的对照表,看到症状先查对应信号:

现象先查哪个信号大概率原因
5 次 7 次幅值读数跳动FFT 窗口长度与谱线位置窗口不是基波整周期,频谱泄漏
补偿投了没效果补偿通道总相位偏差相位偏 30° 到 60°,衰减不足 5dB
补偿后谐波变大相位偏差是否超过 90°反相失效,变成

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询