Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add hint for lossless equivalent circuits in get_inductances() #133

Merged
merged 56 commits into from
Nov 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
2c09b10
add N30 material
gituser789 Aug 26, 2024
ed71268
add hint for lossless equivalent circuit in get_inductances()
gituser789 Aug 26, 2024
826885e
Merge branch 'main' into study_update
gituser789 Aug 26, 2024
ac34781
update add sto optimization, mv sto->sto_ct
gituser789 Sep 2, 2024
e9ddeb9
linting
gituser789 Sep 2, 2024
157ce02
Merge branch 'study_update' of github.com:upb-lea/FEM_Magnetics_Toolb…
gituser789 Sep 2, 2024
2ee1de2
Merge branch 'main' into study_update
gituser789 Sep 2, 2024
3ff6270
add mag-net-hub as dependency
gituser789 Sep 2, 2024
4f69c89
add dataframe trial select function
gituser789 Sep 3, 2024
45936df
rm unnecessary key
gituser789 Sep 3, 2024
6496580
add inductor optimization
gituser789 Sep 4, 2024
915df23
fix flux middle part sto
gituser789 Sep 4, 2024
49d0b8f
fix target params
gituser789 Sep 4, 2024
2b2aa74
introduce fix core shapes
gituser789 Sep 4, 2024
503c064
pycodestyle
gituser789 Sep 4, 2024
e0e0b86
improve turns fit calculation for bot window
gituser789 Sep 5, 2024
c0bac82
fix input params need to be float/int, not numpy
gituser789 Sep 5, 2024
60457cc
fix missing inductance log in study
gituser789 Sep 6, 2024
62f1fe0
Merge branch 'main' into study_update
gituser789 Sep 6, 2024
a3d1f25
save fem results as dict and as .json files
gituser789 Sep 6, 2024
2d8c483
add fem simulation results to df
gituser789 Sep 9, 2024
e0486d0
Merge branch 'main' into study_update
gituser789 Sep 9, 2024
4c665c3
fix missing temperature dependency of solid wire resistance calculati…
gituser789 Sep 10, 2024
561cbb4
add fem simulation results for inductor optimization
gituser789 Sep 10, 2024
fb4e8ca
update temperate in unittest according to new function behavior
gituser789 Sep 10, 2024
5d24689
add proximity factor calculation from litz wire parameters
gituser789 Sep 10, 2024
50c8149
fix unmateched ''
gituser789 Sep 10, 2024
74bfe57
update single_simulation to excitation_sweep
gituser789 Sep 10, 2024
cb1ae6a
fix documentation links
gituser789 Sep 11, 2024
5bce6cd
rm mdb from basic_inductor
gituser789 Sep 11, 2024
98d96e7
introduce separate FEM simulation function
gituser789 Sep 12, 2024
1fc4762
first prototype for the re-simulation, but only fem part
gituser789 Sep 13, 2024
ee2483f
speed up reluctance model simulations by moving magnet hub material i…
gituser789 Sep 13, 2024
3363b07
mv reluctance model in a separate function for code modularity
gituser789 Sep 15, 2024
d8f1eee
fix FEM working directory for inductor optimization
gituser789 Sep 18, 2024
746bf6b
fix FEM working directory for inductor optimization
gituser789 Sep 18, 2024
fdaf579
fix FEM working directory for inductor optimization
gituser789 Sep 18, 2024
901514c
sto: study_name to config
gituser789 Sep 18, 2024
8a7f5bf
sto: introduce material_data_sources DTO
gituser789 Sep 18, 2024
b71765f
sto: separate FEM simulation as single function
gituser789 Sep 18, 2024
07fc330
sto: check for existing simulation results
gituser789 Sep 18, 2024
4b100b0
add full simulation for stacked transformer optimization
gituser789 Sep 24, 2024
389dbac
add tqdm reqiuirement, add Pareto plot subtitle
gituser789 Sep 25, 2024
0020dd9
option for wire loss only simulation
gituser789 Sep 26, 2024
fe2b7c3
add areas
gituser789 Sep 27, 2024
6524a19
fix description
gituser789 Oct 1, 2024
1e96961
add litz approximation for transformer reluctance model
gituser789 Oct 3, 2024
3025cd6
add litz approx. with air gap for reluctance models
gituser789 Oct 3, 2024
2452576
Merge branch 'main' into study_update
gituser789 Oct 4, 2024
b029d28
add second filter method for combined loss df
gituser789 Oct 6, 2024
b393e89
option to turn-off output
gituser789 Oct 6, 2024
b477c46
no print
gituser789 Oct 6, 2024
3840e83
add option to simulate until target number is reached
gituser789 Oct 7, 2024
326228d
add target_number_trials for sto
gituser789 Oct 7, 2024
eb234e4
workaround for fast full_simulations
gituser789 Oct 10, 2024
cef66ee
read fem logs only when number is in wanted numbers
gituser789 Oct 10, 2024
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
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Winding schemes for square and foil windings
- Reluctance model run before FEM simulation run (check for saturation)
- Inductor optimization routine (experimental)

### Changed
- give time domain simulation examples the prefix 'experimental_' to avoid misunderstandings
- Improved: Litz wire loss calculation (proximity factor calculation from litz wire parameters)

### Fixed
- Add winding insulation to the inductor optimization example
Expand Down
16 changes: 8 additions & 8 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@ 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>`__
* `Inductor <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_inductor.py>`__, `2-winding transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer.py>`__, `n-winding transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/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)
* `Center tapped transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_center_tapped.py>`__
* `Magnetic shunt <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_integrated.py>`__ (transformer with integrated inductor)
* `Stacked core <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_stacked.py>`__ (transformer with integrated inductor)
* Round litz wire, implemented according to `Niyomsatian et al.: Frequency-domain homogenization for litz-wire bundles in finite element calculations <https://ieeexplore.ieee.org/document/9007233>`__
* 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
* Many `examples <https://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples>`__ to learn and understand FEMMT
* Databases
* Litz wire database
* Core geometry database
Expand Down Expand Up @@ -148,7 +148,7 @@ 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/>`__.
To run a minimal example please have a look at the `examples <https://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples>`__.

GUI (Experimental)
-------------------
Expand Down Expand Up @@ -190,12 +190,12 @@ 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>`__.
to this `section <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/Contributing.rst>`__.

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

Find the changelog `here <CHANGELOG.md>`__.
Find the changelog `here <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/CHANGELOG.md>`__.

License
----------
Expand Down
62 changes: 50 additions & 12 deletions docs/source/readme.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ Python toolbox to generate preconfigured figures for FEM simulation tools in pow
The toolbox is accessible via python code or a graphical user interface
(GUI), which current development status is experimental.

All core shapes are simulated as 2D symmetric cores, as shown in the figure.

|geometry_translated|


Overview features
-------------------
Expand All @@ -15,19 +19,19 @@ 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>`__
* `Inductor <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_inductor.py>`__, `2-winding transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer.py>`__, `n-winding transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/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
* `Center tapped transformer <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_center_tapped.py>`__
* `Magnetic shunt <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_integrated.py>`__ (transformer with integrated inductor)
* `Stacked core <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_stacked.py>`__ (transformer with integrated inductor)
* Round litz wire, implemented according to `Niyomsatian et al.: Frequency-domain homogenization for litz-wire bundles in finite element calculations <https://ieeexplore.ieee.org/document/9007233>`__
* 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
* Many `examples <https://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples>`__ to learn and understand FEMMT
* Databases
* Litz wire database
* Core geometry database
Expand All @@ -38,7 +42,7 @@ Stable 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)
* 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 <https://ieeexplore.ieee.org/document/7695378>`__)
* 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
Expand Down Expand Up @@ -66,7 +70,7 @@ 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
* Time domain solver is experimental
* Optimization:
* Advanced optimization algorithms by connecting to `optuna <https://github.com/optuna/optuna>`__
* GUI:
Expand All @@ -91,6 +95,13 @@ 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.

Literature
-------------------

* `An Open-Source FEM Magnetics Toolbox for Power Electronic Magnetic Components <https://ieeexplore.ieee.org/document/9862128>`__

* `An Open-Source FEM Magnetic Toolbox for Calculating Electric and Thermal Behavior of Power Electronic Magnetic Components <https://ieeexplore.ieee.org/document/9907554>`__

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

Expand All @@ -104,6 +115,17 @@ ONELAB installation
- Unpack the software and remember the file path. This will be needed
later when installing FEMMT.

Further steps for macOS(ARM)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Go to https://onelab.info/
- Download the Desktop Version for Windows
- Copy the "conveks.py" and "Onelab.py" files and paste them into the "onelab" folder
- Go to http://getdp.info/
- Download the macOS(ARM) Version
- Open the downloaded folder, navigate to "bin" and copy the "getdp" application file
- Paste the copied file into your "onelab" folder

Install FEMMT
~~~~~~~~~~~~~~~~~

Expand All @@ -123,7 +145,7 @@ 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/>`__.
To run a minimal example please have a look at the `examples <https://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples>`__.

GUI (Experimental)
-------------------
Expand All @@ -134,12 +156,27 @@ 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``
* Run python ``.../path-to_femmt/femmt/gui/femmt_gui.py``

Please note, the GUI is experimental.

|femmt_gui_definition|

Troubleshooting
-------------------
If the working directory is within OneDrive, there are problems writing .dat files, which are basic for FEMMT. The following error messages appear:

::

The system cannot find the file specified: your_directory/femmt/electro_magnetic/Strands_Coefficients/coeff/pB_RS_la0.6_4layer.dat
FileNotFoundError: [Errno 2] No such file or directory: your_directory/results/values/j2F_1.dat



The solution is to place the working directory of FEMMT including the Python virtual environment outside the OneDrive folder.



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

Expand All @@ -150,12 +187,12 @@ 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>`__.
to this `section <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/Contributing.rst>`__.

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

Find the changelog `here <../../CHANGELOG.md>`__.
Find the changelog `here <https://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/CHANGELOG.md>`__.

License
----------
Expand All @@ -171,6 +208,7 @@ 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.

.. |geometry_translated| image:: ../images/geometry_translated.png
.. |femmt| image:: ../images/femmt.png
.. |FEMMT_Screenshot| image:: ../images/FEMMT_Screenshot.png
.. |femmt_gui_definition| image:: ../images/femmt_gui_definition.png
Expand Down
1 change: 1 addition & 0 deletions docs/source/user_guide_model_creation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,7 @@ Zigzag placement introduces an alternating pattern in the layout:

- After completing a row or column, the direction alternates (e.g., if moving upward initially, the next is downward).
- The ``zigzag`` parameter is optional and defaults to ``False``. It can be omitted if a zigzag movement is not needed.

It can only be used for ``RoundSolid`` and ``RoundLitz`` conductors when the winding type is ``Single``.

Before the simulation, the winding window must be added to the model:
Expand Down
Loading
Loading