The following line in jmag_2d.py is a way of calculating copper losses from JMAG:
|
@property |
|
def copper_loss(self): |
|
copper_loss_per_phase = ( |
|
((self.current_trms / 2) ** 2 + self.current_srms ** 2) * self.R_wdg |
|
) |
|
|
|
copper_loss = self.m * copper_loss_per_phase |
|
return copper_loss |
This code calculate the copper loss per phase and then multiplies it by number of phase to obtain the total copper loss. Here I believe m represents the number of phase (which should be 6 in the case of the parallel winding). However, if we see the definition of m:
|
@property |
|
def m(self): |
|
m = len(self.machine_variant.coil_groups) |
|
return m |
this uses len() function to get the length of the coil group, which for example is defined as:
|
"coil_groups": ['b', 'a', 'b', 'a', 'b', 'a'], |
In this case, m should be return as 6 which is same as the number of the phase. However, we sometimes define this dictionary as follows:

I think this results in overestimate the copper loss by 24/6 = 4 times?
The following line in jmag_2d.py is a way of calculating copper losses from JMAG:
eMach/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py
Lines 175 to 182 in a86c775
This code calculate the copper loss per phase and then multiplies it by number of phase to obtain the total copper loss. Here I believe
mrepresents the number of phase (which should be 6 in the case of the parallel winding). However, if we see the definition of m:eMach/mach_eval/analyzers/electromagnetic/bspm/jmag_2d.py
Lines 159 to 162 in a86c775
this uses
len()function to get the length of the coil group, which for example is defined as:eMach/examples/mach_eval_examples/bspm_eval/ecce_2020_bspm.py
Line 83 in a86c775
In this case, m should be return as 6 which is same as the number of the phase. However, we sometimes define this dictionary as follows:
I think this results in overestimate the copper loss by 24/6 = 4 times?