Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 docs/wordlist
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,6 @@ GridSpec
pdf
dft
Epcos
DataSource
pathname

39 changes: 39 additions & 0 deletions examples/combine_material_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""Example to combine material data.

This script enables users to combine material data, if this is still no done.
"""

import logging

import numpy as np

import materialdatabase as mdb
from materialdatabase.meta.data_classes import ComplexPermeabilityConfig

# ---------------------------------------------
# Configuration
# ---------------------------------------------

logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)

# Flags to control which plots to generate
PLOT_MU_ABS = True
PLOT_PV = True

# Operating points of interest
FREQS = np.linspace(2e5, 4e5, 8) # Frequency range in Hertz
FLUX_DENSITIES = np.linspace(0.14, 0.07, 8) # Flux densities in Tesla
TEMPS = np.ones_like(FREQS) * 100 # Temperatures in Celsius

# Materials to evaluate
mat_cfg = ComplexPermeabilityConfig(material=mdb.Material.N27,
setup=mdb.DataSource.MagNet,
pv_fit_function=mdb.FitFunction.enhancedSteinmetz)

# ---------------------------------------------
# Load Material Data and combine material data with different h-offset
# ---------------------------------------------

mdb_data = mdb.Data()

mdb_data.combine_material_permeability_data(material=mat_cfg.material, data_source=mat_cfg.setup)
5 changes: 3 additions & 2 deletions examples/compare_operation_points.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
PLOT_PV = True

# Operating points of interest
FREQS = np.linspace(2e5, 4e5, 5) # Frequency range in Hertz
FLUX_DENSITIES = np.linspace(0.14, 0.07, 5) # Flux densities in Tesla
FREQS = np.linspace(2e5, 4e5, 16) # Frequency range in Hertz
FLUX_DENSITIES = np.linspace(0.14, 0.07, 16) # Flux densities in Tesla
TEMPS = np.ones_like(FREQS) * 100 # Temperatures in Celsius

# Materials to evaluate
Expand Down Expand Up @@ -84,6 +84,7 @@

mdb_data = mdb.Data()


# Create sweep grid
df_common = pd.DataFrame(
columns=["f", "T", "b"]
Expand Down
2 changes: 2 additions & 0 deletions materialdatabase/meta/data_enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class FitFunction(str, Enum):
enhancedSteinmetz = "enhanced_steinmetz"
mu_abs_TDK_MDT = "mu_abs_TDK_MDT"
mu_abs_LEA_MTB = "mu_abs_LEA_MTB"
mu_abs_MagNet = "mu_abs_MagNet"
eps_abs = "fit_eps_qT"

def get_log_function(self) -> Any:
Expand All @@ -42,6 +43,7 @@ def get_function(self) -> Any:
FitFunction.enhancedSteinmetz: enhanced_steinmetz_qT,
FitFunction.mu_abs_TDK_MDT: fit_mu_abs_TDK_MDT,
FitFunction.mu_abs_LEA_MTB: fit_mu_abs_LEA_MTB,
FitFunction.mu_abs_MagNet: fit_mu_abs_LEA_MTB,
FitFunction.eps_abs: fit_eps_qT
}[self]

Expand Down
1 change: 1 addition & 0 deletions materialdatabase/meta/mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
DataSource.TDK_MDT: FitFunction.mu_abs_TDK_MDT,
DataSource.Datasheet: FitFunction.mu_abs_TDK_MDT,
DataSource.LEA_MTB: FitFunction.mu_abs_LEA_MTB,
DataSource.MagNet: FitFunction.mu_abs_MagNet
}

def get_fit_function_from_setup(setup: DataSource) -> Any:
Expand Down
4 changes: 2 additions & 2 deletions materialdatabase/processing/complex_permeability.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,8 @@ def fit_losses(self,

mu_abs = np.sqrt(fit_data["mu_real"] ** 2 + fit_data["mu_imag"] ** 2)
pv = pv_mag(fit_data["f"].to_numpy(),
(-fit_data["mu_imag"] * mu_0).to_numpy(),
(fit_data["b"] / mu_abs / mu_0).to_numpy())
- (fit_data["mu_imag"].to_numpy() * mu_0),
fit_data["b"].to_numpy() / mu_abs / mu_0)
popt_pv, pcov_pv = curve_fit(log_pv_fit_function,
(fit_data["f"],
fit_data["T"],
Expand Down
Loading