资讯详情

资讯详情

PMSM效率优化仿真:FOC中的MTPA与弱磁控制

做电机控制的这些年我陆陆续续在Simulink里搭了各种永磁同步电机PMSM的仿真模型有的用于验证FOC算法本身有的用来做调试预演但真正让我觉得“有价值”的一套是最近整理完的PMSM效率优化模型。它基于FOC控制框架覆盖了电机正转、反转、进退加减速等典型工况并且在每个工况下都加入了MTPA查表、弱磁控制和损耗分析模块可以说把“怎么让电机跑得省电”这件事从工程角度做了完整的落地。这套模型适合谁参考如果你是刚接触PMSM控制的在校学生它可以帮你把课本上的坐标变换、电流环整定、效率地图这些概念对应到实际模型里如果你是在做伺服驱动、电动工具或小型电动车的工程师里面关于损耗拆解和效率优化的实现方式可以直接迁移到你的项目中做预研。文末我也会把调试过程中踩过的坑和排查思路整理出来希望对正在做类似工作的朋友有点启发。1. 模型到底在优化什么效率不是靠感觉是算出来的1.1 项目背景与核心痛点很多初做PMSM控制的人会有一个直觉只要FOC跑得稳电流波形漂亮效率就不会差。但实际上稳定的控制只能保证系统能转并不能保证系统在最优工作点运行。工业上衡量一台电机的效率核心看的是输出机械功率与输入电功率之比而这两者之间的差值全部化成了热损耗。损耗一小部分在控制器里逆变器开关损耗大部分在电机本体上铜损、铁损、机械损耗等。我做这套模型的直接动因是之前在某项目里遇到一台额定转速3000rpm的PMSM在带载运行时光是温升就比预期高了15℃左右。排查后发现问题不在散热而在控制算法电流环一直用id0策略在低速大扭矩区同等输出扭矩下铜损偏大导致绕组发热严重。换成MTPA最大转矩电流比策略后同样工况下相电流峰值下降了约8%绕组温升明显回落。这件事让我意识到效率优化不是可有可无的后处理而是控制系统设计里必须提前考虑的一部分。于是我在Simulink里搭建了一套完整的PMSM效率优化模型核心思路是在FOC闭环的基础上根据转速和转矩指令实时查表得到最优的id、iq组合同时引入弱磁控制扩展高速区范围并用损耗计算模块把每一部分的损耗量化出来。整个过程不依赖硬件先在仿真里把效率地图跑出来再反推控制策略是否合理。1.2 FOC控制中的三个效率切入点有了“效率是算出来的”这个前提接下来要回答的是FOC控制下从哪些地方切入效率优化。结合我做模型的经验主要从三个层面考虑第一个层面是电流指令本身。id0控制虽然简单但并不会让电流向量幅值最小。对表贴式PMSM而言d轴电感与q轴电感接近id0接近最优但对内置式PMSMd、q轴电感差异明显利用磁阻转矩可以显著降低同等转矩下的电流幅值这就是MTPA的出发点。我在模型中实现了基于预计算表格的MTPA查表模块工况变化时直接查表得到id、iq参考值计算开销小实时性好。第二个层面是电压利用率与弱磁控制。转速升高后反电动势增大逆变器输出电压可能达到上限此时如果不弱磁电流环会饱和失控。弱磁控制通过注入负向id削弱气隙磁场从而在电压受限的前提下维持电流环闭环能力。好的弱磁策略不只是让电机能跑高速还要保证高速区的损耗增量可控避免为了超速而让铜损爆炸式增长。第三个层面是逆变器与电机损耗的综合平衡。有时候系统总效率最高的点并不是电机损耗最小的点。比如提高开关频率可以降低电流纹波和铁损但逆变器开关损耗会上升。在这套模型里我把逆变器损耗估算与电机损耗计算放在一起可以在仿真层面比较不同PWM载波频率下系统的总效率为硬件选型提供参考。2. FOC底层逻辑先搞懂你在优化什么2.1 坐标变换与电流环的本质要在Simulink里做效率优化FOC是基础框架。它的核心思想是把三相交流电流通过Clark变换和Park变换映射到与转子磁场同步旋转的d-q坐标系下。这样一来原本互相耦合的三相电流变成了两个解耦的直流分量d轴电流id和q轴电流iq。id对应励磁分量直接影响磁场强弱iq对应转矩分量直接产生电磁转矩。我在模型里用坐标变换模块把三相电流Iabc变成id、iq反馈值转速环输出iq参考值MTPA模块输出id参考值两个电流环各自用PI调节器输出d-q轴电压再经过Park逆变换和SVPWM生成占空比送到逆变器模型驱动电机。整个闭环链条不长但每一个环节都会影响最终效率。特别是采样延时和PWM更新延时的补偿如果忽略动态响应会变差极限工况下电流环容易抖动反而让损耗变大。这里插一句我的实操体会电流环PI参数整定是实现FOC的第一步但很多人会把参数整定当成“调到一个不震荡就完事”。实际上电流环带宽直接决定动态性能带宽太低电机加减速时电流跟踪不上效率优化模块给的id/iq参考值就形同虚设。我一般把电流环带宽整定到电机电气时间常数的倒数附近再根据仿真中的电流响应微调确保系统既能快速跟踪又不产生明显超调。2.2 PMSM的三大损耗源PMSM的效率优化本质上就是跟损耗作斗争。损耗主要来自三块我在模型里分别建立了计算模块。第一块是铜损即绕组电阻上的焦耳热损耗。计算公式很直白Pcu 1.5 * Rs * (id² iq²)。这里1.5来自三相系统的功率等效换算。铜损与电流平方成正比所以降低铜损的关键是减小电流幅值。MTPA的核心价值就在这里同样的扭矩输出通过合理分配id和iq让合成电流矢量的幅值最小铜损自然最小。第二块是铁损包括磁滞损耗和涡流损耗。铁损与电频率相关转速越高铁损占比越大。仿真中可以通过铁损电阻Rc来近似建模将铁损看作d-q轴等效电路上的并联支路。我在模型中用查表方式描述铁损系数随频率和磁通的变化精度够用也便于参数化扫描。第三块是机械损耗与杂散损耗包括轴承摩擦、风阻以及负载电流引起的附加损耗。这部分在高转速下不容忽视仿真中通常按转速的平方或一定比例进行估算。模型里我用了可调系数方便在不同应用场景下修正。这三类损耗的模型建立后整机效率就可以实时计算出来效率 输出机械功率 / (输出机械功率 总损耗)。有了这个实时的效率计算模块我就能在仿真中一眼看出某个工况点的效率到底是多少进而调整控制参数来优化它。3. Simulink建模实操从电机本体到控制环路3.1 电机本体参数与模型搭建Simulink里做PMSM仿真最简单的方式是直接用Simscape Electrical里的永磁同步电机模块。它内部已经包含了dq坐标系下的电压方程和电磁转矩方程还可以设置铁损电阻、机械损耗等参数。但直接拖现成模块有一个问题很多内部变量不容易拿到比如铁损电流、磁链饱和变化等做效率优化时不太够用。所以我在这套模型里选择了基于数学方程的自建电机本体模型用Simulink基本运算模块搭建d-q轴等效电路。这样可以随时从模型内部引出id、iq、转速、电磁转矩、铁损电流等中间变量方便做效率计算和各种数据记录。电机参数以一台额定功率750W、额定转速3000rpm、极对数为4的内置式PMSM为基准具体包括定子电阻Rs0.42Ωd轴电感Ld0.64mHq轴电感Lq1.18mH永磁磁链Ψf0.086Wb转动惯量J0.00078kg·m²阻尼系数B0.0001N·m·s。这些参数来源于实际电机的铭牌和测试报告仿真结果与台架测试的对比误差控制在5%以内。搭建时有几个细节需要注意一是电气方程里的反电动势项要和转子位置严格同步否则低速时会看到明显的转矩脉动二是转子位置用积分模块对电角速度积分得到注意初始角度的设置要与模型一致三是机械方程中负载转矩作为外部输入方便模拟加载和卸载工况。3.2 电流内环与速度外环参数整定FOC控制器的搭建并不复杂复杂的是参数整定。我先说电流环。电流环一般用PI调节器输出限幅直接对应SVPWM可输出的最大电压矢量。对于表贴式电机d轴和q轴电流环结构对称可以使用相同的PI参数对于内置式电机由于d、q轴电感不同两个轴需要分别整定。电流环的PI参数整定我用的办法是工程整定法加仿真微调。首先根据定子电阻和电感值计算出电气时间常数然后按照期望的电流环带宽ωi 2000 rad/s进行整定。PI参数按以下公式计算Kp L * ωiKi Rs * ωi。代入参数q轴Kp ≈ 1.18mH * 2000 2.36Ki ≈ 0.42 * 2000 840。实际仿真中我会再根据阶跃响应微调如果电流超调量偏大会适当降低Kp或者在前向通道加入低通滤波器来过滤噪声。速度外环的带宽一般取电流环带宽的十分之一到二十分之一也就是100~200 rad/s左右。速度环PI参数同样按工程整定法计算再结合负载惯量做微调。惯量大的系统速度环Kp不能太高否则启动或急停时容易出现转速振荡。我在模型里加入了速度环输出限幅也就是iq限幅值用它来间接限制最大启动电流和最大转矩这个限幅值直接关系到启动过程中的损耗大小和温升。提示参数整定是“理论计算 仿真验证”反复迭代的过程。不要指望一次算出来就能在所有工况下稳定特别是MTPA和弱磁切换的边界点电流环动态稍差就可能在切换瞬间产生电流冲击。4. 效率优化的核心MTPA与弱磁控制4.1 MTPA查表法的实现MTPA最大转矩电流比是PMSM效率优化的第一板斧。它的目标是在输出给定转矩的前提下让定子电流矢量的幅值最小。由于铜损与电流平方成正比电流矢量幅值最小也就意味着铜损最小。对内置式PMSM电磁转矩方程为Te 1.5 * p * [Ψf * iq (Ld - Lq) * id * iq]。这里的第二项就是磁阻转矩。由于Ld Lq负向id能产生正向磁阻转矩所以最优工作点通常落在id 0区域。MTPA的数学本质是对上述转矩方程求在给定Te下的最小电流平方约束解得到id和iq的对应关系。在Simulink中实现MTPA我选择了查表法而不是在线求解。原因很实际在线求解需要解一元多次方程计算量大而且在Simulink的离散仿真步长下容易出现数值抖动。查表法则是在离线环境中针对一系列扭矩指令Tref预先计算对应的id_ref和iq_ref生成一张二维表仿真时根据Tref直接线性插值。MTPA查表模块的输出送给电流环作为参考值。这里有一个非常关键的细节MTPA表格在低速区有效一旦转速升高导致电压达到逆变器极限MTPA给出的id可能无法满足电压约束此时必须切换到弱磁控制模式否则电流环就会饱和实际电流无法跟踪参考值效率反而恶化。所以MTPA查表模块不能单独工作必须与弱磁控制模块配合。4.2 弱磁控制与效率优化边界条件弱磁控制的目标是解决高速区的电压限幅问题。电机反电动势随转速升高而增大当反电动势接近母线电压能支撑的极限时电流环就没有足够的电压裕度来调节电流了。此时通过注入负向id削弱转子磁链在定子绕组中的交链就能降低反电动势把电压裕度让出来。我在模型中实现的弱磁策略是“电压闭环法”检测电流环PI调节器输出电压矢量的幅值与逆变器最大输出电压比较偏差经过一个PI调节器生成id的弱磁分量叠加到MTPA给出的id参考值上。这么做的好处是不需要精确知道电机的电压极限椭圆实现简单且鲁棒性较好。但弱磁控制不是免费的。负向id会增大电流幅值导致铜损上升同时削弱磁场会让铁损降低这里存在一个平衡点。所以在我的模型里弱磁运行区的效率优化还有一个约束条件当弱磁分量过大导致铜损超过铁损节省量时系统会限制弱磁深度必要时降低最高转速指令保障系统运行在合理的效率区间。这个逻辑我在模型里用一组“效率代价函数”计算模块实现。模型里另一个重要部分是电压极限与电流极限的联合约束。稳态下交直轴电流必须落在电流极限圆内同时电压幅值必须小于最大输出电压。我建立了这两个约束条件的可视化模块可以实时显示当前工作点在电流极限圆和电压极限椭圆中的位置调试控制参数时非常直观。5. 进退过程中的效率优化实践5.1 正反转切换的电流规划项目标题里特别提到了“进退”也就是电机正转和反转的频繁切换。这种工况在很多场景中很常见比如伺服进给系统、位置伺服控制、电动夹爪的开合动作等。正反转切换过程中最容易出现的问题是换向时刻的电流冲击和减速制动时的能量浪费。先看换向冲击。如果速度环直接从正转最大正速度跳到反转最大负速度速度误差很大速度环输出会瞬间推到限幅值导致电流瞬间增大铜损和温升都急剧上升。我在模型中加入了“换向电流规划”模块检测到速度指令反向时限制速度环的积分器输出变化率让iq参考值按斜坡形式过渡而不是阶跃变化。这样换向过程平顺电流冲击幅度明显下降。再看能耗。正向高速运行中突然给反转指令电机首先进入发电制动状态机械能转化为电能回馈到母线。如果在仿真模型中接的是纯电阻负载这部分能量会白白耗散如果硬件上有能量回馈或电容储能则需要另外设计DC-DC变换电路。我在模型里专门建立了制动能量统计模块可以计算一次完整的“前进-停止-后退”循环中回收了多少制动能量、浪费了多少制动能量这对判断控制策略优劣非常有帮助。5.2 加减速过程的效率优化加减速过程的效率优化往往比稳态效率更容易被忽略。很多人只看稳态效率曲线但实际工况中加减速占工作循环的比例可能超过一半。加减速过程中效率低下的原因主要有两个一是加速时q轴电流很大铜损与电流平方成正比瞬时损耗会非常高二是减速时动能需要通过制动方式消耗掉这部分能量本质上也是一种“损耗”。在模型里我对比了三种加速控制策略的效率表现最大转矩加速、梯形速度曲线加速和S型速度曲线加速并记录每个策略下的总能量消耗。最大转矩加速时间最短但电流峰值最大铜损瞬时功率很高总能量消耗并不是最低。梯形速度曲线加速通过阶段限制加速度来降低峰值电流时间略长但能量消耗明显减少。S型速度曲线进一步平滑了加加速度减少了铁损和机械冲击损耗在中高速区间表现最好。我在模型中用能量积分模块对整个过程的总能耗做了对比计算最后选择了S型加减速曲线配合前馈转矩补偿用来兼顾效率和动态响应。这里再说一个和“进退”直接相关的细节频繁正反转的工况下机械损耗中摩擦损耗的方向符号会频繁变化如果机械模型里只用简单的阻尼系数摩擦力方向处理不好低速临近换向时会出现速度“粘滞”现象也就是速度在零点附近往复小幅度振荡这会额外增加电流损耗。我在模型里加入了库仑摩擦与粘滞摩擦分离的机械模型换向零速附近的控制死区也做了滞环处理才把这个问题消除。6. 仿真调试中踩过的坑与排查技巧6.1 模型发散与震荡的排查用Simulink仿真PMSM模型最常见的噩梦就是模型发散。一跑起来转速飞了电流满屏乱跳根本没法分析。我遇到过几种典型情况也总结了对应的排查思路。第一种是离散仿真步长过大。PWM载波频率假设为10kHz电气时间常数可能在0.1ms量级仿真步长如果取0.01ms以上就可能出现电流环数值失稳。解决方法是把步长设为载波周期的十分之一到二十分之一我一般用固定步长步长1e-6到1e-5秒配合离散PI调节器一起使用。第二种是PI参数不合适。速度环带宽和电流环带宽间隔不够导致两个环路耦合并产生振荡。排查时可以把速度环增益先调低确认电流环稳定后再逐步提高速度环增益。第三种是坐标变换的角度对齐问题。Park变换使用的转子位置角如果是用电角速度积分得到的初始相位必须和电机模型内部的角度一致否则直接静差模型无法运行。排查方法是把电机空载给定零转矩指令看id、iq反馈是否为零如果存在固定偏置就逐项检查角度初始化。6.2 效率曲线异常的排查实录效率曲线异常也是我做模型时常遇到的问题。一次在扫效率地图时发现中转速带载工况计算出效率超过100%第一反应是损耗模型算错了。逐项排查后发现铁损计算模块在铁损电阻Rc取值过小时会算出一部分“从机械侧回流的能量”导致总损耗为负值效率直接爆表。修正方法是先单独验证每个损耗模块给电机施加已知的电压和电流对比手工计算铜损和模型输出是否一致再把铁损模块单独接入固定频率的正弦电流源观察损耗是否随频率合理变化最后才把各个模块接入整体模型。模块化验证的顺序很重要一旦整体跑起来再排查损耗问题牵扯的变量太多效率很低。另一个案例是MTPA和弱磁切换瞬间的效率“掉坑”。扫效率地图时发现在进入弱磁区的第一个点效率突然下降了几个百分点之后又回升。检查后发现是弱磁PI调节器的初始积分值没有设置好导致切换瞬间id出现一个很深的负向过冲铜损瞬间增大。把弱磁PI积分器初始值设置为MTPA出口处id的估计值后切换过程变得平顺效率曲线也连续了。最后给一个实用的提示仿真效率地图时建议用自动脚本批量扫描工况点把每个点的id、iq、转速、扭矩、母线电压、总损耗都记录下来生成效率等高线图。这样控制策略的调整效果一眼就能看出来远比看某个单点的数值更有说服力。7. 一些建模之外的经验和扩展方向搭建这套PMSM效率优化模型的过程中我最大的体会是仿真的价值不在于“跑起来”而在于“算明白”。Simulink里的每一个模块、每一组参数都应该能回答“为什么这么设定”的问题。如果只知道MTPA能降低铜损却不知道它为什么能降低、在什么范围内有效那么参数一改、工况一变模型立刻就会暴露问题。从工作量上看建模本身大概只占一半另一半花在参数整定、损耗验证和异常排查上。但恰恰是后面这部分工作让我对PMSM在不同工况下的损耗分布有了清晰的认识。后续我打算在这套基础上加入参数辨识模块把电机电阻和磁链随温度变化的因素考虑进去让效率优化在热态工况下也能保持参考价值。另外目前模型里MTPA用的是离线查表下一步想尝试在线参数自适应的MTPA算法和现在的查表方案做对比看动态工况下能不能进一步降低损耗。如果你也在做类似的PMSM效率优化仿真我的建议是先从最简单工况跑通再加入MTPA最后再引入弱磁一步一步来。每一步都先量化损耗变化确认收益后再进入下一步。这样不仅能积累可复用的模型模块也能真正把电机控制的基础理论吃透。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →