Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions machine_design/designs/computation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from ansys.aedt.core import Maxwell2d

from machine_design.generic.compute_initpos import compute_initpos
from machine_design.generic.winding import phase_groups

from .geometry import GeometryBase
from .reserved_variables import check_no_reserved_variable_names
Expand Down Expand Up @@ -44,11 +45,16 @@ def set_variables(self, m2d: Maxwell2d, *args): ...
def extract_results(self, solutions): ...

def set_initpos(self) -> None:
Q = int(self.geometry.geom_params["SlotNumber"])
p = self.geometry.PolePairs
self.InitPos = compute_initpos(Q, p, self.phases, belt_offset=self.belt_offset)
g = self.geometry
Q = int(g.geom_params["SlotNumber"])
self.InitPos = compute_initpos(Q, g.PolePairs, g.n_phases, belt_offset=g.belt_offset)
self.oper_params["InitPos"] = f"{self.InitPos}deg"

def compute_phase_groups(self):
g = self.geometry
Q = int(g.geom_params["SlotNumber"])
return phase_groups(Q, g.PolePairs, g.n_phases, belt_offset=g.belt_offset)

def push_variables(self, m2d: Maxwell2d) -> None:
for k, v in self.oper_params.items():
m2d[k] = v
Expand Down
4 changes: 2 additions & 2 deletions motors/synrm_3f_36s.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ def set_winds_params(self):

def set_mod_params(self):
self.PolePairs = 2
self.n_phases = 3
self.belt_offset = 0
self.mod_params = {
"Poles": f"2*{self.PolePairs}",
"ModelLength": "85mm",
Expand Down Expand Up @@ -172,8 +174,6 @@ def _assign_stator_mesh(self, m2d: Maxwell2d, stator_id, id_coils) -> None:

class Computation(ComputationBase):
def set_oper_params(self):
self.phases = 3
self.belt_offset = 0
f = 50 # [Hz]
RotSpeed = 60 * f / self.geometry.PolePairs # [rpm]
w = 2 * np.pi * f
Expand Down
7 changes: 1 addition & 6 deletions motors/synrm_3f_60s.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
import numpy as np
from ansys.aedt.core import Maxwell2d

from machine_design.generic.winding import phase_groups

from .synrm_3f_36s import Computation as BaseComputation
from .synrm_3f_36s import Geometry as BaseGeometry

Expand Down Expand Up @@ -37,10 +35,7 @@ def assign_stator_coils(self, m2d: Maxwell2d) -> None:
I_B = "Im * cos(w*Time-120deg+epsI)"
I_C = "Im * cos(w*Time-240deg+epsI)"

Q = int(self.geometry.geom_params["SlotNumber"])
p = self.geometry.PolePairs
# belt_offset=0 reproduces the legacy 3-phase(36-slot) base winding.
groups = phase_groups(Q, p, 3, belt_offset=0)
groups = self.compute_phase_groups()

for group in groups:
for coil_name, polarity in group:
Expand Down
7 changes: 5 additions & 2 deletions motors/synrm_5f_40s.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,14 @@ def set_winds_params(self):
super().set_winds_params()
self.wind_params["Nc"] = "113"

def set_mod_params(self):
super().set_mod_params()
self.n_phases = 5
self.belt_offset = 1


class Computation(ComputationBase):
def set_oper_params(self):
self.phases = 5
self.belt_offset = 1
f = 50 # [Hz]
RotSpeed = 60 * f / self.geometry.PolePairs # [rpm]
w = 2 * np.pi * f
Expand Down
7 changes: 1 addition & 6 deletions motors/synrm_5f_60s.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import numpy as np
from ansys.aedt.core import Maxwell2d

from machine_design.generic.winding import phase_groups

from .synrm_5f_40s import Computation as BaseComputation
from .synrm_5f_40s import Geometry as BaseGeometry

Expand Down Expand Up @@ -43,10 +41,7 @@ def assign_stator_coils(self, m2d: Maxwell2d) -> None:
I_D = "Im1*cos(w*Time-216deg+epsI1-pi) + Im3*cos(3*(w*Time-216deg)+epsI3-pi)"
I_E = "Im1*cos(w*Time-288deg+epsI1-pi) + Im3*cos(3*(w*Time-288deg)+epsI3-pi)"

Q = int(self.geometry.geom_params["SlotNumber"])
p = self.geometry.PolePairs
# belt_offset=1 reproduces the 5-phase(40-slot) base winding.
groups = phase_groups(Q, p, 5, belt_offset=1)
groups = self.compute_phase_groups()

for group in groups:
for coil_name, polarity in group:
Expand Down
Loading