mach_eval.analyzers.mechanical package
thermal_network module
- class mach_eval.analyzers.mechanical.thermal_network.Material(k: float, cp: float = 0.0, mu: float = 0.0)
Bases:
objectClass holding material parameters.
- k
Thermal conductivity [W/m-K]
- cp
cp value of fluid []
- mu
Viscosity of fluid []
- class mach_eval.analyzers.mechanical.thermal_network.Resistance(Material: Material, Node1: int, Node2: int)
Bases:
objectBase class for thermal resisance
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.ThermalNetworkAnalyzer
Bases:
objectThermal Resistance Network Analyzer.
- analyze(problem: ThermalNetworkProblem)
Analyze imported resistance network problem
- Parameters:
problem – ThermalNetworkProblem object to be analyzed
- Returns:
Temperature distribution at each node in system
- Return type:
T
- class mach_eval.analyzers.mechanical.thermal_network.ThermalNetworkProblem(res: List[Resistance], Q_dot: List[float], T_ref: List[List[int, float]], N_nodes: int)
Bases:
objectProblem class from Thermal Resistance Network Analyzer.
- res
List of Resistance objects
- Q_dot
List of Thermal sources at nodal locations
- T_ref
List of [ref_node,ref_temp]
- N_nodes
Number of Nodes in system
- class mach_eval.analyzers.mechanical.thermal_network.air_gap_conv(Material: Material, Node1: int, Node2: int, omega: float, R_r: float, R_s: float, u_z: float, A: float)
Bases:
ResistanceAir gap convection thermal resistance
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- omega
rotational speed [rad/s]
- R_r
Rotor outer radius [m]
- R_s
Stator inner radius [m]
- u_z
Axial airflow speed [m/s]
- A
Cross sectional area [m^2]
- h
Convection Coeff [W/m^2-K]
- property h
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.conv(Material: Material, Node1: int, Node2: int, h: float, A: float)
Bases:
ResistanceAir gap convection thermal resistance
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- A
Cross sectional area [m^2]
- h
Convection Coeff [W/m^2-K]
- property h
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.cylind_wall(Material: Material, Node1: int, Node2: int, R1: float, R2: float, H: float)
Bases:
ResistanceCylindrical wall thermal resistance.
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- R1
Radial position of node-1 [m]
- R2
Radial position of node-2 [m]
- H
Height of wall [m]
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.hub_conv(Material: Material, Node1: int, Node2: int, omega: float, A: float)
Bases:
ResistanceHub convection thermal resistance
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- omega
rotational speed [rad/s]
- A
Cross sectional area [m^2]
- h
Convection Coeff [W/m^2-K]
- property h
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.plane_wall(Material: Material, Node1: int, Node2: int, L: float, A: float)
Bases:
ResistancePlane wall thermal resistance.
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- L1
Position of node-1 [m]
- L2
Position of node-2 [m]
- A
Cross sectional area [m^2]
- property resistance_value
- class mach_eval.analyzers.mechanical.thermal_network.shaft_conv(Material: Material, Node1: int, Node2: int, omega: float, R: float, A: float, u_z: float)
Bases:
ResistanceShaft convection thermal resistance
- Material
Material object holding material properties
- Node1
First node connected to resistance
- Node2
Second node connected to resistance
- resistance_value
Thermal resistance [K/W]
- omega
rotational speed [rad/s]
- R
Shaft outer radius [m]
- u_z
Axial airflow speed [m/s]
- A
Cross sectional area [m^2]
- h
Convection Coeff [W/m^2-K]
- Re
Reynolds number []
- Pr
Prandlt number []
- Nu
Nusselt number []
- property Nu
- property Pr
- property Re
- property h
- property resistance_value
rotor_thermal module
- class mach_eval.analyzers.mechanical.rotor_thermal.AirflowAnalyzer
Bases:
objectAnalyzer to calculate required airflow in SPM machine
- analyze(problem: AirflowProblem)
Analyzes input problem to calculate required airflow to cool rotor
- Parameters:
problem (AirflowProblem) – input problem
- Returns:
dictionary with analyzer solution
- Return type:
results (dict)
- class mach_eval.analyzers.mechanical.rotor_thermal.AirflowProblem(r_sh: float, d_ri: float, r_ro: float, d_sl: float, r_si: float, l_st: float, l_hub: float, T_ref: float, losses: dict, omega: float, max_temp: float, mat_dict: dict)
Bases:
objectProblem class for AirflowAnalyzer
- mat_dict
Material Dictionary
- Type:
dict
- r_sh
Shaft radius [m]
- Type:
float
- d_ri
Back iron thickness [m]
- Type:
float
- r_ro
Outer rotor radius [m]
- Type:
float
- d_sl
Sleeve Thickness [m]
- Type:
float
- r_si
Stator Inner radius [m]
- Type:
float
- l_st
Stack length [m]
- Type:
float
- l_hub
hub thickness [m]
- Type:
float
- T_ref
Air Temperature [C]
- Type:
float
- losses
Loss dictionary [W]
- Type:
dict
- omega
Rotational Speed [rad/s]
- Type:
float
- max_temp
Max rotor magnet temperature [K]
- Type:
float
- therm_ana
Analyzer to solve problem
- Type:
Analzyer
- cost(u_z)
Returns airflow rate as cost function
- magnet_temp(u_z)
Calculate magnet temperature from airflow rate
- Parameters:
u_z (float) – Axial airflow rate [m/s]
- Returns:
Magnet Temperature
- Return type:
T[5] (float)
- class mach_eval.analyzers.mechanical.rotor_thermal.SPM_RotorThermalAnalyzer
Bases:
objectAnalyzer for rotor thermal problem
- base_ana
Thermal Network Analyzer
- Type:
tb.ThermalNetworkAnalyzer
- analyze(problem: SPM_RotorThermalProblem)
Analyzes input problem for temperature distribution
- Parameters:
problem (SPM_RotorThermalProblem) – input problem
- Returns:
Temperature distribuiton in rotor
- Return type:
T (List)
- create_resistance_network(problem)
- class mach_eval.analyzers.mechanical.rotor_thermal.SPM_RotorThermalProblem(mat_dict: dict, r_sh: float, d_ri: float, r_ro: float, d_sl: float, r_si: float, l_st: float, l_hub: float, T_ref: float, u_z: float, losses: dict, omega: float)
Bases:
objectProblem class for rotor thermal analyzer
- mat_dict
Material Dictionary
- Type:
dict
- r_sh
Shaft radius [m]
- Type:
float
- d_ri
Back iron thickness [m]
- Type:
float
- r_ro
Outer rotor radius [m]
- Type:
float
- d_sl
Sleeve Thickness [m]
- Type:
float
- r_si
Stator Inner radius [m]
- Type:
float
- l_st
Stack length [m]
- Type:
float
- l_hub
hub thickness [m]
- Type:
float
- T_ref
Air Temperature [C]
- Type:
float
- u_z
Axial air flow speed [m/s]
- Type:
float
- losses
Loss dictionary [W]
- Type:
dict
- omega
Rotational Speed [rad/s]
- Type:
float
- R_1
Shaft radius [m]
- Type:
float
- R_2
Back iron radius [m]
- Type:
float
- R_3
Outer rotor Radius [m]
- Type:
float
- R_4
Outer sleeve radius [m]
- Type:
float
windage_loss module
- class mach_eval.analyzers.mechanical.windage_loss.WindageLossAnalyzer
Bases:
objectWindage loss analyzer
- analyze()
Calculates total windage loss in machine.
- Parameters:
problem – problem class
- Returns:
Total windage loss on rotor
- Return type:
windage_loss_total
- class mach_eval.analyzers.mechanical.windage_loss.WindageLossProblem(Omega, R_ro, stack_length, R_st, u_z, T_air=25)
Bases:
objectProblem analyzer for windage anlyzer .. attribute:: Omega
rotational speed [rad/s]
- R_ro
outer rotor radius [m]
- stack_length
stack length [m]
- R_st
inner stator radius [m]
- air_gap
airgap length [m]
- u_z
axial air flow speed [m/s]
- T_air
Air temperature
thermal_stator module
- class mach_eval.analyzers.mechanical.thermal_stator.StatorThermalAnalyzer
Bases:
object“Stator Thermal Analyzer calculates coil temperatures
- analyze(problem)
calculates coil temperature from problem class.
- Parameters:
problem (StatorThermalProblem) – Problem Object
- Returns:
Dict of coil and stator yoke temperature
- Return type:
results
- class mach_eval.analyzers.mechanical.thermal_stator.StatorThermalProblem(g_sy: float, g_th: float, w_tooth: float, l_st: float, alpha_q: float, r_si: float, r_so: float, r_sy: float, k_ins: float, w_ins: float, k_fe: float, h: float, alpha_slot: float, Q_coil: float, h_slot: float, T_ref: float)
Bases:
objectProblem class utilized by the stator thermal analyzer
- g_sy
Volumetric Heating of stator yoke [W/m^3]
- g_th
Volumetric Heating of stator tooth [W/m^3]
- w_tooth
Width of stator tooth [m]
- l_st
Stack length [m]
- l_tooth
Length of stator tooth [m]
- alpha_q
slot span 2pi/Q [rad]
- r_si
Inner stator radius [m]
- r_so
Outer stator radius [m]
- r_sy
Radius of inner stator yoke [m]
- k_ins
Thermal conductivity of insulation paper [W/m-K]
- w_ins
Thickness of Insulation paper [m]
- k_fe
Thermal conductivty of stator iron [W/m-K]
- h
Convection rate on exterior of stator [W/m^2-K]
- alpha_slot
Angle of back of slot on stator yoke [rad]
- T_coil_max
Maximum coil temperature [K]
- r_si
Inner stator radius [m]
- Q_coil
Resistive coil losses [W]
- h_slot
Inslot convection rate [W/m^2-K]
- T_ref
Refrence temperature
rotor_structural module
- class mach_eval.analyzers.mechanical.rotor_structural.Material_Isotropic(Density, ElasticMod, PoissonRatio, alpha)
Bases:
object- property C1
- property C2
- property C3
- property Del
- property h
- property zeta_r
- property zeta_t
- property zeta_u
- class mach_eval.analyzers.mechanical.rotor_structural.Material_Transverse_Isotropic(Density, ElasticMod_Thread, ElasticMod_Plane, PoissonRatio_tp, PoissonRatio_p, alpha_r, alpha_t)
Bases:
object- property C1
- property C2
- property C3
- property Del
- property Nu_pt
- property h
- property zeta_r
- property zeta_t
- property zeta_u
- class mach_eval.analyzers.mechanical.rotor_structural.RotorComponent(MaterialObject, InnerRadius, OuterRadius)
Bases:
object- property Beta
- set_MaxRadialStress(sigmaMax)
- set_MaxTanStress(sigmaMax)
- set_delta_sl(Dr)
- set_th(th)
- class mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorSleeveAnalyzer(stress_limits: List[float, float, float, float])
Bases:
objectAnalyzer for designing a rotor sleeve
- stress_limits
list of limits for critical stresses
- analyze(problem: SPM_RotorSleeveProblem)
analyzes input problem to design optimal rotor sleeve
- Parameters:
problem (SPM_RotorSleeveProblem) – input problem
- Returns:
solution from design problem
- Return type:
sol
- cost(x)
returns sleeve thickness
- Parameters:
x – tuple of sleeve thickness and undersize
- Returns:
sleeve thickness
- Return type:
x[0]
- class mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorSleeveProblem(r_sh: float, d_m: float, r_ro: float, deltaT: float, mat_dict: dict, N: float, problem_class=<class 'mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorStructuralProblem'>, analyzer_class=<class 'mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorStructuralAnalyzer'>)
Bases:
object- rad_magnet(x)
Calculate P_pm for given sleeve design
- rad_sleeve(x)
Calculate P_sl for given sleeve design
- tan_magnet(x)
Calculate sigma_t_pm_max for given sleeve design
- tan_sleeve(x)
Calculate sigma_t_sl_max for given sleeve design
- class mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorStructuralAnalyzer
Bases:
object- DetermineCoeff(sh: RotorComponent, rc, pm, sl, deltaT, omega)
Deterimine coeffiecents for calculating stresses
- Parameters:
sh (RotorComponent) – Shaft RotorComponent object.
rc (RotorComponent) – Rotor core RotorComponent object.
pm (RotorComponent) – Magnets RotorComponent object.
sl (RotorComponent) – Sleeve RotorComponent object.
deltaT (float) – Temperature rise in deg C.
omega (float) – rotational speed in rad/s.
- Returns:
numpy array of stress coeffiecents.
- Return type:
A (np.Array)
- analyze(problem: SPM_RotorStructuralProblem) Tuple[Sigma, Sigma, Sigma, Sigma]
Analyze structural problem
- Parameters:
problem (SPM_RotorStructuralProblem) – problem for analyzer.
- Returns:
Sigma objects
- Return type:
results ([‘Sigma’,’Sigma’,’Sigma’,’Sigma’])
- class mach_eval.analyzers.mechanical.rotor_structural.SPM_RotorStructuralProblem(r_sh: float, d_m: float, r_ro: float, d_sl: float, delta_sl: float, deltaT: float, N: float, mat_dict: dict)
Bases:
objectProblem class for SPM_RotorStructuralAnalyzer.
- sh
Shaft RotorComponent object.
- Type:
- rc
Rotor core RotorComponent object.
- Type:
- pm
Magnets RotorComponent object.
- Type:
- sl
Sleeve RotorComponent object.
- Type:
- deltaT
Temperature rise in deg C.
- Type:
float
- omega
rotational speed in rad/s.
- Type:
float