femagtools 1.8.3__py3-none-any.whl → 1.8.4__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- femagtools/__init__.py +1 -1
- femagtools/bch.py +10 -6
- femagtools/dxfsl/area.py +4 -1
- femagtools/dxfsl/conv.py +49 -17
- femagtools/dxfsl/converter.py +239 -75
- femagtools/dxfsl/fslrenderer.py +18 -22
- femagtools/dxfsl/functions.py +24 -2
- femagtools/dxfsl/geom.py +100 -23
- femagtools/dxfsl/machine.py +44 -7
- femagtools/dxfsl/shape.py +4 -0
- femagtools/dxfsl/symmetry.py +78 -25
- femagtools/fsl.py +0 -1
- femagtools/machine/afpm.py +2 -2
- femagtools/machine/effloss.py +2 -2
- femagtools/machine/im.py +6 -8
- femagtools/machine/sm.py +2 -2
- femagtools/mcv.py +10 -11
- femagtools/templates/mesh-airgap.mako +6 -0
- femagtools/utils.py +1 -1
- femagtools/windings.py +11 -4
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/METADATA +1 -1
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/RECORD +27 -27
- tests/test_parident.py +2 -1
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/LICENSE +0 -0
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/WHEEL +0 -0
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/entry_points.txt +0 -0
- {femagtools-1.8.3.dist-info → femagtools-1.8.4.dist-info}/top_level.txt +0 -0
femagtools/__init__.py
CHANGED
femagtools/bch.py
CHANGED
@@ -307,14 +307,14 @@ class Reader:
|
|
307
307
|
self.torque_fft = [
|
308
308
|
{'order': order.tolist(),
|
309
309
|
'torque': tq.tolist()}]
|
310
|
-
except (KeyError, IndexError):
|
310
|
+
except (KeyError, IndexError, ValueError):
|
311
311
|
pass
|
312
|
-
|
312
|
+
|
313
313
|
# check number of phases
|
314
|
-
try:
|
314
|
+
try:
|
315
315
|
if 'm' not in self.machine:
|
316
316
|
self.machine['m'] = len(self.current_angles)
|
317
|
-
except:
|
317
|
+
except:
|
318
318
|
pass
|
319
319
|
|
320
320
|
return self
|
@@ -1439,17 +1439,21 @@ class Reader:
|
|
1439
1439
|
'psid', 'psiq', 'torque')
|
1440
1440
|
except:
|
1441
1441
|
pass
|
1442
|
-
if self.dqPar
|
1442
|
+
if self.dqPar.get('psim', 0):
|
1443
1443
|
self.dqPar.pop('up', None)
|
1444
1444
|
else:
|
1445
|
+
up = np.array(self.dqPar.pop('up', None))
|
1445
1446
|
self.dqPar.pop('psim', None)
|
1447
|
+
|
1446
1448
|
try:
|
1447
1449
|
w1 = np.pi*self.dqPar['speed']*self.dqPar['npoles']
|
1448
1450
|
r1 = self.machine.get('r1', 0.0)
|
1449
1451
|
beta = np.array(self.dqPar['beta'])/180*np.pi
|
1450
1452
|
iq = np.cos(beta)*self.dqPar['i1']
|
1451
1453
|
id = np.sin(beta)*self.dqPar['i1']
|
1452
|
-
|
1454
|
+
if 'psim' in self.dqPar:
|
1455
|
+
up = w1*np.array(self.dqPar['psim'])
|
1456
|
+
|
1453
1457
|
ld = np.array(self.dqPar['ld'])
|
1454
1458
|
lq = np.array(self.dqPar['lq'])
|
1455
1459
|
uq = r1*iq + up + id*w1*ld
|
femagtools/dxfsl/area.py
CHANGED
@@ -641,7 +641,10 @@ class Area(object):
|
|
641
641
|
def get_alpha(self, center):
|
642
642
|
if self.center_is_inside(center):
|
643
643
|
return np.pi*2.0
|
644
|
-
return alpha_angle(self.min_angle,
|
644
|
+
return alpha_angle(self.min_angle,
|
645
|
+
self.max_angle,
|
646
|
+
rtol=0.0,
|
647
|
+
atol=0.0)
|
645
648
|
|
646
649
|
def get_mid_angle(self, center):
|
647
650
|
if self.center_is_inside(center):
|
femagtools/dxfsl/conv.py
CHANGED
@@ -18,8 +18,18 @@ logger = logging.getLogger(__name__)
|
|
18
18
|
def main():
|
19
19
|
argparser = argparse.ArgumentParser(
|
20
20
|
description='Process DXF file and create a plot or FSL file.')
|
21
|
+
super_help = "--Help" in sys.argv
|
22
|
+
if super_help:
|
23
|
+
sys.argv.append("--help")
|
24
|
+
|
21
25
|
argparser.add_argument('dxfile',
|
22
26
|
help='name of DXF file')
|
27
|
+
argparser.add_argument('--Help',
|
28
|
+
help=(argparse.SUPPRESS if not super_help else
|
29
|
+
"show this extended help message and exit"),
|
30
|
+
dest='Help',
|
31
|
+
action="store_true",
|
32
|
+
default=False)
|
23
33
|
argparser.add_argument('--PMSM',
|
24
34
|
help='Permanent Magnet Synchronous Motor',
|
25
35
|
dest='PMSM',
|
@@ -47,47 +57,56 @@ def main():
|
|
47
57
|
dest='stator',
|
48
58
|
default='')
|
49
59
|
argparser.add_argument('--sympart',
|
50
|
-
help=
|
60
|
+
help=(argparse.SUPPRESS if not super_help else
|
61
|
+
'forced symmetry part'),
|
51
62
|
dest='sym_part',
|
52
63
|
type=int,
|
53
64
|
default=0)
|
54
65
|
argparser.add_argument('-a', '--airgap',
|
55
|
-
help=
|
66
|
+
help=(argparse.SUPPRESS if not super_help else
|
67
|
+
'correct airgap'),
|
56
68
|
dest='airgap',
|
57
69
|
type=float,
|
58
70
|
default=0.0)
|
59
71
|
argparser.add_argument('--airgap2',
|
60
|
-
help=
|
72
|
+
help=(argparse.SUPPRESS if not super_help else
|
73
|
+
'correct airgap'),
|
61
74
|
dest='airgap2',
|
62
75
|
type=float,
|
63
76
|
default=0.0)
|
64
77
|
argparser.add_argument('-t', '--symtol',
|
65
|
-
help=
|
78
|
+
help=(argparse.SUPPRESS if not super_help else
|
79
|
+
'absolut tolerance to find symmetry axis'),
|
66
80
|
dest='sym_tolerance',
|
67
81
|
type=float,
|
68
82
|
default=0.001)
|
69
83
|
argparser.add_argument('--mindist',
|
70
|
-
help=
|
84
|
+
help=(argparse.SUPPRESS if not super_help else
|
85
|
+
'minimal distance of spline control-points'),
|
71
86
|
dest='mindist',
|
72
87
|
type=float,
|
73
88
|
default=0.01)
|
74
89
|
argparser.add_argument('--rtol',
|
75
|
-
help=
|
90
|
+
help=(argparse.SUPPRESS if not super_help else
|
91
|
+
'relative tolerance (pickdist)'),
|
76
92
|
dest='rtol',
|
77
93
|
type=float,
|
78
94
|
default=1e-04)
|
79
95
|
argparser.add_argument('--atol',
|
80
|
-
help=
|
96
|
+
help=(argparse.SUPPRESS if not super_help else
|
97
|
+
'absolut tolerance (pickdist)'),
|
81
98
|
dest='atol',
|
82
99
|
type=float,
|
83
100
|
default=1e-03)
|
84
101
|
argparser.add_argument('--da',
|
85
|
-
help=
|
102
|
+
help=(argparse.SUPPRESS if not super_help else
|
103
|
+
'distance airgap'),
|
86
104
|
dest='da',
|
87
105
|
type=float,
|
88
106
|
default=0.0)
|
89
107
|
argparser.add_argument('--dy',
|
90
|
-
help=
|
108
|
+
help=(argparse.SUPPRESS if not super_help else
|
109
|
+
'distance yoke'),
|
91
110
|
dest='dy',
|
92
111
|
type=float,
|
93
112
|
default=0.0)
|
@@ -104,11 +123,13 @@ def main():
|
|
104
123
|
dest='small_plots',
|
105
124
|
action="store_true")
|
106
125
|
argparser.add_argument('--areas',
|
107
|
-
help=
|
126
|
+
help=(argparse.SUPPRESS if not super_help else
|
127
|
+
'show all areas with single plots'),
|
108
128
|
dest='show_areas',
|
109
129
|
action="store_true")
|
110
130
|
argparser.add_argument('--id',
|
111
|
-
help=
|
131
|
+
help=(argparse.SUPPRESS if not super_help else
|
132
|
+
'write id of areas into the plot'),
|
112
133
|
dest='write_id',
|
113
134
|
action="store_true")
|
114
135
|
argparser.add_argument('-f', '--fsl',
|
@@ -116,7 +137,8 @@ def main():
|
|
116
137
|
dest='write_fsl',
|
117
138
|
action="store_true")
|
118
139
|
argparser.add_argument('--fsl_single',
|
119
|
-
help=
|
140
|
+
help=(argparse.SUPPRESS if not super_help else
|
141
|
+
'create separate fsl for rotor and stator'),
|
120
142
|
dest='write_fsl_single',
|
121
143
|
action="store_true")
|
122
144
|
argparser.add_argument('-v', '--view',
|
@@ -124,11 +146,13 @@ def main():
|
|
124
146
|
dest='view',
|
125
147
|
action="store_true")
|
126
148
|
argparser.add_argument('-k', '--korr',
|
127
|
-
help=
|
149
|
+
help=(argparse.SUPPRESS if not super_help else
|
150
|
+
'show a view with korrections'),
|
128
151
|
dest='view_korr',
|
129
152
|
action="store_true")
|
130
153
|
argparser.add_argument('--png',
|
131
|
-
help=
|
154
|
+
help=(argparse.SUPPRESS if not super_help else
|
155
|
+
'write plot in png-file only'),
|
132
156
|
dest='write_png',
|
133
157
|
action="store_true")
|
134
158
|
argparser.add_argument('-d', '--debug',
|
@@ -139,8 +163,9 @@ def main():
|
|
139
163
|
help='print information in logfile and set --debug',
|
140
164
|
dest='debug',
|
141
165
|
action="store_true")
|
142
|
-
argparser.add_argument('
|
143
|
-
help=
|
166
|
+
argparser.add_argument('--journal',
|
167
|
+
help=(argparse.SUPPRESS if not super_help else
|
168
|
+
'print information in journal file'),
|
144
169
|
dest='journal',
|
145
170
|
action="store_true")
|
146
171
|
argparser.add_argument('--version',
|
@@ -155,6 +180,12 @@ def main():
|
|
155
180
|
help='create full model (fsl only)',
|
156
181
|
dest='full_model',
|
157
182
|
action="store_true")
|
183
|
+
argparser.add_argument('--no_processing',
|
184
|
+
help=(argparse.SUPPRESS if not super_help else
|
185
|
+
"omit multiprocessing"),
|
186
|
+
dest='no_processing',
|
187
|
+
action="store_true",
|
188
|
+
default=False)
|
158
189
|
|
159
190
|
args = argparser.parse_args()
|
160
191
|
|
@@ -251,7 +282,8 @@ def main():
|
|
251
282
|
write_id=args.write_id,
|
252
283
|
debug_mode=args.debugger,
|
253
284
|
full_model=args.full_model,
|
254
|
-
write_journal=args.journal
|
285
|
+
write_journal=args.journal,
|
286
|
+
no_processing=args.no_processing)
|
255
287
|
keys = ('tot_num_slot', 'num_sl_gen', 'num_poles', 'nodedist',
|
256
288
|
'dy1', 'da1', 'da2', 'dy2', 'agndst', 'name')
|
257
289
|
logger.info("%s", {k: res[k] for k in keys if k in res})
|