# Reference page for PolyphaseWindingSpec

## Contents

- Summary
- this = PolyphaseWindingSpec(
*arguments*) Winding specification class. - this.bind_to_model(
*arguments*) Bind to CircuitBase object. - this.create_slot_geometry(
*arguments*) Create slot geometry. - this.dq(
*arguments*) Transformation to this.dq(*arguments*) frame - this.end_winding_inductance_matrix(
*arguments*) Compute EW inductance matrix. - this.end_winding_loop_matrix(
*arguments*) End-winding loop matrix, slot-segment. - this.end_winding_segment_inductance(
*arguments*) Inductance of one end-winding segment. - PolyphaseWindingSpec/this.line_current_matrix(
*arguments*) is a function. - PolyphaseWindingSpec/this.line_to_line_voltage_matrix(
*arguments*) is a function. - this.loop_matrix(
*arguments*) Loop matrix associated with this. - PolyphaseWindingSpec/this.number_of_nonzero_components(
*arguments*) is a function. - this.save_to_excel(
*arguments*) Export winding specs. - this.set_layout_matrix(
*arguments*) Initialize winding layout matrix. - PolyphaseWindingSpec/this.symmetry_period(
*arguments*) is a function. - this.winding_angle(
*arguments*) Return winding angle. - this.xy(
*arguments*) Transform to phase quantities

## Summary

PolyphaseWindingSpec Winding specification class.

Instantiation:

this = PolyphaseWindingSpec()

this = PolyphaseWindingSpec(dimensions)

Loads the number of slots from dimensions.Qs and pole-pair count from dimensions.p

Responsibilities:

- contains winding-specifying parameters (turns, layers, etc)

- assembles winding loop matrix for finite-element analysis

- calculates total (half-)turn length and winding overhang

- handles end-winding indcutance calculation

NOTE: End-winding inductance calculation only works for radial-flux machines for now. Documentation for PolyphaseWindingSpec doc PolyphaseWindingSpec

# PROPERTIES

- N_layers - number of winding layers

- N_series - number of turns per coil (slot and layer)

- a - number of parallel paths

- average_winding_radius - average 'radius' of winding, distance from slot center-of-mass to origin

- circuit - the CircuitBase object associated with this

- PolyphaseWindingSpec/conductor_material is a property.

- connection - connection

- filling_factor Conductor area PER meshed conductor area.

Computed automatically from layout_spec.conductor_area if layout_spec.conductor area returns a real value. If it returns nan, fill factor has to be specified.

Note: for solid winding models, filling_factor will be ~equal to 1.

- geometry - GeoBase object that this.circuit belongs to.

- half_of_turn_length - half of turn length

- layout_matrix - winding layout matrix. See
`this.set_layout_matrix`

- layout_spec - winding (slot) layout specification

- lew_given - given end-winding inductance per turn and per slot-segment

- number_of_meshed_conductors_per_layer As the name suggests.

- number_of_slots - number of slots

- p - number of pole-pairs

- phases - number of phases

- span - coil span

- winding_model_type - modelling style, solid or stranded

- wires_in_hand - number of wires in hand. Must be 1 for infinite stranded windings.

# METHODS

Class methods are listed below. Inherited methods are not included.

## this = PolyphaseWindingSpec(*arguments*) Winding specification class.

Instantiation:

*this* = **PolyphaseWindingSpec**()

*this* = **PolyphaseWindingSpec**(dimensions)

Loads the number of slots from dimensions.Qs and pole-pair count from dimensions.p

Responsibilities:

- contains winding-specifying parameters (turns, layers, etc)

- assembles winding loop matrix for finite-element analysis

- calculates total (half-)turn length and winding overhang

- handles end-winding indcutance calculation

NOTE: End-winding inductance calculation only works for radial-flux machines for now.

## this.bind_to_model(*arguments*) Bind to CircuitBase object.

## this.create_slot_geometry(*arguments*) Create slot geometry.

Access method to WindingLayoutBase.*create_slot_geometry*

## this.dq(*arguments*) Transformation to this.dq(*arguments*) frame

y = **dq**(*this*, xy, angles)

## this.end_winding_inductance_matrix(*arguments*) Compute EW inductance matrix.

Only works for radial flux machines.

## this.end_winding_loop_matrix(*arguments*) End-winding loop matrix, slot-segment.

L = **end_winding_loop_matrix**(*this*)

Returns a number_of_slots x phases matrix, representing how many times each phase traverses each 'slot segment' = end-winding piece between two successive slots.

Only computed for one end of a radial-flux machine.

## this.end_winding_segment_inductance(*arguments*) Inductance of one end-winding segment.

Calculation somewhat follows the approach given by Lipo, T.A. (*) for a random-wound winding. Iron modelled as perfect conductor, to accound for eddy damping.

(*) Introduction to AC Machine Design

Only works for radial-flux machines.

## PolyphaseWindingSpec/this.line_current_matrix(*arguments*) is a function.

M = **line_current_matrix**(*this*)

## PolyphaseWindingSpec/this.line_to_line_voltage_matrix(*arguments*) is a function.

M = **line_to_line_voltage_matrix**(*this*)

## this.loop_matrix(*arguments*) Loop matrix associated with this.

L = **loop_matrix**(*this*)

Returns a number_of_meshed_conductors_in_model x number_of_current_loops matrix, with the entries:

- L(i, k) = +n : Loop k traverses conductor i to positive direction

- L(i, k) = -n : Loop k traverses conductor i to positive direction

where:

- number_of_meshed_conductors : Number of would-be meshed conductors per entire model. Equal to
*this*.number_of_layers x*this*.number_of_meshed_conductors_per_layer x*this*.number_of_slots

- number_of_current_loops : Number of current loops in winding;
*this*.phases x*this*.wires_in_hand

- n : number of stranded turns per meshed conductor. 1 for solid-conductor models, typically equal to
*this*.N_series for stranded models.

## PolyphaseWindingSpec/this.number_of_nonzero_components(*arguments*) is a function.

n = **number_of_nonzero_components**(*this*)

## this.save_to_excel(*arguments*) Export winding specs.

**save_to_excel**(*this*, filename, varargin)

## this.set_layout_matrix(*arguments*) Initialize winding layout matrix.

A layout matrix is a number_of_layers x number_of_slots matrix of integers, with values in range -phases...phases.

The entries of the layout matrix W are:

- W(i, j) = +k : phase k goes through layer i, slot j, to positive direction:

- W(i, j) = -k : phase k goes through layer i, slot j, to negative direction:

## PolyphaseWindingSpec/this.symmetry_period(*arguments*) is a function.

n = **symmetry_period**(*this*)

## this.winding_angle(*arguments*) Return winding angle.

## this.xy(*arguments*) Transform to phase quantities

y = **xy**(*this*, dq, angles)

y = **xy**(*this*, dq)