mach_eval.analyzers.electromagnetic package

bfield_outer_stator Module

class mach_eval.analyzers.electromagnetic.bfield_outer_stator.BFieldOuterStator(mmf: numpy.array, n: numpy.array, delta_e, r_si, r_rfe, alpha_so)

Bases: BField

Class representing radial B field across motor airgap and tangential B field at stator inner bore

MMF

Current linkage or Magneto-Motive Force [A-turns]

n

Harmonic corresponding to MMF

delta_e

Effective airgap [m]

r_si

Inner radius of the stator [m]

r_rfe

Outer radius of rotor iron [m]

alpha_so

stator slot opening [radians]

radial(alpha, r=None, harmonics=None)

Determines radial B field at angle(s) alpha and radius r

Parameters:
  • alpha – A numpy array holding angles at which B field is calculated.

  • r – Radius at which B field is calculated. Should be of type int or float.

  • harmonics – Optional argument to get fields from select harmonics alone. Type numpy array

Returns:

A numpy array of normal B fields in airgap at radius r and angle(s) alpha

Return type:

b_radial

radial_harmonics(r=None)

Determines radial B field harmonics at radius r

Parameters:

r – Radius at which B field harmonics are calculated. Should be of type int or float. Defaults to inner bore of stator if not defined.

Returns:

A numpy array of normal B field harmonics at r

Return type:

b_radial_h

tan(alpha, r=None, harmonics=None)

Determines tanglential B field at angle(s) alpha and inner bore of stator r_si

Parameters:
  • alpha – A numpy array holding angles at which B field is calculated.

  • harmonics – Optional argument to get fields from select harmonics alone. Type numpy array

Returns:

A numpy array of tangential B fields

Return type:

b_tan

tangential_harmonics()

Determines radial B field harmonics at inner bore of stator

Parameters:

r – Radius at which B field harmonics are calculated. Should be of type int or float.

Returns:

A numpy array of normal B field harmonics at r

Return type:

b_radial_h

class mach_eval.analyzers.electromagnetic.bfield_outer_stator.BFieldOuterStatorAnalyzer

Bases: object

Analyzer class to evaluate stator radial B field

analyze(problem=None)

Determines normal B-field at radius r due to stator windings

Parameters:

problem – Object of type OuterStatorBfieldProblem

Returns:

Radial magnetic field at radius r from stator windings [T]

Return type:

b_field

class mach_eval.analyzers.electromagnetic.bfield_outer_stator.BFieldOuterStatorProblem1(m, zq, N, k_w, I_hat, n, delta_e, r_si, r_rfe, alpha_so)

Bases: object

Problem class for stator radial B field analyzer .. attribute:: MMF

Current linkage or Magneto-Motive Force [A-turns]

n

Harmonic corresponding to MMF

delta_e

Effective airgap [m]

r_si

Inner radius of the stator [m]

r_rfe

Outer radius of rotor iron [m]

alpha_so

stator slot opening [radians]

mmf(m, zq, N, n, k_w, I_hat)

Determines electric loading of winding

Parameters:
  • m – number of phases

  • zq – number of turns

  • r_si – inner stator radius

  • N – number of coils per phase

  • k_w – winding factor

  • I_hat – peak current

Returns:

Current linkage or Magneto-Motive Force

Return type:

mmf

class mach_eval.analyzers.electromagnetic.bfield_outer_stator.BFieldOuterStatorProblem2(MMF, n, delta_e, r_si, r_rfe, alpha_so)

Bases: object

Problem class for stator radial B field analyzer .. attribute:: MMF

Current linkage or Magneto-Motive Force [A-turns]

n

Harmonic corresponding to MMF

delta_e

Effective airgap [m]

r_si

Inner radius of the stator [m]

r_rfe

Outer radius of rotor iron [m]

alpha_so

stator slot opening [radians]

bfield_spm_inner_rotor Module

class mach_eval.analyzers.electromagnetic.bfield_spm_inner_rotor.BFieldSPM_InnerRotor(alpha_p, theta, p, muR, Br, r_fe, dm, delta, mag_dir)

Bases: BField

Class representing radial B field across motor airgap of SPM from arc magnets

alpha_p

angular length of magnet in pu

p

Number of pole pairs

muR

Relative permeability

r_fe

Outer radius of rotor iron

dm

Thickness of magnet

delta

Rotor sleeve and airgap dimension

mag_dir

Direction of magnetization, ‘parallel’ or ‘radial’

radial(alpha, r=None, harmonics=None)

Determines radial B field at angle(s) alpha and radius r

Parameters:
  • alpha – A numpy array holding angles at which B field is calculated.

  • r – Radius at which B field is calculated.

  • theta – Angular orientation of PM rotor d-axis.

  • harmonics – A numpy array holding holding harmonics of interest.

Returns:

A numpy array of normal B fields in airgap at radius r and angle(s) alpha

Return type:

b_radial

radial_harmonics(r=None, harmonics=None)

Determines radial B field harmonics at radius r

Parameters:
  • r – Radius at which B field is calculated. Should be of type int or float. Defaults to inner bore of stator if not defined.

  • theta – angular orientation of PM rotor d-axis

  • harmonics – A numpy array holding holding harmonics of interest. Considers 1st thirteen harmonics of p if not defined

Returns:

A numpy array of radial B field harmonics corresponding harmonics array

Return type:

b_rad_h

tan(alpha, r=None, harmonics=None)

Determines tangential B field at angle(s) alpha and radius r

Parameters:
  • alpha – A numpy array holding angles at which B field is calculated.

  • r – Radius at which B field is calculated. Should be of type int or float

  • theta – angular orientation of PM rotor d-axis

  • harmonics – A numpy array holding holding harmonics of interest

Returns:

A numpy array of tangential B fields in airgap at radius r and angle(s) alpha

Return type:

b_tan

tan_harmonics(r=None, harmonics=None)

Determines tangential B field harmonics at radius r

Parameters:
  • r – Radius at which B field is calculated. Should be of type int or float. Defaults to inner bore of stator if not defined.

  • theta – angular orientation of PM rotor d-axis

  • harmonics – A numpy array holding holding harmonics of interest. Considers 1st thirteen harmonics of p if not defined

Returns:

A numpy array of tangential B field harmonics corresponding harmonics array

Return type:

b_rad_h

class mach_eval.analyzers.electromagnetic.bfield_spm_inner_rotor.BFieldSPM_InnerRotorAnalyzer

Bases: object

Analyzer class to evaluate SPM arc magnet radial B field

analyze(problem=None)

Determines normal B-field at radius r due to arc magnets

Parameters:

problem – Object of type SPM_InnerRotorPMFieldProblem

Returns:

Radial magnetic field at radius r from stator windings [T]

Return type:

b_field

class mach_eval.analyzers.electromagnetic.bfield_spm_inner_rotor.BFieldSPM_InnerRotorProblem(alpha_p, theta, p, muR, Br, r_fe, dm, delta, mag_dir)

Bases: object

Problem class for stator radial B field analyzer .. attribute:: alpha_p

angular length of magnet in pu

theta

orientation of rotor d-axis

p

Number of pole pairs

muR

Relative permeability

r_fe

Outer radius of rotor iron

dm

Thickness of magnet

delta

Rotor sleeve and airgap dimension

mag_dir

Direction of magnetization, ‘parallel’ or ‘radial’

winding_factors Module

class mach_eval.analyzers.electromagnetic.winding_factors.WindingFactorsAnalyzer

Bases: object

Analyzer class to evaluate winding factors

analyze(problem='WindingFactorsProblem')

Determines winding factors using calculations function

Parameters:

function (Problem class contains all args used in analyze) –

Returns:

complex winding factor array

Return type:

kw_final

calculations(harmonics_list, winding_layout, alpha_1)
Determines winding factors given harmonics requested, winding

layout, and alpha_1

Variables:

n: 1D array from 1-harmonics used in iterations layer: layout of layer for single layer winding top_layer: layout of top layer for double layer winding bottom_layer: layout of bottom layer for double layer winding alpha_c: angle between stator teeth filled_slots: number of slots filled in total layout slot: slot at which each term is calculated

Returns:

winding factor array for each winding layout

Return type:

k_w

class mach_eval.analyzers.electromagnetic.winding_factors.WindingFactorsProblem(harmonics_list, winding_layout, alpha_1)

Bases: object

Problem class for winding factor analyzer .. attribute:: harmonics_list

list of harmonics to be included in calculations []

winding_layout

array of winding layers beginning with top layer and ending with bottom layer, length will be number of teeth and height will be number of layers, “+1” for conductor into page, 0 for no present conductors, and “-1” for conductor out of page [turns]

alpha_1

angle of first slot counterclockwise from +x axis [rad]