Source code for pyleecan.Methods.Machine.EndWindingCirc.comp_inductance

from numpy import log, pi, sqrt

from ....Classes.LamSlotWind import LamSlotWind


[docs]def comp_inductance(self): """Compute the end winding inductance from "Design of Brushless Permanent-Magnet Machines", J.R Henderson, 2010 Parameters ---------- self: EndWinding A EndWinding object Returns ------- Lew : float end winding inductance [H]. """ # ckeck that Endwinding is in Winding of a Lamination with slots if ( self.parent is None or self.parent.parent is None or not isinstance(self.parent.parent, LamSlotWind) or self.parent.parent.slot is None ): self.get_logger.warning( "EndWindingCirc.comp_inductance(): " + "EndWindingCirc has to be in a lamination with slot winding to calculate " + "the end winding inductance. Returning zero inductance." ) return 0 # get the middle radius of the slots active area Rmid = self.parent.parent.slot.comp_radius_mid_active() Zs = self.parent.parent.slot.Zs p = self.parent.p # get the coil pitch (with some fall backs), first from the user definition # TODO utilize swat_em coil pitch calc. coil_pitch = self.coil_pitch if coil_pitch is None: # try to get coil_pitch of winding coil_pitch = getattr(self.parent, "coil_pitch", None) if coil_pitch is None: coil_pitch = Zs / p / 2 self.get_logger().warning( "EndWindingCirc.comp_inductance():" + "Using a coil pitch of one pole pitch for EW inductance calculation." ) # End winding is a circle whose radius is half the coil pitch distance Re = pi / Zs * Rmid * coil_pitch # Eq(5.49) p.234 Scond = self.parent.conductor.comp_surface() R = 0.4394 * sqrt(Scond) # Eq (5.48) p 233 Ntcoil = self.parent.Ntcoil mu0 = 4 * pi * 1e-7 Lw = mu0 * Re * Ntcoil ** 2 * (log(8 * Re / R) - 2) return Lw