在foc子程序中有这样一段代码
if(FluxStatusFlag==1)
{
if (RunFlag==1)
{
Temp = _IQ16div(_IQ16(FreqRunSet),_IQ16(5000));
rc1.TargetValue = _IQ16toIQ(Temp);
rc1.RampCtrlMode = StepSpeedCtrlFlag;
}
else
{
rc1.TargetValue = _IQ(0);
rc1.RampCtrlMode = StepSpeedCtrlFlag;
}
rc1.calc(&rc1);
if (StepSpeedCtrlFlag==0&&SpeedDirectionFlag==1
{
rc1.SetpointValue0 = -rc1.SetpointValue;
}
else
{
rc1.SetpointValue0 = rc1.SetpointValue;
}
TargetValue不应该是个恒定的转速给定值吗,为什么这段程序中是由这个temp得到的,主要就是搞不懂Temp = _IQ16div(_IQ16(FreqRunSet),_IQ16(5000));这句话是什么意思,感谢大佬解答
|