TI中文支持网
TI专业的中文技术问题搜集分享网站

单电流环矢量控制斜坡升速

各位老师好,我在用controlSUITE中的矢量控制程序。在测试单电流环矢量控制时,需要用到斜坡升速模块,请问参数StepAngleMax为什么这么计算呢?下图为StepAngleMax的计算公式。

斜坡升速信号产生模块的程序如下:

#define RG_MACRO(v) \
\
/* Compute the angle rate */ \
v.Angle += _IQmpy(v.StepAngleMax,v.Freq); \
\
/* Saturate the angle rate within (-1,1) */ \
if (v.Angle>_IQ(1.0)) \
v.Angle -= _IQ(1.0); \
else if (v.Angle<_IQ(-1.0)) \
v.Angle += _IQ(1.0); \
\
/* Compute the ramp output */ \
v.Out = _IQmpy(v.Angle,v.Gain) + v.Offset; \
/* Saturate the ramp output within (-1,1) */ \
if (v.Out>_IQ(1.0)) \
v.Out -= _IQ(1.0); \
else if (v.Out<_IQ(-1.0)) \
v.Out += _IQ(1.0);

#endif // __RAMPGEN_H__

Terry Deng:

T是相邻两次stepAngle程序执行的间隔时间,BASE_FREQ是IQ(1)代表的最快转速值。因为1/BASE_FREQ是转一圈的时间,所以 T / (1/BASE_FREQ)代表间隔时间转过的角度也就是stepAngle。

各位老师好,我在用controlSUITE中的矢量控制程序。在测试单电流环矢量控制时,需要用到斜坡升速模块,请问参数StepAngleMax为什么这么计算呢?下图为StepAngleMax的计算公式。

斜坡升速信号产生模块的程序如下:

#define RG_MACRO(v) \
\
/* Compute the angle rate */ \
v.Angle += _IQmpy(v.StepAngleMax,v.Freq); \
\
/* Saturate the angle rate within (-1,1) */ \
if (v.Angle>_IQ(1.0)) \
v.Angle -= _IQ(1.0); \
else if (v.Angle<_IQ(-1.0)) \
v.Angle += _IQ(1.0); \
\
/* Compute the ramp output */ \
v.Out = _IQmpy(v.Angle,v.Gain) + v.Offset; \
/* Saturate the ramp output within (-1,1) */ \
if (v.Out>_IQ(1.0)) \
v.Out -= _IQ(1.0); \
else if (v.Out<_IQ(-1.0)) \
v.Out += _IQ(1.0);

#endif // __RAMPGEN_H__

xu zhang11:

回复 Terry Deng:

您好!1/BASE_FREQ是转一圈的时间的话,那么BASE_FREQ设定为200hz的话,则BASE_FREQ对应的最快转速值为200r/s,即为12000r/s?但此时对应的实际最高转速为3000r/s,这个怎么解释呢?

非常感谢!!!

各位老师好,我在用controlSUITE中的矢量控制程序。在测试单电流环矢量控制时,需要用到斜坡升速模块,请问参数StepAngleMax为什么这么计算呢?下图为StepAngleMax的计算公式。

斜坡升速信号产生模块的程序如下:

#define RG_MACRO(v) \
\
/* Compute the angle rate */ \
v.Angle += _IQmpy(v.StepAngleMax,v.Freq); \
\
/* Saturate the angle rate within (-1,1) */ \
if (v.Angle>_IQ(1.0)) \
v.Angle -= _IQ(1.0); \
else if (v.Angle<_IQ(-1.0)) \
v.Angle += _IQ(1.0); \
\
/* Compute the ramp output */ \
v.Out = _IQmpy(v.Angle,v.Gain) + v.Offset; \
/* Saturate the ramp output within (-1,1) */ \
if (v.Out>_IQ(1.0)) \
v.Out -= _IQ(1.0); \
else if (v.Out<_IQ(-1.0)) \
v.Out += _IQ(1.0);

#endif // __RAMPGEN_H__

user5176067:

回复 xu zhang11:

别忘记除极对数

赞(0)
未经允许不得转载:TI中文支持网 » 单电流环矢量控制斜坡升速
分享到: 更多 (0)