-
Notifications
You must be signed in to change notification settings - Fork 10
/
ControlModel.schema.json
101 lines (96 loc) · 3.31 KB
/
ControlModel.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
{
"$id": "file://./ControlModel.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties" : {
"Control" : {
"type" : "object",
"properties" : {
"controlPolicy": {
"type": "string",
"enum": ["CCDischarge",
"CCCHarge",
"CC",
"CCCV",
"powerControl"]}},
"CRate" : {"type": "number"}
}},
"allOf": [
{"if": {
"properties": {"controlPolicy" : {"const" : "CCDischarge"}},
"then": {
"$ref" : "#/$defs/CCDischarge"}}},
{"if": {
"properties": {"controlPolicy" : {"const" : "CCCharge"}},
"then": {
"$ref" : "#/$defs/CCCharge"}}},
{"if": {
"properties": {"controlPolicy" : {"const" : "CCCV"}},
"then":{
"$ref" : "#/$defs/CCCV"}}},
{"if": {
"properties": {"controlPolicy" : {"const" : "powerControl"}},
"then": {
"$ref" : "#/$defs/powerControl"}}}
],
"$defs" : {
"CCDischarge" : {
"properties" :
{"rampupTime" : {
"type" : "number",
"description" : "Rampup time where the current is increased linearly from zero to target value. In this way, we can avoid convergence issues in case of high current."},
"lowerCutoffVoltage" : {
"type" : "number"},
"useCVswitch" : {
"type" : "boolean",
"description" : "Switch to control voltage when the lower cutoff voltage is reached. Default value is false, which means that the simulation stops when the lower voltage is reached."
}}},
"CCCharge" : {
"properties" :
{"rampupTime" : {
"type" : "number",
"description" : "Rampup time where the current is increased linearly from zero to target value. In this way, we can avoid convergence issues in case of high current."},
"upperCutoffVoltage" : {
"type" : "number"},
"useCVswitch" : {
"type" : "boolean",
"description" : "Switch to control voltage when the upper cutoff voltage is reached. Default value is true."
}
}
},
"CCCV": {
"properties" : {
"lowerCutoffVoltage" : {
"type" : "number"},
"upperCutoffVoltage" : {
"type" : "number"},
"dEdtLimit" : {"type" : "number"},
"dIdtLimit" : {"type" : "number"},
"numberOfCycles" : {"type" : "number"},
"initialControl" : {"type" : "string",
"enum" : ["discharging", "charging"]}
}},
"powerControl": {
"properties" : {
"case" : {"type" : "string",
"enum" : ["time limited", "voltage limited", "CPCV"]},
"dischargingPower" : {"type" : "number"},
"chargingPower" : {"type" : "number"}},
"anyOf" : [
{ "properties" : {
"powerControlCase" : {"const" : "time limited"},
"dischargingTime" : {"type" : "number"},
"chargingTime" : {"type" : "number"}
}},
{ "properties" : {
"powerControlCase" : {"const" : "voltage limited"}
}},
{ "properties" : {
"powerControlCase" : {"const" : "CPCV"},
"lowerCutoffPower" : {"type" : "number"},
"upperCutoffPower" : {"type" : "number"}
}
}
]}
}
}