滑模观测器SMO的估算角超前实际交
理论上滑模观测器SMO估算的电机转子角度应该滞后于实际角度,为何我用TI的实验套件做实验时,结果是估算交超前于实际角??TI的SMO模块算法如下,有低通滤波但是没有对估算角进行滞后补偿,按理说低通滤波应该是产生滞后才对
#define SMO_MACRO(v) \
\
/* Sliding mode current observer */ \
v.EstIalpha = _IQmpy(v.Fsmopos,v.EstIalpha) + _IQmpy(v.Gsmopos,(v.Valpha-v.Ealpha-v.Zalpha)); \
v.EstIbeta = _IQmpy(v.Fsmopos,v.EstIbeta) + _IQmpy(v.Gsmopos,(v.Vbeta-v.Ebeta-v.Zbeta)); \
\
/* Current errors */ \
v.IalphaError = v.EstIalpha - v.Ialpha; \
v.IbetaError= v.EstIbeta - v.Ibeta; \
\
/*Sliding control calculator */ \
if (_IQabs(v.IalphaError) < E0) \
v.Zalpha = _IQmpy(v.Kslide,_IQmpy2(v.IalphaError)); /* (v.Kslide*(v.IalphaError)/E0) */ \
else if (v.IalphaError >= E0) \
v.Zalpha = v.Kslide; \
else if (v.IalphaError <= -E0) \
v.Zalpha = -v.Kslide; \
if (_IQabs(v.IbetaError) < E0) \
v.Zbeta = _IQmpy(v.Kslide,_IQmpy2(v.IbetaError)); /* (v.Kslide*(v.IbetaError)/E0) */ \
else if (v.IbetaError >= E0) \
v.Zbeta = v.Kslide; \
else if (v.IbetaError <= -E0) \
v.Zbeta = -v.Kslide; \
\
/* Sliding control filter -> back EMF calculator */ \
v.Ealpha = v.Ealpha + _IQmpy(v.Kslf,(v.Zalpha-v.Ealpha)); \
v.Ebeta = v.Ebeta + _IQmpy(v.Kslf,(v.Zbeta-v.Ebeta)); \
\
/* Rotor angle calculator -> Theta = atan(-Ealpha,Ebeta) */ \
v.Theta = _IQatan2PU(-v.Ealpha,v.Ebeta);
是不是滞后的太多了啊 依个人愚见,你应该改变一下速度看两个速度切换点的时候角度曲线,看到底是滞后还是超前,你这个有可能是滞后快一个周期了看起来就像超前了。 依个人经验, 估算值肯定是滞后的;而且不同速度滞后值还不一样; 我建议重点观察下滑模变算法 我建议重点观察下滑模变算法,分析下滑模算法使用的参数对结果影响。 看起來 SMO 參數 Kslide & Kslf 參數需要調整 ,
另外想請教有關於這兩個參數調整方面的資料可以分享嗎 ? 你好,请问你这个问题解决了吗,我目前也遇到了同样的问题,你使用的是凸极电机吗,望回复,谢谢 补偿的角度补偿多了也会这样
页:
[1]