任意极槽组合双层绕组磁动势计算程序
任意极槽组合双层绕组磁动势计算程序。最近在折腾电机绕组设计的时候发现网上现成的磁动势计算工具要么限制极槽组合要么操作步骤反人类。索性自己用Python搓了个能适配任意整数极槽数的计算程序实测计算三相双层绕组效果不错顺手把核心算法和实现逻辑整理出来。先扔个程序运行效果镇楼。假设要算48槽8极的三相双层绕组输入参数后直接生成磁动势波形和频谱slot 48 pole 8 phase 3 current_phase [0, -120, -240] # 三相电流相位差 f_mmf winding_mmf(slot, pole, phase, current_phase) plot_mmf_spectrum(f_mmf) # 频谱分析![磁动势波形与谐波分布图]核心算法其实就三板斧绕组排布矩阵生成、电流瞬时值计算、空间谐波分解。咱们重点看绕组矩阵生成这个最有意思的部分。任意极槽组合双层绕组磁动势计算程序。双层绕组每个槽分上下层这里用嵌套字典处理线圈归属关系def create_winding_matrix(slots, poles): matrix {} coil_pitch slots // poles # 极距 for slot in range(slots): matrix[slot] { upper: None, lower: None, phase_group: (slot // (slots//phase)) % phase # 相位分组 } for s in range(slots): paired_slot (s coil_pitch) % slots matrix[s][upper] paired_slot matrix[paired_slot][lower] s return matrix这个骚操作实现了任意槽数下的自动配对。比如48槽时第0槽上层会连接到第6槽下层48/86形成跨越一个极距的线圈。这里用取余运算处理周期性边界避免写一堆if判断。电流计算部分要注意时间相位和空间相位的双重影响。举个栗子A相电流随时间变化是sin(ωt)而分布在空间不同槽位的绕组又自带机械角度偏移# 电流瞬时值计算 theta_mech 2*np.pi * np.linspace(0, 1, slots) # 机械角度 current {} for ph in range(phase): time_phase np.radians(current_phase[ph]) space_phase theta_mech * (pole/2) # 电角度转换 current[ph] np.sin(time_phase space_phase)傅里叶分解部分用了numpy的fft但要注意电机绕组特有的谐波特点def harmonic_analysis(mmf): fft_result np.fft.fft(mmf) harmonics np.abs(fft_result)[:len(fft_result)//2] order np.arange(len(harmonics)) * (pole/2) # 转换为谐波次数 return order, harmonics这里有个坑点基波次数不是1而是极对数。比如8极电机的基波是4次谐波程序里用pole/2做基准实现了自动换算。实测发现这个程序处理分数槽绕组也稳得一批。比如试了个经典的9槽6极组合mmf winding_mmf(9, 6, 3, [0, -120, -240])输出频谱清晰显示出主要谐波次数为2、4、8次对应实际运行中的6极基波和3倍频谐波和理论分析完全吻合。完整代码扔在GitHub上了需要自取。下次打算加个GUI界面和自动报告生成功能有同好想一起搞的欢迎私信。反正这玩意比手算快多了妈妈再也不用担心我算绕组算到秃头了。