4. Windage Loss Analyzer

This analyzer determines windage loss in a rotating machine with an inner rotor.

4.1. Model Background

The analyzer assumes the simple motor structure shown below. This consists of a rotor inside of a stator and a forced axial airflow in the airgap of velocity uz.

Windy

The following losses occur in this system:

  1. Radial Losses: Losses on the radial airgap surfaces due to rotation.

  2. Endface Losses: Losses on the axial surfaces of the shaft due to rotation.

  3. Axial Losses: Losses on the radial airgap surfaces due to axial airflow through the airgap.

This analyzer determines the windage losses by implementing the model presented in the following papers:

    1. An, A. Binder and C. R. Sabirin, “Loss measurement of a 30 kW high speed permanent magnet synchronous machine with active magnetic bearings,” 2013 International Conference on Electrical Machines and Systems (ICEMS), 2013, pp. 905-910.

    1. Riemer, M. Leßmann and K. Hameyer, “Rotor design of a high-speed Permanent Magnet Synchronous Machine rating 100,000 rpm at 10kW,” 2010 IEEE Energy Conversion Congress and Exposition, Atlanta, GA, 2010, pp. 3978-3985.

4.2. Inputs from User

The following inputs are required to create a WindageLossProblem object (with dimensions defined in the figure above):

Inputs for windage loss problem

Variable/key_value name

Description

Units

Omega

Rotational Speed

rad/s

R_ro

Outer rotor radius

m

axial_length

Axial length

m

R_st

Inner Stator Radius

m

u_z

Axial airflow speed

m/s

T_air

Air temperature

C

Example code initializing the windage loss analyzer and problem:

import numpy as np
import eMach.mach_eval.analyzers.mechanical.windage_loss as wla
from matplotlib import pyplot as plt

Omega=1000
R_ro=0.1
axial_length=0.05
R_st=0.105
u_z=0.01
T_air=25

problem=wla.WindageLossProblem(Omega,R_ro,axial_length,R_st,u_z,T_air)
ana=wla.WindageLossAnalyzer

4.3. Outputs to User

The windage analyzer returns a list of windage losses in Watts in the following order:

  1. windage_loss_radial

  2. windage_loss_endface (The endface losses are split evenly between the two rotor axial surfaces)

  3. windage_loss_axial

The total windage loss is the sum of all these losses.

Example code using the windage loss analyzer to determine losses as over a range of rotational speed Omega and plotting the results.

results=ana.analyze(problem)
print(results)

Omega_vect=np.linspace(1,1000,100)
loss_vect=np.zeros([3,100])
total_loss_vect=np.zeros_like(Omega_vect)
for ind,Omega in enumerate(Omega_vect):
    problem=wla.WindageLossProblem(Omega,R_ro,axial_length,R_st,u_z,T_air)
    [windage_loss_radial,windage_loss_endface,windage_loss_axial]=ana.analyze(problem)
    loss_vect[:,ind]=[windage_loss_radial,windage_loss_endface,windage_loss_axial]
    total_loss_vect[ind]=sum([windage_loss_radial,windage_loss_endface,windage_loss_axial])
fig,ax=plt.subplots(1,1)
ax.plot(Omega_vect,loss_vect.T)
ax.plot(Omega_vect,total_loss_vect)
ax.legend(['Radial','Endface','Axial','Total'])
ax.set_xlabel('Rotational Speed [rad/s]')
ax.set_ylabel('Windage Loss [W]')
fig.savefig('WindageLossPlot.svg')
Windy