createPulses
Identify pulses and create pulse objects from experimental data
Description
createPulses(
identifies the location of
pulse events. Creates separate pulse objects from the
psObj
)Battery.PulseSequence
object experimental data.
createPulses(
identifies the location of pulse events. Creates separate pulse objects from the
psObj
,Name,Value
)Battery.PulseSequence
object experimental data with additional options
specified by one or more Name,Value
pair arguments.
Examples
Create Pulse Objects from Data
This example shows how to create pulse objects from data.
Create a pulse sequence object.
psObj = Battery.PulseSequence; disp(psObj)
Load data from a file.
FileName = 'Synthetic_LiPo_PulseDischarge.mat';
[time,voltage,current] = Battery.loadDataFromMatFile(FileName);
Add the data to the pulse sequence.
addData(psObj,time,voltage,current);
Create pulse objects from data.
createPulses(psObj,... 'CurrentOnThreshold',0.1,... 'NumRCBranches',3,... 'RCBranchesUse2TimeConstants',false,... 'PreBufferSamples',10,... 'PostBufferSamples',15);
Input Arguments
psObj
— Instance of Battery.PulseSequence
class
Battery.PulseSequence
object
Battery.PulseSequence
object for the pulse sequence that you want to analyze.
Name-Value Arguments
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.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: createPulses(psObj,'CurrentOnThreshold',0.1)
CurrentOnThreshold
— Minimum current magnitude
0.025
(default) | scalar
Use this value to specify the minimum current magnitude for identifying the pulse
locations, in A. The createPulses
function considers values below
the CurrentOnThrehsold
as relaxation or measurement noise.
Example: createPulses(psObj,'CurrentOnThreshold',0.1)
Data Types: double
NumRCBranches
— Number of RC branches
3
(default) | scalar
Use this value to specify the number of RC branches. To change the number of
branches after an estimation, you must rerun createPulses
along
with any estimation steps. Rerunning ensures that the estimation parameters are the
right size.
Example: createPulses(psObj,'NumRCBranches',4)
Data Types: uint32
RCBranchesUse2TimeConstants
— Use load and relaxation time constants
false
The createPulses
function does not support using separate time
constants for load and relaxation when it estimates each RC branch. If you set the
value to true, the createPulses
function might produce an
error.
Example: createPulses(psObj,'RCBranchesUse2TimeConstants',false)
Data Types: logical
PreBufferSamples
— Data samples to retain before pulse estimation
10
(default) | scalar
Use this value to specify the number of data samples to retain before pulse estimation. The buffer allows the estimation to focus on matching the measured data before the pulse begins.
Example: createPulses(psObj,'PreBufferSamples',5)
Data Types: uint32
PostBufferSamples
— Data samples to retain for next estimation
15
(default) | scalar
Use this value to specify the number of samples to retain before the next pulse estimation. The buffer allows the estimation to focus on matching the transition when the next pulse begins. Typically, the end transition of one pulse and the starting transition at the next pulse are at the same state of charge (SOC). Therefore, both transitions help determine the parameter values at that SOC breakpoint.
Example: createPulses(psObj,'PostBufferSamples',14)
Data Types: uint32
PulseRequires2Samples
— Pulse requires two consecutive samples under current
false
(default)
Use this value to specify that there must be two consecutive samples under current
to define a pulse. Set to true
if occasional noise spikes in the
current measurement trigger a false pulse detection. By default, the value is
false
, indicating that a single sample above the threshold
detects a pulse event.
Example: createPulses(psObj,'PulseRequires2Samples',true)
Data Types: logical
Version History
Introduced in R2016b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)