Source code for pyleecan.Methods.Slot.SlotW14.comp_height_active
# -*- coding: utf-8 -*-
from numpy import arcsin, cos, exp, pi, sin, tan
[docs]def comp_height_active(self):
"""Compute the height of the winding area
Parameters
----------
self : SlotW14
A SlotW14 object
Returns
-------
Hwind: float
Height of the winding area [m]
"""
Rbo = self.get_Rbo()
# alpha is the angle to rotate P0 so ||P1,P10|| = W0
alpha = arcsin(self.W0 / (2 * Rbo))
# Compute W1 to have tooth width at W3
Harc = Rbo * (1 - cos(alpha / 2))
if self.is_outwards():
R1 = Rbo - Harc + self.H0 + self.H1
else:
R1 = Rbo + Harc - self.H0 - self.H1
theta1 = arcsin(self.W3 * 0.5 / R1) * 2
hsp = pi / self.Zs
W1 = sin((hsp * 2 - theta1) * 0.5) * R1 * 2
Z9 = Rbo * exp(-1j * alpha)
if self.is_outwards():
Z8 = Z9 + self.H0
Z7 = Z8 + self.H1 - (W1 - self.W0) * 1j / 2
else:
Z8 = Z9 - self.H0
Z7 = Z8 - self.H1 - (W1 - self.W0) * 1j / 2
# Rotate Z7 to get the tooth parallel to Ox
Z7r = Z7 * exp(1j * hsp)
if self.is_outwards():
Z6r = Z7r + self.H3
else:
Z6r = Z7r - self.H3
W2 = tan(hsp) * Z6r.real
Z5r = Z6r.real + 1j * W2
Z5 = Z5r * exp(-1j * hsp)
Z3 = Z7.conjugate()
Ztan1 = (Z3 + Z7) / 2.0
Ztan2 = Z5
return abs(Ztan1 - Ztan2)