Skip to content

Commit

Permalink
restructure readme file
Browse files Browse the repository at this point in the history
  • Loading branch information
gituser789 committed May 3, 2024
1 parent 8c5105d commit 1c1c517
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 159 deletions.
118 changes: 1 addition & 117 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,117 +1 @@
FEM Magnetics Toolbox (FEMMT)
=============================

This README only provides a short overview. For more information please have a look at the detailed documentation `here <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__.

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

The toolbox is accessible via python code or a graphical user interface
(GUI), which current development status is experimental.

|image0|

Functionality examples

* work with pre-defined standard core structures
* work with pre-defined litz wires
* use python to perform parameter sweeps, e.g.perform several automated simulations of different air gap sizes
* read the results automated with python from the FEM simulation tool
* run a thermal simulation to see the temperatures, once the magnetoquasistatic simulation has finished

**Note: Alpha Version!**

* GUI is experimental,
* reluctance module is currently working for a single optimization example and not fully implemented yet.

Documentation
-------------------
Please have a look at the `documentation <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__. You will find tutorials and a function description.

Installation
---------------

To run FEMMT python (version 3.10 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.
This is the stable release version (recommended).

::

pip install femmt

For working with the latest version, refer to the `documentation <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__.

Minimal example
------------------

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. |image1|

To run a minimal example please have a look at the `examples </femmt/examples/>`__.

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.

|image2|

Bug Reports
--------------

Please use the issues report button within github to report bugs.

Contributing
---------------

Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change. For contributing, please refer
to this `section <Contributing.rst>`__.

Changelog
------------

Find the changelog `here <CHANGELOG.md>`__

License
----------

`GPLv3 <https://choosealicense.com/licenses/gpl-3.0/>`__

History and project status
------------------------------

This project was initially written in matlab using FEMM simulation tool.
It became clear that the project was no longer a small project. The
project should be completely rewritten, because many new complex levels
have been added. To place the project in the open source world, the
programming language python is used.

.. |image0| image:: docs/images/femmt.png
.. |image1| image:: docs/images/FEMMT_Screenshot.png
.. |image2| image:: docs/images/femmt_gui_definition.png
.. |image3| image:: docs/images/counting_arrow_system.png
.. include:: docs/source/introduction.rst
1 change: 1 addition & 0 deletions docs/source/intro.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.. sectnum::

.. include:: readme.rst

.. include:: introduction.rst

Expand Down
47 changes: 5 additions & 42 deletions docs/source/introduction.rst
Original file line number Diff line number Diff line change
@@ -1,44 +1,7 @@
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 development 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>`__.
Expand Down Expand Up @@ -70,8 +33,8 @@ 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.
Code examples can be found in this `example folder </femmt/examples/>`__. These files are updated
regularly.

Basics
~~~~~~~~~~
Expand All @@ -87,8 +50,8 @@ divided into the following steps:
5. set conductor parameters (litz/solid wire),
6. start the frequency domain simulation by specifying the given frequencies, currents, and phases, and start the time domain simulation by specifying the given currents, and time parameters.

Please have a look at the `basic_example </femmt/examples/basic_inductor.py>`__ for frequency domain simulation, and
at the `basic_example </femmt/examples/basic_inductor_time_domain.py>`__ for time domain simulation.
Please have a look at the `basic_inductor example </femmt/examples/basic_inductor.py>`__ for frequency domain simulation, and
at the `basic_inductor_time_domain example </femmt/examples/basic_inductor_time_domain.py>`__ for time domain simulation.

The examples contain among other things:

Expand Down
179 changes: 179 additions & 0 deletions docs/source/readme.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
FEM Magnetics Toolbox (FEMMT)
=============================

This README only provides a short overview. For more information please have a look at the detailed documentation `here <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__.

Python toolbox to generate preconfigured figures for FEM simulation tools in power electronics.

The toolbox is accessible via python code or a graphical user interface
(GUI), which current development status is experimental.


Overview features
-------------------

Stable features
~~~~~~~~~~~~~~~~~

* Component features:
* 2D axi-symmetric cylindrical simplification
* `Inductor </femmt/examples/basic_inductor.py>`__, `2-winding transformer </femmt/examples/basic_transformer.py>`__, `n-winding transformer </femmt/examples/basic_transformer_6_windings.py>`__
* Arbitrary (distributed) air gap positioning in center leg
* Variety of winding interleaving schemes
* Special geometries:
* `Center tapped transformer </femmt/examples/basic_transformer_center_tapped.py>`__
* `Magnetic shunt </femmt/examples/basic_transformer_integrated.py>`__ (transformer with integrated inductor)
* `Stacked core </femmt/examples/basic_transformer_stacked.py>`__ (transformer with integrated inductor)
* Round litz wire
* Round and rectangular solid wires
* Different winding schemes (hexagonal, left/right, top/down, ...)
* Parallel connection of solid wires
* Insulation distances (winding2core, winding2winding)
* Many `examples </femmt/examples/>`__. to learn and understand FEMMT
* Databases
* Litz wire database
* Core geometry database
* Conductor materials: temperature curves
* Ferrit materials: permeability / permittivity `material database <https://github.com/upb-lea/materialdatabase>`__ (datasheets and own measurements)

* Solver features:
* Implemented using `ONELAB <https://onelab.info/>`__
* Current excitation
* Frequency domain solver
* Litz wire loss model for proximity and skin effect (Niyomsatian et al.: Frequency-domain homogenization for impedance characterization of litz-wire transformers in 2-D finite element models)
* Core loss calculation for real materials (data from material database)
* Amplitude dependent loss angle (Local resolution of complex permeability)
* Equivalent permittivity data for eddy current calculations
* Effect of dimensional resonance is considered
* Thermal solver
* Thermal conduction (Poisson equation)
* Fixed temperature and isolation boundary conditions
* Verified model for potted core

* Pre/Post processing:
* Linear eddy current analysis via input current based FFT
* Pre-visualization of ferrite material (measurement) data interpolation
* Field visualization in gmsh GUI (magnetic flux density, eddy current losses, ...)
* Inductance matrix for n-winding transformer
* Transformer equivalent diagrams for 2- and 3-winding transformer

* Optimization:
* Parallel computing to speed up simulations (no cpu core limitation)
* Examples for Pareto optimization to adapt to your own optimization problem


Experimental features (under development)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Component features:
* Reluctance module is currently working for a single optimization example and not fully implemented yet.
* Solver features:
* Time domain solver
* Optimization:
* Advanced optimization algorithms by connecting to `optuna <https://github.com/optuna/optuna>`__
* GUI:
* Experimental in general

Planned features (Roadmap for 202x)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Solver features:
* Core loss calculation from non-sinusoidal flux
* Local temperature dependency (currently only lumped temperature assignment, e.g. general temperature for all windings)

Not supported features
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Not supported component features:
* Toroidal core

* Not supported solver features:
* Voltage excitation


Documentation
-------------------
Please have a look at the `documentation <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__. You will find tutorials and a function description.

Installation
---------------

To run FEMMT python (version 3.10 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.
This is the stable release version (recommended).

::

pip install femmt

For working with the latest version, refer to the `documentation <https://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html>`__.

Minimal example
------------------

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. |FEMMT_Screenshot|

To run a minimal example please have a look at the `examples </femmt/examples/>`__.

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.
* Or clone the repository
* Install the development version of femmt using ``pip install -e .``
* Run python ``.../path-to_femmt/femmt/gui/femmt_gui.py``

Please note, the GUI is experimental.

|femmt_gui_definition|

Bug Reports
--------------

Please use the issues report button within github to report bugs.

Contributing
---------------

Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change. For contributing, please refer
to this `section <Contributing.rst>`__.

Changelog
------------

Find the changelog `here <CHANGELOG.md>`__.

License
----------

`GPLv3 <https://choosealicense.com/licenses/gpl-3.0/>`__

History and project status
------------------------------

This project was initially written in matlab using FEMM simulation tool.
It became clear that the project was no longer a small project. The
project should be completely rewritten, because many new complex levels
have been added. To place the project in the open source world, the
programming language python is used.

.. |femmt| image:: ../images/femmt.png
.. |FEMMT_Screenshot| image:: ../images/FEMMT_Screenshot.png
.. |femmt_gui_definition| image:: ../images/femmt_gui_definition.png
.. |counting_arrow_system| image:: ../images/counting_arrow_system.png

0 comments on commit 1c1c517

Please sign in to comment.