ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

内置式永磁同步电机矢量控制仿真:从MTPA到弱磁控制的完整实现

内置式永磁同步电机矢量控制仿真:从MTPA到弱磁控制的完整实现 1. 内置式永磁同步电机为什么新能源车驱动系统的“心脏”非它莫属1.1 先分清表贴式与内置式同样的“永磁”差别全在转子里入电动电驱这行这几年我至少被问过几十次内置式永磁同步电机矢量控制仿真模型怎么搭才靠谱每次聊到这个问题场景几乎都一样——刚接触电驱动的人拿一个简单的PMSM模型跑出来的波形也能转但一问参数是怎么来的、为什么用MTPA、速度环和电流环为什么这么整定就说不太清了。这篇东西就是把我搭建一套IPMSM矢量控制仿真模型的完整思路整理出来从电机结构、控制原理、仿真建模到调参踩坑尽量把每一步背后的道理讲明白。先说电机本身。永磁同步电机按永磁体在转子里的位置分两大类表贴式SPMSM和内置式IPMSM。表贴式很好理解永磁体贴在转子铁芯表面磁路对称交直轴电感几乎相等Ld≈Lq内置式则是把永磁体嵌在转子铁芯内部常见的有一字形、V形、双V形不同厂商会做各种衍生构型但核心思路一致让交轴电感明显大于直轴电感Lq Ld。对比项表贴式 SPMSM内置式 IPMSM永磁体位置转子表面直接面向气隙嵌入转子铁芯内部凸极效应弱Ld≈Lq明显LqLd磁阻转矩几乎为零占比可做到30%-50%弱磁扩速能力较弱高速受限强调速范围宽过载能力与功率密度中等高成本与工艺结构简单工艺成熟转子结构复杂但综合收益高看起来只是永磁体位置不同后果却是决定性的。表贴式电机虽然转矩控制简单但弱磁扩速要靠增大id去削弱永磁磁链效率掉得很快内置式电机天然有磁路不对称除了永磁转矩还能额外“挖”出一大块磁阻转矩这正好是电动车需要在低速爆发大扭矩、在高速还能维持恒功率输出时最需要的特性。所以现在主流新能源驱动电机几乎全部走内置式路线就是这个原因。1.2 凸极效应与磁阻转矩内置式电机的两条扭矩来源内置式电机为什么能多出磁阻转矩我用一个生活化的比喻来解释永磁体嵌在转子内部相当于在转子磁路里故意“埋了”两个导磁性能不同的方向。直轴方向因为直接面对永磁体的低磁导率磁路比较“憋屈”交轴方向走的是纯铁芯磁路很“通畅”。于是交直轴电感出现了明显的差值Lq-Ld这就是凸极效应。凸极效应带来的直接好处是转矩表达式里多出一项。IPMSM的电磁转矩方程可以写成Te 1.5 × p × [ψf × iq (Ld - Lq) × id × iq]其中ψf是永磁磁链p是极对数前一项是永磁转矩后一项是磁阻转矩。注意Ld-Lq是负值而id通常取负值负向励磁电流两者相乘后得到正转矩等于白捡了一部分力矩。我从实际标定数据里见过不少案例在低速大扭矩区磁阻转矩能占到总转矩的30%甚至更高。这也是内置式电机功率密度高的重要原因——同样的定子电流和铜耗它能比表贴式压榨出更多有效转矩。1.3 从整车需求倒推大扭矩、宽调速、高效率是如何被满足的做仿真之前先得想清楚整车要什么样。电动车有几条硬指标起步和爬坡需要短时大扭矩0-100km/h加速要电机能快速拉转速高速巡航时转速很高但方向盘和刹车等辅助系统电压平台又限制了母线电压电机必须在电压极限内维持一定功率。这些需求放到电机设计上翻译过来就是低速区要有大扭矩高速区要能弱磁调速全工况效率要尽量高。内置式永磁同步电机正好一一对应凸极效应带来额外磁阻转矩把低速大扭矩这个任务接住了Lq与Ld的差异使得负id电流的弱磁效果更有效率高速区更容易“顶住”反电动势因为底盘宽裕整个中高转速区还能通过电流分配策略去校准效率最优工作点。可以说只要你在做新能源电驱动的仿真绕不开的核心对象就是IPMSM。下面讲的矢量控制也都是围绕这台电机展开的。2. 矢量控制到底在“控制”什么从一团交流电到两个直流分量2.1 三相电流为什么会让人挠头耦合的本质电机一通电三相绕组里就是三个相差120度的正弦交流电流。这三个电流在外观上只是大小随时间变化但背后信息量很大它们合并起来形成一个旋转的电流空间矢量这个矢量的大小和方向决定了定子磁场的大小和方向。麻烦之处在于这些量之间严重耦合——定子磁场和转子磁场互相牵着走而且每一相电流变化都会影响另外两相的响应。用“标量”思路去逐个调三相电压就像一个人同时抛三个球越抛越乱。所以矢量控制也叫磁场定向控制FOC的核心思路并不复杂不跟交流量死磕而是通过坐标变换把三相静止坐标系下的交流量搬到与转子同步旋转的坐标系里让这些量看起来像是“静止”的直流。一旦变成直流就可以用两套独立PI调节器分别控制互不干扰。这套思想最早用于大功率直流电机控制后来迁移到交流电传动上成了今天所有严肃电驱系统的底层逻辑。2.2 两次坐标变换abc → αβ → dq具体来说坐标变换分两步。第一步是Clark变换把三相电流ia、ib、ic投影到两相静止坐标系αβ上。由于三相平衡时存在 iaibic0 的关系实际只要采样两相电流就能还原αβ轴的电流分量。这一步相当于把“三根正弦杆”简化成“两根互相垂直的交流杆”但量仍然是交流的。第二步是Park变换把αβ轴的交流分量利用转子角度θe旋转到dq坐标系。这里有一个关键前提——必须知道实时的转子位置角所以仿真模型和实机都要有位置传感器旋变或编码器仿真里直接从电机模块取角度信号即可。完成Park变换后原来幅值随时间波动的三相电流变成了两个近似不随时间变化的直流分量iq是转矩电流id是励磁电流。这个动作就像原来三个人在原地交替传沙袋现在改成两个人稳稳地推拉一台直线滑台控制难度一下子从极端复杂变成谁能调好PI谁说了算。2.3 dq坐标系下电压方程与解耦前馈坐标变换之后控制目标明确多了但dq轴之间仍然存在交叉耦合项。IPMSM在dq坐标系下的稳态电压方程长这样ud R × id - ωe × Lq × iquq R × iq ωe × (Ld × id ψf)也就是说dq轴电压不仅由本轴电流决定还受到另一轴电流和转速的影响。最典型的耦合就是uq里那一项“ωe × Ld × id ωe × ψf”转速越高这个反电动势项越大如果不做处理电流环会被它带着跑。高速弱磁区这个耦合项比比例调节器的输出还大处理不好就会失控。工程上常用的解决办法是前馈解耦电流环PI输出作为调节量再叠加一个由转速、电机参数和电流计算出来的前馈补偿项补偿掉交叉耦合量和其他扰动。仿真模型里我会单独留一个“解耦前馈计算”模块整定PI参数时再结合前馈去判断哪里该留裕度。很多人搭模型跳过这一步最后高速段波形一团糟回头查基本都是没做前馈或前馈符号写反了。3. IPMSM的电流分配策略MTPA才是低速扭矩区的正解3.1 id0控制错在哪放着磁阻转矩不用很多人刚接触FOC时都会先写一个id0控制让直轴电流恒为零只用iq控制转矩。对表贴式电机来说这没问题因为它的磁阻转矩本来就几乎没有。但对IPMSM来说id0等于把转矩方程里的第二项直接扔了。回到前面那个转矩表达式当id0时Te1.5pψf×iq这一项是纯永磁转矩可一旦让id取了负值磁阻转矩就会冒出来电动机总的输出转矩变大。我用一个仿真算例验证过某台内置式电机极对数p4永磁磁链ψf0.05WbLd0.2mHLq0.5mH定子电流幅值限制在120A。如果用id0控制iq120A转矩约36Nm如果尝试把电流分配为id-40A、iq≈113A不仅永磁转矩还有约34Nm磁阻转矩还能补上约8Nm总转矩能到42Nm左右比id0控制多出来15%以上。对整车来说这直接意味着起步扭矩更大、同样的加速踏板下能爆发出更强的推背感。3.2 MTPA原理与工程实现既然id越负磁阻转矩越大那是不是越负越好也不是。id太负同样的电流幅值下iq会被压缩永磁转矩掉得太多换来的磁阻转矩反而补不回来。数学上这个问题是在定子电流幅值is固定的前提下寻找让转矩最大的id、iq组合也就是所谓“最大转矩电流比控制”MTPA。MTPA区域内的极值条件可以写成ψf × id (Ld - Lq) × (id² - iq²) 0给定iq就能解出对应的id或者反过来给定id解iq。这个隐式公式在仿真和实际标定里都有应用。工程实现有三种主流方式公式法用上述极值条件直接计算id指令。优点是没有存储量缺点是电机电感一旦随电流饱和偏离设计值算出来的结果就会带误差。查表法在台架上标定不同转矩指令、不同转速下的最优id、iq做成lookup table。这是量产控制器的主流做法标定工作量较大但鲁棒性最好。在线搜索法实时给id加一个微小扰动观测转矩或电流变化自动向最优方向迭代。仿真中容易收敛慢一般不太用于实时量产控制。我这套仿真模型里低速区用的就是公式法MTPA把MTPA计算模块放在速度环和电流环之间。速度环输出的是转矩电流指令iq_refMTPA模块根据iq_ref和当前转速算出id_ref再送给电流环。你如果不想写解析公式直接用函数计算器或lookup table也能达到类似效果。关键是别绕过MTPA直接上id0否则模型看起来能跑但转速稍高一点或者扭矩一大对比实车数据就会暴露明显偏差。3.3 高速弱磁区怎么接续过了基速以后反电动势逼近母线电压PI调节器输出就算顶到电压极限也压不住电流了。这时候必须把id负向加大用直轴去磁电流削弱气隙磁场让反电动势保持在母线电压能承受的范围内。电压极限在dq平面是一个椭圆——横轴是id纵轴是iq转速越高椭圆越小。弱磁控制本质上是在这个椭圆内部找可行电流同时想尽办法保住输出转矩。仿真模型里我建议在电流指令生成级做弱磁控制而不只能用PI硬扛。常见方案根据dq轴电压模长是否达到电压极限动态修正id_ref再限制iq_ref在电压椭圆内。简单写一个“电压极限限制器”先算出当前转速和电压下的最大允许id、iq再对指令做限幅模型跑起来稳定性和可读性都会好很多。高速区还涉及过调制、退磁保护等问题那就是另一个深水区了。4. 仿真模型搭建全流程从电机参数到SVPWM逐层落地4.1 仿真平台选型与总体架构我用的仿真环境是Simulink。选择它倒不是因为它没有替代品而是因为电驱系统的模型库里既有电气部分又有机械部分还能很方便地做离散控制逻辑和波形观测。搭这套模型我建议把整体架构自上而下分成三层第一层是“指令层”速度给定和斜坡限幅加上MTPA/弱磁电流分配第二层是“控制层”速度环PI、电流环PI、坐标变换和解耦前馈第三层是“功率层”SVPWM调制、三相全桥逆变器、IPMSM本体和负载机械模型。这样做的好处是排错路径清晰。模型跑出问题先看是哪一层出的问题——指令没给对调到第一层电流跟随不好看控制层电流波形毛刺多看向功率层。我曾经见过有人把速度环、电流环、SVPWM全塞进一个子系统里出了bug都不知道从哪开始查最后只能重新搭。模型结构清晰调试省的时间比搭子系统那几分钟值多了。4.2 电机本体与功率逆变器模块参数设置电机本体我习惯直接使用Simulink里的永磁同步电机模型把转子结构选为“内置式IPM”填入一组接近实际产品量级的参数。下面这组参数来自我做过的某台模拟项目X的量级你可以按自己的目标电机替换参数数值说明直流母线电压320 V模拟整车电池高压平台极对数 p4与电机极槽配合相关定子电阻 R0.05 Ω含绕组折算直轴电感 Ld0.2 mH随饱和略有变化交轴电感 Lq0.5 mH交轴磁路更通畅永磁磁链 ψf0.05 Wb考虑温度修正转动惯量 J0.01 kg·m²含转子与负载折算额定转速3000 rpm基速区最高转速9000 rpm弱磁扩速区开关频率10 kHz常用IGBT/SiC范围逆变器模块用三相全桥按“平均模型”或“开关模型”都可以。做控制策略验证时平均模型跑得快、够用做电流谐波、死区效应分析时必须切到开关模型。为了让仿真更贴近真实我一般先用电感负载校验坐标变换和PI极性再接电机本体否则容易把“控制反了”和“参数错了”混在一起排查成本很高。4.3 SVPWM调制模块的实现要点逆变器要输出任意方向、任意大小的电压矢量靠的就是空间电压矢量调制SVPWM。这个模块说穿了就是三步判断参考电压矢量落在哪个扇区算出相邻两个基本电压矢量的作用时间再按七段式顺序插入零矢量。在模型里我用手写m-function实现不直接拖库里的IP核模块主要目的是方便改算法和排查逻辑。扇区判断的方式是利用Uα、Uβ构造三个中间量比如 Uref1UβUref2√3/2×Uα - 1/2×UβUref3-√3/2×Uα - 1/2×Uβ按正负组合映射到扇区编号。作用时间则通过三个标准中间量X、Y、Z计算比如 X√3×Uβ×Ts/UdcY(3/2×Uα√3/2×Uβ)×Ts/UdcZ(-3/2×Uα√3/2×Uβ)×Ts/Udc然后按扇区查表选T1、T2。如果T1T2大于开关周期Ts还要按比例压缩到Ts这就是过调制前的最后一道校验。手写SVPWM时最容易踩的坑是电压基准不统一。Uα、Uβ的幅值定义到底是“线电压幅值基准”还是“相电压幅值基准”直接用错会导致输出电压缩水、电流幅值偏小但模型又能跑起来肉眼很难发现。建议在建好模块后做一个“开环校验”给一个固定幅值的Uref看逆变器输出的基波电压幅值是否符合预期关系这一步能挡掉很多隐蔽问题。4.4 速度环与电流环PI整定由公式起步再微调PI参数是整个模型能不能跑出漂亮波形的关键。我的建议是先由理论公式给初值再放到闭环里微调不要上来就盲试。电流环的对象近似为一阶RL电路如果忽略耦合和逆变器延时开环传递函数约为1/(LsR)。用零点对消法时取 Ki/Kp R/L系统就被整成近似积分环节电流环带宽ω_bw≈Kp/L。比如上面那台电机如果取电流环带宽约500Hz即大约3140rad/s那么 Kp≈0.5mH×3140≈1.57Ki≈0.05×3140≈157。实际因为要留出开关周期、数字控制延时的裕度带宽往往取到开关频率的1/20到1/10Kp再适当缩减。速度环带宽再比电流环低一个数量级左右我通常先按经验估算再用阶跃响应看超调和恢复时间逐次微调到阻尼感合适。环路带宽取向初值思路典型波形目标电流环开关频率1/10~1/20零极点对消法阶跃无大超调跟得上指令速度环电流环1/10左右机械惯性阻尼比估算速度超调5%加载恢复快PI整定还必须注意积分限幅和输出限幅。电流环输出限幅要小于逆变器能输出的最大电压速度环输出限幅要对应iq的最大允许值。如果你用的是离散PI模块采样周期最好与PWM载波周期同步否则离散化误差会让理论带宽打折。5. 仿真波形复盘启动过冲、加载跌落与母线电压波动5.1 空载启动速度环过冲背后是积分饱和模型搭好之后第一个要看、也最能暴露毛病的工况就是空载启动。给一个从0到2000rpm的斜坡速度指令斜坡时间设0.1s观察id、iq、转速三个量。如果速度环Kp取得太大最典型的现象是转速第一次冲到2200rpm甚至更高然后带着衰减振荡慢慢回落期间iq一开始冲顶到限幅值然后速度误差变小了iq却迟迟下不来这就是积分饱和在捣乱。处理办法主要有三个方向一是把速度指令斜坡放缓让电流环不必一上来就拼满输出二是给速度环积分项做条件积分或抗饱和处理让误差变小时积分器能快速退出三是适当降低速度环Kp把超调控制在3%-5%以内。仿真模型的好处就在这里——你可以放心大胆地试不同方案看波形变化培养对参数和现象之间因果关系的直觉。还有一种常见现象空载启动时id完全乱跳。如果MTPA模块里id_ref是纯代数公式算出来的而iq_ref还在快速变化二者之间存在相位差就会出现id和iq不协调的“拐弯”现象。这时候把电流分配模块放到电流环采样周期相同的离散域计算保持同步波形立刻就干净了。5.2 突加负载看一下动态速降和恢复时间空载跑通后加载工况才能检验速度环的“抗压能力”。我常用阶跃负载模拟在0.5s时从0Nm突加30Nm负载力矩观察转速跌落幅度以及从跌落发生到转速回到误差带之内的时间。一台调得正常的速度环30%~50%额定负载突变下转速跌落通常在几十rpm量级恢复时间在几十到一两百毫秒之间。如果速度环太慢突加负载后转速可能会永久留一个稳态误差或者恢复得很拖沓如果速度环太快则可能引发机械谐振振荡转速在负载切换后抖好几下。我习惯用负载突变时的iq指令作为诊断信号iq响应越快说明电流环带宽足但iq上若有明显振铃就是速度环阻尼没给够。仿真里可以同时看转速和iq两个量定位问题比实机快很多。做加载实验时不要忽略MTPA模块对iq的分配过程。突加负载瞬间iq_ref快速增大MTPA需要同时调整id_ref如果id_ref仍然遵循低速MTPA曲线但电流环动态不足实际id会暂时跟不上指令导致转矩响应打折扣。所以调加载工况时如果发现dq电流响应不对称优先检查电流环带宽和耦合前馈。5.3 母线电压瞬降电压极限是电流环最大的“天花板”高速公路工况里最让人头疼的极端情况是母线电压跌落。比如电池SOC低了、大功率瞬间拉低总线电压或者某种短时电源波动让直流母线从320V瞬降到260V。这时候逆变器能输出的最大电压线性下降电流环即便想输出更大的dq电压指令也被电压极限箝住。我在模型里专门加过这个工况0.8s时母线电压从320V跳变到260V转速放在4000rpm弱磁区本来就有一定id电流电压一跌电流环输出立刻顶到饱和id、iq暂时失去调节能力转速跟着掉。解决思路上仿真模型里先做“电压前馈限幅”与过调制补偿。具体就是在SVPWM之前加一个电压幅值限制器当dq电压幅值超限时按比例均匀压缩保证电流环不失控再配合弱磁控制器提前调整id_ref给电感留出压降余量。这个工况也是检验“PI参数对不对”的好试金石。如果电流环带宽太低电压跌落后的电流重建过程会明显拖沓如果PI输出限幅设置过小玩了命也达不到需要的电压那样即使控制逻辑再正确电流也追不回来。5.4 调试顺序与防踩坑清单从空载启动到加载再到母线电压波动我的调试顺序是固定的先把电流环调稳再碰速度环先说低速区再进弱磁区先用平均模型再用开关模型。任何把顺序反过来的人都容易陷入“波形乱、不知道哪儿错”的泥潭。我还总结了一个防踩坑清单坐标变换极性检查方向角或母线电压方向写反电机会直接跑飞但波形可能是“看起来能转”的SVPWM基准电压检查做开环基波电压验证防止幅值基准不一致PI限幅检查积分器、输出、前馈三项限幅必须同时设置缺一个都会在极端工况露出bugMTPA模块离散域同步不要和连续域控制混用否则id、iq分配可能产生偶发跳变初始条件电机模块和PI积分器初值尽量从零开始先跑静态再跑动态不然第一步波形就没法看。这些坑我基本都踩过一遍写在模型里的每一行判断背后都有一次波形翻车的回忆。6. 从仿真模型到工程落地的进阶准备6.1 仿真模型该达到什么精度才够用有人总觉得仿真模型越精细越好把机械摩擦、温度、磁饱和、铁损全堆进去结果仿真速度慢如蜗牛还看不出主因。我个人的观点是模型的复杂度必须跟着你的研究问题走。做控制策略验证电机本体用带Ld、Lq差异的理想模型完全够做电流谐波分析就必须上开关模型和死区做故障逻辑还得加IGBT故障、缺相、堵转等模型。没有哪一种模型能覆盖所有问题想清楚这次仿真要回答什么问题再决定模型精度才不会白费时间。以这套矢量控制模型为例核心精度目标有三个MTPA区域转矩是否与实际电机标定趋势一致电压极限和弱磁区边界是否准确电流环、速度环的动态行为是否能在合理误差内预测实机趋势。满足这三个目标模型在项目里就能起到标定预研、参数下装试验、故障逻辑验证的作用。6.2 弱磁扩展、死区补偿与在线参数校正如果目标是贴近量产工程仿真模型里还要再加几层东西。高速弱磁控制前面提过这里建议补一个完整闭环实时监测dq电压幅值超限后就减小iq_ref、增大负id_ref并做好id、iq之间的协调限幅。如果仿真里缺这一步一到高转速就会出现电流跟踪不上的“剪刀差”现象再调PI也救不回来。第二是死区补偿。开关模型中加了死区时间之后逆变器输出电压会损失且产生与电流方向相关的谐波。仿真里如果忽略死区低速轻载时的电流波形会显得比实机漂亮得多一旦去做实机对比就会失望。建议先不加死区把主控制逻辑调顺再加死区看影响。第三是电机参数在线校正。温度变化会让永磁磁链和电感参数发生漂移特别是永磁磁链随温度升高而下降直接导致MTPA计算结果偏差和高速反电动势估计不准。模型中可以加入温度模块改变ψf值观察转矩误差和弱磁边界变化这也是为将来实机标定预留的“体检项”。6.3 我最后想强调的三条仿真习惯第一参数从哪来必须记录清楚。电机参数是基于某模拟项目X的估算值还是从供应商拿到测量值要写进模型说明文档。仿真里最危险的事不是参数有误差而是不知道这些误差从哪里引入。第二每改一个参数只动一个变量。很多人调PI喜欢一次动一半效率看似高真的出了问题就分不清哪个参数带来的影响。我习惯每次只改一个量跑一组对比把结果截图存文件夹最后汇总成一份“参数变化-波形特征”对照表。第三仿真波形不能只看最终结果还要看过渡过程。电机控制Debug的真相都藏在细节里启动冲多高、电压跌落恢复慢不慢、MTPA切换时id突不突。这些过渡过程在综合波形图上未必显眼但恰恰是实机可靠性最容易出问题的地方。把一套仿真模型从“能转”做成“能信”中间隔着的就是对原理的理解和对细节的较真。上面整套流程从电机选型逻辑到矢量控制原理从MTPA与弱磁策略到PI整定和波形复盘基本覆盖了我个人在IPMSM矢量控制仿真上走过的路。你在搭建自己的模型时如果也遇到高速电流发散、加载转速跌、MTPA波形拐弯这类问题不妨回到这几个环节逐层排查——大多数仿真翻车根源都藏在坐标变换、电压限幅和PI限幅这些不起眼的地方。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表