Im developing customized routines to simulate the performance of different batteries for a set of particular applications for which Im using Jupyter Notebook / Python and the SSC modules and data that are available in the SDK tool.
I have reached the point where I would like to model some things in a different way as the module does. For example I would like to model degradation in a more detailed way to the one that the module allows, in particular I would like to express the cycling degradation as a function of more variables than the DoD and cycles elapsed only. For that I've reached the conclusion that I would need to see what is inside the module "battery" since it's not a matter or simply updating the columns of data that define the available cycling degradation model but actually defining a new model where the capacity fade is a function of other additional variables.
Do you agree with my conclusion of necessarily working at module level to include a new degradation model to solve this?
Is there a way I can access the modules or are they closed inaccessible black boxes?
You are correct that accessing SSC via the SDK (or using the PySAM Python package) does not give you access to the internal models. It does give you access to the same SSC inputs and outputs as the SAM desktop application.
SAM is an open source project written in C++, so it is possible to build your own version of SAM (and/or SSC) with modifications to the internal models. However, the code structure is complex, and the models do not have detailed documentation designed to facilitate these types of modifications.
You can find the SAM code repositories and build instructions on GitHub: