This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

rampgen的输入频率是什么频率,

typedef struct { _iq Freq; // Input: Ramp frequency (pu)
_iq StepAngleMax; // Parameter: Maximum step angle (pu)
_iq Angle; // Variable: Step angle (pu)
_iq Gain; // Input: Ramp gain (pu)
_iq Out; // Output: Ramp signal (pu)
_iq Offset; // Input: Ramp offset (pu)
} RAMPGEN;

/*------------------------------------------------------------------------------
Object Initializers
------------------------------------------------------------------------------*/
#define RAMPGEN_DEFAULTS {0, \
0, \
0, \
_IQ(1), \
0, \
_IQ(1), \
}

/*------------------------------------------------------------------------------
RAMP(Sawtooh) Generator Macro Definition
------------------------------------------------------------------------------*/

#define RG_MACRO(v) \
\
/* Compute the angle rate */ \
v.Angle += _IQmpy(v.StepAngleMax,v.Freq); \
\
/* Saturate the angle rate within (-1,1) */ \ 为什么限定在-1到1?  _IQ(1.0)表示什么意思?
if (v.Angle>_IQ(1.0)) \
v.Angle -= _IQ(1.0); \
else if (v.Angle<_IQ(-1.0)) \
v.Angle += _IQ(1.0); \
v.Out=v.Angle;

// Use the code snippet below if gain/offset needed. \
/* Compute the ramp output */ \
v.Out = _IQmpy(v.Angle,v.Gain) + v.Offset; \
/* Saturate the ramp output within (-1,1) */ \为什么限定在-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__

  • 频率输出一般都有典型应用的曲线, Ramp frequency就是根据这些曲线得出的当前点的输出频率

  • 我是想知道这个频率是不是决定了SVPWM 电压矢量的步进角度 ?

    如果我做三相逆变器 输出50HZ ,那么这个输入频率是50hz 吗?      

  • 在你步进角变更频率不变的时候,这个频率和步进角度成正比。

    最终稳定频率是50hz,一般都会有从0或者启动频率到最终频率的运行轨迹,而这个轨迹就是用该频率在时间轴上的变化。

  • _IQ(1.0)表示什么意思?为什么限定在-1到1?

    输出50hz,这个输入要输入多少?

  • RAMPGEN的作用就是根据当前要求的输出频率生成步进角度。步进角度就是v.Angle。

    看程序本身,v.Angle+=v.StepAngleMax * v.Freq。也就是说,v.Angle与v.StepAngleMax和v.Freq相关。v.Freq是当前要求输出的频率与某个参数的比值(这样,所有变量都能限制在1之内,方便IQ计算),而StepAngleMax肯定是个定值。而我们要生成的步进角度实际上是v.Angle+=v.Freq/开关频率,从这里来推的话,StepAngleMax显然是指的最大步进量,即Fmax/开关频率。而v.Freq=当前频率/Fmax(在IQ计算中,我们时常用当前值/最大值以控制参数在1以内)。这样明白了吧?v.Angle就是实际要求输出频率(例如50Hz)在开关频率下的一个增进量了。

    为什么要把Angle限制在-1~1.有两点需要注意的:1. 为方便IQ查表计算正弦值,Angle必须是一个-1~1的变量并转化为IQ值(代表-2PI~2PI)。2.如果你用的是CLA模块,里面的Angle直接就是-1~1的浮点,这样的话,在这个模块输出后,Angle是必须乘2PI后才能进下一个浮点模块。