whyczyk
2022-02-09 3d8a4eb4995756b02d31417cafb882de0678cba0
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
import N_TO_10H from './N_TO_10H';
 
/**
 * 获取剩余容量/实际容量
 *
 * @param   {[Number]}  STDAH         标称容量
 * @param   {[Number]}  HourRate      放电小时率
 * @param   {[Number]}  SumAH         测试容量
 * @param   {[Number]}  MaxMonomerVol   单体电压最大值
 * @param   {[Number]}  MonomerVol      单体电压最大值
 * @param   {[Number]}  MonomerVolType  电池标称电压
 * @param   {[Number]}  CapType         容量类型(定值是常量)(1:实际容量,0剩余容量)
 *
 * @return  {[Number]}                  [return description]
 */
function GetMonomerCap(STDAH, HourRate, SumAH, MaxMonomerVol, MonomerVol, MonomerVolType, CapType) {
    if ((MaxMonomerVol - MonomerVolType * 0.9) <= 0)
        return 0;
    if (SumAH < 0)
        SumAH *= (-1);
    let tmp_cap;
    tmp_cap = MonomerVol - MonomerVolType * 0.9;
    tmp_cap *= (STDAH - SumAH * N_TO_10H(HourRate));
    let dt_vol = MaxMonomerVol - MonomerVolType * 0.9;
    if (dt_vol < 0.01)
        dt_vol = 0.01;
    tmp_cap = tmp_cap / dt_vol;
    if (tmp_cap < 0)
        tmp_cap = 0;
 
    if (CapType == 0)
        return tmp_cap;
    else if (CapType == 1)
        return (tmp_cap + SumAH * N_TO_10H(HourRate));
    else
        return ((tmp_cap + SumAH * N_TO_10H(HourRate)) * 100 / STDAH);
}
 
export default GetMonomerCap;