pub struct IronLossCharacteristic {
pub frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>,
pub characteristic: Vec<FluxDensityLossPair>,
}Expand description
A iron loss characteristic for a specific frequency.
This struct contains the iron loss characteristic (relationship between
sinusoidal magnetic flux density amplitude and losses) for a single frequency.
This characteristic is usually taken from the datasheet of the lamination
manufacturer or measured by applying a sinusoidal magnetic field at a given
frequency with different amplitudes to a sample. The losses within the sample
are then measured and form a FluxDensityLossPair datapoint together with the
corresponding amplitude.
One or more of these characteristics form an IronLossData dataset, which is
essentially just a vector of IronLossCharacteristics. The dataset can then
be used to derive the coefficients of the JordanModel.
§Examples
use stem_material::prelude::*;
// These datapoints might come from a manufacturer sheet.
// All datapoints were measured at this frequency
let frequency = Frequency::new::<hertz>(50.0);
// List of the individual datapoints as flux density - loss pairs.
let mut datapoints = Vec::new();
datapoints.push(FluxDensityLossPair::new(
MagneticFluxDensity::new::<tesla>(0.5),
SpecificPower::new::<watt_per_kilogram>(2.0)
));
datapoints.push(FluxDensityLossPair::new(
MagneticFluxDensity::new::<tesla>(0.6),
SpecificPower::new::<watt_per_kilogram>(2.5)
));
datapoints.push(FluxDensityLossPair::new(
MagneticFluxDensity::new::<tesla>(0.7),
SpecificPower::new::<watt_per_kilogram>(3.2)
));
datapoints.push(FluxDensityLossPair::new(
MagneticFluxDensity::new::<tesla>(0.8),
SpecificPower::new::<watt_per_kilogram>(4.0)
));
let loss_charactistic = IronLossCharacteristic::new(frequency, datapoints);Fields§
§frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>Frequency at which the charactistic has been measured. Should be a positive value (a negative frequency makes no sense from a physics point of view and at zero frequency the losses are also zero).
characteristic: Vec<FluxDensityLossPair>Collection of amplitude - losses datapoints. The order of these datapoints does not matter.
Implementations§
Source§impl IronLossCharacteristic
impl IronLossCharacteristic
Sourcepub fn new(
frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>,
characteristic: Vec<FluxDensityLossPair>,
) -> IronLossCharacteristic
pub fn new( frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>, characteristic: Vec<FluxDensityLossPair>, ) -> IronLossCharacteristic
Creates a new IronLossCharacteristic from its fields.
Sourcepub fn from_vecs(
frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>,
flux_densities: &[Quantity<dyn Dimension<Kind = dyn Kind, M = PInt<UInt<UTerm, B1>>, L = Z0, Th = Z0, N = Z0, I = NInt<UInt<UTerm, B1>>, J = Z0, T = NInt<UInt<UInt<UTerm, B1>, B0>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>],
specific_losses: &[Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = PInt<UInt<UInt<UTerm, B1>, B0>>, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UInt<UTerm, B1>, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>],
) -> IronLossCharacteristic
pub fn from_vecs( frequency: Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = Z0, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UTerm, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>, flux_densities: &[Quantity<dyn Dimension<Kind = dyn Kind, M = PInt<UInt<UTerm, B1>>, L = Z0, Th = Z0, N = Z0, I = NInt<UInt<UTerm, B1>>, J = Z0, T = NInt<UInt<UInt<UTerm, B1>, B0>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>], specific_losses: &[Quantity<dyn Dimension<Kind = dyn Kind, M = Z0, L = PInt<UInt<UInt<UTerm, B1>, B0>>, Th = Z0, N = Z0, I = Z0, J = Z0, T = NInt<UInt<UInt<UTerm, B1>, B1>>>, dyn Units<f64, time = second, electric_current = ampere, luminous_intensity = candela, length = meter, mass = kilogram, thermodynamic_temperature = kelvin, amount_of_substance = mole>, f64>], ) -> IronLossCharacteristic
Creates a new IronLossCharacteristic from its frequency, a slice of
flux densities and one of specific losses.
Each entry of the flux_densities vector is paired with the same-index
entry of specific_losses to form a FluxDensityLossPair. If one slice
is longer than the other, the surplus entries are discarded.
Trait Implementations§
Source§impl Clone for IronLossCharacteristic
impl Clone for IronLossCharacteristic
Source§fn clone(&self) -> IronLossCharacteristic
fn clone(&self) -> IronLossCharacteristic
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IronLossCharacteristic
impl Debug for IronLossCharacteristic
Source§impl<'de> Deserialize<'de> for IronLossCharacteristic
impl<'de> Deserialize<'de> for IronLossCharacteristic
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<IronLossCharacteristic, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<IronLossCharacteristic, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for IronLossCharacteristic
impl Serialize for IronLossCharacteristic
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for IronLossCharacteristic
impl RefUnwindSafe for IronLossCharacteristic
impl Send for IronLossCharacteristic
impl Sync for IronLossCharacteristic
impl Unpin for IronLossCharacteristic
impl UnsafeUnpin for IronLossCharacteristic
impl UnwindSafe for IronLossCharacteristic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more