|
@@ -285,7 +285,7 @@ void ass_voAssitCoef(void)
|
|
|
ass_CalCoef.uwStartUpTimeCadenceCnt = CADENCE_NUMBERS_PULSES;
|
|
|
}
|
|
|
/*设置滑动平均滤波踏频数*/
|
|
|
- ass_stTorqMafValue.length = ass_ParaSet.uwTorLPFCadNm;
|
|
|
+ ass_stTorqMafValue.uwLength = ass_ParaSet.uwTorLPFCadNm;
|
|
|
|
|
|
ass_CalCoef.swCadanceGain = 0;
|
|
|
ass_CalCoef.uwSwitch1TorqThreshold = ((ULONG)TORQUE_SWITCH1_THRESHOLD << 14) / TORQUEBASE;
|
|
@@ -627,26 +627,26 @@ static SWORD AssitCuvApplPerVolt(void)
|
|
|
else
|
|
|
{
|
|
|
}
|
|
|
- /* Reduce Voltage Limit When MAFTorq < Switch1TorqThreshold */
|
|
|
-// if(ass_CalIn.uwtorque >= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
-// {
|
|
|
-// ass_CalOut.swVoltLimitPu += ass_CalCoef.uwStartUpGainAddStep;
|
|
|
-// }
|
|
|
-// else if (ass_CalIn.uwtorque <= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
-// {
|
|
|
-// ass_CalOut.swVoltLimitPu -= ass_CalCoef.uwSpeedConstantCommand;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {}
|
|
|
-//
|
|
|
-// if (ass_CalOut.swVoltLimitPu > scm_swVsDcpLimPu)
|
|
|
-// {
|
|
|
-// ass_CalOut.swVoltLimitPu = scm_swVsDcpLimPu;
|
|
|
-// }
|
|
|
-// else if (ass_CalOut.swVoltLimitPu <= (swTmpVoltPu + ass_ParaSet.uwStartUpCadNm))
|
|
|
-// {
|
|
|
-// ass_CalOut.swVoltLimitPu = swTmpVoltPu + ass_ParaSet.uwStartUpCadNm;
|
|
|
-// }
|
|
|
+
|
|
|
+ /* Reduce Voltage Limit When LPFTorq < Switch1TorqThreshold */
|
|
|
+ // if(ass_CalIn.uwtorquelpf >= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
+ // {
|
|
|
+ // ass_CalOut.swVoltLimitPu += ass_CalCoef.uwStartUpGainAddStep;
|
|
|
+ // }
|
|
|
+ // else if (ass_CalIn.uwtorquelpf <= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
+ // {
|
|
|
+ // ass_CalOut.swVoltLimitPu -= ass_CalCoef.uwSpeedConstantCommand;
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {}
|
|
|
+ // if (ass_CalOut.swVoltLimitPu > scm_swVsDcpLimPu)
|
|
|
+ // {
|
|
|
+ // ass_CalOut.swVoltLimitPu = scm_swVsDcpLimPu;
|
|
|
+ // }
|
|
|
+ // else if (ass_CalOut.swVoltLimitPu <= (swTmpVoltPu + ass_ParaSet.uwStartUpCadNm))
|
|
|
+ // {
|
|
|
+ // ass_CalOut.swVoltLimitPu = swTmpVoltPu + ass_ParaSet.uwStartUpCadNm;
|
|
|
+ // }
|
|
|
|
|
|
/* Torque Clzloop Test */
|
|
|
if (ass_CalOut.swVoltLimitPu < scm_swVsDcpLimPu)
|
|
@@ -1077,14 +1077,12 @@ static SWORD AssitCuvApplPerVolt(void)
|
|
|
|
|
|
/* Torq Clzloop Test */
|
|
|
if(ass_CalIn.uwtorquelpf <= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
- //if(torsensor_test_Lpf.slY.sw.hi <= ass_CalCoef.uwSwitch1TorqThreshold)
|
|
|
{
|
|
|
if(!ass_CalOut.blTorqPIFlg)
|
|
|
{
|
|
|
/* Initial value */
|
|
|
- ////ass_stTorqPIOut.slIRefPu = (SLONG)ass_CalOut.swTorRefTarget << 15;//(SLONG)ass_CalOut.swAssitCurRef << 15;
|
|
|
ass_stTorqPIOut.slIRefPu = 0;
|
|
|
- swCurSwitch = abs(ass_CalOut.swTorRefTarget);//abs(ass_CalOut.swAssitCurRef);
|
|
|
+ swCurSwitch = abs(ass_CalOut.swTorRefTarget); //abs(ass_CalOut.swAssitCurRef);
|
|
|
ass_CalOut.blTorqPIFlg = TRUE;
|
|
|
}
|
|
|
|
|
@@ -1093,8 +1091,7 @@ static SWORD AssitCuvApplPerVolt(void)
|
|
|
ass_stTorqPIIn.swImaxPu = 0;
|
|
|
ass_stTorqPIIn.swIminPu = -swCurSwitch;
|
|
|
ass_voAssitTorqPI(&ass_stTorqPIIn,&ass_stTorqPIOut);
|
|
|
- //ass_CalOut.swTorAssistCurrentTemp = ass_CalIn.swDirection *(swCurSwitch + ass_stTorqPIOut.swIRefPu);
|
|
|
- ass_CalOut.swTorAssistCurrentTemp = ass_CalIn.swDirection *(swCurSwitch + ass_stUqLimMafValue.AverValue);
|
|
|
+ ass_CalOut.swTorAssistCurrentTemp = ass_CalIn.swDirection *(swCurSwitch + ass_stUqLimMafValue.slAverValue);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1305,36 +1302,36 @@ void ass_voAssist(void)
|
|
|
*/
|
|
|
void ass_voMoveAverageFilter(MAF_IN *in)
|
|
|
{
|
|
|
- in->sum -= in->buffer[in->index];
|
|
|
- in->buffer[in->index] = in->value;
|
|
|
- in->sum += (SQWORD)in->value;
|
|
|
+ in->slSum -= in->swBuffer[in->uwIndex];
|
|
|
+ in->swBuffer[in->uwIndex] = in->swValue;
|
|
|
+ in->slSum += (SQWORD)in->swValue;
|
|
|
if (!in->blSecFlag)
|
|
|
{
|
|
|
- in->AverValue = (SLONG)(in->sum / (in->index + 1));
|
|
|
+ in->slAverValue = (SLONG)(in->slSum / (in->uwIndex + 1));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- in->AverValue = (SLONG)(in->sum / in->length);
|
|
|
+ in->slAverValue = (SLONG)(in->slSum / in->uwLength);
|
|
|
}
|
|
|
- in->index++;
|
|
|
+ in->uwIndex++;
|
|
|
|
|
|
- if (in->index >= in->length)
|
|
|
+ if (in->uwIndex >= in->uwLength)
|
|
|
{
|
|
|
in->blSecFlag = TRUE;
|
|
|
- in->index = 0;
|
|
|
+ in->uwIndex = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void ass_voMoveAverageFilterClear(MAF_IN *in)
|
|
|
{
|
|
|
UWORD i;
|
|
|
- in->index = 0;
|
|
|
- in->sum = 0;
|
|
|
+ in->uwIndex = 0;
|
|
|
+ in->slSum = 0;
|
|
|
in->blSecFlag = FALSE;
|
|
|
|
|
|
for (i = 0; i < 64; i++)
|
|
|
{
|
|
|
- in->buffer[i] = 0;
|
|
|
+ in->swBuffer[i] = 0;
|
|
|
}
|
|
|
}
|
|
|
|