Error in Battery.Pu​lsesequenc​e/Createpu​lses

Hello everyone,
I am trying to implement the Battery Pulse sequence object for the dataset I have currently.
The example dataset consists of 26 pulses and my dataset has 11.
When I am trying to implement the Pulse sequence object to my dataset, I am ending up with the following error message:
"Index in position 1 exceeds array bounds. Index must not exceed 11.
Error in Battery.PulseSequence/createPulses
Error in Trial_script_test_data (line 30)
psObj.createPulses('CurrentOnThreshold',3) %minimum current magnitude to identify pulse events"
How and where do I define the pulses as 11 in 'createpulses'
psObj.createPulses(...
'CurrentOnThreshold',3,... %minimum current magnitude to identify pulse events
'NumRCBranches',2,... %how many RC pairs in the model
'RCBranchesUse2TimeConstants',false,... %do RC pairs have different time constant for discharge and rest?
'PreBufferSamples',2,... %how many samples to include before the current pulse starts
'PostBufferSamples',4); %how many samples to include after the next pulse starts
This is my version of the script.

3 Comments

I wanted to convert the 3 RC model to 2 RC. I am chaging the respective block in Simulink file. However, it is reverting back to 3 RC model block. How do I change it to 2 RC model?

Hi @Simha Sreekar,

Will this help you out, Simulink.SubSystem.convertToModelReference

Hoping to see @Manikanta Aditya expertise resolving this problem.

Umar
Umar on 5 Aug 2024
Edited: Umar on 5 Aug 2024
Hi @ Manikanta Aditya,
Please see attached.

Sign in to comment.

 Accepted Answer

Umar
Umar on 5 Aug 2024
Edited: Umar on 5 Aug 2024

Hi @ Simha Sreekar,

No problem. Hope, this is what you are looking for, Battery.PulseSequence

Forgot to add this link, Generate Parameter Data for Equivalent Circuit Battery Block

More Answers (1)

It appears that you have loaded the data from the example file and are trying to add pulses to the same 'Pulse Sequence' object.
Try creating another 'Pulse Sequence' object and then load the data from your personal files. Here is the code for your reference:
psObj = Battery.PulseSequence;
FileName = '<Insert personal MAT file name here to add your pulse data>';
[time,voltage,current] = Battery.loadDataFromMatFile(FileName);
addData(psObj,time,voltage,current);
psObj.createPulses(...
'CurrentOnThreshold',3,...
'NumRCBranches',2,...
'RCBranchesUse2TimeConstants',false,...
'PreBufferSamples',2,...
'PostBufferSamples',4);
To change the number of RC branches you can use the 'createPulses' function and edit the 'NumRCBranches' parameter.
For more information here is the documentation for generating appropriate parameter data for your circuit: https://www.mathworks.com/help/autoblks/ug/generate-parameter-data-for-estimations-circuit-battery-block.html

6 Comments

A few followup questions
  1. How do I estimate the accuracy of the ECM parameters calculated?
  2. Where can I find more documentation of the model? (including the mathematical formulae used to determine the parameters)
  3. In the script, we defined the min and max values of the time constants:
%%
Params = psObj.Parameters;
Params.Tx(1,:,:) = 5;
% Params.Tx(2,:,:) = 50;
% Params.Tx(3,:,:) = 200;
Params.TxMin(1,:,:) = 1;
Params.TxMax(1,:,:) = 50;
% Params.TxMin(2,:,:) = 20;
% Params.TxMax(2,:,:) = 1000;
% Params.TxMin(3,:,:) = 100;
% Params.TxMax(3,:,:) = 3500; %don't set this bigger than the relaxation time available
In this case, I want to determine 1 RC data, How do define the min and max values for the time constants.
Thank you in advance.

Hi @ Simha Sreekar,

Please see my response to your comments below.

Where can I find more documentation of the model? (including the mathematical formulae used to determine the parameters)

Refer to comments #1&2.

How do I estimate the accuracy of the ECM parameters calculated?

Comment#1: Estimating the accuracy of ECM parameters involves a multi-faceted approach combining experimental validation, sensitivity analysis, optimization techniques, and careful consideration of documentation. If you apply these methods systematically, you can enhance the reliability of your battery simulations significantly. I came across this documentation on mathworks website, and it provides valuable information that aligns with information you are seeking.

https://www.mathworks.com/help/autoblks/ug/generate-parameter-data-for-datasheet-battery-block.html

In the script, we defined the min and max values of the time constants: In this case, I want to determine 1 RC data, How do define the min and max values for the time constants.

Comment#2: The script that you provided in your posted comments is derived from the link below. I will suggest you should review the information in link below which will help answer your question.

https://www.mathworks.com/help/autoblks/ug/generate-parameter-data-for-estimations-circuit-battery-block.html

Please let me know if you have any further questions.

Hi @Simha Sreekar,
Did you make any progress, please update me.
Hello @Umar
Thanks for your assistance. I am able to generate the data, working on the accuracy.
Hi @ Simha Sreekar,
Glad to know that your problem has been resolved and thank you for your update regarding the data generation process. I appreciate your efforts in ensuring the accuracy of the information, as it is crucial for our ongoing projects.

Sign in to comment.

Categories

Products

Release

R2024a

Asked:

on 1 Aug 2024

Commented:

on 27 Aug 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!