Part Number: TMDSHVMTRPFCKIT
Other Parts Discussed in Thread: CONTROLSUITE
Hi All,
I am working on HVACI_Sensorless project,
Could someone explain to me why in the ACISE macro slip is in per unit?
I cant see the idea behind the IQtoIQ21(v.Wslip), why we convert slip form qtoq21?
Is there any bloc diagram of the ACISE macro for more clarity ?
Thanks in advance,
S.Tarik,
#define ACISE_MACRO(v) \ \ /* Slip computation */ \ v.SquaredPsi = _IQmpy(v.PsiDrS,v.PsiDrS)+_IQmpy(v.PsiQrS,v.PsiQrS); \ \ v.WSlip= _IQmpy(v.K1,(_IQmpy(v.PsiDrS,v.IQsS) - _IQmpy(v.PsiQrS,v.IDsS))); \ v.WSlip= _IQdiv(v.WSlip,v.SquaredPsi); \ \ /* Synchronous speed computation */ \ if ((v.ThetaFlux < DIFF_MAX_LIMIT)&(v.ThetaFlux > DIFF_MIN_LIMIT)) \ /* Q21 = Q21*(GLOBAL_Q-GLOBAL_Q)*/ \ v.WSyn = _IQmpy(v.K2,(v.ThetaFlux - v.OldThetaFlux)); \ else v.WSyn = v.WPsi; \ \ /* low-pass filter, Q21 = GLOBAL_Q*Q21 + GLOBAL_Q*Q21 */ \ v.WPsi = _IQmpy(v.K3,v.WPsi) + _IQmpy(v.K4,v.WSyn); \ \ /* Q21 = Q21 - GLOBAL_Q */ \ v.OldThetaFlux = v.ThetaFlux; \ v.WrHat = v.WPsi - _IQtoIQ21(v.WSlip); \ \ /* Limit the estimated speed between -1 and 1 per-unit */ \ v.WrHat=_IQsat(v.WrHat,_IQ21(1),_IQ21(-1)); \ v.WrHat = _IQ21toIQ(v.WrHat); \ \ /* Q0 = Q0*GLOBAL_Q => _IQXmpy(), X = GLOBAL_Q */ \ v.WrHatRpm = _IQmpy(v.BaseRpm,v.WrHat); #endif // __ACI_SE_H__