MATLAB Answers

Create a local constant variable that is randomly generated in Simscape Component Code?

3 views (last 30 days)
Isaac Perrin
Isaac Perrin on 7 Aug 2019
Answered: Divya Yerraguntla on 10 Aug 2019
I'm working with an array of batteries each represented by the 2RC battery model, and I want to add variability into the internals of the batteries. Is there a way for me to make a variable that is randomly assigned at the initiation of the component and then use the component for the simulation. I tried adding: "var = normrnd(1,0.05)" in the variables section of a resistor and then "R = var*tablelookup(SOC_Table,Temp_Table,R_Table,SOC,T,... " but I got an error since saying this was unsolvable as I had more variables than equations.

Answers (1)

Divya Yerraguntla
Divya Yerraguntla on 10 Aug 2019
Hi Isaac,
You could initialise a local variable('var' in your case) as a Model Callback which is executed at specified action points.
Have a look at this link to define 'var' as Model Callback. You could write "var = normrnd(1,0.05)" in the InitFcn(Initialization) Callback and then use it to specify the value 'R' of resistor.
Hope it helps!

Community Treasure Hunt

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

Start Hunting!

Translated by