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 lab04 current control issue

Other Parts Discussed in Thread: DRV8301-69M-KIT, MOTORWARE

Hi Sir,

evm : DRV8301-69m-kit

motorware ver : v15

application : e-bike

motor pole pair : 7

user.h  USER_MOTOR_MAX_CURRENT          (5.0) --> for test

I used lab04. Iq=2.0 the motor run max speed = 3.4Krpm, I increase loader, the speed is no variable. when the loader is overhead , the speed is quickly count down to "0". then release the loader. The speed come back max speed.

I have used lab03b to test as below:

1. Set the SpeedRef_krpm = 3.4Krpm, I increase loader, the speed is no variable. when the loader is overhead , the speed is quickly count down to "0".  then release the loader. The speed come back max speed.. That's as the same as the lab04.

2. Set the SpeedRef_krpm = 2Krpm, I increase loader, the speed can count down. When I increase the loader , the speed can be variable.

I don't know why ? If the motor run max speed. I increase the loader the motor can out of control ???

Please help me to solve it, thanks a lot.

summary

  • most likely need to increase USER_MOTOR_MAX_CURRENT significantly. 5A peak is not very much for an e-bike.
  • Hi Chris,
    Thanks for your reply.

    When I modify USER_MOTOR_MAX_CURRENT 5A to 20A, the result is the same.
  • are you using a current probe to measure the phase current? what value does it reach under load?

    the only other thing would be that the motor parameters are incorrect, hence the proper angle isn't estimated and torque is diminished. please attach your user.h

    also insure you are using compiler 6.2.3+
  • Hi Sir,

    I have done the motor ID many times. the motor parameter is almaost the same.

    I have measured some current wave as below.

      

  • Hi Sir,

    I have done the motor ID many times. the motor parameter is almaost the same.

    I have measured load overhead  current wave as below.

    extend load overhead current wave

  • Is it possible that the steel used in your motor has a very non-linear hysteresis curve?  If so, this means that the value of inductance is not a constant, but changes as a function of loading.

     

    If true, this means you will have to reduce the P and I terms of your current controllers.  Please try reducing these values by 1/2 and see if the oscillation continues.

     

    -Dave

     

     

  • Hi Dave,

    Thanks a lot !!

    I use lab05a to adjust Torque mode Kp/Ki.  When speed up to 3.4krpm, The Kp/Ki volume reduce 1/2. The test result is as the same as before test.

    I used lab04 to write program to limit speed can't over 2.5krpm,  When I increase load, the speed can count down. When I increase the loader , the speed can be variable. when the load is over controller can output max torque, the speed is "0" & the torque is vibration. The torque can't keep max output 

    I use lab03b to test. The result is as the same as the lab04

    Before I guessed when motor run highest speed , Increase load the speed is count down fastly to "0". that issue is not all. The issue should be the load is over controller can output power. the speed is count down to "0"(that's right), but the torque is vibration.

    I have test 4 defferent motors. The result is the same.

    Please Help us to solve this issue.

  • Hi Grace Lai,

    Seems that your application is a traction application. Means, your application require high motor torque. I have faced similar problem, now you are facing. Only difference is I used lab5a and my motor controller is based on HV-KIT. When motor run with a low torque, it worked fine but when I increased load suddenly it was stopped.

    The reason with my case was sensor-less FOC can not produce high torque. I had to use sensored FOC to make that work. Then problem was fixed.
    So my suggestion is to used lab12b or any other lab_project with a sensor (encoder or resolver) and fix the problem.

    Hope this will be helpful to you.

    Thanks

  • Could you please post your user.h file? I would like to take a look. Sorry if you posted the user.h already, but I couldn't find it.

    I haven't seen this behavior in the past, so I am hoping it is a simple fix in the parameters.

    -Jorge

  • Hi Jorge,

    Thanks a lot !!

    attached file is user.h.

    3312.user.h

  • Hi Lakshan,

    Thanks a lot for your suggestion. I can't add encoder , because the cost is too high.

    I have been adjust "user.h  USER_MOTOR_MAX_CURRENT " different volume. When the load is over controller can support max power, The speed & torque are like above picture.

  • I don't see anything wrong with your user.h file. Let me ask you for a few things:

    1. Could you monitor DCbus and confirm that is not collapsing when the current demand is increased? If this is collapsing, could be the power supply, or something in hardware

    2. Could you monitor the flux variable and make sure is not clipping? Hopefully you can put this variable in a plot somewhere: "gMotorVars.Flux_VpHz", this is a floating point variable by the way. Alternatively you can use this variable, which is fixed point (IQ24): "gMotorVars.Flux_Wb". If this variable is clipping or limiting, and is very different than the value specified in user.h: "#define USER_MOTOR_RATED_FLUX           (0.05508217)" then the identified motor parameters might be off.

    3. Could you monitor the output of the Id current controller? So you can add this to your watch window. The value should be around zero, if not, the motor parameters are either off, or phase angle compensation needs to be adjusted, but I don't think that's the case by the way

    -Jorge