|
@@ -107,16 +107,15 @@ void Open2Clz_TbcupHook(void)
|
|
|
|
|
|
flx_stCtrlOut.swIqLimPu = (SWORD)cof_uwCurMaxPu;
|
|
|
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// align_stIn.uwObsElecThetaPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// //align_stIn.uwObsElecThetaPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
-// }
|
|
|
-// else
|
|
|
- if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ align_stIn.uwObsElecThetaPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ //align_stIn.uwObsElecThetaPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
align_stIn.uwObsElecThetaPu = switchhall_stOut.uwLowThetaPu;
|
|
|
//align_stIn.uwObsElecThetaPu = rtY.Angle_Filtered;
|
|
@@ -218,21 +217,21 @@ void StartUp_TbcdownHook(void)
|
|
|
{
|
|
|
|
|
|
/* Speed feedback LPF */
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
-// }
|
|
|
-// else
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
+ obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
+ obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
+ }
|
|
|
+ else
|
|
|
if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
scm_stSpdFbkLpf.slY.sw.hi = switchhall_stOut.swLowSpdLpfPu;
|
|
@@ -258,13 +257,13 @@ void Open2Clz_TbcdownHook(void)
|
|
|
/* Speed feedback LPF */
|
|
|
if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
{
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-//// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-//// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
+ obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
+ obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
+ mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
}
|
|
|
else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
{
|
|
@@ -307,46 +306,16 @@ void ClzLoop_TbcdownHook(void)
|
|
|
ULONG ulTmp1;
|
|
|
SWORD swAngCompPu; // Q15
|
|
|
|
|
|
-/* Speed feedback LPF */
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-
|
|
|
- /* Angle Switch */
|
|
|
-// if(scm_stSpdFbkLpf.slY.sw.hi > 7801) // 2000rpm
|
|
|
-// {
|
|
|
-// cp_stFlg.ThetaGetModelSelect = ANG_OBSERVER;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// if(scm_stSpdFbkLpf.slY.sw.hi < 5851) // 1500rpm
|
|
|
-// {
|
|
|
-// cp_stFlg.ThetaGetModelSelect = ANG_SWITCHHALL;
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
-
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
-//// scm_uwAngRefPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
+ obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
+ mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
+ scm_uwAngRefPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
// temptheta = (SWORD)obs_stObsOutPu.uwElecThetaPu + thetaoffset;
|
|
|
//
|
|
|
// if (temptheta >= cof_sl360DegreePu)
|
|
@@ -358,17 +327,14 @@ void ClzLoop_TbcdownHook(void)
|
|
|
// temptheta += cof_sl360DegreePu;
|
|
|
// }
|
|
|
// scm_uwAngRefPu=temptheta;
|
|
|
-// tstThetaCorrect=scm_uwAngRefPu-rtY.Angle_Filtered;
|
|
|
-//
|
|
|
-//
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
-// // scm_uwAngRefPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
-// }
|
|
|
-// else
|
|
|
- if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
+// tstThetaCorrect=scm_uwAngRefPu - rtY.Angle_Filtered;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
+ // scm_uwAngRefPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
// mth_voLPFilter(switchhall_stOut.swLowSpdPu, &scm_stSpdFbkLpf);
|
|
|
//mth_voLPFilter(switchhall_stOut.swLowSpdLpfPu, &scm_stSpdFbkLpf);
|
|
@@ -409,16 +375,15 @@ void ClzLoop_TbcdownHook(void)
|
|
|
/* Get angle for park transformation */
|
|
|
scm_uwAngParkPu = scm_uwAngRefPu; // Q15
|
|
|
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// swAngCompPu = ((SLONG)obs_stObsOutPu.swElecFreqPu * TBC_TM) >> 10; // Q15
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// // swAngCompPu = ((SLONG)spi_stResolverOut.swSpdFbkPu * TBC_TM) >> 10; // Q15
|
|
|
-// }
|
|
|
-// else
|
|
|
- if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ swAngCompPu = ((SLONG)obs_stObsOutPu.swElecFreqPu * TBC_TM) >> 10; // Q15
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ // swAngCompPu = ((SLONG)spi_stResolverOut.swSpdFbkPu * TBC_TM) >> 10; // Q15
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
swAngCompPu = ((SLONG)switchhall_stOut.swLowSpdLpfPu * TBC_TM) >> 10; // Q15
|
|
|
}
|
|
@@ -456,68 +421,35 @@ void Clz2Stop_TbcdownHook(void)
|
|
|
ULONG ulTmp1;
|
|
|
SWORD swAngCompPu; // Q15
|
|
|
|
|
|
-/* Speed feedback LPF */
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-
|
|
|
- /* Angle Switch */
|
|
|
-// if(scm_stSpdFbkLpf.slY.sw.hi > 7801) // 2000rpm
|
|
|
-// {
|
|
|
-// cp_stFlg.ThetaGetModelSelect = ANG_OBSERVER;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// if(scm_stSpdFbkLpf.slY.sw.hi < 5851) // 1500rpm
|
|
|
-// {
|
|
|
-// cp_stFlg.ThetaGetModelSelect = ANG_SWITCHHALL;
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
-
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
-// obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
-// obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
-// obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
-// mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
-//// scm_uwAngRefPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
-// temptheta = (SWORD)obs_stObsOutPu.uwElecThetaPu + thetaoffset;
|
|
|
-//
|
|
|
-// if (temptheta >= cof_sl360DegreePu)
|
|
|
-// {
|
|
|
-// temptheta -= cof_sl360DegreePu;
|
|
|
-// }
|
|
|
-// else if (temptheta < (-(cof_sl360DegreePu)))
|
|
|
-// {
|
|
|
-// temptheta += cof_sl360DegreePu;
|
|
|
-// }
|
|
|
-// scm_uwAngRefPu=temptheta;
|
|
|
-// tstThetaCorrect=scm_uwAngRefPu-rtY.Angle_Filtered;
|
|
|
-//
|
|
|
-//
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
-// // scm_uwAngRefPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
-// }
|
|
|
-// else
|
|
|
- if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ obs_stObsCalcIn.swUalphaPu = scm_swUalphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swUbetaPu = scm_swUbetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIalphaPu = crd_stCurClarkOut.swAlphaPu; // Q14
|
|
|
+ obs_stObsCalcIn.swIbetaPu = crd_stCurClarkOut.swBetaPu; // Q14
|
|
|
+ obs_stObsCalcIn.uwVdcPu = adc_stUpOut.uwVdcLpfPu;
|
|
|
+ obs_voObsCalc(&obs_stObsCalcIn, &obs_stObsCoefPu, &obs_stObsOutPu);
|
|
|
+ mth_voLPFilter(obs_stObsOutPu.swElecFreqPu, &scm_stSpdFbkLpf);
|
|
|
+ scm_uwAngRefPu = obs_stObsOutPu.uwElecThetaPu;
|
|
|
+ temptheta = (SWORD)obs_stObsOutPu.uwElecThetaPu + thetaoffset;
|
|
|
+
|
|
|
+ if (temptheta >= cof_sl360DegreePu)
|
|
|
+ {
|
|
|
+ temptheta -= cof_sl360DegreePu;
|
|
|
+ }
|
|
|
+ else if (temptheta < (-(cof_sl360DegreePu)))
|
|
|
+ {
|
|
|
+ temptheta += cof_sl360DegreePu;
|
|
|
+ }
|
|
|
+ scm_uwAngRefPu=temptheta;
|
|
|
+ tstThetaCorrect=scm_uwAngRefPu - rtY.Angle_Filtered;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ // mth_voLPFilter(spi_stResolverOut.swSpdFbkPu, &scm_stSpdFbkLpf);
|
|
|
+ // scm_uwAngRefPu = spi_stResolverOut.uwSpiThetaPu;
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
// mth_voLPFilter(switchhall_stOut.swLowSpdPu, &scm_stSpdFbkLpf);
|
|
|
//mth_voLPFilter(switchhall_stOut.swLowSpdLpfPu, &scm_stSpdFbkLpf);
|
|
@@ -558,16 +490,15 @@ void Clz2Stop_TbcdownHook(void)
|
|
|
/* Get angle for park transformation */
|
|
|
scm_uwAngParkPu = scm_uwAngRefPu; // Q15
|
|
|
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// swAngCompPu = ((SLONG)obs_stObsOutPu.swElecFreqPu * TBC_TM) >> 10; // Q15
|
|
|
-// }
|
|
|
-// else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
-// {
|
|
|
-// // swAngCompPu = ((SLONG)spi_stResolverOut.swSpdFbkPu * TBC_TM) >> 10; // Q15
|
|
|
-// }
|
|
|
-// else
|
|
|
- if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ swAngCompPu = ((SLONG)obs_stObsOutPu.swElecFreqPu * TBC_TM) >> 10; // Q15
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_RESOLVER)
|
|
|
+ {
|
|
|
+ // swAngCompPu = ((SLONG)spi_stResolverOut.swSpdFbkPu * TBC_TM) >> 10; // Q15
|
|
|
+ }
|
|
|
+ else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
{
|
|
|
swAngCompPu = ((SLONG)switchhall_stOut.swLowSpdLpfPu * TBC_TM) >> 10; // Q15
|
|
|
}
|
|
@@ -686,17 +617,13 @@ void scm_voSpdCtrMdFSM(void)
|
|
|
}
|
|
|
else if(cp_stFlg.RunModelSelect == ClZLOOP)
|
|
|
{
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// Switch_speed_FSM(&StartUp_state);
|
|
|
-// }
|
|
|
-//// else if(cp_stFlg.ThetaGetModelSelect == ANG_SWITCHHALL)
|
|
|
-//// {
|
|
|
-//// Switch_speed_FSM(&StartUp_state);
|
|
|
-//// }
|
|
|
-// else
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
{
|
|
|
- Switch_speed_FSM(&ClzLoop_state);
|
|
|
+ Switch_speed_FSM(&StartUp_state);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Switch_speed_FSM(&ClzLoop_state);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -717,28 +644,28 @@ void scm_voSpdCtrMdFSM(void)
|
|
|
{
|
|
|
Switch_speed_FSM(&Clz2Stop_state);
|
|
|
}
|
|
|
-// if (scm_StartUpOvrFlg == TRUE)
|
|
|
-// {
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER) //|| cp_stFlg.ThetaGetModelSelect ==ANG_SWITCHHALL
|
|
|
-// {
|
|
|
-// if(cp_stFlg.RunModelSelect == ClZLOOP || cp_stFlg.RunModelSelect == CadAssist || cp_stFlg.RunModelSelect == TorqAssist)
|
|
|
-// {
|
|
|
-// if (FSM2nd_Run_state.state == Boost)
|
|
|
-// {
|
|
|
-// cmd_stCmdOut.slIntRefPu = (((SLONG)scm_stSpdFbkLpf.slY.sw.hi * 5) << 12); // Q29 5/4
|
|
|
-// }
|
|
|
-// else if (FSM2nd_Run_state.state == Assistance)
|
|
|
-// {}
|
|
|
-// else
|
|
|
-// {}
|
|
|
-// Switch_speed_FSM(&Open2Clz_state);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-//
|
|
|
-// }
|
|
|
-// }
|
|
|
+ if (scm_StartUpOvrFlg == TRUE)
|
|
|
+ {
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER) //|| cp_stFlg.ThetaGetModelSelect ==ANG_SWITCHHALL
|
|
|
+ {
|
|
|
+ if(cp_stFlg.RunModelSelect == ClZLOOP || cp_stFlg.RunModelSelect == CadAssist || cp_stFlg.RunModelSelect == TorqAssist)
|
|
|
+ {
|
|
|
+ if (FSM2nd_Run_state.state == Boost)
|
|
|
+ {
|
|
|
+ cmd_stCmdOut.slIntRefPu = (((SLONG)scm_stSpdFbkLpf.slY.sw.hi * 5) << 12); // Q29 5/4
|
|
|
+ }
|
|
|
+ else if (FSM2nd_Run_state.state == Assistance)
|
|
|
+ {}
|
|
|
+ else
|
|
|
+ {}
|
|
|
+ Switch_speed_FSM(&Open2Clz_state);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
/* Command run disable */
|
|
|
break;
|
|
|
case Open2Clz:
|
|
@@ -805,11 +732,11 @@ void scm_voSpdCtrMdFSM(void)
|
|
|
|
|
|
if(cp_stFlg.RunModelSelect == ClZLOOP || cp_stFlg.RunModelSelect == CadAssist || cp_stFlg.RunModelSelect == TorqAssist)
|
|
|
{
|
|
|
-// if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
-// {
|
|
|
-// Switch_speed_FSM(&InitPosDet_state);
|
|
|
-// }
|
|
|
-// else
|
|
|
+ if(cp_stFlg.ThetaGetModelSelect == ANG_OBSERVER)
|
|
|
+ {
|
|
|
+ Switch_speed_FSM(&InitPosDet_state);
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
Switch_speed_FSM(&ClzLoop_state);
|
|
|
}
|