我设法使自己的硬件正常工作。 现在、我想知道如何设置电流来控制 InstaSPIN。 我要使用恢复-->需要设置负电流。 我该怎么做。 或者是否有其他方法可以通过 InstaSPIN 恢复。 我实际使用的是 lab10。
此致
Jonas Schulz
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.
我设法使自己的硬件正常工作。 现在、我想知道如何设置电流来控制 InstaSPIN。 我要使用恢复-->需要设置负电流。 我该怎么做。 或者是否有其他方法可以通过 InstaSPIN 恢复。 我实际使用的是 lab10。
此致
Jonas Schulz
/* if(EST_doSpeedCtrl(estHandle))
{
counterSpeed++;
if(counterSpeed >= userParams.numCtrlTicksPerSpeedTick)
{
counterSpeed = 0;
PI_run_series(piHandle_spd,
estInputData.speed_ref_Hz,
estOutputData.fm_lp_rps * MATH_ONE_OVER_TWO_PI,
0.0,
(float32_t *)(&(Idq_ref_A.value[1])));
}
}
else
{
Idq_ref_A.value[1] = 0.0;
} */
代码始终位于 IF 内部。 我不知道为什么 EST_doSpeedCtrl 总是为 true
您似乎没有使用最新的示例 代码、或者您已更改了 lab10示例代码、或者您没有在 motorControlSDK 中使用 lab10。 您能否再次下载并安装 motorcontrolSDK?
C2000WARE-MOTORCONTROL-SDK:http://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK
在 lab10中、速度环路的示例代码应如下所示。
if (counterSpeed >= userParams.numCtrlTicksPerSpeedTick)
{
if (motorVars.flagEnableSpeedCtrl == true)
{
反转速度= 0;
pi_run_series (pioHandle_spd、
estInputData.speed_ref_Hz、
estOutputData.fm_lp_rps * MATH_OW_OVER 两个 PI、
0.0、
(float32_t *)(&(idq_ref_a.value[1]));
}
ELSE //扭矩控制
{
Idq_ref_A.value[1]= IdqSet_A.value[1];
}
}