Summary for: PolyphaseCircuit < Circuit & SliceableCircuit
Class summary
PolyphaseCircuit Class for finite-element representation of polyphase circuits.
this = PolyphaseCircuit(name, winding_spec)
Returns a new PolyphaseCircuit object with the given name and associated with the PolyphaseWindingSpec winding specification.
A PolyphaseCircuit is largely characterized by its winding_spec
property = a PolyphaseWindingSpec object. This winding specification object contains information such as number of turns and parallel paths, winding layout matrix, loop matrix, etc.
The PolyphaseCircuit then handles the finite-element representation of the winding, as well as the different supply modes. See this.set_load
.
Properties
.PolyphaseCircuit.circuit_analysis_arguments is a property.
.include_lew - include end-winding inductance, boolean
.PolyphaseCircuit/slot is a property.
.supply_mode - supply mode.
.winding_spec - winding parameters specification; a PolyphaseWinding object
Methods
Class methods are listed below. Inherited methods are not included.
.coil_current Coil current from solution.
I = coil_current(this, solution), where
solution = a MagneticsSolution object.
.coil_current_density Coil current densities from solution.
I = coil_current_density(this, solution), where
solution = a MagneticsSolution object.
.conductor_area_per_turn_and_coil Equivalent conductor area per single
turn-side, considering fill-factor.
.conductor_current Conductor currents from solution.
I = conductor_current(this, solution), where
solution = a MagneticsSolution object.
I is a vector of currents, row per meshed conductor.
.conductor_flux_linkage Conductor flux linkage.
Phi = conductor_flux_linkage(this, solution) returns the average flux linkage of each Conductor, without considering the number of symmetry sectors, parallel paths or anything.
.PolyphaseCircuit/derivate_phase_quantity is a function.
E = derivate_phase_quantity(this, QoI, solution, varargin)
.PolyphaseCircuit/domains is a function.
ds = domains(this)
.ew_length_per_conductor End-winding conductor length.
.filling_factor Conductor filling factor.
.get_DC_resistance_matrix DC-resistance matrix for the FE
problem.
.get_EW_inductance_matrix End-winding inductance matrix.
.PolyphaseCircuit/get_cc_blocks is a function.
[Scc, Mcc] = get_cc_blocks(this, problem, type)
.get_loop_matrix Loop matrix associated with the circuit.
.PolyphaseCircuit/get_lt_matrix is a function.
Scc = get_lt_matrix(this, problem, type, t, kstep, Xprev)
.PolyphaseCircuit/get_nl_matrix is a function.
[Scc, rescc] = get_nl_matrix(this, problem, type, t, kstep, Xprev, Xiter)
.get_solid_resistance_matrix Resistance matrix for solid
parts of the winding (solid active conductors only)
.get_EW_impedance_matrix Complex end-winding impedance matrix.
.get_stranded_resistance_matrix Resistance matrix for stranded
parts of the winding (all EW + stranded active conductors)
.init Initialize circuit matrices.
.PolyphaseCircuit.line_current_matrix is a function.
M = PolyphaseCircuit.line_current_matrix
.PolyphaseCircuit.line_to_line_voltage_matrix is a function.
M = PolyphaseCircuit.line_to_line_voltage_matrix
.losses Compute losses and loss data.
[Pmean, data] = losses(this, solution) returns the mean total losses and a structure of loss data, including
- conductor_loss_waveform : instantaneous total losses per Conductor
- P_AC_time : waveform of total AC losses
- Ptot_time_conductor : waveform of per-conductor losses
- mean_total_losses : as the title suggests ** mean_AC_losses : ** *NOTE** Mean ** eddy-current losses, i.e. losses due to uneven current density distribution inside the conductors.
- mean_DC_losses : Mean losses neglecting all AC effects. This includes the eddy-current losses, the uneven distribution of total current within multiple wires in-hand, and the zero-sequence component of the phase-currents. ** NOTE This will, for now, give incorrect results for non-standard winding configurations, where the zero-sequence component is not simply sum(Iphase, 1).
- mean_conductor_losses : mean losses per conductor
- mean_circulating_current_losses : total loss component due to circulating-current phenomana, including both strand-level and phase-level circulating currents. Computed as the difference between the ohmic losses computed from conductor currents, and the
mean_DC_losses
field. - mean_circulating_current_losses_on_phase_level : difference between
mean_DC_losses
, and the losses computed from strand DC resistances, assuming even distribution of current within the multiple parallel strands in each phase. - P_DC_conductor : total losses from conductor currents and conductor DC-resistances. Exluded eddy-current effects, includes all circulating currents.
.PolyphaseCircuit/mass is a function.
[m, data] = mass(this)
.PolyphaseCircuit/merge_circuit_from_another_slice is a function.
merge_circuit_from_another_slice(this, another_circuit)
.meshed_conductor_area_per_layer_and_turn Raw surface area.
Returns the actual meshed area per meshed turn.
.PolyphaseCircuit/parallel_paths is a function.
a = parallel_paths(this)
.parse_space_vector Transform quantity to dq-form.
sv = parse_space_vector(this, Q, solution)
Q = quantity of interest, phases x steps
.parse_terminal_voltage Parse terminal voltages from phase voltages.
Note: the voltages are given against the 0 V potentials.
U = parse_terminal_voltage(this, U, solution, varargin), where
solution = a MagneticsSolution object.
.phase_bemf Phase induced voltage.
Equal to the time-derivative of this.phase_flux_linkage, so NOT exactly the ‘textbook back-emf’ which is often understood to include only the PM flux.
U = phase_bemf(this, solution, varargin), where
solution = a MagneticsSolution object.
U = time-derivative of this.terminal_flux_linkage
.phase_current Phase current from solution.
I = phase_current(this, solution), where
solution = a MagneticsSolution object.
.phase_flux_linkage Phase flux linkage.
Phi = phase_flux_linkage(this, solution, varargin), where
solution = a MagneticsSolution object.
** Note: the contribution of end-winding leakage inductance term is ** NOT included by default. To do include it, please specify ‘include_ew’, true in the key-value arguments.
.phase_impedance_voltage_drop Phase voltage drops from
solution.
The voltage drop includes the reactive voltage drop in the end-winding, and the resistive voltage drop over conductors modelled as stranded (normally either the entire winding if this.winding_spec.winding_model_type = defs.stranded, or just the end-winding region in case defs.solid).
U = phase_impedance_voltage_drop(this, solution, varargin), where
solution = a MagneticsSolution object.
.resistance_matrix_seen_from_terminals Phase resistance matrix.
Phase resistance matrix as seen from the phase terminals, i.e. considering the effect of parallel paths.
.phase_voltage Phase voltages from the solution.
Returns the phase voltages = potential differences as measured between the ends of each phase. For typical star-connected machines, this would be the line-to-neutral voltages; for typical delta-connected motors they are the line-to-line voltages.
Or, expressed more exactly, the “phase voltage” of each phase is the sum of the voltages over all the individual coils belonging to a certain phase. The voltage includes both the induced voltage (dPhi/dt) and voltage drop over lumped impedances.
U = phase_voltage(this, solution, varargin)
.results_summary Summary of important results.
out = results_summary(this, solution) computes quantities such as phase and terminal currents and voltages and returns them in the structure out.
result_summary(this, solution) prints the results in the command prompt.
.set_load1 Increment load vector.
.set_load1 Increment load vector.
.PolyphaseCircuit/set_parent is a function.
set_parent(this, parent)
.set_source Set circuit source.
set_source(this, source_type, source)
Set the winding source, see below.
source_type : string specifying source type:
-
‘uniform coil current’ : Uses the specified coil current, distributed uniformly over the conductor Domain areas. Works for any analysis type.
-
‘terminal current source’ : Specifies the net terminal current. Please note that the m-phase current source is in virtual star, so for delta-connected machines the current source imposes the phase current, minus any circulatory / zero-sequency components.
-
‘terminal voltage’ : Specifies the potential (V) at each terminal, with respect to an arbitrary reference point. For harmonic/stepping analysis only.
-
‘circuit’ : a CircuitSource object.
source : Source values:
-
phases x steps array : used directly as such.
-
function handle : typically to VoltageSource.U method
.A = this.parent.slot_area();
.PolyphaseCircuit/slot_conductor_area is a function.
A = slot_conductor_area(this)
.stranded_conductor_losses Compute losses in stranded conductors.
.terminal_bemf Terminal induced voltage.
See this.phase_bemf.
U = terminal_bemf(this, solution, varargin), where
solution = a MagneticsSolution object.
U = time-derivative of this.terminal_flux_linkage
return value.
.terminal_current Terminal current from solution.
I = terminal_current(this, solution), where
solution = a MagneticsSolution object.
.terminal_flux_linkace Terminal flux linkage.
Kind of like ‘line-to-line’ flux linkage, as little sense as it makes.
Phi = terminal_flux_linkace(this, solution, varargin), where
solution = a MagneticsSolution object.
.terminal_impedance_voltage_drop Phase voltage drops from
solution.
U = terminal_impedance_voltage_drop(this, solution, varargin), where
solution = a MagneticsSolution object.
.terminal_voltage Terminal voltages from solution.
Returns the “terminal voltages”, i.e. potential differences between successive terminals (1-2, 2-3, …, n-1).
U = terminal_voltage(this, solution, varargin), where
solution = a MagneticsSolution object.