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.

Initial torque producing problem problem with instaspin_foc



Hi,

I made a motor controller using hvkit solution. I needed to run my motor in torque control mode. So I made my development on instaspin_foc sensor less proj_lab05a. 

Motor controller worked very good with no load and low loads. But when it comes to my application, motor can not rotate with that load. I think FAST estimator can not initiate itself. How can I fixed this problem? 

Fortunately my motor has inbuilt resolver. Can I use that to solve that problem quickly. 

Thanks

  • SPRUHJ1 chapter 14 discusses full load start-up
    You should be able to start the motor up, but it may not be completely smooth as the initial angle is not known.

    Yes, if you use the resolver you should be able to initialize the electrical angle for start-up and even low speed. Or keep the resolver and use InstaSPIN-MOTION in sensored velocity mode like proj_lab12
  • Thank you for the quick answer.
    Can I use resolver with same setup? I am having TMDSRSLVR resolver to digital conversion kit. How can I use that with InstaSPIN-MOTION?
    Thanks
  • yes.
    for example in proj_lab12 you will see

    // run the controller
    CTRL_run(ctrlHandle,halHandle,&gAdcData,&gPwmData,ENC_getElecAngle(encHandle));

    and there are some other places that use ENC_getElecAngle function.

    Essentially, you need to create this electrical angle from your resolver information instead of the encoder.
  • Lakshan,

    All of the example lab code was written in such a way that you should be able to use any angle source. Like Chris mentioned, in order to make it work with the system you will need to replace all of the ENC_getElecAngle calls with your own function call that will return the electrical angle of the motor in the right format.

    It should be formatted so that it is normalized from 0 to 1 and it is an IQ24 variable.
  • thank you for the help,

    But I have few questions regarding that electrical angle. When it comes to one pole pair resolver,
    electrical angle = mechanical angel * number of pole pairs

    but I have five pole motor and five pole resolver. That means when I rotate one rotation of the motor, I can see five resolver cycles data (five sets of iq20(-1.0) to iq20(1.0) values). That means in one resolver cycle my motor rotates 360/5= 72 angle.

    Can you please help me to calculate electrical angle ? should I consider angle between two poles as 0-360 electrical angle. ?

    Thank you
  • Lakshan,

    If your motor is also five pole pairs than you should see five electrical revolution from your motor for each mechanical revolution.  So you just need to make sure that the electrical angle from your resolver is aligned with the electrical angle of the motor.  Additionally you will need to change the value of the electrical angle from the resolver.  For InstaSPIN the angle should be 0 to 1.0 as an IQ24 number.

  • Thank you Adam,
    Thank you for the answer. great. I understand the point. I will try that.

    I have two more question. How can I make sure that electrical angle from the resolver is aligned with the electrical angle of the motor.
    Should I follow trial and error method ? is there any method to fined that ?
    My motor name plate shows that
    RESOLVER OFFSET(Electrical Degrees) 101


    in data sheet
    Phase shift -9.7 +/- 11.6 | -9 +/- 7.8

    Can I use this data for the alignment ?
  • Lakshan,

    I'm not familiar enough with resolvers to answer your question about using information from the datasheet.  

    You can force the motor to be aligned to 0 degrees electrical.  This will at least give you a known point on the motor.  In order to do this you need to set a positive d-axis current reference.  The motor will move so that it is aligned to an electrical angle of 0.

    InstaSPIN will do this for you at startup if you allow the resistance to be recalibrated at startup.