简介:《直流偏磁下变压器励磁电流谐波分析》是一份面向电气工程、电力系统分析学习者的A等课程设计实验报告,聚焦地磁风暴与高压直流输电引发直流偏磁后,变压器励磁电流谐波变化这一工程问题。报告围绕Simulink或PSCAD等效电路建模、不同直流注入工况仿真、谐波特性与铁心饱和机理展开,并给出参数选择、结果分析及课程培养目标支撑说明,适合用作课程设计选题参考、仿真建模思路借鉴和报告撰写范式。资源包共1个doc文件,约6.01MB,内容为完整报告册,含任务要求、人员分工、研究背景、影响机理、仿真设计与结果分析等模块。已有559人学习,便于读者快速了解直流偏磁谐波分析的完整设计脉络与实验组织方式。
1. 直流偏磁下的励磁电流为什么会“半波胖、半波瘦”:这份报告能复现什么
这份《直流偏磁下变压器励磁电流谐波分析》放在复杂电力系统设计的课程设计场景里,不是一篇只讲概念的科普,而是一套能跑起来的 Simulink 建模流程:从单相饱和变压器、三相接线组别,到直流注入工况、励磁电流波形和 FFT/THD 谐波分析,报告里都有相对完整的实验矩阵。它最适合两类人:一类是正在做复杂电力系统设计课程设计、需要交出一份能自圆其说的仿真报告;另一类是想把变压器直流偏磁这个“半波饱和”现象亲手复现一遍的电力系统仿真入门者。读这份报告别只盯着结论,重点看它怎么把直流偏置从 0 扫到饱和、怎么选 FFT 采样窗口、怎么解释偶次谐波突然冒出来,这些才是能抄作业的部分。
2. 先定模型边界:单相与三相变压器等效电路怎么搭
直流偏磁仿真最容易翻车的地方,不是 FFT 设置,而是模型一开始就没进入饱和区。很多人把变压器模块拖出来,串一个直流源,跑出来励磁电流还是漂亮的正弦波,于是怀疑 FFT 坏了。其实铁心根本没饱和,直流分量只是把工作点在线性段上挪了一点,波形当然不会畸变。这一章先把单相和三相模型的边界定清楚:饱和特性怎么参数化、直流从哪个点注入、三相接线组别会改变哪条谐波通路。
2.1 为什么选 Simulink 而不是一上来就 PSCAD
PSCAD 在电磁暂态仿真里很稳,但课程设计的时间预算通常不够你从零调一个三相饱和变压器模型。Simulink 的 Simscape Electrical 里有现成的饱和变压器模块,powergui 自带 FFT 分析工具,参数可以用 MATLAB 脚本批量改,实验矩阵做起来快。常见做法是:先在 Simulink 里把单相变压器的饱和曲线标定好,确认直流偏置加大后励磁电流出现半波饱和,再把同一套参数搬到三相模型里。PSCAD 不是不能用,而是对“要在一两周内交出波形、频谱、THD 对比图”的课程设计来说,复现成本偏高。选 Simulink 的理由很具体:饱和特性可以分段线性输入,FFT 窗口可以按整数周期截断,仿真结果能直接存成 mat 文件做批量后处理。这三件事决定了你后面能不能把实验矩阵跑完,而不是靠手工一个个截图。
2.2 单相变压器饱和特性怎么参数化
单相模型是整个实验的基准。建模时别一上来就追求“像真实变压器”,先把额定电压、绕组电阻、漏感、励磁电阻和饱和曲线这五个量定下来。课程设计级的小模型可以用下面这组参数做起点,注意它们不是现场设备参数,只是让铁心在合理直流偏置下能进入饱和的示例值。饱和曲线用分段线性磁链-电流点表示,第一段斜率大,后面逐渐变平;如果整条曲线斜率不变,变压器永远工作在线性区,直流偏置再加也看不到畸变。
| 参数 | 符号 | 示例值 | 作用 |
|---|---|---|---|
| 基频 | fn | 50 Hz | 决定 FFT 基频和采样窗口 |
| 一次额定电压 | V1n | 220 V | 对应课程设计小模型,便于观察 |
| 二次额定电压 | V2n | 110 V | 变比按 2:1 设置 |
| 一次绕组电阻 | R1 | 0.8 Ω | 铜耗等效,影响直流压降 |
| 一次漏感 | L1 | 2 mH | 限制高频谐波,别设成 0 |
| 二次绕组电阻 | R2 | 0.4 Ω | 二次侧铜耗等效 |
| 二次漏感 | L2 | 1 mH | 与 R2 一起影响波形陡度 |
| 励磁电阻 | Rm | 500 Ω | 铁损等效,太小会吃掉励磁电流 |
| 饱和拐点电流 | i_knee | 0.10 A | 超过这个点磁链增长变慢 |
| 饱和段磁链 | phi_sat | 0.30 Wb 起 | 分段线性输入用 |
% 单相变压器初始化参数(课程设计级小模型,不是现场设备参数) fn = 50; % 基频 Hz V1n = 220; % 一次额定电压 V V2n = 110; % 二次额定电压 V R1 = 0.8; % 一次绕组电阻 Ω L1 = 2e-3; % 一次漏感 H R2 = 0.4; % 二次绕组电阻 Ω L2 = 1e-3; % 二次漏感 H Rm = 500; % 励磁电阻 Ω,铁损等效 Lm0 = 2.0; % 线性段励磁电感 H % 饱和特性:磁链-电流分段点,斜率逐渐下降 i_sat = [0 0.05 0.10 0.20 0.40 0.80 1.20]; % 励磁电流 A phi_sat = [0 0.18 0.30 0.42 0.50 0.55 0.58]; % 磁链 Wb % 把参数写进模型工作区,避免手改模块对话框 assignin('base','fn',fn); assignin('base','V1n',V1n); assignin('base','V2n',V2n); assignin('base','R1',R1); assignin('base','L1',L1); assignin('base','R2',R2); assignin('base','L2',L2); assignin('base','Rm',Rm); assignin('base','Lm0',Lm0); assignin('base','i_sat',i_sat); assignin('base','phi_sat',phi_sat);这段脚本的作用不是“跑仿真”,而是把参数从模块对话框里解放出来。后面你要扫直流偏置、换接线组别、改采样周期,只需要改脚本里的变量,不用一个个双击模块。i_sat和phi_sat是饱和特性的核心,前两个点决定线性段斜率,后两个点决定深度饱和后的电流增长。常见错误是只给一个饱和点,或者把饱和段斜率设得和线性段差不多,结果直流偏置加到很大,励磁电流峰值上去了,波形还是对称的。我的习惯是先把直流源设为 0,跑一个周期看励磁电流是不是正弦;再把直流偏置慢慢加到额定励磁电流的 20% 左右,看正负半波峰值差有没有拉开。如果没拉开,先回头查饱和曲线,不要查 FFT。
注意:饱和曲线不是越陡越好。线性段斜率太大,直流偏置要加很大才饱和;斜率太小,空载励磁电流又大得离谱。先用空载波形把线性段调顺,再加直流。
2.3 三相变压器接线与直流注入点
三相模型有两种搭法:三个单相变压器组成三相组,或者直接用三相三柱变压器模块。课程设计里为了看清谐波通路,常见做法是先用三个单相变压器组成 Yy 接线,一次侧中性点接地,直流源从一次侧中性点注入。这样做的好处是每相励磁电流都能单独测量,零序谐波有没有通路一目了然。如果直接上三相三柱模型,磁路耦合、零序阻抗、接线组别全缠在一起,波形一不对就很难定位。
三相接线组别会改变谐波看到的路。Yy 接线且中性点接地时,3 次及 3 的倍数次零序谐波有通路,会在中性线里出现;Yd 接线时,零序电流在一次侧三角形绕组里环流,线电流里看不到明显的 3 次谐波,但相电流和励磁支路电流里仍然有。所以实验矩阵里不能只记录“线电流 THD”,还要记录励磁支路电流或相电流。具体步骤可以按下面走:
- 先建单相模型,确认空载励磁电流正弦、直流偏置加大后出现半波饱和。
- 复制三份单相模型,一次侧接成 Y,二次侧按实验需要接成 y 或 d。
- 一次侧中性点通过一个直流电压源和限流电阻接地,直流源的正负方向固定,避免不同实验之间符号混乱。
- 每相励磁支路串电流测量模块,命名统一为
Iexc_a、Iexc_b、Iexc_c,后面 FFT 直接按名字取信号。 - 先跑直流偏置为 0 的三相空载,确认三相对称;再逐相或同时注入直流,观察哪一相先饱和。
这里有一个容易忽略的点:直流源从一次侧中性点注入时,三相的直流磁通方向要一致,否则三相饱和程度不同,FFT 出来的偶次谐波会互相抵消,看起来像“没偏磁”。如果你发现三相结果比单相还干净,先查直流源是不是只接了一相,或者三相中性点根本没连在一起。复杂电力系统设计里常讲“模型边界”,放到这里就是:直流注入点、接地方式、测量点三个边界必须先固定,再谈谐波分析。
3. 直流注入工况怎么设:从 0 到饱和的扫描实验
模型搭好之后,下一步不是马上跑 FFT,而是把直流注入工况设计成一组可比较的实验。直流偏磁的物理量是直流电流,不是直流电压;仿真里你加的是电压源还是电流源,会直接影响扫描步长和结果解释。这一章把注入方式、采样窗口、实验矩阵三件事拆开讲,目标是让你跑出来的每一组波形都能对得上号,而不是一堆截图堆在报告里。
3.1 直流偏置的等效注入方式:电压源串联 vs 电流源并联
Simulink 里常见的直流注入方式有两种。第一种是在变压器绕组回路里串一个直流电压源,通过调整电压幅值改变直流电流,优点是回路清楚、容易看直流分量,缺点是理想电压源和电感串联容易出现代数环,仿真步长稍大就发散。第二种是用受控电流源往绕组或中性点注入直流,优点是电流量直接可控,缺点是要多一层控制信号,报告里解释起来麻烦。课程设计报告里多用第一种,因为波形直观,但要在直流源支路里串一个很小的限流电阻,常见取值在 0.1 Ω 到 1 Ω 之间,具体看你的励磁电流量级。这个电阻不是摆设,它把理想电压源和电感之间的硬约束软化了,求解器不容易报错。
扫描直流偏置时,别按电压源幅值等间距扫,而要按“直流电流占额定励磁电流的比例”来扫。比如先测空载励磁电流峰值,再取 0%、5%、10%、20%、30% 几个点。这样不同变压器模型之间才有可比性。每次改变直流源之前,先让模型空跑两个周期,把剩磁和初始状态稳住,再开始记录。FFT 分析窗口要从第三个周期开始截,不要从 t=0 开始,否则启动暂态会把频谱搞得一团糟。
3.2 扫描步长与采样窗口:FFT 分辨率和 THD 的关系
FFT 最怕两件事:窗口不是整数周期,采样点不是均匀步长。直流偏磁下的励磁电流含有偶次和奇次谐波,如果窗口截断在非整数周期,频谱泄漏会把 2 次、3 次谐波的能量抹到相邻频点上,THD 每次跑都不一样。稳妥的做法是固定采样频率,按基频和周期数算采样点数。下面这段脚本把采样窗口算清楚,后面不管单相还是三相,都按同一套窗口取数。
fs = 10000; % 采样频率 Hz,固定步长仿真时建议取基频的整数倍以上 f0 = 50; % 基频 Hz nCycle = 10; % FFT 窗口包含的基波周期数,取整数 Ts = 1/fs; % 采样间隔 s N = round(nCycle*fs/f0); % 整数周期对应的采样点数 t_start = 0.04; % 跳过启动暂态,从 40 ms 后开始取窗 t_end = t_start + nCycle/f0; fprintf('采样点数 N=%d,频率分辨率 df=%.3f Hz\n', N, fs/N); fprintf('取窗时间 %.4f s 到 %.4f s\n', t_start, t_end);这段脚本的关键参数是nCycle和fs。nCycle取 10 表示窗口里有 10 个完整基波周期,频率分辨率是 5 Hz,刚好能把 50 Hz 的整数次谐波落在频点上。fs取 10 kHz 是为了让 21 次谐波(1050 Hz)以内都有足够点数,同时不让仿真步长小到跑不动。t_start用来跳过启动暂态,直流偏磁模型里这个时间不能省,尤其是带剩磁的饱和变压器,前两个周期波形往往还没稳。常见错误是直接把整个仿真结果丢给 FFT,从 0 秒开始算,结果 THD 里混进了直流衰减分量和启动冲击,频谱上多出一堆说不清的低频峰。
3.3 三相不同接线下的实验矩阵
实验矩阵不要贪多,先把单相基准、三相 Yy、三相 Yd 三组跑通,再考虑不同直流偏置。下面这张表是一个可抄的矩阵框架,编号和观察量都按课程设计报告能直接用的方式列。每组实验都固定采样窗口和 FFT 参数,只改变变压器类型、接线组别和直流偏置,这样后面做对比图才有意义。
| 编号 | 变压器模型 | 接线组别 | 直流偏置 | 主要观察量 |
|---|---|---|---|---|
| S0 | 单相 | 双绕组 | 0% | 励磁电流波形、基波幅值 |
| S1 | 单相 | 双绕组 | 10% | 正负半波峰值差、2 次谐波 |
| S2 | 单相 | 双绕组 | 20% | 3 次谐波、THD |
| S3 | 单相 | 双绕组 | 30% | 深度饱和尖顶波、偶次谐波群 |
| T0 | 三相组式 | Yy 中性点接地 | 0% | 三相励磁电流对称性 |
| T1 | 三相组式 | Yy 中性点接地 | 10% | 中性线零序电流、3 次谐波 |
| T2 | 三相组式 | Yy 中性点接地 | 20% | 各相饱和差异、偶次谐波 |
| T3 | 三相组式 | Yd | 10% | 线电流与相电流谐波差异 |
| T4 | 三相组式 | Yd | 20% | 零序环流、3 次谐波通路 |
跑矩阵时按“先单相、后三相;先零偏置、后加直流;先 Yy、后 Yd”的顺序。每跑完一组,把励磁电流、直流分量、THD、2 到 7 次谐波含量存到一个 mat 文件里,变量名统一。这样后面写报告时,不用回头翻截图。复杂电力系统设计课程设计要求“有具体仿真参数选定过程”,这张表加上前面的采样脚本,正好能把参数选定过程讲清楚,而不是只写一句“在 Simulink 中搭建模型并分析”。
4. 用 powergui 做 FFT 与 THD:设置错了波形再对也白搭
波形出来了,FFT 设置不对,结论会完全反过来。powergui 的 FFT 分析器不是“点一下就能出谐波”的黑匣子,基频、周期数、输入信号、最大谐波次数这几个参数必须和前面的采样窗口对齐。这一章把 FFT 设置、THD 手算校验、三张图的读法讲清楚,目标是让你报告里的频谱图和波形图能互相印证。
4.1 FFT 分析器的关键参数:基频、周期数、谐波次数
powergui 里打开 FFT Analysis,先选输入信号。信号来源要选对应的示波器或记录变量,输入通道要选励磁电流Iexc,不要选成线电流或电压。基频填 50 Hz,最大频率按你关心的谐波次数定,比如 21 次谐波对应 1050 Hz,最大频率可以填 1200 Hz 留一点余量。周期数填 10,和前面脚本里的nCycle一致。起始时间填t_start,不要从 0 开始。下面这张表是课程设计里常用的设置,可以直接对照。
| 设置项 | 建议值 | 说明 |
|---|---|---|
| Input | Iexc | 励磁支路电流,不是线电流 |
| Fundamental frequency | 50 Hz | 与模型基频一致 |
| Max frequency | 1200 Hz | 覆盖到 21 次谐波附近 |
| Number of cycles | 10 | 与采样窗口一致 |
| Start time | 0.04 s | 跳过启动暂态 |
| Display style | Bar / List | 报告里柱状图和列表各留一份 |
| Harmonic order | 1 到 21 | 重点看 2、3、4、5 次 |
设置里最容易错的是“Input”信号。模型里如果有多个示波器,FFT 分析器会让你选信号来源;如果信号线没命名,后面根本分不清哪条是励磁电流。我的习惯是在模型里把测量线命名为Iexc_a、Iexc_b、Iexc_c,单相模型命名为Iexc,FFT 里直接按名字选。另一个坑是“Number of cycles”和采样窗口不一致,比如仿真取了 8 个周期,FFT 里填 10,分析器会自己截断或补零,频谱立刻出现泄漏。不要在这两个地方偷懒。
4.2 THD 与各次谐波含量的手算校验
powergui 给出的 THD 可以用,但报告里最好有一次手算校验,证明你知道 THD 怎么来的。总谐波畸变率是各次谐波有效值的平方和开根号,再除以基波有效值。注意分母是基波,不是总 RMS;直流分量不纳入 THD,但直流偏置量要单独记录。下面这段 MATLAB 代码从保存的励磁电流里算 THD 和各次谐波含量,用来和 powergui 的结果对照。
% 从仿真结果中取一段整数周期励磁电流,手算 THD 与各次谐波含量 load('single_dc20.mat'); % 变量名示例:Iexc、t、fs y = Iexc(:); y = y - mean(y); % 去掉直流偏置,THD 只看交流畸变 fs = 10000; f0 = 50; nCycle = 10; maxHarm = 21; N = round(nCycle*fs/f0); y = y(end-N+1:end); % 取最后 N 个点,确保整数周期 Y = fft(y); mag = abs(Y)/N*2; % 单边幅值 df = fs/N; harmIdx = round((f0*(1:maxHarm))/df) + 1; % MATLAB 索引从 1 开始 fund = mag(harmIdx(1)); % 基波幅值 h = mag(harmIdx)/fund*100; % 各次谐波相对基波的百分比 thd = sqrt(sum(h(2:end).^2)); % THD,单位 % fprintf('基波幅值 %.4f A,THD=%.2f%%\n', fund, thd); for k = 2:7 fprintf('%d 次谐波:%.2f%%\n', k, h(k)); end这段代码的关键在y = y - mean(y)和y = y(end-N+1:end)。去均值是因为励磁电流里有直流分量,THD 的定义不包含直流,如果不去掉,基波幅值会被直流抬偏,THD 算出来偏小。取最后 N 个点是为了保证窗口是整数周期,和 powergui 的设置对齐。harmIdx用频率除以分辨率再转索引,避免把“第 2 个频点”误当成“2 次谐波”。如果你算出来的 THD 和 powergui 差很多,先查两件事:FFT 窗口是不是同一段、有没有去直流。常见错误是把包含直流分量的总 RMS 当分母,算出来的 THD 看起来很小,但波形明明畸变很严重。
4.3 波形、频谱、谐波次数三张图怎么读
时域波形先看正负半波峰值差。正常励磁电流正负半波基本对称,直流偏置加大后,一侧峰值抬高、一侧压低,波形出现尖顶,这就是半波饱和。接着看频谱:基波幅值可能变化不大,但 2 次、3 次、4 次谐波会依次抬头。直流偏置从 0 到 10% 时,2 次谐波从无到有最明显;再到 20%、30%,3 次谐波和更高次谐波一起涨,THD 曲线会出现一个拐点。这个拐点对应铁心从线性段进入饱和段的位置,报告里可以把拐点前后的波形并排放,解释起来比单放一张 THD 曲线有说服力。
三相 Yd 接线的图要特别小心。线电流里 3 次谐波可能很小,但相电流和励磁支路电流里并不小,零序谐波在一次侧三角形绕组里环流。如果你只拿线电流做 FFT,会得出“Yd 接线没有 3 次谐波”的结论,这个结论只在线上成立,在励磁支路不成立。读图时先确认测量点,再看谐波次数。波形、频谱、谐波次数三张图要能互相解释:时域有尖顶,频域就应该有对应次数的谐波;频域里 2 次谐波明显,时域正负半波就不对称。对不上,先回去查测量点和 FFT 窗口,不要硬写结论。
5. 避坑与排查:直流偏磁仿真里最容易翻车的五件事
直流偏磁仿真有几个坑很典型,现象看起来像“模型坏了”,其实都是参数或测量点的问题。下面五条按“现象、原因、解决”写,每条都来自这类课程设计里反复出现的翻车点。你跑模型时如果卡住,先对一遍这五条,比盲目改 solver 快。
5.1 加了直流源,励磁电流还是正弦:饱和曲线没生效
现象是直流源从 0 加到很大,励磁电流波形仍然正负对称,FFT 里 2 次谐波几乎为零。原因通常不是直流源没工作,而是变压器模型还在线性区:饱和曲线没启用、饱和点设得太高、或者励磁电感用了常数电感。解决方法是先看空载励磁电流峰值,再对照饱和曲线拐点。如果空载峰值离拐点很远,直流偏置加上去也只是在线性段平移,波形不会畸变。把饱和拐点电流调低,或者把直流偏置按额定励磁电流的比例加大,直到正负半波峰值差明显拉开。另一个隐蔽原因是直流源被交流侧电容或接地支路短路了,直流电流根本没流过绕组,用电流表测一下直流支路电流,别只看电压源幅值。
5.2 FFT 结果每次跑都不一样:采样窗口不是整数周期
现象是同一组参数跑两次,THD 差几个百分点,频谱图上谐波峰旁边有毛刺。原因是 FFT 窗口没有按整数周期截断,或者仿真用了变步长求解器,采样点不均匀。解决方法是固定步长仿真,按基频和周期数算采样点数,取窗从启动暂态之后开始。powergui 里的周期数和仿真取窗周期数要一致,不要一个填 10 一个填 8。如果必须用变步长,先把输出重采样到固定采样率再做 FFT,不要直接拿变步长结果分析。这个坑很玄学,波形看起来差不多,频谱一放大就露馅。
5.3 单相能跑,三相一接就发散:接地和零序通路打架
现象是单相模型跑得好好的,接成三相后仿真报错、步长自动缩小、波形发散。原因多半是接地方式冲突:三相中性点接地和直流源接地形成多条地回路,或者理想电压源与绕组电感构成代数环。解决方法是先检查接地:直流源回路里串一个小限流电阻,三相中性点只保留一个接地点,别让多个模块各自接地。Yy 接线要看中性点是否真的连到直流源,Yd 接线要看三角形侧有没有悬空。仿真发散时先把直流源设为 0,跑空载三相,确认三相对称后再加直流。不要一上来就加 30% 直流偏置,深度饱和下的数值问题会掩盖接线错误。
5.4 只看到奇次谐波,偶次谐波消失:测量点选错
现象是波形明明正负半波不对称,FFT 里却只有 1、3、5 次谐波,2 次和 4 次几乎看不到。原因通常是测量点选错:看的是线电流而不是励磁支路电流,或者三相结果做了某种对称处理把偶次分量抵消了。直流偏磁产生的偶次谐波在励磁电流里最明显,到了线电流里可能被其他相抵消。解决方法是把 FFT 输入选到励磁支路电流或相电流,单相模型直接看Iexc,三相模型看每相Iexc_a、Iexc_b、Iexc_c。如果还看不到偶次谐波,检查直流源是不是只加了一相,或者三相直流方向不一致,导致三相互相抵消。测量点这件事没有后悔药,模型搭的时候就命名清楚,后面能省很多时间。
5.5 THD 高得离谱:把直流分量和开关纹波算进去了
现象是 THD 算出来百分之几十甚至上百,波形看起来却没有那么夸张。原因通常是 THD 计算时没有去直流,或者把开关纹波、数值振荡当成了谐波。直流偏磁下励磁电流本来就有直流分量,如果分母用总 RMS,基波幅值被抬高,THD 反而偏小;如果分子把直流附近的低频分量也算进去,THD 又会偏大。解决方法是按定义算:去均值、取整数周期、只统计基波整数次谐波,最大谐波次数按报告需要截到 21 次或 25 次。仿真步长太小产生的数值纹波,可以在 FFT 前做轻微低通或直接提高求解器精度,但不要用滤波把真实谐波滤掉。THD 是一个数,背后是频谱,报告里要把频谱图一起放,别只丢一个 THD 百分比。
6. 从报告到可复用模板:把一次课程设计变成自己的仿真资产
这份报告最值钱的地方,不是某一组波形,而是它把“模型参数、实验矩阵、FFT 后处理”串成了一条线。你如果只照着截图复现一次,交完课程设计就结束了;稍微往前走一步,可以把这三样东西做成自己的仿真资产。第一件是参数脚本,把变压器额定值、饱和曲线、采样窗口全部写成 MATLAB 变量,模型只读工作区,不手工改对话框。第二件是实验矩阵,用表格固定编号、接线、直流偏置和观察量,每跑完一组就存一个 mat 文件,变量名统一。第三件是 FFT 批量分析脚本,把所有 mat 文件一次性算 THD 和 2 到 7 次谐波,输出成表格。
下面这段批量分析骨架可以直接改着用。它的价值在于把“点开 powergui 一个个看”变成“跑一遍脚本出对比表”,后面写报告、画趋势图都省事。
cases = {'single_dc0','single_dc10','single_dc20','three_y_dc10','three_yd_dc10'}; for k = 1:numel(cases) S = load([cases{k} '.mat']); y = S.Iexc; % 所有模型统一用 Iexc 变量名 [thd, h] = local_thd(y, 10000, 50, 10, 21); fprintf('%-16s THD=%6.2f%% 2次=%6.2f%% 3次=%6.2f%%\n', ... cases{k}, thd, h(2), h(3)); end function [thd, h] = local_thd(y, fs, f0, nCycle, maxHarm) y = y(:) - mean(y); % 去直流,THD 只看交流畸变 N = round(nCycle*fs/f0); y = y(end-N+1:end); % 取整数周期 Y = fft(y); mag = abs(Y)/N*2; df = fs/N; idx = round((f0*(1:maxHarm))/df) + 1; h = mag(idx)./mag(idx(1))*100; thd = sqrt(sum(h(2:end).^2)); end这段脚本里cases换成你自己的文件名,local_thd的fs、f0、nCycle、maxHarm四个参数必须和仿真设置一致,否则算出来的 THD 没有可比性。我一般会先把单相 0% 和 10% 两组跑通,确认 2 次谐波从无到有,再把三相 Yy 和 Yd 加进来。从那以后我每次做变压器偏磁仿真,都强制先跑一遍“空载正弦、轻偏置半波、深偏置尖顶”三组基准,再动实验矩阵,不然很容易在接线和 FFT 设置里绕圈。希望帮到你。
本文还有配套的精品资源,点击获取