Inputs
July 2, 2026 · View on GitHub
Walk-through of the
inputssection of a MAS document. For unit conventions seeunits.md; for the standards MAS defers to (IEC, IEV vocabulary) seenormative-references.md.
A magnetic component cannot be evaluated in isolation. A description of
the application's design requirements and the excitations applied at
each operating point is required before any output (losses, temperature
rise, inductance under bias) can be computed. The inputs section of a
MAS document carries that information.
The specification of the inputs is therefore divided into two parts, a list of design requirements for the magnetic to comply with, and a list of operating points, which the magnetic has to be optimized for.
classDiagram
class Inputs {
-DesignRequirements design_requirements;
-List~OperatingPoint~ operating_points;
+get_*()
+set_*()
}
Inputs ..> DesignRequirements : Dependency
Inputs ..> OperatingPoint : Dependency
class DesignRequirements {
InsulationRequirements insulation;
List<IsolationSide> isolation_sides;
List<DimensionWithTolerance> leakage_inductance;
DimensionWithTolerance magnetizing_inductance;
Market market;
MaximumDimensions maximum_dimensions;
Double maximum_weight;
List<ImpedanceAtFrequency> minimum_impedance;
String name;
DimensionWithTolerance operating_temperature;
List<DimensionWithTolerance> stray_capacitance;
List<TerminalType> terminal_type;
String topology;
List<DimensionWithTolerance> turns_ratios;
WiringTechnology wiring_technology;
+get_*()
+set_*()
}
class OperatingPoint {
-OperatingConditions conditions;
-List~OperatingPointExcitation~ excitations_per_winding;
-String name;
+get_*()
+set_*()
}
Additionally, as it happens in reality, one design requirement can spawn many magnetic components, or a magnetic component can comply with several design requirements.
Name
This name references the inputs and can be used to refer to it from any number of magnetic components or simulations. This field can contain any valid string of characters.
Design Requirements
The design requirements represent the constraints that the designer (human or software) of the magnetic has to comply with in order to create a proper device.
As many of the requirements don’t usually have a fixed value, providing instead a tolerance or a minimum or maximum value, all field marked as numeric requirements must be specified with the following fields, of which at least one of the numeric one is compulsory:
- Nominal: Nominal numerical value for the requirement
- Minimum: Minimum numerical value for the requirement.
- Exclude Minimum: Boolean value that indicates if the minimum value is included or not.
- Maximum: Maximum numerical value for the requirement.
- Exclude Maximum: Boolean value that indicates if the maximum value is included or not.
This object must have the following fields:
The general-purpose fields (Name, Market, Topology, Operating Temperature, Terminal Type, Maximum Weight, Maximum Dimensions) are inherited from the shared PEAS designRequirementsBase (PEAS/schemas/utils.json), which also provides the optional role, allowedTechnologies, application and subApplication fields; the magnetic-specific fields are added on top by MAS.
- Name: Reference name of the design requirements.
- Magnetizing Inductance: Numeric requirement representing the inductance that the magnetic must have in order to work.
- Turns ratios: List of numeric requirements, where each element represents the turns ratio that a secondary winding must have referred to the primary. An empty list represents a component with only the primary (a basic inductor)
- Leakage inductance (optional): List of numeric requirements, where each element represents the leakage inductance that a secondary winding must have referred to the primary.
- Stray Capacitance (optional): List of numeric requirements, where each element represents the stray capacitance that a winding must have.
- Minimum Impedance (optional): List of minimum impedances at given frequencies in the primary, where each element pairs a frequency with an impedance point.
- Isolation Sides (optional): List indicating the isolation side (
primary,secondary,tertiary, ...) that each winding is connected to. - Wiring Technology (optional): Technology that must be used to create the wiring. It can be one of the following:
woundprintedstampeddeposition
- Operating Temperature (optional): Numeric requirement representing the temperature that the magnetic can reach under operating.
- Insulation requirements (optional): Field needed to calculate the insulation requirements.
- Altitude (optional): Numeric requirement representing the altitude at which the magnetic will work, in order to calculate insulation requirements.
- CTI (optional): Required Comparative Tracking Index group per IEC 60112. It can be one of the following:
groupI— CTI ≥ 600groupII— 400 ≤ CTI < 600groupIIIA— 175 ≤ CTI < 400groupIIIB— 100 ≤ CTI < 175
- Insulation Type (optional): Required type of insulation per IEC 60664-1 §4.1. It can be one of the following:
functional— Basic operation onlybasic— Single level of protection against electric shocksupplementary— Additional independent insulationdouble— Basic plus supplementary insulationreinforced— Single insulation system equivalent to double
- Overvoltage Category (optional): Required overvoltage category per IEC 60664-1 §4.3. It can be one of the following:
I— Protected equipment, low transient overvoltageII— Household appliances connected to fixed installationIII— Fixed installation equipmentIV— Equipment at origin of installation
- Pollution Degree (optional): Required pollution degree per IEC 60664-1 §4.2. It can be one of the following:
PD1— No pollution or only dry non-conductive pollutionPD2— Non-conductive pollution; occasional condensationPD3— Conductive pollution or dry pollution that becomes conductivePD4— Persistent conductive pollution
- Main Supply Voltage (optional): Numeric requirement representing the RMS voltage of the main supply to which this transformer is connected to.
- Standards (optional): List of standards that will be taken into account for insulation. Each element can be one of the following:
IEC 60664-1IEC 61558-1IEC 60335-1IEC 62368-1
- Market (optional): Market where the magnetic will end up being used. It can be one of the following:
medicalcommercialindustrialautomotivemilitaryspace
- Maximum Dimensions (optional): Object with
width,height, anddepthfields giving the maximum bounding-box dimensions for the designed magnetic, in m. - Maximum Weight (optional): Maximum weight for the designed magnetic, in kg.
- Terminal Type (optional): Type of the terminal that must be used, per winding. It can be one of the following:
pinscrewsmtflyingLeadthtpcbPadchassis
- Topology: Topology that will use the magnetic.
classDiagram
class DesignRequirements {
InsulationRequirements insulation;
List<IsolationSide> isolation_sides;
List<DimensionWithTolerance> leakage_inductance;
DimensionWithTolerance magnetizing_inductance;
Market market;
MaximumDimensions maximum_dimensions;
Double maximum_weight;
List<ImpedanceAtFrequency> minimum_impedance;
String name;
DimensionWithTolerance operating_temperature;
List<DimensionWithTolerance> stray_capacitance;
List<TerminalType> terminal_type;
String topology;
List<DimensionWithTolerance> turns_ratios;
WiringTechnology wiring_technology;
+get_*()
+set_*()
}
DesignRequirements ..> InsulationRequirements : Dependency
DesignRequirements ..> Market : Dependency
DesignRequirements ..> TerminalType : Dependency
DesignRequirements ..> DimensionWithTolerance : Dependency
class InsulationRequirements {
DimensionWithTolerance altitude;
Cti cti;
InsulationType insulation_type;
DimensionWithTolerance main_supply_voltage;
OvervoltageCategory overvoltage_category;
PollutionDegree pollution_degree;
List<InsulationStandards> standards;
+get_*()
+set_*()
}
InsulationRequirements ..> Cti : Dependency
InsulationRequirements ..> InsulationType : Dependency
InsulationRequirements ..> OvervoltageCategory : Dependency
InsulationRequirements ..> PollutionDegree : Dependency
InsulationRequirements ..> DimensionWithTolerance : Dependency
class DimensionWithTolerance {
-Bool exclude_maximum;
-Bool exclude_minimum;
-Double maximum;
-Double minimum;
-Double nominal;
+get_*()
+set_*()
}
class Cti {
<<enumeration>>
GROUP_I
GROUP_II
GROUP_II_IA
GROUP_II_IB
}
class InsulationType {
<<enumeration>>
BASIC
DOUBLE
FUNCTIONAL
REINFORCED
SUPPLEMENTARY
}
class OvervoltageCategory {
<<enumeration>>
OVC_I
OVC_II
OVC_III
OVC_IV
}
class PollutionDegree {
<<enumeration>>
PD1
PD2
PD3
PD4
}
class Market {
<<enumeration>>
AUTOMOTIVE
COMMERCIAL
INDUSTRIAL
MEDICAL
MILITARY
SPACE
}
class TerminalType {
<<enumeration>>
CHASSIS
FLYING_LEAD
PCB_PAD
PIN
SCREW
SMT
THT
}
Operating Points
The other part of a magnetic specification is the operating points that it must work under or be optimized for. Although a magnetic is normally designed for a given topology, what really matters from the electromagnetic point of view (apart from the Design Requirement defined previously) is the excitation that it has in each of its ports, the energy that excites the magnetic component. And also is not really practical to define all variables for each topology and each of its possible configurations and controls.
Due to all these the operating points were defined from the point of view of the magnetic, as topology-agnostic waveforms, collection of points that define a signal.
And because a magnetic working on a converter must function and be efficient over a range of operating conditions, it must be designed taking into account different excitations and conditions, so it can be optimal for common cases and still work in extreme cases.
To take this into account, the operating points are designed as a list, where each element contains two main fields: the operating conditions and excitations of each winding.
classDiagram
class OperatingPoint {
-OperatingConditions conditions;
-List~OperatingPointExcitation~ excitations_per_winding;
-String name;
+get_*()
+set_*()
}
OperatingPoint ..> OperatingConditions : Dependency
OperatingPoint ..> OperatingPointExcitation : Dependency
class OperatingConditions {
-Double ambient_relative_humidity;
-Double ambient_temperature;
-Cooling cooling;
-String name;
+get_*()
+set_*()
}
OperatingConditions ..> Cooling : Dependency
class Cooling {
-String fluid;
-Double temperature;
-Double flow_diameter;
-List<Double> velocity;
-List<Double> dimensions;
-Double interface_thermal_resistance;
-Double interface_thickness;
-Double thermal_resistance;
-Double maximum_temperature;
+get_*()
+set_*()
}
class OperatingPointExcitation {
-SignalDescriptor current;
-Double frequency;
-SignalDescriptor magnetic_field_strength;
-SignalDescriptor magnetic_flux_density;
-SignalDescriptor magnetizing_current;
-String name;
-SignalDescriptor voltage;
+get_*()
+set_*()
}
OperatingPointExcitation ..> SignalDescriptor : Dependency
class SignalDescriptor {
-Harmonics harmonics;
-Processed processed;
-Waveform waveform;
+get_*()
+set_*()
}
Name
This name references the Operating Point and can be used to refer to it from any number of magnetic components or simulations. This field can contain any valid string of characters.
Operating Conditions
Before defining the excitations it is necessary to define the ambient conditions that will exist at that point. The reason these variables are defined here and not in the previous section of Design Requirements is to give the opportunity to design the magnetic for different excitations and different temperature and humidities and see how it behaves, instead of a global maximum value.
- Ambient temperature: Ambient temperature for this operating point.
- Relative humidity (optional): Relative humidity for this operating point.
- Cooling: Dictionary/Map that represents the cooling condition applied to the magnetic. It can be one of the following options:
- Natural Convection Cooling: Data describing a natural convection cooling.
- Temperature: Temperature of the fluid. To be used only if different from ambient temperature.
- Fluid: Name of the fluid used, default: air.
- Forced Convection Cooling: Data describing a forced convection cooling.
- Velocity: Three-dimensional vector describing the velocity of the fluid.
- Flow Diameter: Diameter of the fluid flow, normally defined as a fan diameter.
- Temperature: Temperature of the fluid. To be used only if different from ambient temperature.
- Fluid: Name of the fluid used.
- Heatsink Cooling: Data describing a heatsink cooling.
- Thermal Resistance: Bulk thermal resistance of the heat sink, in W/K.
- Interface Thermal Resistance: Bulk thermal resistance of the thermal interface used to connect the device to the heatsink, in W/mK.
- Interface Thickness: Thickness of the thermal interface used to connect the device to the heatsink, in m.
- Dimensions: Dimensions of the cube defining the heatsink.
- Cold Plate Cooling: Data describing a cold plate cooling.
- Thermal Resistance: Bulk thermal resistance of the cold plate, in W/K.
- Maximum Temperature: Maximum temperature of the cold plate.
- Interface Thermal Resistance: Bulk thermal resistance of the thermal interface used to connect the device to the cold plate, in W/mK.
- Interface Thickness: Thickness of the thermal interface used to connect the device to the cold plate, in m.
- Dimensions: Dimensions of the cube defining the cold plate.
- Natural Convection Cooling: Data describing a natural convection cooling.
Excitation per winding
This section describes the most important part of all the inputs, the waveforms that the magnetic will see, and be excited by, at each of its inputs and outputs. In order to have a structure that supports any number and combinations of individual windings, the excitations are defined in a list, with a number of elements equal to the number of elements in the Design Requirement field of Turns Ratios plus one, or what is equivalent, the number of windings.
It is possible that excitations for some or all secondaries are missing from specification, in which case they can be calculated by reflecting the waveform from the primary with the turns ratio of each secondary.
Each of these elements are composed of a frequency and one or more Electromagnetic Parameters (e.g.: current, voltage), and before looking at all the possible fields, I would like to define what an Electromagnetic Parameter is in this context.
Electromagnetic Parameters
This type is a template for any kind of signal existing in a magnetic, and as it happens with the important variables of the magnetic core, they are defined at three levels of definition, all of them derivable from any of them, which means that any level can completely define the signal.
The first level of definition is the direct waveform, and contains the following fields:
- Data: List of numeric values that define the signal. If the list comes without an associated time field, these values must be considered equidistant and evenly spread over the period.
- Time (optional): List of numeric values that define the time of each of the data points inside the period.
The second level of definition is the processed data about the waveform, from which the waveform itself can be built back. Additionally, they are designed to quickly provide for the values necessary in most analytical models. It contains the following fields:
- Label: Label of the waveform, if applicable. Used for common waveforms. If
custom, the proper waveform must be defined. It can be one of the following:customtriangular,triangularWithDeadtimesinusoidalrectangular,rectangularWithDeadtime,rectangularDCMunipolarRectangular,unipolarTriangularbipolarRectangular,bipolarTriangularflybackPrimary,flybackSecondary,flybackSecondaryWithDeadtimesecondaryRectangular,secondaryRectangularWithDeadtime
- Duty Cycle: The duty cycle of the waveform, if applicable.
- Peak To Peak: The peak to peak value of the waveform.
- Peak: The maximum positive value of the waveform.
- Offset: The offset value of the waveform, referred to 0.
- RMS: The Root Mean Square value of the waveform.
- Effective Frequency: The effective frequency value of the waveform, according to https://ieeexplore.ieee.org/document/750181, Appendix C
- AC Effective Frequency: The effective frequency value of the AC component of the waveform.
- THD: The Total Harmonic Distortion of the waveform, according to https://en.wikipedia.org/wiki/Total_harmonic_distortion
The third and last level of definition is the harmonics data, which is a list of the most powerful harmonics in the signal, created by applying the Discrete Fourier Transform to the signal, and which can be reversed in order to create back the original signal, although with loss of information, as the list of harmonics is not infinite. It has the following fields:
- Amplitudes: List of amplitudes of the harmonics that compose the waveform.
- Frequencies: List of frequencies of the harmonics that compose the waveform.
classDiagram
class SignalDescriptor {
-Harmonics harmonics;
-Processed processed;
-Waveform waveform;
+get_*()
+set_*()
}
SignalDescriptor ..> Harmonics : Dependency
SignalDescriptor ..> Processed : Dependency
SignalDescriptor ..> Waveform : Dependency
class Harmonics {
-std::vector<double> amplitudes;
-std::vector<double> frequencies;
+get_*()
+set_*()
}
class Processed {
-Double ac_effective_frequency;
-Double duty_cycle;
-Double effective_frequency;
-WaveformLabel label;
-Double offset;
-Double peak;
-Double peak_to_peak;
-Double rms;
-Double thd;
+get_*()
+set_*()
}
Processed ..> WaveformLabel : Dependency
class WaveformLabel {
<<enumeration>>
CUSTOM
FLYBACK
PHASE_SHIFTED_FULL_BRIDGE
SINUSOIDAL
SQUARE
SQUARE_WITH_DEAD_TIME
TRIANGULAR
}
class Waveform {
-Integer number_periods;
-String ancillary_label;
-List~double~ data;
-List~double~ time;
+get_*()
+set_*()
}
Excitation
Now that we have defined what we are calling Electromagnetic Parameter, let’s use that definition to finally describe the structure of the excitation per winding, which contains the following fields (pun intended):
Frequency: Frequency of the waveform, common for all electromagnetic parameters Current: Electromagnetic Parameter representing the current through the wires of the winding. Voltage: Electromagnetic Parameter representing the voltage that falls at the winding. Magnetizing Current: Electromagnetic Parameter representing the part of the current used in magnetizing the magnetic core and generating the magnetic field. For inductors with one winding it is equal to the current field. Magnetic Flux Density: Electromagnetic Parameter representing the magnetic flux density circulating through the magnetic core, induced by the magnetizing current. Magnetic Field Strength: Electromagnetic Parameter representing the magnetic field strength circulating through the magnetic core, induced by the magnetizing current.
Wrapping up the inputs As happened with the magnetic, the MAS format for the inputs can include quite a lot of information, but it is designed so all that information can be calculated from a small specification file, perfectly understandable by humans and software.
Example inputs for an inductor:
{
"name": "My Inputs",
"designRequirements": {
"magnetizingInductance": {"nominal": 0.000465},
"turnsRatios": []
},
"operatingPoints": [
{
"conditions": {
"ambientTemperature": 25.0,
"cooling": {
"fluid": "air",
"velocity": [0, 0, 0]
}
},
"excitationsPerWinding": [
{
"frequency": 100000.0,
"current": {
"waveform": {
"data": [41.0, 51.0, 41.0],
"time": [0.0, 2.5e-06, 1e-05]
}
},
"voltage": {
"waveform": {
"data": [7.5, 7.5, -2.5, -2.5, 7.5],
"time": [0.0, 2.5e-06, 2.5e-06, 1e-05, 1e-05]
}
}
}
]
}
]
}