Source code for pyleecan.Methods.Machine.Conductor.comp_skin_effect_resistance
from numpy import pi, sqrt, sin, cos, sinh, cosh
[docs]def comp_skin_effect_resistance(self, freq, T_op=20, T_ref=20, b=None, zt=None):
"""Compute the skin effect factor on resistance for the conductors from "Design of Rotating Electrical Machines", J. Pyrhonen, second edition
All parameters are defined p.270 / 271
Parameters
----------
self : Conductor
an Conductor object
b: float
Slot width [m]
zt: int
Number of turns in series per coil
freq: float or ndarray
electrical frequency [Hz]
T_op: float
Conductor operational temperature [degC]
T_ref: float
Conductor reference temperature [degC]
Returns
----------
kr_skin : float
skin effect coeff for resistance at given frequency and temperature
"""
if b is None:
# Compute slot average width
slot = self.parent.parent.slot
b = slot.comp_width()
if zt is None:
# Get number of turns in series per coil
zt = self.parent.Ntcoil
# check if wires are round or rectangular
is_round_wire = self.is_round_wire()
# conductor height
hc0 = self.comp_height_wire()
# conductor width
bc0 = self.comp_width_wire()
# Number of circumferential adjacent wires
za = self.comp_nb_circumferential_wire()
# Number of radial adjacent wires
zp = self.comp_nb_radial_wire()
# Equivalent height of conductor
hc = zp * hc0
# Electrical conductivity accounting for temperature increase
sigma = self.cond_mat.elec.get_conductivity(T_op=T_op, T_ref=T_ref)
# Magnetic permeability
mu0 = 4 * pi * 1e-7
if self.cond_mat.mag is None or self.cond_mat.mag.mur_lin is None:
mur = 1
else:
mur = self.cond_mat.mag.mur_lin
# Electrical pulsation
w = 2 * pi * freq
# reduced conductor height Eq(5.24) p.270 + adding relative permeatibility
ksi = hc * sqrt((1 / 2) * w * mu0 * mur * sigma * za * bc0 / b)
if not isinstance(ksi, float):
# Avoid numerical error with 0
ksi[ksi == 0] = 1e-4
# average resistance factor
if is_round_wire:
# Use round wire approximation Eq(5.30) p.271
kr_skin = 1 + 0.59 * ((zt ** 2 - 0.2) / 9) * ksi ** 4
else:
# resistance factor function phi Eq(5.26) p.271
phi = ksi * (sinh(2 * ksi) + sin(2 * ksi)) / (cosh(2 * ksi) - cos(2 * ksi))
# resistance factor function psi Eq(5.27) p.271
psi = 2 * ksi * (sinh(ksi) - sin(ksi)) / (cosh(ksi) + cos(ksi))
kr_skin = phi + ((zt ** 2 - 1) / 3) * psi # Eq(5.28) p.271
# kr_approx = 1 + (zt ** 2 - 0.2) / 9 * ksi ** 4 # Eq(5.29) p.271
return kr_skin