1. BSPM Machine
This class encapsulates the information required to fully represent a bearingless surface permanent magnet machine.
1.1. Machine Background
Bearingless surface permanent magnet machines or BSPMs are bearingless machines of the \(p_\text{s}=p \pm 1\) variant capable of creating both force and torque. The primary aim of this machine class is to fully represent an actual BSPM design. To do so, users are required to pass in information on key geometric dimensions such as magnet thickness, machine parameters including number of torque and suspension pole pairs, the materials constituting the machine, and the stator winding layout and connection to an external drive. Presently, the class is designed to support combined DPNV windings.
1.2. Input from User
The information required to instantiate the BSPM_Machine class has been split into four dictionaries. Each dictionary has been expounded
upon below. Example dictionaries are provided as well to replicate the optimized BSPM design discussed in the paper
cited below to provide a concrete implementation of a BSPM_Machine object. It should be noted that if the dictionaries do not include the
required keys, the BSPM_Machine class will raise an error.
A. Farhan, M. Johnson, K. Hanson and E. L. Severson, “Design of an Ultra-High Speed Bearingless Motor for Significant Rated Power,” in IEEE Energy Conversion Congress and Exposition (ECCE), 2020, pp. 246-253, doi: 10.1109/ECCE44975.2020.9236181.
1.2.1. BSPM Dimensions
The purpose of this dictionary is to fully define the geometrical dimensions of any BSPM. This information is required by nearly all analyzers, be it structural, thermal, or electromagnetic, to evaluate BSPM performance. The figure provided below represents a generic two pole six slot BSPM design. Relevant geometric dimensions have been labelled in this figure.
Users are not required to pass in each and every dimension shown in the above figure as this will result in an over-constrained geometry. The required keys for this input are provided below:
Key |
Description |
Units |
|---|---|---|
alpha_st |
Stator tooth face angular span |
degrees |
d_so |
See figure |
m |
w_st |
Stator tooth width |
m |
d_st |
Stator tooth depth |
m |
d_sy |
Stator yoke thickness |
m |
alpha_m |
Permanent magnet angular span |
degrees |
d_m |
Permanent magnet thickness |
m |
d_mp |
See figure |
m |
d_ri |
Rotor back iron thickness |
m |
alpha_so |
See figure |
degrees |
d_sp |
Stator pole thickness |
m |
r_si |
Stator inner bore radius |
m |
alpha_ms |
See figure |
degrees |
d_ms |
See figure |
m |
r_sh |
Shaft radius |
m |
l_st |
Stack length |
m |
The dimensions dictionary corresponding to the optimized design of the paper cited above is:
bspm_dimensions = {
'alpha_st': 44.5,
'd_so': 0.00542,
'w_st': 0.00909,
'd_st': 0.0169,
'd_sy': 0.0135,
'alpha_m': 178.78,
'd_m': 0.00371,
'd_mp': 0.00307,
'd_ri': 0.00489,
'alpha_so': 22.25,
'd_sp': 0.00813,
'r_si': 0.01416,
'alpha_ms': 178.78,
'd_ms': 0,
'r_sh': 0.00281,
'l_st': 0.0115,
'd_sl': 0.00067,
'delta_sl': 0.00011
}
1.2.2. BSPM Parameters
Apart from dimensions, knowledge of certain BSPM parameters, such as number of slots, number of torque and suspension pole pairs are required
to define a BSPM design. All such parameters are contained within this dictionary. This dictionary also includes the nameplate ratings of the
machine such as the rater power, rated speed etc. It is likely that users might not be aware of all parameters when they are evaluating a
new BSPM design (when running an optimization for example). In this case, dummy values can be passed in for the nameplate paramters and can
be updated later after the evaluation process is complete using the BSPM_Machine class’s clone method. The required key-value pairs
for this input are provided below:
Key |
Description |
Units |
|---|---|---|
p |
Number of torque pole pairs |
|
ps |
Number of suspension pole pairs |
|
n_m |
Number of magnet segments |
|
Q |
Number of slots |
|
rated_speed |
Rated speed of machine |
rad/s |
rated_power |
Rated power of machine |
W |
rated_voltage |
Line-line voltage rating |
V |
rated_current |
Rated coil current of machine |
A |
name |
Identiifer for machine |
The parameters dictionary corresponding to the optimized design of the paper cited above is:
bspm_parameters = {
'p': 1,
'ps': 2,
'n_m': 1,
'Q': 6,
'rated_speed': 16755.16,
'rated_power': 5500.0,
'rated_voltage': 240,
'rated_current': 10.0,
'name': "ECCE_2020"
}
1.2.3. BSPM Materials
This dictionary contains information on the materials making up the electric machine. This includes rotor and stator back iron material,
retaining sleeve material etc. Presently, each value of this dictionary is another dictionary defining the key properties of the material. The
key properties differs based on whether the material being defined is an electric steel, a permanent magnet, a retaining sleeve etc. Users
are recommended to go through the materials folder within mach_eval to better understand the expected key-value pairs for this
dictionary.
Key |
Description |
|---|---|
air_mat |
Material in the airgap of the machine. Impacts windage loss and rotor to stator heat transfer |
rotor_iron_mat |
Rotor back iron material |
stator_iron_mat |
Stator iron material |
magnet_mat |
Permanent magnet material |
rotor_sleeve_mat |
Retaining sleeve material |
coil_mat |
Coil material |
shaft_mat |
Rotor shaft material |
rotor_hub |
Rotor hub material. Effects rotor heat dissipation |
The material dictionary corresponding to the optimized design of the paper cited above is:
from eMach.mach_eval.machines.materials.electric_steels import Arnon5
from eMach.mach_eval.machines.materials.jmag_library_magnets import N40H
from eMach.mach_eval.machines.materials.miscellaneous_materials import (
CarbonFiber,
Steel,
Copper,
Hub,
Air,
)
bspm_materials = {
"air_mat": Air,
"rotor_iron_mat": Arnon5,
"stator_iron_mat": Arnon5
"magnet_mat": N40H,
"rotor_sleeve_mat": CarbonFiber,
"coil_mat": Copper,
"shaft_mat": Steel,
"rotor_hub": Hub,
}
1.2.4. BSPM Winding
This dictionary contains information on the combined DPNV winding layout used in the BSPM design. The winding_layout.py script file provided
within the bspm folder defines certain popular DPNV winding layouts. The required key-value pairs for this input are provided below:
Key |
Description |
|---|---|
no_of_layers |
Number of winding layers. Most electric machines are have single or double layers. |
layer_phases |
List of phases corresponding to each slot |
layer_polarity |
List containing coil winding direction in each slot |
pitch |
Coil span |
Z_q |
Number of turns in each coil |
Kov |
Over winding factor for distributed windings |
Kcu |
Slot fill factor |
coil_groups |
Coil group information. Specific to DPNV windings |
Further elaboration is required prior to providing the winding dictionary corresponding to the design discussed above. The winding layout of this machine is shown below. This is a double layer, six slot DPNV winding with a coil span of 2. The blue lines correspond to phase U, red to phase V, and green to phase W coil sides. Solid and dotted lines are used to differentiate between the two winding layers. The numbers indicate the slot opening each coil side belongs to. Finally, arrows are used to indicate the direction in which current flows when a +ve voltage is applied across the +, - terminals of each coil.
The winding dictionary corresponding to the layout shown above is:
bspm_winding = {
"no_of_layers": 2,
# layer_phases is a list of lists, the number of lists = no_of_layers
# first list corresponds to coil sides in first layer
# second list corresponds to coil sides in second layer
# the index indicates the slot opening corresponding to the coil side
# string characters are used to represent the phases
"layer_phases": [ ['U', 'W', 'V', 'U', 'W', 'V'],
['W', 'V', 'U', 'W', 'V', 'U'] ],
# layer_polarity is a list of lists, the number of lists = no_of_layers
# first list corresponds to coil side direction in first layer
# second list corresponds to coil side direction in second layer
# the index indicates the slot opening corresponding to the coil side
# + indicates coil side goes into the page, - indicates coil side comes out of page
"layer_polarity": [ ['+', '-', '+', '-', '+', '-'],
['-', '+', '-', '+', '-', '+'] ],
# coil_groups are a unique property of DPNV windings
# coil group is assigned corresponding to the 1st winding layer
"coil_groups": ['b', 'a', 'b', 'a', 'b', 'a'],
"pitch": 2,
"Z_q": 49,
"Kov": 1.8,
"Kcu": 0.5,
}
1.3. Creating a BSPM_Machine object
Finally, the below Python code block shows how to create a BSPM_Machine object using the dictionaries shown above. A walk-through on
evalauting the electromagnetic performance of this machine is provided here.
from eMach.mach_eval.machines.bspm import BSPM_Machine
ecce_2020_machine = BSPM_Machine(
bspm_dimensions, bspm_parameters, bspm_materials, bspm_winding
)