
上周帮客户调一台7.5kW伺服电机铭牌上白纸黑字写着三角形接法驱动板用的是下桥臂三电阻采样。我让同事把电流探头分别卡在A相端子和电机接线盒里露出来的绕组抽头上示波器一对比他脱口而出相电流不就把线电流除以根号3吗怎么相位差了30度我看了他一眼你把矢量当成标量算了。这种问题在电机驱动圈子里太常见了。三角形接法的PMSM相电流和线电流之间根本不是简单的除法关系直接用线电流除以√3当相电流用低速空载可能没什么感觉一上负载、一拉高速电流环就开始抽风轻则力矩偏差重则过流报警。这篇文章就把这事彻底讲清楚三角形接法PMSM的相电流到底怎么算线电流到相电流的转换公式怎么推导以及我在实测和现场调试中踩过的那些坑。1. 三角形接法PMSM的电流关系从绕组结构说起1.1 三角形接法与星形接法的本质差异要搞清楚电流关系先得从绕组连接方式说起。大多数低压伺服电机和一部分中压大功率电机出厂时是星形接法三个绕组的一端接到公共中性点另一端引出A、B、C三个端子。在这种接法下每个绕组直接承受的是相电压线电压的1/√3而流经每个绕组的电流和外部相线上的电流完全相等——因为绕组的另一端除了中性点没有别的分叉。三角形接法就不一样了。三个绕组首尾相连A、B、C三个端子分别接在三个绕组的连接点上绕组内部形成一个闭合回路没有中性点。这时候每个绕组直接跨接在两根相线之间承受的是线电压而外部相线上的电流在端子处会分流一路流进这个绕组另一路流向另一条支路。所以在三角形接法下流经电机端子的线电流和流经绕组内部的相电流既不是同一回事也不是简单的标量比例关系。很多同行对三角形接法的理解停留在线电压等于相电压、线电流等于根号3倍相电流这条口诀上。这句话本身在正弦稳态、三相对称的前提下是对的但要注意两件事第一这里说的是幅值关系不涉及相位第二这只是在平衡正弦条件下的结论瞬态过程和不对称工况下必须回到基尔霍夫定律去算否则必然出问题。1.2 线电流和相电流在幅值和相位上的差距用一组具体数字来感受一下。假设一台三角形接法的PMSM在额定工况下外部线电流的幅值是100A那么绕组内部每个相的相电流幅值是多少按幅值关系算是100/√3 ≈ 57.7A。但如果你拿示波器同时看线电流波形和绕组相电流波形会发现相电流的峰值没有出现在线电流峰值对应的位置而是偏移了30度电角度。这个相位偏移才是多数人忽略的关键。我实测过不少三角形接法电机绕组相电流总是比对应的线电流提前或滞后取决于你的电流正方向标定和相序定义30度。有些工程师在调试时发现电流环的d轴和q轴电流无论怎么调PI参数都压不平最终查到源头就是这个相位偏移被当成干扰忽略掉了。更直白地说线电流是两个相电流的矢量差。以A相端子为例流入A端子的线电流 i_a 等于从A流向B的绕组电流 i_AB 减去从C流向A的绕组电流 i_CA。既然线电流是相电流矢量的差那幅值必然被放大相位也必然被扭曲。搞清楚这个矢量关系后面所有公式推导就顺理成章了。2. 实测线电流向相电流转换公式的完整推导2.1 用基尔霍夫定律把三个相电流解出来实际驱动系统中我们通常只有电流传感器采到的两个线电流。以最常见的下桥臂三电阻采样为例ADC能直接读到的是 i_a 和 i_b以及可以根据基尔霍夫电流定律推算出 i_c -(i_a i_b)。问题就变成已知线电流 i_a、i_b如何求出绕组相电流 i_AB、i_BC、i_CA先把方向定义统一避免后面符号打架i_a流入A端子的线电流i_b流入B端子的线电流i_c流入C端子的线电流i_AB从A端子经绕组流向B端子的电流i_BC从B端子经绕组流向C端子的电流i_CA从C端子经绕组流向A端子的电流对三个端子分别列基尔霍夫电流方程i_a i_AB - i_CA i_b i_BC - i_AB i_c i_CA - i_BC再加一个绕组闭合回路的约束条件。三角形绕组是一个闭合回路三个绕组电流必须满足i_AB i_BC i_CA 0现在有4个独立方程和3个未知数可以解了。从第一个方程得到 i_CA i_AB - i_a从第二个方程得到 i_BC i_b i_AB一起代入回路方程i_AB (i_b i_AB) (i_AB - i_a) 0 3 * i_AB i_b - i_a 0 i_AB (i_a - i_b) / 3再把 i_AB 代回去i_BC i_b (i_a - i_b) / 3 (i_a 2 * i_b) / 3 i_CA (i_a - i_b) / 3 - i_a -(2 * i_a i_b) / 3最终得到一个非常干净的结论i_AB (i_a - i_b) / 3 i_BC (i_a 2 * i_b) / 3 i_CA -(2 * i_a i_b) / 3注意整个推导过程完全没有用到三相平衡这个假设只依赖基尔霍夫定律和绕组回路约束。也就是说即使在瞬态过程、负载突变、三相不平衡的工况下只要线电流采样准确这三个公式算出来的相电流也是准确的。这一点比除以√3的做法高出一个维度。2.2 为什么线电流除以根号3不能直接当相电流用很多人觉得反正是平衡三相系统相电流幅值等于线电流幅值除以√3那我直接把采样到的线电流除以√3送给电流环不就行了省掉一个矩阵运算。这个问题我详细算给你看。设平衡三相线电流i_a Im * sin(ωt) i_b Im * sin(ωt - 120°)用上面的重构公式算 i_ABi_AB [Im * sin(ωt) - Im * sin(ωt - 120°)] / 3用三角恒等式化简sin(ωt) - sin(ωt - 120°) √3 * sin(ωt 30°)所以i_AB (Im / √3) * sin(ωt 30°)看到了吗真实的相电流幅值是 Im/√3 没错但它的相位是 ωt 30°也就是比线电流 i_a 超前了30度电角度。如果你只是简单地把 i_a 除以√3得到的是 (Im/√3) * sin(ωt)相位仍然是 ωt和真实相电流差了整整30度。别小看这30度。在FOC控制里如果反馈电流的d/q轴和真实绕组电流的d/q轴差了30度那么你看到的iq并不是真正的转矩电流其中会混入id的成分。更麻烦的是这个误差不是线性的比例误差而是包含三角函数耦合的误差弱磁控制和MTPA轨迹在这种反馈下会完全失准。所以无论是做电流环反馈、力矩估算还是无感观测器都不建议直接除以√3了事。3. FOC控制里最隐蔽的坑30度相位错位与电压方程不匹配3.1 直接用线电流做Clark变换会引发什么问题如果你已经把重构公式看明白了那应该能猜到有些驱动器设计者干脆不做重构直接把线电流 i_a、i_b、i_c 送进标准Clark变换。这样行不行从数学上讲等价于把重构矩阵和Clark变换矩阵乘在一起但得到的结果和先重构再Clark差了一个旋转和缩放因子。具体来说如果用线电流做等幅值Clark变换i_α (2/3) * (i_a - 0.5 * i_b - 0.5 * i_c) i_β (2/3) * ((√3/2) * i_b - (√3/2) * i_c)代入平衡三相线电流得到的 i_α j * i_β 和真实相电流的Clark变换结果相比幅值放大了√3倍相位偏转了30度。写成复数形式就是i_alpha_beta_line √3 * e^(-j30°) * i_alpha_beta_phase在电机旋转坐标系Park变换下这个√3倍增益会导致电流环比例增益需要重新标定而30度相位偏移会让d轴和q轴电流相互渗透。我在一款量产驱动器上试过如果采样板卡增益按相电流标定但算法用线电流直接做变换额定电流输出时会比预期力矩高出大约15%到30%而且转速越高弱磁区电流环越不稳定。解决这个问题的办法有两个。一个是先重构再变换也就是严格按上一节的公式算出 i_AB、i_BC、i_CA然后走标准Clark和Park。这个做法直白、可靠代码量增加一点但完全不亏。另一个是等效旋转变换在αβ域把线电流的Clark结果乘以 (1/√3) * e^(j30°)。两种思路数学上等价我推荐工程上使用重构方式因为它的物理意义清晰调试时一眼能看出反馈电流对不对。3.2 修正反馈电流后还需要修正电压方程这里还有一个比反馈修正更隐蔽的坑反馈电流修正正确了但电压方程的基准没跟着改照样出问题。很多FOC代码里电压前馈解耦项长这样Vd R * id - ω * Lq * iq 反电动势项 Vq R * iq ω * Ld * id ω * λf这套方程中的 R、L、λf 必须和反馈电流、PWM输出参考电压处于同一个坐标系基准下。如果你把反馈电流重构成了真实相电流那R和L就应该用真实绕组相电阻、相电感λf用绕组实际磁链算出来的 Vd、Vq 才是真实的绕组相电压如果这时候你偷懒用了等效星形参数或者电机端子测量值直接填进去电压方程里的阻抗压降项和实际加在绕组上的电压就对不上高速时前馈解耦误差特别明显。反过来如果你决定不做相电流重构而是用虚拟星形等效模型——也就是把三角形接法等效成一个星形电机来建模——那反馈电流直接用线电流R和L则要用等效星形参数即三角形相参数的1/3。这样也能自洽而且很多商用驱动器的电机参数输入界面就是这么设计的所以它们出厂默认按星形等效来用你填入三角形接法电机的端子测量参数时反而会出错。总结就一句话反馈用什么电流基准电压方程和电机参数就必须用同一套基准最忌讳混搭。4. 硬件采样环节的实测翻车现场4.1 采样电阻位置决定了你采到的是线电流还是相电流软件公式再漂亮硬件采样没搞对出来全是垃圾。首先要搞清楚你手里的采样硬件到底采的是哪种电流。最常见的低压驱动板方案是下桥臂三电阻采样三个采样电阻分别串联在逆变器下桥臂三个开关管和直流母线负极之间。每个采样电阻上流过的电流在PWM导通期间就是该相桥臂流向电机端子的电流也就是线电流。这个方案采到的毫无疑问是线电流。真正能直接采到相电流的方案需要把电流传感器串联进绕组内部支路。比如把电机接线盒打开单独在AB绕组或BC绕组上串一个霍尔传感器。但这种方案成本高、安装麻烦而且高压场合存在隔离问题一般只在实验室测试或极高性能伺服系统里用。我在客户现场做验证时偶尔会拆开接线盒用电流钳直接卡单根绕组连线测出来的是真真实实的相电流——那是为了标定和比对不是量产方案。所以绝大多数FOC系统内部的反馈都是线电流你需要做的就是用上一节的转换公式在软件里把它变成相电流再送进电流环。4.2 量程选配、采样窗口和共模电压处理硬件上还有几个实测中容易翻车的细节。第一是采样链路量程必须按线电流峰值来选而不是按相电流额定值来选。前面算过三角形接法下稳态线电流幅值是相电流的√3倍。如果你按相电流50A去设计采样电阻和运放增益实际线电流跑到86A时ADC早就饱和了。低速大扭矩、堵转测试时线圈电流会更大这瞬间的饱和可能让FOC观测到错误的电流峰值触发过流保护或者让电流环发散。我的经验是电流采样链路的最大线性范围至少要按电机铭牌额定线电流峰值的1.5倍留裕量。第二是采样窗口。三角形接法下每个绕组承受的是两相之间的电压差开关管切换瞬间电压变化更快、di/dt更大下桥臂采样电阻上的电流纹波和毛刺往往比同等功率的星形接法电机更明显。如果ADC采样点紧挨着PWM开关边沿很容易采到振铃尖峰重构出来的相电流上全是毛刺。建议把采样窗口放在PWM周期的中点附近并根据实测电流纹波给ADC触发加一个1到2微秒的延时让振铃先衰减掉。第三是共模干扰。三角形接法没有中性点整个电机绕组相对驱动板地是一个悬浮系统PWM开关产生的共模电压变化更快。如果用的是隔离型电流传感器隔离电源本身的寄生电容会在开关瞬间形成共模电流耦合进采样信号。这种情况下差分采样、屏蔽双绞线、采样电路加一级低通滤波都值得做。实测中发现采样波形上有明显的高频抖动时优先怀疑共模回路而不是软件滤波。5. 参数辨识与无感FOC的三角形接法陷阱5.1 万用表测出来的电阻到底是不是相电阻很多调试工程师收到一台三角形接法的电机第一件事是拿万用表量两个端子之间的电阻然后把读数当成相电阻填进驱动器的参数表。这个习惯在星形接法下勉强能对上号在三角形接法下就直接错了。三角形接法下你用万用表量任意两个端子之间的电阻测到的并不是某个绕组的相电阻而是两条并联支路的等效电阻一条支路是你要测的那个绕组自身比如AB绕组另一条支路是另外两个绕组串联后BC绕组 CA绕组再和它并联。如果每个绕组的相电阻都是 R_ph那么R_AB端子 R_ph // (R_ph R_ph) R_ph * 2R_ph / (R_ph 2R_ph) 2 * R_ph / 3反过来如果你想从端子测量值得到真实绕组相电阻R_ph 1.5 * R_端子间这里还有个更实用的换算如果用虚拟星形等效模型来做FOC等效星形相电阻 R_Y R_ph / 3。代入上面的关系 R_Y (1.5 * R_端子间) / 3 0.5 * R_端子间。也就是说三角形接法电机端子间直流电阻除以2就是你在星形等效FOC参数表里该填的相电阻。这个除以2法则我实测过很多次比很多人想当然填 R_端子间 要准确得多。电感同理用LCR表量端子间电感再除以2填入等效星形模型。5.2 反电动势观测器里的磁链常数换算无感FOC里反电动势观测器的核心方程是e_α V_α - R * i_α - L * di_α/dt这里的 R、L 以及后端用到的磁链常数 λf必须和你的反馈电流基准匹配。如果算法内部是星形等效模型用线电流做Clark变换那输入的 R、L 就按上一节说的端子测量值除以2来填。而反电动势常数的处理要更小心你拿示波器反拖电机测到的线反电动势峰值对应的是端子线电压也就是三角形绕组本身的相电压。但在星形等效模型里虚拟星形的相电压只是线电压除以√3所以输入到算法里的 Ke 要按实测线反电动势峰值 / √3来填具体是除以√3还是乘以√3取决于算法的电压单位定义但绝大多数基于相电压模型的无感算法需要的是相电压基准。这个换算如果漏了观测器估算的磁链常数偏大√3倍低速时可能还能收敛高速时估算的反电动势会严重超出实际模型范围导致转子位置估算抖动甚至发散。我遇到过一个现场电机转速到2000rpm就剧烈抖动批记录检查下来就是客户把实测线反电动势直接填进了星形等效模型没做√3折算。6. 用Simulink和实测波形验证转换公式是否靠谱6.1 仿真模型的搭建与验证流程公式推导完了坑也列了最后还是要回到验证。我自己的习惯是先在Simulink里把整个系统搭出来跑通了再上电机台架。仿真模型的搭建思路很简单三相逆变器用三个桥臂表示电机部分不直接用现成的PMSM模型而是用三个带反电动势源的R-L支路搭成三角形连接。反电动势源的幅值按电机实际线反电动势设置三相互差120度。在这个模型里你可以同时测量真实的绕组相电流直接测R-L支路上的电流和外部线电流方便做对比。然后在FOC控制算法里设置三个反馈路径路径A直接用线电流做Clark变换路径B用线电流重构出相电流再做Clark变换路径C直接用真实相电流模型内部量做Clark变换。把三路经过Park变换后的 d/q 电流送到同一个示波器模块里对比。我跑下来的典型结果是稳态额定工况下路径C的iq是一条平直线有微小纹波路径B和路径C基本重合差异在1%以内主要来自浮点计算舍入路径A的iq则和路径C差一个固定比例和偏置而且这个偏差不是恒定系数会随负载电流大小和相位变化因为30度相位偏移把id的误差耦合进了iq。6.2 实测波形对比与判断标准仿真通过后上电机台架实测。这里有一个比较实用的验证方法如果电机接线盒里有6个引出端子可以通过连接片切换星形/三角形把三角形连接片断开一点用电流钳直接卡住一根绕组连线就能直接测到真实的相电流。开车后让电机稳定运行在某个恒定转速、恒定负载同时记录线电流和绕组相电流观察幅值和相位差线电流幅值应该是相电流的√3倍相位差应该是30度注意电流钳方向和相序反了会差150度或者-30度要对照模型的正方向定义判断。然后再看软件里的重构相电流和钳表实测相电流的重合度。把两个波形放到同一个示波器上如果幅值、相位都吻合说明从采样链路到重构公式整条链路都是对的。这时候再去看FOC里的iq反馈恒载下应该是一条稳定直线如果iq存在明显的电角度2倍频波动大概率是重构公式里某个符号反了或者采样时序没对准。我个人的习惯是每次改完接法、换完驱动板或者升级固件之后都做一遍这个对比。它不花多少时间但能很早在实验室把想当然地除以√3这类问题拦住而不是等客户现场高速运行时报过流故障再四处排查。做了这么多年电机驱动调试最大的感受就是三角形接法PMSM的电流计算难的不是公式而是很多人没意识到星形接法的经验不能直接搬过来。线电流除以√3只是一个幅值参考矢量层面的相电流必须通过重构或等效星形模型来获得相位和基准一致性问题不解决后面所有的电流环、力矩环、无感算法都是地基歪的。如果你现在手头就有一台三角形接法电机在调试建议先停下来确认一件事你的FOC反馈链路上电流基准到底是线电流还是真实相电流电压方程和电机参数和这个基准是否匹配想清楚这个问题至少能避开一半的坑。