Skip to content

Fix JMAG analyzer's copper loss calculation method #357

@noguchi-takahiro

Description

@noguchi-takahiro

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:

Image

This is example is coming from Sandia machine with 24 slot machine. In this case, it returns 24 (number of slot) when we calculate m.

I think this results in overestimate the copper loss by 24/6 = 4 times?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions