-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Describe the bug
The n winding transformer with split window, the geometry drawing is created but the FEM simulation gives error.
To Reproduce
i have attached the code
import femmt as fmt
import os
example_results_folder = os.path.join(os.path.dirname(file), "example_results")
if not os.path.exists(example_results_folder):
os.mkdir(example_results_folder)
Example for a transformer with multiple virtual winding windows.
working_directory = os.path.join(example_results_folder, "n-horizontal-split")
if not os.path.exists(working_directory):
os.mkdir(working_directory)
1. chose simulation type
geo = fmt.MagneticComponent(component_type=fmt.ComponentType.Transformer, working_directory=working_directory,
silent=False)
2. set core parameters
core_dimensions = fmt.dtos.SingleCoreDimensions(window_h=16.1e-3, window_w=(22.5-12)/2*1e-3, core_inner_diameter=12e-3)
core = fmt.Core(core_dimensions=core_dimensions, material="N95", temperature=60, frequency=100000,
# permeability_datasource="manufacturer_datasheet",
permeability_datasource=fmt.MaterialDataSource.Measurement,
permeability_datatype=fmt.MeasurementDataType.ComplexPermeability,
permeability_measurement_setup="LEA_LK",
permittivity_datasource=fmt.MaterialDataSource.Measurement,
permittivity_datatype=fmt.MeasurementDataType.ComplexPermittivity,
permittivity_measurement_setup="LEA_LK")
geo.set_core(core)
3. set air gap parameters
air_gaps = fmt.AirGaps(fmt.AirGapMethod.Percent, core)
air_gaps.add_air_gap(fmt.AirGapLegPosition.CenterLeg, 0.00016, 50)
geo.set_air_gaps(air_gaps)
4. set insulation
insulation = fmt.Insulation()
insulation.add_core_insulations(0.0008, 0.0008, 0.001, 0)
insulation.add_winding_insulations([0.0002, 0.0002, 0.0002, 0.0002, 0.0002, 0.0002, 0.0002, 0.0002, 0.0002, 0.0002], 0.0005)
iso_self = 0.0001
iso_against = 0.0002
insulation.add_winding_insulations(
[[iso_self, iso_against, iso_against, iso_against],
[iso_against, iso_self, iso_against, iso_against],
[iso_against, iso_against, iso_self, iso_against],
[iso_against, iso_against, iso_against, iso_self]])
geo.set_insulation(insulation)
5. create winding window and virtual winding windows (vww)
winding_window = fmt.WindingWindow(core, insulation)
cells = winding_window.NHorizontalSplit([1/7, 2/7, 3/7, 4/7, 5/7, 6/7])
cells = winding_window.NHorizontalSplit([0.48, 0.75], vertical_split_factors=[None, 0.5, None])
6. create conductors and set parameters
winding1 = fmt.Conductor(0, fmt.Conductivity.Copper)
winding1.set_litz_round_conductor(0.85e-3 / 2, 40, 0.1e-3 / 2, None, fmt.ConductorArrangement.Square)
winding2 = fmt.Conductor(1, fmt.Conductivity.Copper)
winding2.set_litz_round_conductor(1.1e-3 / 2, 60, 0.1e-3 / 2, None, fmt.ConductorArrangement.Square)
winding3 = fmt.Conductor(2, fmt.Conductivity.Copper)
winding3.set_litz_round_conductor(0.85e-3 / 2, 40, 0.1e-3 / 2, None, fmt.ConductorArrangement.Square)
winding4 = fmt.Conductor(3, fmt.Conductivity.Copper)
winding4.set_litz_round_conductor(0.85e-3 / 2, 40, 0.1e-3 / 2, None, fmt.ConductorArrangement.Square)
5. create winding window and virtual winding windows (vww)
winding_window = fmt.WindingWindow(core, insulation)
cells = winding_window.NCellsSplit(0, [1/6, 2/6, 3/6, 4/6, 5/6])
7. add conductor to vww and add winding window to MagneticComponent
cells[0].set_winding(winding1, 22, fmt.WindingType.Single)
cells[1].set_winding(winding2, 6, fmt.WindingType.Single)
cells[2].set_winding(winding3, 6, fmt.WindingType.Single)
cells[3].set_winding(winding4, 3, fmt.WindingType.Single)
geo.set_winding_windows([winding_window])
8. start simulation with given frequency, currents and phases
geo.create_model(freq=100000, pre_visualize_geometry=True)
geo.single_simulation(freq=100000, current=[1.625, 6.89, 6.89, 11.5],
phi_deg=[0, 180, 180, 180], show_fem_simulation_results=True)
Expected behavior
A single simulation output log file expected.
Screenshots
If applicable, add screenshots to help explain your problem.


Desktop (please complete the following information):
- OS: Windows 11
- Version [e.g. 22]
Additional context
Add any other context about the problem here.