如果你正在使用 ANSYS Maxwell 进行平面变压器的损耗仿真,很可能遇到过这样的困境:在瞬态场(Transient)分析中,如何准确、高效地给定一个包含复杂谐波、非正弦的激励信号来计算损耗?传统的“电压源”或“电流源”激励方式,在面对实际开关电源中常见的 PWM 波形、死区时间、电流断续模式时,要么设置繁琐,要么根本无法精确描述。
更具体地说,当你试图仿真一个 LLC 谐振变换器或一个带同步整流的 Flyback 变压器时,绕组中的电流波形远非理想正弦波。你可能会尝试用分段线性(Piecewise Linear)源来逼近,但点数一多就难以管理,且无法与外部电路(如 Simplorer)进行动态联合仿真,来真实反映控制器和功率器件的影响。最终,你得到的铁损和铜损结果可能与实测相差甚远,仿真失去了指导设计的价值。
这篇文章要解决的,正是这个高频磁性元件设计中的核心痛点。我们将深入探讨一种在 Maxwell 瞬态场仿真中更为强大和灵活的激励给定方式,它超越了内置的简单源,能够直接导入外部电路仿真结果或实测数据作为激励,从而实现对平面变压器损耗的高保真度计算。
本文将不仅告诉你“怎么做”,更会厘清“为什么这么做”——为什么传统的激励方式在复杂工况下会失效,以及这种新方法如何从原理上提升仿真置信度。我们将通过一个完整的操作流程,从理论准备、模型搭建、外部数据准备、激励设置,到损耗提取和结果分析,手把手带你完成一次贴近工程实际的仿真实践。无论你是正在优化电源模块的工程师,还是研究高频磁元件的学生,这篇文章都将为你提供一个可靠且可复现的解决方案。
1. 平面变压器损耗仿真:为什么传统激励方式常常“失灵”?
在深入技术细节之前,我们首先要建立一个关键认知:仿真的精度,很大程度上取决于边界条件和激励的逼真度。对于平面变压器损耗仿真,激励的“失真”是导致结果不准的首要原因。
传统激励方式的局限性:
- 理想化波形:Maxwell 内置的电压/电流源通常只能生成正弦、方波等理想波形。而实际开关电源中,由于开关器件的非线性、寄生参数以及控制策略,绕组电压和电流含有丰富的谐波,且可能存在死区、振荡和电流断续。
- 无法耦合外部电路行为:变压器的损耗与其所接入的电路拓扑(如 Buck、Boost、LLC)和工作状态(如负载变化、软开关过程)强相关。内置激励是孤立的,无法反映这些动态交互。
- 数据输入不便:对于已知的复杂波形,虽然可以使用“Piecewise Linear”功能逐点输入,但数据准备和输入过程极其繁琐,容易出错,且难以修改和迭代。
带来的直接后果:
- 铁损计算偏差:铁损(Core Loss)计算依赖于磁密B的变化(dB/dt)。非正弦的激励会导致磁密波形畸变,使用基于正弦波假设的经典Steinmetz或改进的Steinmetz方程(iGSE)时,若激励波形不准,磁密波形自然不准,铁损结果必然失真。
- 铜损计算偏差:铜损(Winding Loss)包括直流损耗和交流涡流损耗。高频下的涡流损耗与电流的谐波分量密切相关。理想激励下的电流会低估高次谐波,从而导致涡流损耗计算值偏低。
- 仿真价值降低:由于激励不真实,仿真结果无法与实验测试有效对标,工程师难以依靠仿真结果进行优化设计,最终可能仍需依赖大量样机测试,成本高昂。
因此,引入一种能够描述真实世界复杂激励的方法,是提升平面变压器瞬态场仿真精度的关键一步。这种方法的核心思想是:将激励数据从外部“注入”到 Maxwell 的瞬态场求解器中。
2. 核心原理:外部数据激励与场路协同仿真
我们提出的新方法,本质上是一种“数据驱动”的激励加载方式。它不依赖于 Maxwell 内部生成的理想波形,而是允许用户直接指定每个时间点对应的绕组电压或电流值。这些数据可以来自:
- 更高层级的电路仿真结果(如 Simplorer, SPICE, Simulink)。
- 实测数据(通过示波器采集)。
- 数学计算生成的波形数据(通过脚本如 Python、MATLAB)。
从系统层面看,这实现了一种“松耦合”的场路协同仿真。虽然并非 Maxwell 与 Simplorer 的实时双向联合仿真(那需要更复杂的设置),但这种“先电路,后场分析”的流程,已经能极大提升精度。其工作流程如下图所示(概念性描述):
- 电路级仿真:在电路仿真软件中,建立包含控制器、驱动、功率开关管、寄生参数在内的完整电源拓扑模型。对目标平面变压器,用其等效电路模型(如包含励磁电感和漏感的模型)代替。
- 数据提取:运行电路仿真,提取流过变压器绕组(或加在绕组两端)的瞬态电流(或电压)波形数据,保存为时间-数值对的格式(如 .csv, .txt)。
- 场域仿真:在 Maxwell 3D/2D 中建立平面变压器的精细有限元模型(包括铁芯、绕组、绝缘、气隙等)。
- 激励加载:在绕组的激励设置中,选择“外部数据”模式,导入上一步准备好的波形文件。
- 场求解与后处理:Maxwell 以导入的真实波形作为激励,求解瞬态电磁场,并基于准确的场分布计算铁损和铜损。
这种方法最大的优势在于,它让磁场仿真“感受”到了真实电路中的电应力,从而得到更符合实际的磁芯工作点(B-H轨迹)和绕组电流密度分布。
3. 仿真环境准备与模型假设
在开始操作前,请确保你的工作环境已就绪。
3.1 软件环境
- ANSYS Electronics Desktop (AEDT) 2023 R2 或更高版本:本文演示基于此版本,旧版本界面可能略有不同,但核心功能存在。
- 电路仿真软件(任选其一):
- ANSYS Simplorer:与 Maxwell 同属 AEDT 平台,数据交换最方便。
- LTspice:免费、轻量、高效的 SPICE 仿真器,非常适合生成激励波形。
- MATLAB/Simulink:适合复杂控制算法的系统仿真。
- 其他 SPICE 类软件(PSpice, SIMetrix等)。
3.2 示例模型与目标为了聚焦于激励方法本身,我们做一个合理的简化:
- 变压器模型:一个典型的 E 型磁芯(如 PQ3220)平面变压器,副边采用分层绕制。
- 电路拓扑:一个工作在 200kHz 的有源钳位反激(Active Clamp Flyback, ACF)变换器的副边绕组。选择 ACF 是因为其绕组电流波形复杂,既有三角波特征,又有谐振平台,能充分体现新方法的优势。
- 仿真目标:获取在一个完整的开关周期内,变压器副边绕组的涡流损耗(AC Loss)分布和磁芯的铁损。
3.3 文件与路径管理建议建立清晰的文件夹结构,避免文件路径混乱:
Project_Root/ ├── Maxwell_Model/ # Maxwell 工程文件 │ ├── ACF_Transformer.aedt │ └── ... (其他相关文件) ├── Circuit_Simulation/ # 电路仿真数据 │ ├── ACF_LTspice.asc # LTspice 原理图 │ ├── Secondary_Current.csv # 导出的激励数据 │ └── ... └── Scripts/ # 可选:数据处理脚本 └── process_waveform.py4. 第一步:在电路仿真中生成“真实”激励波形
我们以 LTspice 为例,演示如何生成 ACF 变换器副边绕组的电流波形。
4.1 建立 ACF 简化仿真电路在 LTspice 中,我们无需建立变压器的详细有限元模型,而是使用其等效电路模型。关键是通过一个受控电流源或电压源来模拟原边开关动作对副边的影响,从而得到副边绕组的电流。
* 示例:ACF 变换器副边电流波形生成简化电路 (ACF_Secondary.asc) * 这不是一个完整的 ACF 仿真,而是聚焦于生成副边电流波形 VIN N001 0 PULSE(0 12 0 10n 10n 2.3u 5u) ; 输入电压与开关信号 Lm N001 N002 100uH Rser=0.1 ; 励磁电感 Lk N002 N003 2uH ; 漏感 * 理想变压器模型,匝比 Np:Ns = 4:1 K1 Lm Lsec 0.999 ; 耦合系数,Lsec为副边绕组电感 Lsec N004 0 6.25uH ; 副边电感 (Lm/N^2) * 副边整流与负载 D1 N003 N004 MBRB20100CT ; 同步整流管(用二极管简化表示) Cout N004 0 100uF ; 输出电容 Rload N004 0 1 ; 负载电阻 * 钳位电路(简化表示) Vclamp N005 0 PULSE(0 15 2.5u 10n 10n 0.5u 5u) Dclamp N002 N005 MBRB20100CT Cclamp N005 0 10nF * 瞬态分析命令 .tran 0 25u 0 10n ; 仿真25us,从0开始,最大步长10ns * 测量副边绕组电流:即流过Lsec的电流 .save I(Lsec) .backanno .end注:这是一个高度简化的原理性电路,用于快速生成一个具有 ACF 特征的副边电流波形。实际工程中需要更精确的模型。
4.2 运行仿真并导出数据
- 运行仿真后,在波形窗口,鼠标右键点击
Lsec电感,选择“Plot .wave I(Lsec)”。 - 你会看到一个非正弦的、带有台阶和谐振特征的电流波形。
- 将波形窗口调整到显示一个稳定开关周期(例如从 10us 到 15us)。
- 在波形窗口内点击鼠标右键,选择“File” -> “Export data as text”。
- 在导出对话框中:
- Format: 选择
Comma Separated Values (*.csv)。 - 确保勾选了
I(Lsec)。 - 设置合适的
Time Range以导出一个或几个完整周期。 - 保存为
Secondary_Current.csv。
- Format: 选择
用文本编辑器打开导出的 CSV 文件,你会看到类似如下的数据:
time, I(Lsec) 1.000000000000000e-05, -0.123456 1.100000000000000e-05, -0.118765 1.200000000000000e-05, 0.543210 ... (更多数据点) 1.500000000000000e-05, 0.001234第一列是时间(秒),第二列是电流(安培)。这个文件就是我们即将导入 Maxwell 的“真实激励”。
5. 在 Maxwell 中建立平面变压器瞬态场模型
现在,我们切换到 ANSYS Maxwell。
5.1 创建瞬态场项目
- 在 AEDT 中,新建一个
Maxwell 3D或Maxwell 2D设计。对于平面变压器,由于其结构在 Z 方向有叠层,通常使用3D 模型更准确。 - 将求解器类型设置为
Transient。
5.2 建立几何模型根据你的平面变压器 PCB 布局和磁芯规格进行建模。关键步骤包括:
- 绘制磁芯:根据数据手册,绘制 E 型磁芯(如 PQ3220)的三维模型。设置材料为铁氧体,例如
Ferrite_Material(需在材料库中定义或从库中选择,如Magnetics公司的具体料号)。 - 绘制绕组:根据 PCB 走线,绘制矩形截面(代表铜厚和线宽)的螺旋状绕组(Coil)。可以使用“Draw -> Sweep -> Along Vector”或“Draw -> Polyline”配合“Sweep”功能。务必为每个绕组创建一个独立的
Coil对象。 - 设置绕组终端面:在每个绕组的起始和结束位置,创建两个平行的矩形面(
Sheets),作为电流的流入和流出端口。通过菜单Modeler -> Surface -> Section或使用Draw -> Rectangle在适当位置创建。 - 为绕组分配材料:将绕组体的材料设置为
copper。
5.3 为绕组分配激励(关键步骤)这是与传统方法的分水岭。
- 在项目管理器(Project Manager)中,右键点击
Excitations,选择Add Excitation->Current。 - 在弹出的
Current Excitation对话框中:- Name: 输入一个有意义的名称,如
Secondary_Winding_Current。 - Type: 选择
Transient。 - Value: 这里不直接输入数值。点击右侧的
Function按钮(图标像f(x))。
- Name: 输入一个有意义的名称,如
- 在
Function Editor窗口中:- 点击
Data Source选项卡。 - 点击
Import Dataset。 - 浏览并选择我们之前从 LTspice 导出的
Secondary_Current.csv文件。 - 系统会识别文件中的列。通常第一列是
X(时间),第二列是Y(电流值)。确保映射正确。 - 为导入的数据集命名,如
Imported_ACF_Current。 - 点击
Import。
- 点击
- 回到
Function Editor主界面,你现在可以在Available Functions/Datasets列表下看到Imported_ACF_Current。选中它,然后点击右侧的Insert Function按钮。表达式框内会出现类似pwl(‘Imported_ACF_Current’, time)的函数。pwl代表分段线性插值(Piecewise Linear),Maxwell 会根据 CSV 文件中的数据点,在仿真时间点上通过线性插值得到电流值。
- 点击
OK关闭Function Editor。 - 回到
Current Excitation对话框,你会看到Value栏现在显示为pwl(...)函数,而不是一个固定值。点击OK。 - 最后,需要将这个激励分配给具体的绕组。在
Current Excitation设置中或后续的Matrix设置中,指定该电流激励流经的绕组导体(Conductor)和方向(通过正负终端面选择)。
5.4 设置材料与损耗模型
- 磁芯材料:为其分配铁氧体材料(如
Ferrite_Material)。双击材料进入属性页,在Core Loss选项卡下,必须输入该材料的损耗系数(Kh, Kc, Ke)。这些数据通常由磁芯供应商提供(如 Magnetics Inc. 的 Kool Mµ® 或 Ferroxcube 的 3F3 材料)。输入准确的系数是铁损计算正确的基石。 - 绕组材料:铜(
copper)的属性通常已包含电导率,用于计算欧姆损耗。对于高频涡流损耗,Maxwell 会自动基于求解的场分布进行计算。
5.5 设置边界条件与网格
- 边界条件:对于变压器这类包含磁芯的器件,通常将外部区域(Region)的边界条件设置为
Balloon(气球边界),以模拟磁场自然衰减至无穷远,这是最常用且准确的方式。 - 网格剖分:这是精度与计算资源的权衡点。
- 磁芯:使用
Length Based网格,设置一个合适的最大单元长度(如磁芯最小特征尺寸的1/3)。 - 绕组:由于集肤效应和邻近效应,绕组区域的网格需要加密。可以使用
On Selection->Inside Selection功能,在绕组内部设置更细的网格。 - 气隙区域:磁场变化剧烈,也需要局部加密。
- 磁芯:使用
5.6 设置分析步(Analysis Setup)
- 右键点击
Analysis->Add Solution Setup。 - General 选项卡:
Stop Time: 设置为导入的激励数据所覆盖的时间长度(例如 5us,对应一个开关周期)。确保仿真时长覆盖激励数据的有效范围。Time Step: 设置仿真时间步长。这是一个关键参数。它必须小于等于导入数据的时间间隔,且满足奈奎斯特采样定理对最高频率分量的要求。例如,如果你的开关频率是 200kHz,激励数据时间间隔是 10ns,那么Time Step可以设置为 10ns 或更小(如 5ns)。步长越小,精度越高,但计算越慢。
- Save Fields 选项卡:建议勾选
Save Fields并设置一个保存间隔(如每 0.1us),以便在后处理中查看瞬态场动画。
6. 运行仿真与损耗结果提取
完成设置后,点击Analyze All运行仿真。求解完成后,进入后处理模块。
6.1 查看瞬态场结果
- 可以绘制磁芯内部的磁力线(
B Vector)或磁密云图(B Field)的动画,观察磁场随时间的变化,验证激励是否正常加载。
6.2 提取绕组损耗(铜损)
- 在
Results上右键 ->Create Transient Report->Rectangular Plot。 - 在
Category中选择Winding Loss。 - 在
Quantity中,选择你设置了激励的绕组(如Current1)。 - 选择
Solid Loss(通常代表总的欧姆损耗,包含直流和交流分量)或AC Loss(专门指涡流损耗部分)。 - 点击
New Report,即可生成该绕组损耗随时间变化的曲线。曲线下的面积积分即为一个周期内的能量损耗,除以周期时间得到平均功率损耗。
6.3 提取磁芯损耗(铁损)
- 同样,
Create Transient Report->Rectangular Plot。 Category选择Core Loss。Quantity选择你定义的磁芯物体(如Core)。- 点击
New Report,生成磁芯损耗功率随时间变化的曲线。 - 重要操作:计算周期平均损耗。在报告窗口中,点击
Calculator图标(或菜单Trace->Characteristics->Smooth等)。更准确的方法是使用Output Variables。- 在
Project Manager中,右键点击Optimetrics->Add->Output Variable。 - 在
Output Variable对话框中,Category选Core Loss,Quantity选CoreLoss(或具体物体),Function选择avg(平均值)。 - 给它命名,如
Avg_Core_Loss。 - 重新求解后,可以在
Results中直接查看这个输出变量的值,它就是整个仿真时间段内的平均铁损功率。
- 在
6.4 结果对比分析为了体现新方法的优势,你可以做一个对比实验:
- 实验A:使用本文描述的外部数据激励(来自LTspice的复杂波形)。
- 实验B:在Maxwell中,为同一个绕组设置一个幅值、频率与实验A基波相近的理想正弦波电流激励。 分别运行仿真,比较两者的铁损和绕组AC Loss。你通常会发现:
- 铁损:实验A的结果往往高于实验B。因为非正弦激励包含谐波,导致磁密变化率(dB/dt)更高,高频谐波在铁氧体中会产生额外的损耗。
- 绕组AC Loss:实验A的涡流损耗分布可能更不均匀,且总值也可能更高,因为实际电流波形的高频成分更丰富,集肤效应和邻近效应更显著。
7. 常见问题、排查思路与进阶技巧
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 仿真报错:激励数据时间范围不足 | 设置的仿真Stop Time超出了导入的 CSV 文件所包含的时间范围。 | 检查 CSV 文件的第一列(时间)的最大值。 | 调整 Maxwell 的Stop Time,使其小于等于 CSV 文件的最大时间。或重新运行电路仿真,导出更长时间的数据。 |
| 仿真结果不收敛或异常 | 1. 时间步长Time Step设置过大。2. 网格过于粗糙,尤其在电流密度变化剧烈的区域(如绕组边缘、气隙)。 3. 导入的激励数据变化过于剧烈(如存在不连续的跳变)。 | 1. 查看错误信息窗口。 2. 检查残差曲线是否震荡发散。 3. 绘制导入的激励波形函数图,检查光滑性。 | 1. 减小Time Step(例如减半)。2. 在关键区域加密网格。 3. 对电路仿真数据在导入前进行适当的平滑滤波处理(注意不要改变其主要特征)。 |
| 铁损计算结果为0或极小 | 1. 未给磁芯材料设置Core Loss系数(Kh, Kc, Ke)。2. 磁芯材料属性中未勾选 Calculate Core Loss选项。3. 激励太小,未使磁芯进入非线性区。 | 1. 双击磁芯材料,检查Core Loss选项卡。2. 检查材料属性。 3. 查看磁密B的波形,看其幅值是否达到材料饱和磁密的一定比例。 | 1. 输入正确的损耗系数。 2. 确保勾选了损耗计算选项。 3. 检查激励数据的幅值单位(是A还是kA?),确保其符合实际。 |
| 绕组损耗远大于预期 | 1. 绕组的电导率设置错误(例如误设为铁)。 2. 在计算 Solid Loss时,Maxwell 默认计算的是峰值功率,而非平均功率。 | 1. 检查绕组材料属性。 2. 查看报告曲线的纵坐标单位,并与理论估算值比较。 | 1. 更正材料属性。 2. 通过后处理计算一个周期内的平均损耗(如6.3节所述),这才是有意义的比较值。 |
| 导入的激励波形在Maxwell中显示不正确 | 1. CSV 文件格式错误(如分隔符不是逗号,有表头行未跳过)。 2. 单位不匹配(Maxwell 默认时间单位为秒,电流单位为安培)。 | 1. 用文本编辑器检查 CSV 文件格式。 2. 在 Maxwell 的 Function Editor中,绘制导入的函数图,看是否与预期一致。 | 1. 确保 CSV 文件是纯数据,或正确设置了导入时的Skip Lines。2. 确保电路仿真导出数据时,时间单位为秒(s),电流单位为安培(A)。 |
进阶技巧:
- 数据预处理:如果从实测设备(如示波器)导出数据,可能包含噪声。建议先用 MATLAB 或 Python 进行滤波和重采样,生成一个时间间隔均匀、平滑的 CSV 文件,再导入 Maxwell。
- 多绕组激励:如果变压器有多个绕组(如原边、副边、辅助绕组),你需要为每个绕组准备一个独立的电流/电压波形 CSV 文件,并分别导入和分配。
- 与 Simplorer 动态协同仿真:对于追求极致精度和动态交互的场景,可以建立 Maxwell 和 Simplorer 的双向联合仿真。这允许电路状态实时影响磁场,磁场反作用也实时影响电路。设置更为复杂,需要定义正确的接口和耦合关系,但能处理如饱和、深度非线性等复杂工况。
- 参数化扫描:结合 AEDT 的
Optimetrics工具,你可以将外部激励文件的路径甚至文件名作为参数,进行批量仿真。例如,扫描不同负载条件(对应不同的电流波形文件)下的损耗。
8. 工程实践建议与总结
最佳实践清单:
- 激励数据质量优先:确保你的电路仿真模型足够准确,能反映关键的寄生参数(如漏感、绕组电容、开关管非线性)。垃圾数据输入,必然导致垃圾场结果输出。
- 时间对齐与同步:确保 Maxwell 瞬态场仿真的时间轴 (
Start Time,Stop Time,Time Step) 与导入的激励数据完美匹配。一个周期的稳态数据通常足够。 - 网格独立性验证:在最终仿真前,进行网格细化研究。逐步加密网格,观察关键结果(如总损耗、最大磁密)的变化。当进一步加密网格导致结果变化小于一定阈值(如2%)时,可以认为网格已足够密。
- 结果合理性校验:将仿真得到的总损耗(铁损+铜损)与基于经验公式或数据手册的估算值进行对比。如果量级差异巨大(如十倍以上),必须回头检查模型、材料属性和激励。
- 分步验证:对于复杂模型,建议先使用一个简单的正弦波激励运行一次,确保模型本身(几何、材料、边界、网格)设置正确且能收敛。然后再替换为复杂的外部激励。
- 文档化:记录下每次仿真所使用的激励文件来源、电路仿真条件、Maxwell 模型版本、网格设置和关键结果。这对于项目追溯和团队协作至关重要。
通过本文详细介绍的“外部数据激励”方法,你能够将 Maxwell 强大的瞬态场求解能力,与真实世界或精确电路仿真得到的复杂激励相结合。这打破了传统激励方式的瓶颈,使得平面变压器在高频、非正弦工况下的损耗仿真精度得到了质的提升。
这种方法的核心价值在于“仿真场景的真实化”。它要求工程师不仅懂磁场,还要懂电路,甚至要懂控制,从而在虚拟世界中构建一个更贴近物理原型的数字孪生体。虽然设置步骤稍多,但相比于制作多个实物样机进行测试的成本和周期,这种仿真投入的回报率是非常高的。
下一步,你可以尝试将此方法应用于你正在设计的实际电源模块中的变压器,对比不同拓扑(如LLC、PSFB)下的损耗分布差异,或者研究 PCB 绕组不同布局(如交错绕制、三明治绕制)对交流电阻的影响。将仿真与实验测试反复迭代对标,你会逐渐积累起对仿真模型的强大信心,从而真正让仿真驱动设计,缩短开发周期,提升产品性能。