Main Content

addPulseData

Add pulse data to TestSummary table

Since R2025a

Description

addPulseData(myHppcTest,HPPCPulseData,Name=Value) adds the current pulse data HPPCPulseData to the TestSummary table of the HPPCTest object, myHppcTest. This function also specifies options using one or more name-value arguments.

example

Examples

collapse all

This example shows how to add the data of a current pulse to a hybrid pulse power characterization (HPPC) test object, HPPCTest.

Open the DownloadBatteryData example and load the required HPPC data obtained for a BAK 2.9 Ah battery cell at 25 °C. This data consists of a table with three columns. The columns of the table refer to time, voltage, and current values, respectively.

openExample("simscapebattery/DownloadBatteryDataExample")
load("testDataBAKcells/hppcDataBAKcell25degC.mat")

Store the HPPC data inside an HPPCTest object by using the hppcTest function. You can use this object to view the data, add or edit breakpoints, add or remove pulses, and include additional information such as state of charge and capacity. The HPPC data is a table, so you must also specify each column name by using the TimeVariable, VoltageVariable, and CurrentVariable arguments. These names must match the names of the columns in the hppcData table.

hppcExp25degC = hppcTest(hppcData,...
    TimeVariable="time (s)",...
    VoltageVariable="voltage (V)",...
    CurrentVariable="current (A)");

Analyze the identified current pulses of the hppcExp object by using the TestSummary property. This property contains a summary of the HPPC test that shows all the identified pulses and related data, returned as a table.

hppcExp25degC.TestSummary
ans =

  18×13 table

    PulseID    Directionality      SOC          HPPCData         PulseDuration    PseudoOCV_V    MaximumVoltage    MinimumVoltage    Current_A    C_rate    PulseStartIndex    PulseEndIndex    Temperature_degC
    _______    ______________    _______    _________________    _____________    ___________    ______________    ______________    _________    ______    _______________    _____________    ________________

       1        "Discharge"            1    {701×6 timetable}         30            4.1745           4.1745            3.7846         -6.1869     1.8976           354              1055               25       
       2        "Discharge"      0.90376    {701×6 timetable}         30            4.0837           4.0837            3.7479          -6.187     1.8977          2702              3403               25       
       3        "Discharge"      0.80754    {702×6 timetable}         30            4.0132           4.0132            3.6652         -6.1867     1.8975          5049              5751               25       
       4        "Discharge"      0.71133    {701×6 timetable}         30            3.9226           3.9226            3.5775         -6.1868     1.8976          7398              8099               25       
       5        "Discharge"      0.61512    {701×6 timetable}         30             3.846            3.846            3.4942         -6.1868     1.8976          9746             10447               25       
       6        "Discharge"      0.51891    {701×6 timetable}         30            3.7353           3.7353            3.4001         -6.1871     1.8977         12094             12795               25       
       7        "Discharge"       0.4227    {701×6 timetable}         30              3.65             3.65            3.3236         -6.1867     1.8975         14442             15143               25       
       8        "Discharge"      0.32649    {701×6 timetable}         30            3.6015           3.6015            3.2652         -6.1869     1.8976         16790             17491               25       
       9        "Discharge"      0.23028    {701×6 timetable}         30            3.5507           3.5507            3.1931         -6.1869     1.8976         19138             19839               25       
      10        "Charge"         0.98415    {502×6 timetable}         10            4.1158           4.3889            4.1158          4.6393      1.423          1055              1557               25       
      11        "Charge"         0.88793    {502×6 timetable}         10             4.057           4.3001             4.057          4.6406     1.4233          3403              3905               25       
      12        "Charge"         0.79172    {502×6 timetable}         10            3.9674           4.2113            3.9674          4.6394      1.423          5751              6253               25       
      13        "Charge"         0.69551    {502×6 timetable}         10            3.8751           4.1175            3.8751          4.6396      1.423          8099              8601               25       
      14        "Charge"          0.5993    {502×6 timetable}         10            3.7905           4.0355            3.7905          4.6396      1.423         10447             10949               25       
      15        "Charge"         0.50309    {502×6 timetable}         10            3.6936           3.9339            3.6936          4.6405     1.4233         12795             13297               25       
      16        "Charge"         0.40688    {502×6 timetable}         10            3.6224           3.8602            3.6224          4.6396      1.423         15143             15645               25       
      17        "Charge"         0.31066    {502×6 timetable}         10            3.5695           3.8109            3.5695          4.6397     1.4231         17491             17993               25       
      18        "Charge"         0.21445    {502×6 timetable}         10            3.5098           3.7597            3.5098          4.6397     1.4231         19839             20341               25       

Load the HPPC data obtained for a BAK 2.9 Ah battery cell at 0 °C and store the data inside another HPPCTest object.

load("testDataBAKcells/hppcDataBAKcell0degC.mat")
hppcExp0degC = hppcTest(hppcData,TimeVariable="time (s)",... 
VoltageVariable="voltage (V)",...
CurrentVariable="current (A)",Temperature=zeros(numel(hppcData(:,1)),1));

Retrieve a single pulse from the hppcExp0degC object.

singlePulse = hppcExp0degC.TestSummary.HPPCData{17}

Add this pulse data to the hppcExp25degC object by using the addPulseData function and analyze the TestSummary property table. Observe how the table now contains an additional pulse.

addPulseData(hppcExp25degC,singlePulse)
hppcExp25degC.TestSummary
ans =

  19×13 table

    PulseID    Directionality      SOC          HPPCData         PulseDuration    PseudoOCV_V    MaximumVoltage    MinimumVoltage    Current_A    C_rate    PulseStartIndex    PulseEndIndex    Temperature_degC
    _______    ______________    _______    _________________    _____________    ___________    ______________    ______________    _________    ______    _______________    _____________    ________________

       1        "Discharge"            1    {701×6 timetable}         30            4.1745           4.1745            3.7846         -6.1869     1.8976           354              1055               25       
       2        "Discharge"      0.90376    {701×6 timetable}         30            4.0837           4.0837            3.7479          -6.187     1.8977          2702              3403               25       
       3        "Discharge"      0.80754    {702×6 timetable}         30            4.0132           4.0132            3.6652         -6.1867     1.8975          5049              5751               25       
       4        "Discharge"      0.71133    {701×6 timetable}         30            3.9226           3.9226            3.5775         -6.1868     1.8976          7398              8099               25       
       5        "Discharge"      0.61512    {701×6 timetable}         30             3.846            3.846            3.4942         -6.1868     1.8976          9746             10447               25       
       6        "Discharge"      0.51891    {701×6 timetable}         30            3.7353           3.7353            3.4001         -6.1871     1.8977         12094             12795               25       
       7        "Discharge"       0.4227    {701×6 timetable}         30              3.65             3.65            3.3236         -6.1867     1.8975         14442             15143               25       
       8        "Discharge"      0.32649    {701×6 timetable}         30            3.6015           3.6015            3.2652         -6.1869     1.8976         16790             17491               25       
       9        "Discharge"      0.23028    {701×6 timetable}         30            3.5507           3.5507            3.1931         -6.1869     1.8976         19138             19839               25       
      10        "Charge"         0.98415    {502×6 timetable}         10            4.1158           4.3889            4.1158          4.6393      1.423          1055              1557               25       
      11        "Charge"         0.88793    {502×6 timetable}         10             4.057           4.3001             4.057          4.6406     1.4233          3403              3905               25       
      12        "Charge"         0.79172    {502×6 timetable}         10            3.9674           4.2113            3.9674          4.6394      1.423          5751              6253               25       
      13        "Charge"         0.69551    {502×6 timetable}         10            3.8751           4.1175            3.8751          4.6396      1.423          8099              8601               25       
      14        "Charge"          0.5993    {502×6 timetable}         10            3.7905           4.0355            3.7905          4.6396      1.423         10447             10949               25       
      15        "Charge"         0.50309    {502×6 timetable}         10            3.6936           3.9339            3.6936          4.6405     1.4233         12795             13297               25       
      16        "Charge"         0.40688    {502×6 timetable}         10            3.6224           3.8602            3.6224          4.6396      1.423         15143             15645               25       
      17        "Charge"         0.31066    {502×6 timetable}         10            3.5695           3.8109            3.5695          4.6397     1.4231         17491             17993               25       
      18        "Charge"         0.21445    {502×6 timetable}         10            3.5098           3.7597            3.5098          4.6397     1.4231         19839             20341               25       
      19        "Charge"         0.31068    {502×5 timetable}         10            3.5704           3.9511            3.5704          3.9633     1.2156             1               502                0       

Input Arguments

collapse all

Hybrid pulse power characterization (HPPC) test container to update, specified as an HPPCTest object.

Time, voltage, and current data for the HPPC pulse, specified as a matrix, table object, or timetable object.

Data Types: double | table

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: addPulseData(myTest,myData,TimeVariable="NewTimeName")

Name of the time variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the voltage variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the current variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the charge variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the temperature variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the state-of-charge variable in the HPPCPulseData table, specified as a string scalar or character vector.

Data Types: string | char

Battery capacity used for the Coulomb counting algorithm, specified as a scalar.

Data Types: double

Version History

Introduced in R2025a

See Also