1. 轴向磁通电机建模为什么值得单独拎出来讲
轴向磁通电机这几年在新能源车、无人机、工业伺服领域的热度一直往上走,核心原因就一个:同样体积下,它的功率密度和转矩密度比传统径向磁通电机高出一截。磁路走的是轴向,气隙是平面,定转子像两个盘子面对面扣在一起,铁芯利用率天然就高。但问题也恰恰出在这个“盘子”结构上——二维模型根本描述不了它的端部效应和三维磁路分布,你拿Maxwell 2D去算,结果和实测能差出百分之二三十,这不是仿真精度的问题,是模型维度选错了。
所以做轴向磁通电机,绕不开3D建模。而ANSYS Maxwell这套工具链里,RMxprt负责的是“快速路”:你输入额定功率、转速、极槽配合、绕组形式这些顶层参数,它帮你把定转子尺寸、绕组匝数、线径这些几何量自动算出来,生成一个参数化的电机模型。但RMxprt原生输出的是径向磁通电机模板,轴向磁通的结构它不直接支持。这就带来一个很现实的工程问题:怎么把RMxprt算出来的电磁参数,高效地迁移到3D轴向磁通模型里,而不是从零开始画几何。
我自己的做法是:把RMxprt当成“电磁参数计算器”来用,而不是“几何生成器”。具体来说,先用RMxprt的通用电机模板(比如三相感应电机或永磁同步电机)输入目标性能指标,让它算出每极磁通、电负荷、磁负荷、绕组匝数这些关键量。然后拿这些量去驱动3D轴向磁通模型的参数化建模。这样做的好处是,电磁方案有理论依据,不是拍脑袋定尺寸;同时3D模型又能真实反映轴向磁通的三维磁路,两边各取所长。
这个思路适合谁?如果你已经会用Maxwell 2D做径向磁通电机仿真,现在要转轴向磁通,那这套流程能帮你省掉大量试错时间。如果你是完全新手,建议先把Maxwell 2D的瞬态场求解流程跑通一遍,再来看3D,否则很容易被三维网格和求解时间劝退。
2. RMxprt参数提取与轴向磁通模型的映射逻辑
2.1 RMxprt里到底该看哪些输出量
打开RMxprt,选一个最接近的电机类型模板。轴向磁通永磁同步电机通常用“Adjust-Speed Synchronous Machine”或者“Brushless Permanent-Magnet DC Machine”模板来近似。输入额定功率、额定转速、直流母线电压、极对数、定子外径这些顶层参数,求解之后重点看这几组输出:
- 每极磁通:在“Winding”或“Magnetic”结果里找,这个值直接决定你3D模型里永磁体的厚度和面积。
- 电负荷A:单位安培导体数,反映绕组设计的电流密度水平。
- 磁负荷B:气隙磁密幅值,轴向磁通电机一般取0.6~0.8T,太高了铁耗压不住。
- 绕组匝数与线径:RMxprt会给出每相串联匝数和并绕根数,这是你3D模型里绕组几何的直接输入。
- 槽满率:这个值决定了你3D模型里槽形尺寸能不能塞下绕组。
注意:RMxprt算出来的尺寸是基于径向磁通结构的,定子轭部厚度、齿宽这些几何量不能直接照搬到轴向磁通模型里。你要提取的是电磁参数,不是几何参数。
2.2 从电磁参数反推轴向磁通几何尺寸
拿到每极磁通Φ和磁负荷B之后,永磁体的有效面积A_m可以用A_m = Φ / (B * k_leak)来估算,k_leak是漏磁系数,轴向磁通电机端部漏磁比径向磁通大,一般取1.15~1.3。永磁体厚度h_m则根据去磁曲线和工作点来定,简单估算可以用h_m = (B_r - B) * l_g / (μ_0 * H_c),其中B_r是剩磁,l_g是气隙长度,H_c是矫顽力。
定子齿宽和轭部厚度用磁通连续性来算:齿宽b_t = Φ / (B_t * k_fe * L_stk),B_t是齿部磁密,一般取1.6~1.8T,k_fe是叠压系数,L_stk是轴向有效长度。轭部厚度类似,但轭部磁通是齿部磁通的一半(因为磁通在轭部分流),所以b_y = Φ / (2 * B_y * k_fe * L_stk)。
这些公式在RMxprt的输出里都能找到对应的输入量,你不需要手算每一个,但理解这个映射关系很重要——它让你知道3D模型里改一个尺寸,电磁性能会往哪个方向变。
2.3 参数化建模的变量表设计
在Maxwell 3D里建轴向磁通模型,强烈建议用参数化变量来驱动几何。我一般会定义这么一组变量:
| 变量名 | 含义 | 初始值来源 |
|---|---|---|
| D_out | 定子外径 | RMxprt定子外径 |
| D_in | 定子内径 | 按D_out的0.5~0.6倍初选 |
| h_m | 永磁体厚度 | 上述公式估算 |
| g | 气隙长度 | 0.5~1.0mm,按加工精度定 |
| b_t | 定子齿宽 | 磁通连续性计算 |
| b_y | 定子轭厚 | 磁通连续性计算 |
| N_t | 每相匝数 | RMxprt输出 |
| I_rms | 相电流有效值 | 按功率和电压反推 |
把这些变量在Maxwell的“Design Properties”里定义好,后面画几何的时候直接引用变量名,改一个值整个模型自动更新。这个习惯能让你在优化阶段省掉大量重复劳动。
3. 3D轴向磁通模型的具体搭建步骤
3.1 几何建模:从盘式结构到参数化草图
轴向磁通电机的基本结构是:中间一个定子盘,两边各一个转子盘(或者反过来,中间转子两边定子)。以双定子单转子结构为例,建模顺序如下:
- 画定子盘:在XY平面上画一个圆环,外径D_out,内径D_in,拉伸厚度L_stk。这个圆环就是定子铁芯的轭部。
- 开槽:在定子盘的一个端面上画槽形。轴向磁通电机的槽通常是梯形或平行槽,槽底宽度和槽口宽度不一样。用参数化草图,槽宽用b_s表示,槽深用h_s表示,槽数用N_s表示。然后用“Array”功能沿圆周阵列。
- 放绕组:在槽内画绕组截面,截面面积由线径和并绕根数决定。Maxwell里可以用“Winding”功能自动生成绕组,但3D模型里我更喜欢手动画导体,因为端部形状对电感影响很大。
- 画永磁体:在转子盘表面画扇形永磁体,扇形角度等于极距角乘以极弧系数。永磁体厚度h_m,充磁方向沿轴向。
- 画转子轭:永磁体背面加一层转子轭,材料用低碳钢,厚度按磁通连续性算。
- 设置气隙:定子盘和永磁体之间留出气隙g,这个气隙在3D模型里是空气域,网格要加密。
实操心得:画扇形永磁体的时候,用“Draw Rectangle”然后“Sweep Along Arc”比直接画扇形更可控,因为你可以精确控制永磁体的内外半径和角度。阵列的时候用“Duplicate Around Axis”,角度步长设为360/N_p,N_p是极数。
3.2 材料定义与边界条件设置
材料这块有几个坑要避开:
- 定子铁芯:用“steel_1008”或者自定义的硅钢片材料,BH曲线要输入完整。轴向磁通电机频率高,铁耗系数要设对,否则涡流损耗算不准。
- 永磁体:钕铁硼材料,剩磁B_r和矫顽力H_c按牌号输入。充磁方向用“Cylindrical”坐标系,方向沿Z轴。
- 绕组:铜,电导率5.8e7 S/m。如果考虑涡流效应,要勾选“Eddy Effects”。
- 气隙:空气,相对磁导率1。
边界条件方面,轴向磁通电机通常用“Master/Slave”边界来模拟周期性。如果模型是1/8周期(比如8极电机取45度),在切面上设Master和Slave,相位差设0(因为磁场是周期的)。外边界用“Balloon”或者“Zero Tangential H”都行,Balloon更省网格。
3.3 网格划分策略与求解设置
3D瞬态场的网格量是最大的瓶颈。我的经验是:
- 气隙网格:沿轴向至少3层,每层厚度不超过0.3mm。用“Inside Selection”加“Length Based”控制。
- 永磁体网格:表面网格尺寸不超过2mm,因为涡流主要在表面。
- 定子齿部:齿宽方向至少2个单元,否则磁密峰值会被平均掉。
- 绕组:如果只算电磁,绕组可以用粗网格;如果要算温升,绕组网格要细。
求解设置里,瞬态场的时间步长很关键。步长太大,转子位置更新不及时,转矩波形会失真。一般取一个电周期至少100步。比如转速3000rpm,8极电机,电频率200Hz,电周期5ms,步长取50μs。总求解时间至少3个电周期,让瞬态响应衰减掉。
注意:Maxwell 3D瞬态场求解时间很长,一个模型跑几个小时很正常。建议先用2D近似模型验证绕组连接和激励设置,确认无误再跑3D。
4. 常见报错与排查技巧实录
4.1 RMxprt导出模型失败怎么办
RMxprt导出到Maxwell 2D/3D的时候,最常见的报错是“failover feature 'ansys electronics_desktop' is not available”。这个通常不是license问题,而是RMxprt的设计文件损坏了。解决办法:新建一个RMxprt项目,把原来的输入参数重新填一遍,不要直接复制旧项目。如果还不行,检查一下安装目录下的“syslib”文件夹里有没有对应的材料库文件。
另一个常见问题是“maxwell中rm如何设置输出几分之几的模型”。RMxprt默认输出全模型,要输出部分模型,在“Machine”选项卡里找到“Fraction of Model”,填1/2、1/4或者1/8。但注意,这个设置只影响几何输出,不影响电磁计算——RMxprt内部还是按全模型算的。
4.2 3D模型求解不收敛的排查顺序
3D瞬态场不收敛,按这个顺序查:
- 检查绕组激励:电流方向对不对?三相相位差是不是120度?用“Winding”功能自动生成的话,检查一下“Polarity”有没有设反。
- 检查永磁体充磁方向:相邻永磁体极性要交替,用“Cylindrical”坐标系的时候,角度偏移要设对。
- 检查网格质量:用“Mesh Statistics”看有没有负体积单元。有的话,把几何里的尖角倒圆,或者把网格尺寸调小。
- 检查时间步长:步长太大导致转子“跳过”了某些位置,磁场突变引起不收敛。把步长减半试试。
- 检查材料BH曲线:如果BH曲线在低磁场区斜率太大,迭代容易震荡。把BH曲线在0~0.5T区间加密。
4.3 电感计算偏差大的修正方法
Maxwell算出来的电感经常和实测对不上,尤其是轴向磁通电机,端部漏磁大,2D模型根本算不准。修正方法:
- 用3D模型算电感:3D能捕捉端部漏磁,但网格要够细。
- 加端部绕组:在3D模型里把绕组端部画出来,不要用“End Connection”简化。
- 用能量法验证:在“Parameters”里勾选“Matrix”,算完看电感矩阵。如果自感和互感比例不对,检查绕组相序。
实操心得:我一般会先用RMxprt算一个电感初值,然后3D模型算一个值,两个值差在15%以内就认为合理。如果差太多,优先检查气隙长度和永磁体厚度,这两个量对电感影响最大。
5. 从仿真到实测的闭环验证思路
5.1 空载反电动势对比
空载反电动势是验证模型最直接的指标。仿真里把绕组开路,转子按额定转速转,看相电压波形。实测用示波器测反电动势,对比峰值和波形畸变率。如果仿真峰值比实测高10%以上,大概率是永磁体工作点设高了,把B_r调低5%再试。如果波形畸变率差很多,检查极弧系数和槽口宽度。
5.2 负载转矩与效率Map
负载转矩对比要在相同电流下进行。仿真里给定额定电流,看平均转矩。实测用测功机加载,记录转矩-转速曲线。效率Map的话,仿真可以扫电流角和超前角,实测要逐点测,工作量很大。我的做法是:仿真扫一个粗Map,找出高效区,实测只测高效区里的几个点,验证趋势就行。
5.3 温升对电磁性能的修正
轴向磁通电机散热条件比径向磁通差,温升对永磁体性能影响很大。仿真里如果只算冷态,转矩会偏高。修正方法:用Maxwell和Icepak做耦合,或者简单点,把永磁体温度设到实际工作温度(比如80°C),B_r按温度系数修正。钕铁硼的温度系数大约是-0.11%/°C,80°C时B_r比20°C时低6.6%左右。
6. 参数化优化与脚本自动化
6.1 用Optimetrics做多目标优化
Maxwell自带的Optimetrics模块可以做参数扫描和优化。我一般会定义这几个优化变量:永磁体厚度h_m、气隙g、定子齿宽b_t、绕组匝数N_t。目标函数设两个:平均转矩最大化和转矩脉动最小化。约束条件:槽满率不超过0.75,磁密不超过1.8T。
优化算法选“Quasi Newton”或者“Genetic Algorithm”。Quasi Newton收敛快,但容易陷局部最优;Genetic Algorithm全局搜索能力强,但计算量大。我的做法是先用Genetic Algorithm跑20代,找到大致区域,再用Quasi Newton精细搜索。
6.2 用IronPython脚本批量处理
Maxwell支持IronPython脚本,可以批量改参数、跑仿真、导出结果。比如你要扫10个气隙值,手动改太慢,写个脚本:
import ScriptEnv ScriptEnv.Initialize("Ansoft.ElectronicsDesktop") oProject = oDesktop.GetActiveProject() oDesign = oProject.GetActiveDesign() for g in [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]: oDesign.ChangeProperty(["NAME:AllTabs", ["NAME:LocalVariableTab", ["NAME:PropServers", "LocalVariables"], ["NAME:ChangedProps", ["NAME:g", "Value:=", str(g) + "mm"]]]]) oDesign.Analyze("Setup1") oModule = oDesign.GetModule("ReportSetup") oModule.CreateReport("Torque_" + str(g), "Transient", "Rectangular Plot", "Setup1 : Transient", ["Domain:=", "Sweep"], ["Time:=", ["All"]], ["Torque:=", ["Moving1.Torque"]])这个脚本会把每个气隙值下的转矩波形导出成单独的报告。跑完一轮,你就有完整的数据了。
6.3 脚本自动化的注意事项
- 变量名要统一:脚本里引用的变量名必须和Design Properties里定义的一模一样,大小写敏感。
- 求解器要提前设好:脚本只改参数,不建设置。求解步长、收敛精度这些要在脚本运行前手动设好。
- 结果导出路径:默认导出到项目目录下,如果要指定路径,在CreateReport里加“OutputPath”参数。
- 错误处理:脚本跑批量的时候,某个参数组合不收敛会中断整个循环。加个try-except,把不收敛的组合跳过,记录到日志里。
7. 我踩过的坑和最后分享的几个技巧
第一个坑:RMxprt里设了1/8模型,导出到3D之后发现几何只有45度,但边界条件没自动加Master/Slave,结果磁场全乱了。后来才知道,RMxprt的分数模型只影响几何,边界条件要手动加。
第二个坑:3D模型跑了一晚上,结果出来转矩是负的。查了半天,发现是绕组相序设反了,A相和C相对调了一下就好了。所以跑长仿真之前,一定先用短时间步长跑一个电周期,看转矩方向对不对。
第三个坑:永磁体用“Cylindrical”坐标系充磁,角度偏移没设对,相邻磁极极性一样,气隙磁密直接掉了一半。后来改成用“Cartesian”坐标系,每个永磁体单独设充磁方向,虽然麻烦但不会错。
最后分享一个技巧:Maxwell 3D的网格划分很吃时间,如果只是做参数扫描,可以把模型切成1/4或者1/8,用Master/Slave边界,网格量能降到1/4以下,求解时间大幅缩短。但切模型的时候注意,切面要选在磁通对称的位置,否则边界条件加不对。
还有一个技巧:如果只需要看电磁性能,不需要看温升,可以把绕组用“Stranded”导体代替“Solid”导体,求解速度快很多。Stranded导体不考虑涡流,但轴向磁通电机的绕组涡流损耗占比不大,忽略掉对转矩影响很小。
这个流程我前后跑了大概十几个轴向磁通模型,从最初的RMxprt导出失败,到后来能稳定跑通3D瞬态场,中间花了不少时间在排查各种报错上。现在回头看,最关键的还是把RMxprt的电磁参数和3D几何的映射关系理清楚,这个逻辑通了,后面就是调参数和等结果的事了。