ISEAFrame  2.26.1
Parameter objects

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.

Constant value

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>

1D lookup parameter object with state binding

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>

2D lookup parameter object with state binding

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>

Expression 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>

Rescaling

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>

Combination of objects

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>