最近看到了一个代码,有点好奇,ai说是电机星形连接的原因。
float32_t VphaseA = Vtemp * (pVabc_pu->value[0] * 2.0f - pVabc_pu->value[1] - pVabc_pu->value[2]); float32_t VphaseB = Vtemp * (pVabc_pu->value[1] * 2.0f - pVabc_pu->value[0] - pVabc_pu->value[2]);原理如下:
1. 逆变器输出的电压是什么样子?
典型的三相电压源逆变器,三个桥臂的中间点分别接电机的 A、B、C 三相。每个桥臂上下管交替导通。
如果上管导通、下管关断,该相输出就接近直流母线正端+Vdc;反之接近负端0V。
用占空比da, db, dc表示上管导通时间占比(范围 0~1),那么三个桥臂的输出端相对于电源地的电压分别是:
Va_gnd = da * Vdc Vb_gnd = db * Vdc Vc_gnd = dc * Vdc这三个电压是相对于地的,带有很高的共模电压(因为它们大致都在Vdc/2附近摆动)。
2. 电机真正感受到的电压是“相电压”,不是“对地电压”
电机是星形连接,三相绕组一端接逆变器输出,另一端接在一起形成星形中点。
这个星形中点是浮动的,它的电压Vn是由三相平均电压决定的:
Vn = (Va_gnd + Vb_gnd + Vc_gnd) / 3那电机 A 相绕组上真正承受的电压(相电压)就是:
Va = Va_gnd - Vn把Vn的表达式代进去:
Va = da*Vdc - (da*Vdc + db*Vdc + dc*Vdc)/3 = Vdc * [ da - (da+db+dc)/3 ] = Vdc/3 * ( 3*da - da - db - dc ) = Vdc/3 * ( 2*da - db - dc )敲黑板:这就是(2*da - db - dc)的来源!
它的本质就是:去掉三相共有的共模电压,留下各相之间真正起作用的那部分差模电压。
同样地:
Vb = Vdc/3 * ( 2*db - da - dc ) Vc = Vdc/3 * ( 2*dc - da - db )而且很容易验证:Va + Vb + Vc = 0,符合星形无中线电机的物理规律。