-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
eb6b5c6
commit 85c47f8
Showing
109 changed files
with
15,633 additions
and
2,810 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: c08bb9ba31cef4d023e1263d9f4d47d8 | ||
config: fbd1734ecc60ece5e15056baef0bdd75 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 0e6b7cb3adf6c1d1caf802bb4d999377 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
Developer Notes for FEMMT | ||
=========================== | ||
|
||
This chapter contains some useful information when developing with femmt. | ||
|
||
Winding creation | ||
----------------- | ||
|
||
Since there are multiple possible virtual winding windows containing currently up to 2 conductors it is necessary to have a global order for every conductor. | ||
This order is set by the winding_number which is given to the Conductor on creation. | ||
This results in multiple lists containg the same conductor objects (called windings) in different objects: | ||
|
||
1. Every virtual winding window contains a list of conductors. This list either contains one conductor (single winding) or two conductors (interleaved winding). When setting the interleaved winding the order of conductors is given by the order of the parameters. First given winding -> winding[0], second given winding -> winding[1]. | ||
2. The magnetic component contains a list of conductors too. This list contains every unique conductor from every virtual winding window. The order of the windings list in magnetic component is given by the winding_number (sorted in ascending order). This means that the conductor with the lowest winding_number is at position 0 of the winding list: windings[0]. | ||
|
||
Example: | ||
|
||
2 conductors are created: Conductor0(winding_index=0) and Conductor1(winding_index=1). Additionaly 2 virtual winding windows are created. | ||
The first virtual winding window only contains Conductor0, the second virtual winding window contains both conductors. | ||
The following winding lists are created: | ||
|
||
- VirtualWindingWindow0: windings = [Conductor0] | ||
- VirtualWindingWindow1: windings = [Conductor0, Conductor1] | ||
- MagneticComponent: windings = [Conductor0, Conductor1] | ||
|
||
If Conductor1 has a lower winding_index than Conductor0 only the list in magnetic component would change since it does not change | ||
the parameter order for setInterleavedWinding() in VirtualWindingWindow1: | ||
|
||
- MagneticComponent: windings = [Conductor1, Conductor0] | ||
|
||
The order of the conductors in the magnetic component windings list is very important for the simulation. | ||
When creating the model and running the simulation the order of the conductors in MagneticComponent.windings is used to determine | ||
if the conductor is the primary, secondary (, tertiary, ...) winding. | ||
|
||
In the TwoDaxiSymmetric class points for every conductor are created. Those points are stored in a list called p_conductor. | ||
p_conductor[0] is a list containing the points for every turn of the conductor with the lowest winding_index (primary winding). | ||
p_conductors[1] is a list containing the points for every turn of the conductor with the second lowest winding_index (secondary winding). | ||
|
||
Currently the magnetic solver only supports primary and secondary windings, therefore it is useless to create more conductors. | ||
However the implemented structure is capable of working with n windings. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
Welcome to FEM Magnetics Toolbox's documentation! | ||
""""""""""""""""""""""""""""""""""""""""""""""""""""" | ||
|
||
.. toctree:: | ||
:maxdepth: 6 | ||
:caption: Table of Contents: | ||
|
||
intro | ||
|
||
|
||
Indices and tables | ||
""""""""""""""""""""""""""""""""""""""""""""""""""""" | ||
|
||
* :ref:`genindex` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
.. sectnum:: | ||
|
||
|
||
.. include:: introduction.rst | ||
|
||
.. _user_guide_model_creation: | ||
|
||
.. include:: user_guide_model_creation.rst | ||
|
||
.. _winding_types: | ||
|
||
.. include:: winding_types.rst | ||
|
||
FEMMT class and function documentation | ||
======================================= | ||
The ``MagneticComponent`` class | ||
--------------------------------------- | ||
.. currentmodule:: femmt.MagneticComponent | ||
|
||
.. autoclass:: MagneticComponent | ||
:members: set_core, set_air_gaps, set_insulation, set_stray_path, set_winding_window, create_model, single_simulation, excitation_sweep, mesh, thermal_simulation, femm_reference, femm_thermal_validation | ||
:special-members: __init__ | ||
|
||
The ``Core`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.Core | ||
:special-members: __init__ | ||
|
||
The ``AirGaps`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.AirGaps | ||
:members: add_air_gap | ||
:special-members: __init__ | ||
|
||
The ``Insulation`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.Insulation | ||
:members: add_winding_insulations, add_core_insulations | ||
:special-members: __init__ | ||
|
||
The ``Conductor`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.Conductor | ||
:members: set_rectangular_conductor, set_solid_round_conductor, set_litz_round_conductor | ||
:special-members: __init__ | ||
|
||
The ``WindingWindow`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.WindingWindow | ||
:members: split_window, combine_vww | ||
:special-members: __init__ | ||
|
||
The ``VirtualWindingWindow`` class | ||
-------------------------------------- | ||
.. autoclass:: femmt.Model.VirtualWindingWindow | ||
:members: set_winding, set_interleaved_winding | ||
:special-members: __init__ | ||
|
||
The ``LogParser`` class | ||
----------------------------------- | ||
.. autoclass:: femmt.FEMMTLogParser | ||
:members: plot_frequency_sweep_losses, plot_frequency_sweep_winding_params | ||
:special-members: __init__ | ||
|
||
.. autoclass:: femmt.FileData | ||
:members: | ||
:undoc-members: | ||
|
||
.. autoclass:: femmt.SweepData | ||
:members: | ||
:undoc-members: | ||
|
||
.. autoclass:: femmt.WindingData | ||
:members: | ||
:undoc-members: | ||
|
||
``Enumerations`` | ||
--------------------------------- | ||
.. automodule:: femmt.Enumerations | ||
:members: | ||
:undoc-members: | ||
|
||
Helper functions | ||
--------------------------------- | ||
.. automodule:: femmt.Functions | ||
:members: core_database, litz_database, wire_material_database | ||
|
||
.. include:: developer_notes.rst |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
FEM Magnetics Toolbox (FEMMT) | ||
============================= | ||
|
||
Python toolbox to generate preconfigured figures for FEM simulation | ||
tools in power electronics. | ||
|
||
The toolbox contains two parts, a reluctance module and a FEM module. | ||
|
||
* The reluctance module is for pre-calculations | ||
* The FEM module is for detailed calculations | ||
|
||
Installation | ||
--------------- | ||
|
||
To run FEMMT, python (version 3.8 or above) and onelab is needed. | ||
|
||
ONELAB installation | ||
~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
- Go to https://onelab.info/ | ||
- Download the Desktop Version for your OS (Windows, Linux or macOS) | ||
- Unpack the software and remember the file path. This will be needed | ||
later when installing FEMMT. | ||
|
||
Install FEMMT | ||
~~~~~~~~~~~~~~~~~ | ||
|
||
FEMMT can be installed using the python pip package manager. | ||
Either a release version can be installed using pip or a developement version by downloading this repository. | ||
|
||
FEMMT release version (recommended) | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
This installs the stable release version. | ||
|
||
:: | ||
|
||
pip install femmt | ||
|
||
FEMMT development version (for developers only) | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
This is the latest development version with the latest features. Note: | ||
You may need to install `git <https://git-scm.com/downloads>`__. | ||
Also have a look at the `developers notes </developers_notes.md>`__. | ||
|
||
|
||
:: | ||
|
||
cd /Documents/Folder/of/Interest/FEMMT | ||
git clone [email protected]:upb-lea/FEM_Magnetics_Toolbox.git | ||
pip install -e . | ||
|
||
FEMMT is using the material database. To use the latest version for developing, also install the material database in developer mode. | ||
|
||
:: | ||
|
||
cd /Documents/Folder/of/Interest/materialdatabase | ||
git clone [email protected]:upb-lea/materialdatabase.git | ||
pip install -e . | ||
|
||
|
||
|
||
Examples | ||
----------- | ||
|
||
This toolbox is able to build a complete FEM simulation from simple | ||
Python code. The following figure shows the Python code on the left and | ||
the corresponding FEM simulation on the right. |image_femmt_screenshot| | ||
|
||
Code examples can be found in this `example file </femmt/examples/basic_example.py>`__. This file is updated | ||
regulary. | ||
|
||
Basics | ||
~~~~~~~~~~ | ||
|
||
The magnetic component can be an inductor, a transformer, or a | ||
transformer with integrated stray path. The parameterization process is | ||
divided into the following steps: | ||
|
||
1. Chose simulation type, | ||
2. set core parameters (geometry, material), | ||
3. set air gap parameters (position, height), | ||
4. set conductor parameters (litz/solid wire), | ||
5. start simulation with given frequencies and currents and phases. | ||
|
||
Please have a look at the `basic_example </femmt/examples/basic_example.py>`__. | ||
|
||
The examples contain among other things: | ||
|
||
* Geometries: Coil, transformer, transformer with integrated stray path, | ||
* wire and stranded wire definition, | ||
* air gaps definition, | ||
* excitation with different frequencies, amplitudes and phases. | ||
|
||
The simulation results can be found in `working_directory/results/result_log_electro_magnetic.json`. Working directory can either be set by the user otherwise it located at `/python-side-packages-path/femmt`. | ||
In it you can find | ||
|
||
* power loss in the core: hysteresis losses and eddy current losses, | ||
* losses per winding and for each individual winding, | ||
* self- and mutual inductances. | ||
|
||
For a more detailed guide on how to create a model, plase have a look :ref:`here <user_guide_model_creation>`. | ||
|
||
Counting arrow system | ||
~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Defined as depicted here: | ||
|
||
|image_counting_arrow_system| | ||
|
||
GUI (Experimental) | ||
------------------- | ||
|
||
There is a first preview for a GUI. Installing this is a bit cumbersome | ||
at first, but will be simplified in the future: | ||
|
||
* Download the complete repository via ``Code`` -> ``Download ZIP`` and unpack it. | ||
* install the development version of femmt as described above | ||
* run python ``downloads/path-to_femmt/femmt/gui/femmt_gui.py`` | ||
|
||
Please note, the GUI is experimental. | ||
|
||
|image_gui_definition| | ||
|
||
FEMM Validation (for developers only) | ||
-------------------------------------- | ||
|
||
For verification purposes a FEMM model can be created in FEMMT. To do this | ||
FEMM needs to be installed as well as the FEMM python package. | ||
The functionality is limited, e.g. the air gaps are limited to the 'center'-type. Other types, like 'percent' are not implemented. | ||
|
||
|
||
.. |image_femmt_screenshot| image:: ../images/FEMMT_Screenshot.png | ||
.. |image_counting_arrow_system| image:: ../images/counting_arrow_system.png | ||
.. |image_gui_definition| image:: ../images/femmt_gui_definition.png |
Oops, something went wrong.