SLIDE  3.0.0
A simulator for lithium-ion battery pack degradation
Loading...
Searching...
No Matches
determine_OCV.hpp
Go to the documentation of this file.
1/*
2 * determineOCV.hpp
3 *
4 * Header file for the functions used to find the parameters which will match a measured OCV curve of a cell
5 *
6 * Copyright (c) 2019, The Chancellor, Masters and Scholars of the University
7 * of Oxford, VITO nv, and the 'Slide' Developers.
8 * See the licence file LICENCE.txt for more information.
9 *
10 * Created on: 19 Dec 2019
11 * Author(s): Jorn Reniers, Volkan Kumtepeli
12 */
13
14#pragma once
15
16#include "../utility/utility.hpp"
17
18#include <string>
19#include <array>
20
21namespace slide {
22bool validOCV(bool checkRange, slide::XYdata_vv &data);
23
24void readOCVinput(const std::string &namepos, const std::string &nameneg, const std::string &namecell,
26
27void discharge(const slide::XYdata_vv &OCVp, const slide::XYdata_vv &OCVn, double cap, const double AMp, const double AMn,
28 const double cmaxp, const double cmaxn, double sp, double sn, double Vend, slide::XYdata_vv &OCV,
29 slide::XYdata_vv &OCVanode, slide::XYdata_vv &OCVcathode, double fp[], double fn[]);
30
31auto discharge_noexcept(const slide::XYdata_vv &OCVp, const slide::XYdata_vv &OCVn, double cap, const double AMp, const double AMn,
32 const double cmaxp, const double cmaxn, double sp, double sn, double Vend, slide::XYdata_vv &OCV,
33 slide::XYdata_vv &OCVanode, slide::XYdata_vv &OCVcathode, double fp[], double fn[]);
34
35double calculateError(bool bound, slide::XYdata_vv &OCVcell, slide::XYdata_vv &OCVsim);
36
38
39void writeOCVParam(int h, const std::array<double, 4> &par);
40
41void fitAMnAndStartingPoints(int hierarchy, int ap, slide::FixedData<double> AMn_space, slide::FixedData<double> sp_space,
42 slide::FixedData<double> sn_space, double cmaxp, double cmaxn,
43 double *err, std::array<double, 4> &par, std::array<int, 4> &parindex,
45
47 slide::FixedData<double> sn_space, std::string namepos, std::string nameneg, std::string namecell, double cmaxp, double cmaxn);
48
49} // namespace slide
Definition: FixedData.hpp:92
Definition: XYdata.hpp:46
Slide namespace contains all the types, classes, and functions for the simulation framework.
Definition: Cell.hpp:27
void readOCVinput(const std::string &namepos, const std::string &nameneg, const std::string &namecell, slide::XYdata_vv &OCVp, slide::XYdata_vv &OCVn, slide::XYdata_vv &OCVcell)
Definition: determine_OCV.cpp:349
void estimateOCVparameters()
Definition: determine_OCV.cpp:627
auto hierarchicalOCVfit(int hmax, slide::FixedData< double > AMp_space, slide::FixedData< double > AMn_space, slide::FixedData< double > sp_space, slide::FixedData< double > sn_space, std::string namepos, std::string nameneg, std::string namecell, double cmaxp, double cmaxn)
Definition: determine_OCV.cpp:545
void fitAMnAndStartingPoints(int hierarchy, int ap, double AMp, slide::FixedData< double > AMn_space, slide::FixedData< double > sp_space, slide::FixedData< double > sn_space, double cmaxp, double cmaxn, double *err, std::array< double, 4 > &par, slide::XYdata_vv &OCVp, slide::XYdata_vv &OCVn, slide::XYdata_vv &OCVcell)
Definition: determine_OCV.cpp:499
double calculateError(bool bound, slide::XYdata_vv &OCVcell, slide::XYdata_vv &OCVsim)
Definition: determine_OCV.cpp:412
void discharge(const slide::XYdata_vv &OCVp, const slide::XYdata_vv &OCVn, double cap, const double AMp, const double AMn, const double cmaxp, const double cmaxn, double sp, double sn, double Vend, slide::XYdata_vv &OCV, slide::XYdata_vv &OCVanode, slide::XYdata_vv &OCVcathode, double fp[], double fn[])
Definition: determine_OCV.cpp:331
bool validOCV(bool checkRange, slide::XYdata_vv &data)
Definition: determine_OCV.cpp:37
void writeOCVParam(int h, const std::array< double, 4 > &par)
Definition: determine_OCV.cpp:814
auto discharge_noexcept(const slide::XYdata_vv &OCVp, const slide::XYdata_vv &OCVn, double cap, const double AMp, const double AMn, const double cmaxp, const double cmaxn, double sp, double sn, double Vend, slide::XYdata_vv &OCV, slide::XYdata_vv &OCVanode, slide::XYdata_vv &OCVcathode, double fp[], double fn[])
Definition: determine_OCV.cpp:103