|
@@ -14,6 +14,7 @@ void CDM(void)
|
|
|
real_T cmdn_V_cellUDelt[cmnc_num_cellUNumMax];
|
|
|
real_T cdmn_I_curr;
|
|
|
static real_T P[4][cmnc_num_cellUNumMax];
|
|
|
+ real_T P1[4][cmnc_num_cellUNumMax];
|
|
|
static real_T deltaE[cmnc_num_cellUNumMax];
|
|
|
static real_T deltaR[cmnc_num_cellUNumMax];
|
|
|
static real_T deltaES[cmnc_num_cellUNumMax];
|
|
@@ -50,7 +51,7 @@ void CDM(void)
|
|
|
}
|
|
|
}
|
|
|
//
|
|
|
- if(ihd_st_workStat != 2 && (sfmd_I_curr_Delay - sfmd_I_curr > 10 ||sfmd_I_curr_Delay - sfmd_I_curr < -10 ||sfmd_I_curr_Delay ==0 && sfmd_I_curr == 0))
|
|
|
+ if(ihd_st_workStat != 2 )//&& (sfmd_I_curr_Delay - sfmd_I_curr > 10 ||sfmd_I_curr_Delay - sfmd_I_curr < -10 ||sfmd_I_curr_Delay ==0 && sfmd_I_curr == 0))
|
|
|
{
|
|
|
for (i = 0;i < cmnc_num_cellUNum;i++)
|
|
|
{
|
|
@@ -66,11 +67,15 @@ void CDM(void)
|
|
|
arf[i] = cmdn_V_cellUDelt[i] - (deltaE[i] + cdmn_I_curr * deltaR[i]);
|
|
|
deltaE[i] = deltaE[i] + K[0] * arf[i];
|
|
|
deltaR[i] = deltaR[i] + K[1] * arf[i];
|
|
|
- P[0][i] = ((1 -K[0])* P[0][i] -P[2][i] * K[0] * cdmn_I_curr) /Lambda;
|
|
|
- P[1][i] = ((1 -K[0])* P[1][i] -P[3][i] * K[0] * cdmn_I_curr) /Lambda;
|
|
|
- P[2][i] = (-K[1] *P[0][i] +P[2][i] * (1 - K[1] * cdmn_I_curr))/Lambda;
|
|
|
- P[3][i] = (-K[1] *P[1][i] +P[3][i] * (1 - K[1] * cdmn_I_curr))/Lambda;
|
|
|
-
|
|
|
+ P1[0][i] = ((1 -K[0])* P[0][i] -P[2][i] * K[0] * cdmn_I_curr) /Lambda;
|
|
|
+ P1[1][i] = ((1 -K[0])* P[1][i] -P[3][i] * K[0] * cdmn_I_curr) /Lambda;
|
|
|
+ P1[2][i] = (-K[1] *P[0][i] +P[2][i] * (1 - K[1] * cdmn_I_curr))/Lambda;
|
|
|
+ P1[3][i] = (-K[1] *P[1][i] +P[3][i] * (1 - K[1] * cdmn_I_curr))/Lambda;
|
|
|
+
|
|
|
+ P[0][i] = P1[0][i];
|
|
|
+ P[1][i] = P1[1][i];
|
|
|
+ P[2][i] = P1[2][i];
|
|
|
+ P[3][i] = P1[3][i];
|
|
|
if(arf[i] > 0.04 || arf[i] < -0.04)
|
|
|
{
|
|
|
cdmd_flg_deltOCVDisable = true;
|
|
@@ -102,10 +107,8 @@ void CDM(void)
|
|
|
{
|
|
|
cdmd_flg_deltOCVDisable = true;
|
|
|
}
|
|
|
- //printf("u_:%f %f %f\n",arf[0],arf[1],arf[2]);
|
|
|
- //printf("E_:%d %d %d\n",cdmv_V_deltOCV[0],cdmv_V_deltOCV[1],cdmv_V_deltOCV[2]);
|
|
|
- //printf("R_:%d %d %d\n",cdmv_ohm_deltR[0],cdmv_ohm_deltR[1],cdmv_ohm_deltR[2]);
|
|
|
- //printf("\n");
|
|
|
+
|
|
|
+
|
|
|
cdmd_flg_deltOCVDisable = true; ////////
|
|
|
sfmd_I_curr_Delay = sfmd_I_curr;
|
|
|
FirstRun_CDM = false;
|