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.

在motorware中有感应用中能够实现电流控制吗

Other Parts Discussed in Thread: MOTORWARE

我需要实现电机的位置、速度、电流控制,电机带有旋转变压器作为位置控制的传感器,现在我采用motorware中有感的应用,但发现有感的应用(如LAB13e)可以实现位置和速度的控制,不能实现电流的控制(像LAB05a中那样,给定IqRef_A 的值让电机运转),我查看了ctrlQEP.c中没有CTRL_setFlag_enableCurrentCtrl和CTRL_setIq_ref_pu函数,请问怎么实现电流控制呢?

       谢谢!

  • “我需要实现电机的位置、速度、电流控制,电机带有旋转变压器作为位置控制的传感器,现在我采用motorware中有感的应用,但发现有感的应用(如LAB13e)可以实现位置和速度的控制,不能实现电流的控制(像LAB05a中那样,给定IqRef_A 的值让电机运转),我查看了ctrlQEP.c中没有CTRL_setFlag_enableCurrentCtrl和CTRL_setIq_ref_pu函数,请问怎么实现电流控制呢?”
    ERIC:
    你可以参考lab05a 里面就是电流环控制的例程。
    直接禁止掉速度环就可以控制电流环。
    或者,你查看ctrl.h,在如下代码做一些修改,也可以直接控制电流环。
    // get the reference value
    if(CTRL_getFlag_enableSpeedCtrl(handle))
    {
    refValue = CTRL_getSpd_out_pu(handle);
    }
    else
    {
    // get the Iq reference value
    refValue = CTRL_getIq_ref_pu(handle);
    }
  • 谢谢ERIC的回复,你帮忙看看是否可以按照下面的代码实现电流和速度的转换
    在主程序执行
    if(CurrentCtrlEN)//如果采用电流控制
    {
    ctrlHandle->flag_enableCurrentCtrl=true;
    ctrlHandle->flag_enableSpeedCtrl=false;
    updateIqRef(ctrlHandle);
    }
    else
    {
    ctrlHandle->flag_enableCurrentCtrl=false;
    ctrlHandle->flag_enableSpeedCtrl=true;
    ST_setupPosConv(stHandle);
    ST_setupPosCtl(stHandle);
    ST_setupPosMove(stHandle);//设置 SpinTAC 位置移动的所有默认设置值
    }

    在中断中
    if(!CurrentCtrlEN)//如果不采用电流控制
    {
    ST_runPosConv(stHandle, encHandle, ctrlHandle);
    ST_runPosMove(stHandle);//速度控制
    ST_runPosCtl(stHandle, ctrlHandle);
    }
    还有需要补充的吗?
    谢谢!
  • 谢谢ERIC的回复,问题解决