ISEAFrame
2.26.1
|
Parameter objects are used for the parameterization of electrical objects. This makes it possible for elements of the ECM to change during the simulation depending on the state of the battery. Each xml element describing a parameter object has the attribute "class" to determine the object type. To make object values dependent on the battery state, object referencing is used.
An object with constant value is added by setting the "class" attribute to ConstObj.
XML Tag | Type | Explanation |
---|---|---|
Value | double | constant value of the parameter object |
Definition of a constant parameter object:
<Object class="ConstObj"> <Value>10</Value> </Object>
XML Tag | Type | Default value | Explanation |
---|---|---|---|
Attribute LookupType | Lookup type | LinearInterpolation | type of interpolation between data points |
State | State object | state that determines the position in the 1D lookup | |
LookupData | comma-separated doubles | values of the lookup | |
MeasurementPoints | comma-separated doubles | measurement points of the lookup |
Definition of a 1D parameter object with state binding:
<Object class="LookupObj1dWithState" LookupType="LinearInterpolation"> <State cacheref="Soc" /> <LookupData>1,2,3</LookupData> <MeasurementPoints>10.2,22.0,13.1</MeasurementPoints> </Object>
XML Tag | Type | Default value | Explanation |
---|---|---|---|
Attribute LookupType | Lookup type | LinearInterpolation | type of interpolation between data points |
RowState | State object | state that is contant along each row of the table | |
ColState | State object | state that is constant along each column of the table | |
LookupData | comma-separated doubles | values of the lookup table, rows of the table are seperated by semicolons | |
MeasurementPointsRow | comma-separated doubles | measurement points of the lookup table columns | |
MeasurementPointsColumn | comma-separated doubles | measurement points of the lookup table rows |
Definition of a 2D parameter object with state binding:
<Object class="LookupObj2dWithState" LookupType="LinearInterpolation"> <RowState cacheref="ThermalState"/> <ColState cacheref="Soc"/> <LookupData> 0.0288200000000001, 0.0273753907300395, 0.0264344729259093, 0.0135127660821939; 0.0288200000000001, 0.0273753907300395, 0.0270767085789135, 0.0275280515729565; 0.0290500142586083, 0.0277525443197526, 0.0275261486868454, 0.0276368633915343; 0.0288630838514731, 0.0278576890117617, 0.0275537618404411, 0.0277933657755191; 0.0286781206123875, 0.0277738617773271, 0.0275453220226692, 0.0259269199477185; 0.0285331061111646, 0.0277867915477187, 0.0268358840093433, 0.0267808653711796; 0.0286358289536196, 0.0277803384908296, 0.0257328031445100, 0.0272959924289106; </LookupData> <MeasurementPointsRow>0, 10, 23, 50</MeasurementPointsRow> <MeasurementPointsColumn>5, 20, 35, 50, 65, 80, 90</MeasurementPointsColumn> </Object>
This object can be used to get a value from a mathematical expression.
XML Tag | Type | Explanation |
---|---|---|
Expression | mathematical expression | expression that is evaluated each time the object value is needed |
Rescale | rescale (see below) | rescaling of the calculated value |
Parameters | list of state objects | list of states that are used as parameters in the expression |
- Attribute name | string | variable name used in the expression. If this attribute is not set, but the attribute cacheref is used, that name is used instead |
- Rescale | rescale (see below) | rescaling of the parameter before the expression is evaluated |
To evaluate the expressions, the library exprtk is used. The documentation provides a list of operations that can be used in the expressions.
<Object class="ExpressionObj"> <Expression>Soc / 2 + T / 3</Expression> <Parameters> <Param cacheref="Soc"/> <Param cacheref="ThermalState" name="T"/> </Parameters> </Object>
The input parameters as well as the calculated output value of the expression object can be rescaled by specifying an input range that is mapped to an output range. This is done by adding an element with the tag Rescale that contains the following children:
XML Tag | Type | Explanation |
---|---|---|
InputRangeMinimum | double | lower end of the input range |
InputRangeMaximum | double | upper end of the input range |
OutputRangeMinimum | double | lower end of the output range |
OutputRangeMaximum | double | upper end of the output range |
The value is rescaled according to the formula
\begin{eqnarray*} f(x) = (x - InputRangeMinimum) \frac{OutputRangeMaximum - OutputRangeMinimum}{InputRangeMaximum - InputRangeMinimum} + OutputRangeMinimum \end{eqnarray*}
<Object class="ExpressionObj"> <Expression>Soc / 2 + T / 3</Expression> <Rescale> <InputRangeMinimum>10</InputRangeMinimum> <InputRangeMaximum>60</InputRangeMaximum> <OutputRangeMinimum>0</OutputRangeMinimum> <OutputRangeMaximum>5</OutputRangeMaximum> </Rescale> <Parameters> <Param cacheref="Soc"> <Rescale> <InputRangeMinimum>0</InputRangeMinimum> <InputRangeMaximum>100</InputRangeMaximum> <OutputRangeMinimum>10</OutputRangeMinimum> <OutputRangeMaximum>90</OutputRangeMaximum> </Rescale> </Param> <Param cacheref="ThermalState" name="T"> <Rescale> <InputRangeMinimum>0</InputRangeMinimum> <InputRangeMaximum>30</InputRangeMaximum> <OutputRangeMinimum>10</OutputRangeMinimum> <OutputRangeMaximum>50</OutputRangeMaximum> </Rescale> </Param> </Parameters> </Object>
The values of multiple objects can be combined to produce a single value.
XML Tag | Type | Explanation |
---|---|---|
Attribute Operation | Add, Multiply or Divide | specifies how the object values are combined |
Children | list of parameter objects | objects that are combined |
<Object class="MultiObj" Operation="Add"> <Children> <c1 class='ConstObj'> <Value> 10</Value></c1> <c2 class='ConstObj'> <Value> 20</Value></c2> <c3 class='ConstObj'> <Value> 30</Value></c3> </Children> </Object>