pyleecan.Classes.Lamination module¶
Method code available at https://github.com/Eomys/pyleecan/tree/master/pyleecan/Methods/Machine/Lamination
- class Lamination(L1=0.35, mat_type=- 1, Nrvd=0, Wrvd=0, Kf1=0.95, is_internal=True, Rint=0, Rext=1, is_stator=True, axial_vent=- 1, notch=- 1, skew=None, bore=None, yoke=None, init_dict=None, init_str=None)[source]¶
Bases:
FrozenClass
abstract class for lamination
- VERSION = 1¶
- build_geometry(sym=1, alpha=0, delta=0, is_circular_radius=False)¶
Build the geometry of the Lamination
- Parameters:
self (Lamination) – Lamination Object
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
alpha (float) – Angle for rotation [rad]
delta (complex) – Complex value for translation
is_circular_radius (bool) – True to add surfaces to “close” the Lamination radii
Returns –
surf_list (list) – list of surfaces needed to draw the lamination
- check()¶
Check that the Lamination object is correct
- Parameters:
self – A Lamination object
- Return type:
None
- Raises:
LC_VentYokeIn – The ventilation ducts cross the yoke internal radius
LC_VentYokeOut – The ventilation ducts cross the yoke external radius
LC_RadiusError – The internal radius is greater than the external one
- comp_length()¶
Compute the total length of the Lamination (including radial ventilations duct)
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Lt – Total Lenght of the Lamination [m]
- Return type:
float
- comp_masses()¶
Compute the masses of the Lamination
- Parameters:
self (Lamination) – A Lamination object
- Returns:
M_dict – Lamination mass dictionary (Mtot, Mlam, Mteeth, Myoke) [kg]
- Return type:
dict
- comp_radius_mec()¶
Compute the mechanical radius of the Lamination [m]
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Rmec – Mechanical radius [m]
- Return type:
float
- comp_surface_axial_vent()¶
Compute the Lamination axial vent
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Svent – Surface of the Lamination’s axial ventilation [m**2]
- Return type:
float
- comp_surfaces()¶
Compute the Lamination surface (Total, Vent).
- Parameters:
self (Lamination) – A Lamination object
- Returns:
S_dict – Lamination surface dictionary (Slam, Svent, Syoke, Steeth, Sslot) [m**2]
- Return type:
dict
- comp_volumes()¶
Compute the volumes of the Lamination
- Parameters:
self (Lamination) – A Lamination object
- Returns:
V_dict – Volume of the Lamination (Vlam, Vvent, Vyoke, Vteeth) [m**3]
- Return type:
dict
- get_Rbo()¶
Return the bore lamination radius
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Rbo – The lamination bore radius [m]
- Return type:
float
- get_Ryoke()¶
Return the yoke lamination radius
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Ryoke – The lamination yoke radius [m]
- Return type:
float
- get_name_phase()¶
Return the name of the winding phases
- Parameters:
self (Lamination) – A Lamination object
- Returns:
name_phase – Empty list
- Return type:
list
- plot(fig=None, ax=None, is_lam_only=False, sym=1, alpha=0, delta=0, is_edge_only=False, edgecolor=None, is_add_arrow=False, is_show_fig=True, save_path=None, is_winding_connection=False)¶
Plot the Lamination in a matplotlib fig
- Parameters:
self (Lamination) – A Lamination object
fig (Matplotlib.figure.Figure) – existing figure to use if None create a new one
ax (Matplotlib.axes.Axes object) – Axis on which to plot the data
is_lam_only (bool) – True to plot only the lamination (no effect for Lamination object)
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
alpha (float) – Angle for rotation [rad]
delta (complex) – Complex value for translation
is_edge_only (bool) – To plot transparent Patches
edgecolor – Color of the edges if is_edge_only=True
is_show_fig (bool) – To call show at the end of the method
save_path (str) – full path including folder, name and extension of the file to save if save_path is not None
is_winding_connection (bool) – True to display winding connections (not used)
- Returns:
fig (Matplotlib.figure.Figure) – Figure containing the plot
ax (Matplotlib.axes.Axes object) – Axis containing the plot
- comp_output_geo()¶
Compute the main geometry output
- Parameters:
self (Lamination) – A Lamination object
- Returns:
output – Main geometry output of the lamintion
- Return type:
- get_polar_eq()¶
Returns a polar equivalent of the lamination
- Parameters:
self (Lamination) – Lamination object
- Returns:
polar_eq – The polar equivalent of the lamination
- Return type:
- is_outwards()¶
Return if the slot is outwards (on an external lamination) or inwards (on an internal lamination)
- Parameters:
self (Slot) – A Slot object
- Returns:
is_outwards – True if the Lamination is not internal and false if not
- Return type:
bool
- comp_height_yoke()¶
Compute the yoke height
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Hy – yoke height [m]
- Return type:
float
- comp_angle_q_axis()¶
Compute the angle between the X axis and the first q+ axis By convention a “Tooth” is centered on the X axis By convention the first magnet is +
- Parameters:
self (Lamination) – A Lamination object
- Returns:
d_angle – angle between the X axis and the first d+ axis
- Return type:
float
- comp_radius_mid_yoke()¶
Compute the Lamination middle of the yoke radius
- Parameters:
self (Lamination) – A Lamination object
- Returns:
Ry – middle of the yoke radius [m]
- Return type:
float
- comp_point_ref(sym=1)¶
Compute coordinates of a point in the lamination to assign property in FEA software Account for slot, notches and ventilations (TODO)
- Parameters:
self (Lamination) – Lamination Object
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
Returns –
point_ref (complex) – Reference point of the lamination
- comp_periodicity_spatial()¶
Compute the periodicity factor of the lamination
- Parameters:
self (lamination) – A lamination object
- Returns:
per_a (int) – Number of spatial periodicities of the lamination
is_antiper_a (bool) – True if an spatial anti-periodicity is possible after the periodicities
- get_label(is_add_id=True)¶
Return the label of the lamination (Stator-0 for instance)
- Parameters:
self (Lamination) – a Lamination object
is_add_id (bool) – True to add the “-X” part
- Returns:
label – Label of the lamination
- Return type:
str
- build_yoke_side_line(sym, vent_surf_list, ZBR=None, ZTR=None, ZBL=None, ZTL=None)¶
Define the Yoke Side lines of a Lamination by taking into account sym and vent
- Parameters:
self (Lamination) – a Lamination object
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
vent_surf_list – List of the ventilation surfaces
ZBR (Complex) – Yoke Side Limit point Bottom Right
ZTR (Complex) – Yoke Side Limit point Top Right
ZBL (Complex) – Yoke Side Limit point Bottom Left
ZTL (Complex) – Yoke Side Limit point Top Left
- Returns:
right_list, left_list – List of the lines to draw the left and right side of the yoke
- Return type:
- get_notches_surf(sym)¶
Return the list of surfaces for notches
- Parameters:
self (Lamination) – A Lamination object
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
- Returns:
surf_list – list of surfaces needed for the notches
- Return type:
list
- comp_periodicity_duct_spatial(per_a, is_antiper_a)¶
Compute the periodity of the axial cooling ducts
- Parameters:
self (Lamination) – A Lamination object
per_a (int) – Number of spatial periodicities of the lamination
is_antiper_a (bool) – True if an spatial anti-periodicity is possible after the periodicities
- Returns:
per_a (int) – Spatial periodicity of the lamination including ducts
is_antiper_a (bool) – Spatial antiperidicity of the lamination including ducts
- get_surfaces_closing(sym=1)¶
Return the surfaces needed to close the radii of the Lamination
- Parameters:
self (Lamination) – A Lamination object
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
- Returns:
surf_list – List of the closing surfaces
- Return type:
list
- comp_periodicity_geo()¶
Compute the geometric periodicity factor of the lamination
- Parameters:
self (lamination) – A lamination object
- Returns:
per_a (int) – Number of spatial periodicities of the lamination
is_antiper_a (bool) – True if an spatial anti-periodicity is possible after the periodicities
- has_notch(is_bore)¶
Check if notches are set on the requested radius
- Parameters:
self (Lamination) – A Lamination object
is_bore (bool) – True check notch on bore radius, else on yoke
- Returns:
has_notch – True if notches are set on the requested radius
- Return type:
bool
- build_radius_lines(is_bore, sym=1, is_reversed=False, prop_dict=None)¶
Create the lines need to draw the selected radius of the Lamination
- Parameters:
self (Lamination) – a Lamination object
is_bore (bool) – True generate lines of bore, else yoke
is_reversed (bool) – True to return the lines in clockwise oder (reverse begin and end), False trigo
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
prop_dict (dict) – Property dictionary to apply on the radius lines (not on slot/notch)
- Returns:
radius_lines – list of bore/yoke lines
- Return type:
list
- build_radius_desc(is_bore, sym=1)¶
This method returns an ordered description of the slot/notch that defines the bore/yoke radius of the lamination (Bore/Yoke shape not taken into account by this method, cf build_radius_lines)
- Parameters:
self (Lamination) – A Lamination object
is_bore (bool) – True generate description of bore, else yoke
sym (int) – Symmetry factor (1= full machine, 2= half of the machine…)
- Returns:
radius_desc –
- trigo ordered list of dictionary with key:
”begin_angle” : float [rad] “end_angle” : float [rad] “obj” : Slot or None “lines : lines corresponding to the radius part “label” : Radius/Notch/Slot
- Return type:
list
- has_slot(is_bore=True)¶
Return if the lamination has slot on the requested radius (notches not taken into account, cf has_notch)
- Parameters:
self (Lamination) – A Lamination object
is_bore (bool) – True check if there are slots on the bore, else yoke
- Returns:
has_slot – True if the lamination has slot on the requested radius
- Return type:
bool
- plot_preview_notch(index, fig=None, ax=None)¶
Preview the position/shape of a notch on the lamination
- Parameters:
self (Lamination) – Lamination object
index (int) – Index of the notch to preview
fig (Matplotlib.figure.Figure) – existing figure to use if None create a new one
ax (Matplotlib.axes.Axes object) – Axis on which to plot the data
- Returns:
fig (Matplotlib.figure.Figure) – Figure containing the plot
ax (Matplotlib.axes.Axes object) – Axis containing the plot
- save(save_path='', is_folder=False, type_handle_old=2, type_compression=0)¶
Save the object to the save_path
- Parameters:
self – A pyleecan object
save_path (str) – path to the folder to save the object
is_folder (bool) – to split the object in different files: separate simulation machine and materials (json only)
type_handle_old (int) – How to handle old file in folder mode (0:Nothing, 1:Delete, 2:Move to “Backup” folder)
type_compression (int) – Available only for json, 0: no compression, 1: gzip
- get_logger()¶
Get the object logger or its parent’s one
- Parameters:
obj – A pyleecan object
- Returns:
logger – Pyleecan object dedicated logger
- Return type:
logging.Logger
- compare(other, name='self', ignore_list=None, is_add_value=False)[source]¶
Compare two objects and return list of differences
- as_dict(type_handle_ndarray=0, keep_function=False, **kwargs)[source]¶
Convert this object in a json serializable dict (can be use in __init__). type_handle_ndarray: int
How to handle ndarray (0: tolist, 1: copy, 2: nothing)
- keep_functionbool
True to keep the function object, else return str
Optional keyword input parameter is for internal use only and may prevent json serializability.
- property L1¶
Lamination stack active length without radial ventilation airducts but including insulation layers between lamination sheets
- Type:
float
- Min:
0
- property mat_type¶
Lamination’s material
- Type:
Material
- property Nrvd¶
number of radial air ventilation ducts in lamination
- Type:
int
- Min:
0
- property Wrvd¶
axial width of ventilation ducts in lamination
- Type:
float
- Min:
0
- property Kf1¶
lamination stacking / packing factor
- Type:
float
- Min:
0
- Max:
1
- property is_internal¶
1 for internal lamination topology, 0 for external lamination
- Type:
bool
- property Rint¶
To fill
- Type:
float
- Min:
0
- property Rext¶
To fill
- Type:
float
- Min:
0
- property is_stator¶
To fill
- Type:
bool
- property axial_vent¶
Axial ventilation ducts
- Type:
[Hole]
- property notch¶
Lamination bore notches
- Type:
[Notch]
- property skew¶
Skew object
- Type:
Skew
- property bore¶
Bore Shape
- Type:
Bore
- property yoke¶
Yoke Shape
- Type:
Bore