Load Definition¶
Description¶
The term “Load” describes an individual
- Environmental load or a
- Functional load
that applies to a component within an operating mode. Loads can be of acoustic, fluid, mechanical, thermal, electrical, radiation or chemical type [ZVEI:RobVal]. For instance, a mechanical load is an externally applied and internally generated force that acts on a system or device. The application of loads results in stress and strain responses within the structures and materials of the system or device.
A load distribution is a statistically described load level over time, cycles, temperature, voltage, radiation, chemical, climatic conditions, or other load types [ZVEI:RobVal].
Definition of ‘LoadDefinition’ Element¶
The contents of the LoadDefinition element can be encrypted using the W3C XML-encryption mechanism [XML-SEC].
Definition of ‘Load’ Element¶
A specific load can be defined in three different ways via the Load element:
Loads defined by Load Quantities¶
A LoadQuantity element may consist of either a
Furthermore, all single single, vector or matrix quantities can also be defined as
- Quantities with interval values,
- Quantities with values having relative or absolute variations,
- Quantities with interval values and whose values have relative or absolute variations.
See Section Math Primitives for details and more examples.
Loads defined by Raw Data¶
Loads can be defined by externally provided data, such as a text based CSV or JSON file or as file containing a Meta Model using the RawData element.
CSV File
The MPFO-XML format supports the CSV file format in the CSV sub-element. MPFO-XML allows the direct inclusion of a CVS based file or the indirect inclusion via the standard XML xinclude mechanism. The parsing, checking of structural validity and conversion to MPFO-XML quantities of embedded or included CSV data most be done at application level.
...
<!-- Component load definitions -->
<LoadDefinition>
<Loads>
<!-- Load definition via external CSV data -->
<Load Id="ID.Load.0" ShortDescription="External CSV data">
<RawData>
<CSV>
<!-- Include external CSV file data -->
<InlineData>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="example_data.csv"/>
</InlineData>
<!-- Define unit mapping -->
<ColumnUnits ElementCount="3">
<DefaultElement>
<Unit>
<mml:math>
<mml:csymbol cd="SI_BaseUnits1">metre</mml:csymbol>
</mml:math>
</Unit>
</DefaultElement>
<Elements>
<Element Index="1">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">meter</mml:csymbol>
</mml:math>
</Unit>
</Element>
<Element Index="3">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">kilogram</mml:csymbol>
</mml:math>
</Unit>
</Element>
</Elements>
</ColumnUnits>
</CSV>
</RawData>
</Load>
</Loads>
</LoadDefinition>
...
JSON File
The MPFO-XML format supports the JSON file format in the JSON sub-element. MPFO-XML allows the direct inclusion of a JSON based file or the indirect inclusion via the standard XML xinclude mechanism. The parsing, checking of structural validity and conversion to MPFO-XML quantities of embedded or included JSON data most be done at application level.
...
<!-- Component load definitions -->
<LoadDefinition>
<Loads>
<!-- Load definition via external JSON data -->
<Load Id="ID.Load.0" ShortDescription="External JSON data">
<RawData>
<JSON>
<!-- Include external JSON file data -->
<InlineData>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" href="example_data.json"/>
</InlineData>
<!-- Define unit mapping -->
<ColumnUnits ElementCount="3">
<DefaultElement>
<Unit>
<mml:math>
<mml:csymbol cd="SI_BaseUnits1">metre</mml:csymbol>
</mml:math>
</Unit>
</DefaultElement>
<Elements>
<Element Index="1">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">meter</mml:csymbol>
</mml:math>
</Unit>
</Element>
<Element Index="3">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">kilogram</mml:csymbol>
</mml:math>
</Unit>
</Element>
</Elements>
</ColumnUnits>
</JSON>
</RawData>
</Load>
</Loads>
</LoadDefinition>
...
Meta Model File
The MPFO-XML format supports the XML based PMML [PMML] format as meta model format in the MetaModel sub-element. MPFO-XML allows the direct inclusion of a PMML based file or the indirect inclusion via the standard XML xinclude mechanism. The structural validity of the embedded or included PMML XML data is automatically validated during MPFO-XML file validation (see Document Validation). However, the parsing and conversion to MPFO-XML quantities of embedded or included PMML data most be done at application level.
...
<!-- Component load definitions -->
<LoadDefinition>
<Loads>
<!-- Load definition via external PMML data -->
<Load Id="ID.Load.0" ShortDescription="PMML">
<RawData>
<MetaModel Type="pmml">
<!-- Include external PMML definitions -->
<InlineData>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="PMML_Model.xml"/>
</InlineData>
<!-- Define unit mapping -->
<ColumnUnits ElementCount="3">
<DefaultElement>
<Unit>
<mml:math>
<mml:csymbol cd="SI_BaseUnits1">metre</mml:csymbol>
</mml:math>
</Unit>
</DefaultElement>
<Elements>
<Element Index="1">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">meter</mml:csymbol>
</mml:math>
</Unit>
</Element>
<Element Index="3">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">gram</mml:csymbol>
</mml:math>
</Unit>
</Element>
</Elements>
</ColumnUnits>
</MetaModel>
</RawData>
</Load>
</Loads>
</LoadDefinition>
...
Loads defined by Reference¶
Loads can be defined as load reference (via element ID) to another existing load via the LoadRef element. References to other load references are not permitted to avoid cyclic dependency problems.
The referenced load will be imported and can optionally be adjusted. Adjustment uses the same mechanism as Transformed Functions which allows to define a value transformation function for postprocessing and one or more argument transformation functions for preprocessing.
The MPFO-XML standard template library ./include/stdlib.xml hereby provides several formula definitions for these transformations:
- Scaling (ID: ID.STD.FormulaTemplate.Scale),
- Offset (ID: ID.STD.FormulaTemplate.Offset),
- Scale and offset (ID: ID.STD.FormulaTemplate.ScaleThenOffset),
- Offset and scale (ID: ID.STD.FormulaTemplate.OffsetThenScale),
- Negation (ID: ID.STD.FormulaTemplate.Negation).
<!-- Component definition as MPFO-XML mission profile document. -->
<MPFo Id="ID.COMPONENT.0">
<!-- External MPFO-XML definitions -->
<Include>
<!-- Include external MPFO standard definitions -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="./include/stdlib.xml"/>
</Include>
...
<!-- Component load definitions -->
<LoadDefinition>
<Loads>
<!-- Definition of the resistor input current as DC current i = 0.1234 A -->
<Load Id="ID.Load.0" ShortDescription="Input current I0">
<LoadQuantity Id="ID.QLoad.0" Symbol="I0">
<Quantity>
<SNumber>0.1234</SNumber>
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">ampere</mml:csymbol>
</mml:math>
</Unit>
</Quantity>
</LoadQuantity>
</Load>
...
<!-- Definition of the resistor output current as DC current i = -0.1234 A as negation of load ID.Load.0 -->
<Load Id="ID.Load.1" ShortDescription="Output current I1">
<LoadRef Ref="ID.Load.0">
<Transformation>
<ValueTransformation>
<!-- Formula ID.STD.Formula.Negation is defined in ./include/stdlib.xml -->
<FormulaRef Ref="ID.STD.Formula.Negation"/>
</ValueTransformation>
</Transformation>
</LoadRef>
</Load>
</Loads>
</LoadDefinition>
...
</MPFo>
Definition of ‘LoadSet’ Element¶
Several load definitions can be combined into load sets via the LoadSet element. Load sets can be used to assign commonly shared but time-sequence independent loads to several ports at once (See Action Definition). Load sets have their own ID and can therefore be referenced via an IDREF. An individual load may be referenced in more than one load set.
Individual loads collected in a load set are typically independent from each other, i.e., a load does not have an impact on another load. For example, the voltages of an ESD event applied to a circuit port do not relate to a specific ambient temperature. In case a load does have an impact on another load but that impact was not defined before (e.g. via LoadQuantities) the loads should be aligned to share the same reference frame. For example, in case transient voltages and currents at a circuit port are collected and defined as different loads, then the alignment can transform the relationships from v(t) and i(t) to i,v(t).
Note
The Action element Action Definition may also be used to define load sets that are action specific.
Examples¶
Example 1: Load definition for two-port resistor example
<!-- Component definition as MPFO-XML mission profile document. -->
<MPFo Id="ID.COMPONENT.0">
<!-- External MPFO-XML definitions -->
<Include>
<!-- Include external MPFO standard definitions -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../include/stdlib.xml"/>
<!-- Include the LV124 load definitions -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../include/LV124.xml"/>
</Include>
...
<!-- Component load definitions -->
<LoadDefinition>
<Loads>
<!-- Definition of the resistor input current as DC current i = 123.4 mA -->
<Load Id="ID.Load.0" ShortDescription="Input current I0">
<LoadQuantity Id="ID.QLoad.0" Symbol="I0">
<Quantity>
<SNumber>0.1234</SNumber>
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">ampere</mml:csymbol>
</mml:math>
</Unit>
</Quantity>
</LoadQuantity>
</Load>
<!-- Definition of the resistor output current as DC current i = -123.4 mA -->
<Load Id="ID.Load.1" ShortDescription="Output current I1">
<LoadRef OriginalLoadRef="ID.Load.0">
<TransformationFunction>
<Formula>
<FormulaTemplate Symbol="neg">
<Arguments>
<Argument Symbol="i"/>
</Arguments>
<mml:math>
<mml:apply>
<mml:csymbol cd="arith1">unary_minus</mml:csymbol>
<mml:ci>i</mml:ci>
</mml:apply>
</mml:math>
</FormulaTemplate>
</Formula>
</TransformationFunction>
</LoadRef>
</Load>
<!-- Environment temperature T1 = 298 K present for a certain period of time -->
<Load Id="ID.Load.Env.0" ShortDescription="Environment temperature T1 = 298 K for 55 h">
<LoadQuantity Id="ID.QLoad.Env.0" Symbol="T1">
<SymbolicFunction>
<!-- Re-usable function template that defines a piecewise function to define a time interval later -->
<SymbolicFunctionTemplate Id="ID.Function-constant-temperature" Symbol="T">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">kelvin</mml:csymbol>
</mml:math>
</Unit>
<Arguments>
<ArgumentWithUnit Symbol="t">
<Unit>
<mml:math>
<mml:csymbol cd="SI_BaseUnits1">hour</mml:csymbol>
</mml:math>
</Unit>
</ArgumentWithUnit>
</Arguments>
<Parameters>
<ParameterWithUnit Symbol="T1" TeX="T_1">
<Unit>
<mml:math>
<mml:csymbol cd="SI_NamedDerivedUnits1">kelvin</mml:csymbol>
</mml:math>
</Unit>
</ParameterWithUnit>
<ParameterWithUnit Symbol="t1" TeX="t_1">
<Unit>
<mml:math>
<mml:csymbol cd="SI_BaseUnits1">hour</mml:csymbol>
</mml:math>
</Unit>
</ParameterWithUnit>
</Parameters>
<mml:math>
<mml:apply>
<!-- define a piecewise linear function between 0 <= t <= t1 where t1 will be defined later -->
<mml:csymbol cd="piece1">piecewise</mml:csymbol>
<mml:apply>
<mml:csymbol cd="piece1">piece</mml:csymbol>
<mml:ci>T1</mml:ci>
<mml:apply>
<mml:csymbol cd="logic1">and</mml:csymbol>
<mml:apply>
<mml:csymbol cd="relation1">geq</mml:csymbol>
<mml:ci>t</mml:ci>
<mml:cn type="real">0</mml:cn>
</mml:apply>
<mml:apply>
<mml:csymbol cd="relation1">leq</mml:csymbol>
<mml:ci>t</mml:ci>
<mml:ci>t1</mml:ci>
</mml:apply>
</mml:apply>
</mml:apply>
</mml:apply>
</mml:math>
</SymbolicFunctionTemplate>
<!-- Assign values to the function template parameters -->
<ParameterValues>
<!-- Limit the duration to 55 h -->
<ParameterValueMagnitude Symbol="t1">
<SNumber>55</SNumber>
</ParameterValueMagnitude>
<!-- Set temperature to 298 K -->
<ParameterValueMagnitude Symbol="T1">
<SNumber>298</SNumber>
</ParameterValueMagnitude>
</ParameterValues>
</SymbolicFunction>
</LoadQuantity>
</Load>
<!-- Environment temperature T2 = 423 K present for 350 h -->
<Load Id="ID.Load.Env.1" ShortDescription="Environment temperature T2=423K">
<LoadQuantity Id="ID.QLoad.Env.1" Symbol="T2">
<SymbolicFunction>
<!-- Fortunately, we can also re-use previously defined function templates -->
<SymbolicFunctionTemplateRef Ref="ID.Function-constant-temperature"/>
<!-- Assign values to the function template parameters -->
<ParameterValues>
<!-- Limit the duration to 350 hours -->
<ParameterValueMagnitude Symbol="t1">
<SNumber>350</SNumber>
</ParameterValueMagnitude>
<!-- Set temperature to 423K -->
<ParameterValueMagnitude Symbol="T1">
<SNumber>423</SNumber>
</ParameterValueMagnitude>
</ParameterValues>
</SymbolicFunction>
</LoadQuantity>
</Load>
</Loads>
</LoadDefinition>
...
</MPFo>