ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

COMSOL永磁电机磁场仿真:从钕铁硼参数到id/iq磁链表

COMSOL永磁电机磁场仿真:从钕铁硼参数到id/iq磁链表 前阵子跟一个做电控的同事对数据他甩过来一句话“磁链随 id、iq 变化的表给我一张。”我当时正在 COMSOL 里调一个内置式永磁同步电机的磁场模型随口就答应了。结果真要交表的时候才发现这里面坑不少——从钕铁硼材料参数怎么设在模型里到 3D 模型的几何怎么导入再到“冻结磁导率”到底是个什么操作每一步都能让人卡上大半天。这篇文章就讲讲我这一路趟完的经验包括 COMSOL 里永磁体磁场仿真的完整链路、3D 模型导入的各种小技巧以及最后怎么把仿真结果变成控制部门能直接用的数据表。适合正在做电机设计、电机控制又需要自己啃仿真的人也适合刚接触 COMSOL 磁场仿真、拿着一个磁组件模型不知道从哪下手的同学。1. 仿真的第一关把钕铁硼材料参数“翻译”进 COMSOL1.1 钕铁硼磁钢的核心参数先搞清楚不然模型肯定是错的很多人打开 COMSOL 第一步就蒙了永磁体不是随便给个“1.2 T”就完事。钕铁硼NdFeB的磁性能由一组相互关联的参数描述你必须至少知道剩磁 Br、矫顽力 Hcb、内禀矫顽力 Hcj、最大磁能积 (BH)max以及温度系数。剩磁 Br 是永磁体在闭合磁路中能保留的最大磁通密度一般 N35 牌号大约 1.17~1.21 TN42SH 大约 1.28~1.32 TN52 能做到 1.43~1.48 T 左右。仿真时剩磁直接决定了电机空载气隙磁密的上限给错 0.05 T反电动势可能偏 4%~5%。矫顽力这边要注意区分 Hcb 和 Hcj。Hcb 是磁感应强度矫顽力Hcj 是内禀矫顽力也就是真正抵抗退磁的能力。电机里磁钢最怕高温退磁Hcj 低的牌号在过载、高温下可能直接失去部分磁性仿真里体现为工作点跌到 BH 曲线膝盖以下。做退磁校核时Hcj 这个参数比 Br 还关键而且它的温度系数远比 Br 的温度系数大通常每升高 1°C 下降 0.5%~0.7%而 Br 的温度系数大概是 -0.12%/°C 左右。在 COMSOL 里线性永磁体最常用的本构关系是“剩余磁通密度”形式材料输入需要三项相对磁导率 mu_r、剩余磁通密度模 Br、剩余磁通密度方向。钕铁硼的相对磁导率一般取 1.04~1.06对结果影响不大但好歹别用默认的 1。最大磁能积不用直接输入但它可以作为校验依据——如果实际牌号的 (BH)max 和模型推算值对不上多半是 Br 或 Hcb 设置有问题。1.2 在安培定律节点里一块磁钢到底怎么“放”进去COMSOL 的“磁场mf”接口里永磁体的标准做法是给域添加“安培定律”特征然后在“本构关系”中选择“剩余磁通密度”。这时候需要的输入是 Br 的各个分量。最常见的坑就在这里直接填 (Br, 0, 0) 意味着整块磁钢都是平行充磁方向沿 x 轴。如果模型里磁钢的充磁方向是径向的比如表贴式电机那种瓦形磁钢每块磁钢的剩磁方向应该沿圆周半径方向。这时建议定义一组变量用 atan2(y,x) 计算当前位置相对于转子中心的角度然后写Brx Br * cos(atan2(y,x)) Bry Br * sin(atan2(y,x))这样每一块磁钢的 Br 方向就会自动沿着径向换块位置也不需要手动改。对于内置式 IPM 电机的 V 形磁钢情况更麻烦——每块磁钢往往有自己的充磁角度工程上常见做法是给每块磁钢单独定义一个旋转坐标系或者用表达式里加角度偏置。1.3 温度系数怎么进模型别把“常温仿真”当成万能结果我在项目里吃过一次亏常温下仿出来的额定转矩和台架数据对得挺好结果热态工况下差了 8%。查到最后就是漏了温度对剩磁的影响。如果仿真是“磁-热”单向耦合也就是已知温度场那 Br 的表达式可以直接写成Br_T Br20 * (1 alpha_Br * (T - 20))其中 Br20 是 20°C 时的剩磁alpha_Br 是剩磁温度系数比如 -0.0012 /°C。把温度场作为变量耦合进来就能看到热态下气隙磁密下降、反电动势降低、转矩下降的趋势。做退磁校核时还要关注 Hcj 随温度的变化工作点是否低于退磁拐点这是另一个主题但和仿真是同一套模型基础。提示磁场仿真的结果永远是“参数正确才正确”。先把材料参数表和牌号对上有条件就找磁材厂要实测 B-H 数据尤其是高矫顽力牌号和高温工况比任何高级建模技巧都重要。2. 3D 模型导入这一关过不好后面全是白忙2.1 格式和单位看似基础但 95% 的导入问题出在这儿从第三方 CAD 软件把电机模型导进 COMSOL我自己的首选格式是 STEP其次是 Parasolid.x_t。IGES 在老图纸里偶尔见到但面破损率通常更高能不用就不用。STL 也有不少人在用但要提醒一句STL 是三角网格面导入后 COMSOL 能识别成几何但修复曲面拼接的难度会大不少非必要时不用。单位问题是个高频事故现场。你在 SolidWorks、NX、Creo 里用的是毫米导出的 STEP 文件本身没有强制的单位信息。COMSOL 导入对话框里会让你选“来自文件的单位”或手动指定如果默认成了“m”整个模型会缩小 1000 倍。一个转子直径 80 mm 的模型导入后变成 0.08 m网格随便一画就几百万单元而且边界条件、材料定义全部跟着乱。所以我的习惯是CAD 建模时统一用毫米导入 COMSOL 时在导入选项中明确选“毫米”导入后立刻做一个“测量”检查量一下磁钢外径、气隙宽度确认几何尺寸符合图纸。这一步 30 秒能省后面三天。2.2 导入前就做几何简化圆角和螺栓孔是网格杀手很多工程师拿到的电机 3D 模型来自结构部门上面全是圆角、倒角、螺纹孔、冷却水套进出口、凸台、卡簧槽。这些特征对磁场分布的影响微乎其微但它们会极大增加网格量和网格剖分失败的概率。一个直径几十毫米的圆角在气隙旁边可能就要多生成上万个小单元纯属浪费计算资源。导入之前我习惯先在 CAD 里做一次“面向仿真的简化”删除所有倒角、圆角尤其是气隙两侧的倒角删除螺栓孔、定位销孔、减重孔除非这些孔明显影响磁路冷却水套内部流道如果和磁场无关直接删掉或者只保留外壳边界线鼻子、接线端子、壳体加强筋全部拿掉保留对磁路有影响的特征气隙尺寸、磁桥宽度、隔磁槽形状、转子辅助槽、磁钢槽倒角如果你拿到的模型已经是无法修改的来源也可以在 COMSOL 几何序列里用“删除实体”“忽略实体”来处理。这些工具的操作逻辑是选中不需要的特征然后选择“忽略”让几何保持原有边界但网格剖分时不生成单元。对于快速试算比重新建模高效得多。2.3 装配体导入后的“联合体”与“装配”怎么选电机模型几乎都是装配体定子铁芯、转子铁芯、磁钢、转轴、绕组各自是独立零件。导入 COMSOL 后会碰到一个关键选择形成联合体Form Union还是形成装配Form Assembly。形成联合体的逻辑是“有条件地合并”如果两个相邻零件是接触的就共享边界。好处是网格自然连续气隙两侧的面也不需要特殊处理。坏处是如果不同零件在接触面处的网格不匹配可能引入不期望的绑定效果。形成装配的逻辑是保留各个零件为独立域域与域之间靠“标识对Identity Pair”连接。对于旋转电机仿真我一般用装配方式定子部分和转子部分分别建域然后用“一致性对Continuity”把气隙两侧连接起来。这样后续做旋转域分析、扫掠角度、甚至瞬态计算时网格不需要重新剖分设置也灵活。实际操作中有一个很常见的问题从 SW 导出的 STEP两个零件本来是同一个部件拆出来的导入后边界有细微裂缝或者面不匹配。COMSOL 的几何序列里会有“修复Repair”功能可以设置绝对修缮容差比如 1e-5 m。太小修复不了太大又会把气隙缝隙糊掉所以我一般先采用默认容差修不好再手动调整千万别一上来就给大容差。2.4 一个 3D 导入的可复用流程我把这几步整理成一个固定流程每次拿到新模型就走一遍在 CAD 软件里另存为 STEP 格式单位选毫米COMSOL 组件下“导入”文件类型选 STEP单位选毫米先做“测量”验证关键尺寸几何序列中添加“删除实体”或“忽略实体”去掉非磁路特征视模型来源选择“形成联合体”或“形成装配”运行“修复”检查实体数和边界是否闭合用“错误检查”看看有没有失效对象顺便检查是否有零厚度的域这套流程走完模型基本能保证网格阶段不因为几何问题崩溃。我见过不少新手在网格剖分时反复报错追根究底都是导入时单位选错或者残留了无用的细小特征。注意3D 模型导入后如果准备跑参数化扫描比如扫电流、扫角度尽量把几何清理做到位。几何越干净网格越稳定后面每一步都会轻松很多。3. 磁场仿真主流程从物理场到求解器设置3.1 物理场接口和边界条件磁场接口里需要管什么COMSOL 做电磁场仿真时电机静磁场和频域最常用“磁场mf”接口。稳态永磁电机的空载、负载分析本质是静磁问题也就是解决一个非线性磁矢势方程。在“磁场”接口下有默认的一组边界条件磁绝缘Magnetic Insulation会把边界上的磁力线“关住”适用于模型外边界安培定律是给 Materical 域的默认特征永磁体也在这里配置如果你模型里有绕组电流激励有两种常见做法给绕组域分配“线圈”特征设置线圈匝数和电流直接在安培定律里赋一个电流密度 J比如 J N * I / S 方向沿轴向用“线圈”特征的好处是方便提取磁链、电感、损耗这些派生量。尤其是线圈设置为“电流”激励时后处理可以直接查到磁链这对后来做 id/iq 扫描表非常有帮助。边界条件里还有一类容易忽略模型的对称边界。如果模型是 1/8 或 1/4 对称可以在对称面上设置“磁绝缘”或“理想磁导体”能显著降低计算量。3D 里面我常用对称面 周期性边界来处理整机比如一台 8 极 48 槽电机可以只建 1/8 模型配合周期条件计算效率提升不是一点半点。3.2 铁芯材料一定要输入真实 B-H 曲线线性相对磁导率不靠谱定子转子铁芯是非线性材料硅钢片的 B-H 曲线必须输入不能用一个固定的 mu_r 代替。原因很简单电机正常工作时铁芯磁密往往在 1.5~1.8 T而线性假设下磁导率不变算出来的电感、磁链在大电流工况下会偏向乐观。控制那边的 id/iq 表要的就是饱和、交叉耦合的真实表现你用线性材料算交出去也是白交。具体操作是在材料节点找到硅钢片的 BH 曲线插值表或者以表格形式输入 B 值对应的 H 值。COMSOL 默认支持插值求解时会自动处理非线性的数值迭代。材料来源可以是硅钢厂数据手册也可以来自实测样件。顺带提一句如果模型里有多个铁芯域但材料批次不同一定要分域定义别手滑把所有铁当一种材料。我的经验是给每个域起一个“选择名称”后缀比如“Stator_Core”“Rotor_Core”这样后续修改材料、定义表达式时一目了然。3.3 网格剖分气隙和磁钢是重点照顾对象网格决定精度而精度往往体现在气隙。电机磁场从定子到转子的能量传递全部要通过气隙气隙磁密的计算精度直接决定了转矩、反电动势、铁损这些核心指标的准确性。所以气隙区域必须至少保证 2~3 层网格单元大部分时候我用扫掠网格让气隙沿径向方向有 4~6 层。磁钢本体建议用扫掠网格如果磁钢形状复杂退而求其次也要用六面体主导。四面体网格不是不能用但要注意六面体单元在磁场梯度较大的区域能更有效控制数值耗散。转子和定子铁芯则用自由四面体为主但在靠近气隙的齿顶区域局部加密。3D 模型的网格数量通常很容易超过几百万单元。如果算参数化扫描就需要注意计算资源。我的做法是准静态分析先算一遍粗网格检查结果趋势和收敛性需要精确数值时如转矩脉动、齿槽转矩再局部加密关键区域使用“边界层”网格处理气隙两侧的面保证磁通穿过时数值平滑3.4 求解器设置非线性问题不发散的三条经验带 B-H 曲线非线性材料的静磁求解容易遇到的问题是不收敛。COMSOL 默认的非线性求解器通常能处理但碰到饱和严重、大电流、磁桥过窄的情况需要做一些调整。第一条经验是给求解器一个合理的初始值。可以将第一步设为小电流或空载工况求解成功后再加载到大电流工况。物理上这叫“加载步进”能避免非线性迭代在初始点大幅震荡。第二条经验是调整阻尼因子。默认的恒定牛顿法在某些情况下过刚换成“自动阻尼牛顿”往往更稳。如果模型本身是弱非线性的恒定牛顿更快但如果 B-H 数据比较硬比如高牌号硅钢我会用阻尼牛顿。第三条经验是监控求解日志。COMSOL 在求解时会输出迭代次数和误差别只看结果如果迭代次数一直飙到十几二十次还不收敛基本就是网格质量差、材料数据有突变、或者激励方向定义错了。排查起来虽然烦但方向明确。4. 控制部门要的“磁链随 id/iq 变化表”到底怎么算出来4.1 永磁体磁链为什么不是常数很多搞结构出身的工程师听到“永磁体磁链是变化的”会一愣磁钢 Br 不是固定吗磁链怎么会变化实际原因是永磁电机工作时电枢反应会改变铁芯的饱和程度。不同 id、iq 组合下d 轴和 q 轴磁路的磁导率分布不一样永磁体提供的磁链穿过主磁路的比例也不一样。加上 IPMSM 的磁桥设计、隔磁槽形状都会随着饱和状态改变漏磁路径所以永磁体磁链 psi_pm 严格来说是 id 和 iq 的二元函数。这就是电控那边需要查表而不是用常数估算的物理背景。4.2 冻结磁导率两步法把永磁磁链从总磁链里拆出来要得到“纯永磁磁链”不能简单地在工作点下把电流设为零再算一个解。因为在真实工作点铁芯的磁导率已经被电流产生的磁场“调制”过了如果把电流设为 0 重新求解铁芯会回到空载磁导率状态这时候算出来的磁链根本不是我需要的那个工况下的永磁磁链。冻结磁导率Frozen Permeability的思路是先把工作点的磁导率分布保留下来再在这个冻结的磁导率分布下计算永磁体单独作用产生的磁链。具体两步第一步在工作点 (id, iq) 下求解完整非线性磁场得到每个单元的相对磁导率 mu_r(x,y) 第二步把 mu_r(x,y) 作为固定材料参数重新在模型中仅保留永磁体励磁绕组电流设为零求解得到的就是该工作点下永磁体贡献的磁链。COMSOL 里实现这个方法有几种路径可以在同一个模型中复制一份“磁场”物理场也可以在第二个研究中使用 withsol 函数直接引用前一个解的磁导率变量。我最常用的做法是第一个研究用“辅助扫描”遍历一系列 id/iq 工作点并选择“在主解基础上计算”然后在后处理里用 withsol 向前引用解单独把电流设为零重新积分磁链。4.3 具体的 id/iq 扫描操作与结果整理实际操作时我不会直接在 COMSOL 里把所有工作点一步扫描完因为大模型 多维扫描非常容易让求解器内存爆掉也难排查个别点的收敛问题。我的处理思路是分两步第一步先建立“参数化扫描”扫描若干固定的 id 值在每个 id 下再扫描 iq。用嵌套循环在 COMSOL 里其实不复杂就是两个参数循环但参数命名一定要规范比如 iq_ratio、id_ratio 或者直接安培数。第二步每算完一个工作点马上用“派生值”提取d 轴磁链对 d 轴绕组截面做磁通积分q 轴磁链对 q 轴绕组截面做磁通积分永磁体磁链冻结磁导率后去掉电流激励重新积分然后把这些数据导出到表格再整理成二维表。表格的横轴是 id纵轴是 iq数值是 psi_pm 或者其他磁链分量。控制那边拿到这个表可以直接用于 MTPA、弱磁控制、最大效率算法的查表。4.4 后处理不能只看云图磁密、磁力线和气隙谐波交表之前我建议至少看三样后处理结果一是磁密云图。主要看饱和区域是否合理磁桥和隔磁槽附近的磁密有没有异常高值。如果某些齿部磁密达到 2.2 T 以上正常硅钢基本饱和需要检查设计是否过饱和。二是磁力线分布。电机里的磁力线是否顺畅、有无异常漏磁路径。3D 模型里可以画流线图检查磁钢端部漏磁情况。三是气隙磁密的谐波含量。把气隙圆周上的径向磁密取出来做 FFT看看基波、3、5、7 次谐波的比例。这部分虽然控制查表不直接需要但和齿槽转矩、振动噪声关联密切属于电机设计的基本盘。5. 常见问题与排查实录那些年我踩过的坑5.1 五类高频问题基本覆盖了 80% 的翻车现场问题一网格剖分失败提示“几何有微小边”或“无法生成网格”。八成是导入模型时单位错了或者残留了极小的圆角、装配体缝隙。回到几何层做修复别硬剖。问题二求解不收敛提示“找不到一致的初始值”。先检查永磁体的剩磁方向是否正确尤其径向充磁时表达式是否写对再看 B-H 曲线是否平滑有没有异常突变。问题三永磁体磁链算出来为负或者数值跳到天上去。大概率是绕组积分方向反了或者 dq 轴定义和控制侧的约定不一致。建议确认控制协议里 d 轴正方向的定义仿真里绕组方向跟它对齐。问题四仿真结果整体比实验偏大或偏小。先查材料 Br 和温度系数再核对硅钢片的叠压系数。叠压系数是磁路仿真里常被漏掉的系数实际铁芯有效截面积小于几何截面积不乘叠压系数磁阻就会偏低磁链会偏高。问题五3D 模型太大内存不够跑不动。优先用对称模型配合周期边界再不行就减少对结果影响小的细节单元比如外壳、线包外绝缘层。网格从粗调到细可能比直接全精度求解反而更高效。5.2 问题速查表现象可能原因排查思路解决方式模型导入成 0.08 m 的小玩意单位没选对检查导入设置重新导入选毫米网格报错无数小面CAD 残留倒角、碎面几何检查、错误检查删除/忽略细小特征求解器一直迭代不收敛B-H 曲线数据有突变或方向错误查看日志、监视器平滑材料数据/检查 Br磁链表数值跳变绕组方向定义不一致核对 dq 轴定义统一方向约定结果整体偏大忘了叠压系数核对材料模型乘以叠压系数气隙磁密波形毛刺多气隙网格太粗检查气隙单元层数气隙扫掠网格加密5.3 提高 3D 永磁体仿真效率的几条私人心得第一能用 2D 算的先用 2D 算。旋转电机做磁场扫描表如果轴向端部漏磁影响不大二维模型足够捕捉绝大部分规律。用 2D 把趋势摸清楚最后再用 3D 校核一两个关键工况能省一半以上的时间。第二把“参数化扫描”和“导出表格”做成模板。项目多了之后每次重新搭流程很浪费。我的做法是把典型电机模型的几何、材料、物理场、扫描设置都存成模板文件新项目改改尺寸和材料就能跑。第三别把所有希望放在仿真一个环节。仿真给的是趋势和机理判断最终数据一定要和台架、空载反电动势实测做对比。我第一次做 IPMSM 扫描表时仿真和实测的偏差接近 5%查下来是忽略了制造公差导致的气隙变化。气隙放大 0.1 mm磁链能降一到两个百分点这在工程上已经非常可观。最后说一点个人实际操作的体会从拿到一块钕铁硼磁钢的规格书到最终交出控制部门能用的磁链表整个过程真正考验人的不是某个孤立功能而是对材料、几何、求解、后处理每一步的耐心和判断。我自己的感悟是仿真永远不只为了出一张云图而是为了回答“这个设计在极端工况下到底行不行”的工程问题。所以每完成一个项目我都会把当时的参数设置、踩坑记录、求解策略整理成一份很短的笔记。下次再遇到类似模型就不需要重新从零开始试错。如果你正在做新能源电机的磁场仿真建议也从一个小模型开始先把材料、充磁方向、网格气隙这三件事吃透再上 3D 复杂模型会顺手很多。
返回列表