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.

Lab2b - Motor Identification

Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28027F, TMDSHVMTRINSPIN, DRV8301

Hello,


Sorry for bother you with a new post. I'm trying identify a small ACI motor that I have with InstaSPIN 28027F, but I can't finish the identification cause the EST_State return a error few seconds after the gMotorVars.EstState = EST_State_RatedFlux.

And few second after the Error:

I searched for some information about the behavior of motor throughout the identification and I didn't find anything,so I don't know if the motor's behavior it's the right or not fot this situation.

Add my user.h: 0083.user.h

Motor Specs (ABB Motors): (Delta Conf.)

1,9A

0.37 kw

50Hz

I followed the parameters and the design of the HV kit, so I don't know if I configured the user.h parameters correctly. Could you give me some tips if I'm doing some wrongly?

Thanks,

Bruno Ramos

  • Hello Bruno,

    While waiting TI expert reply you, what kit do you use for this? Is it HVKIT with F28027F controlcard or custom kit?

    Also I am wondering who is the one that disabling Flag_enableSys after the error occurs? Is it automatically disabled or you disable it?

    Best regards,

    Maria

  • Hello Maria,

    It's a custom kit with 28027F. The disabled of Flag_enableSys it's done automatically, I just set the flag to 1 at the start.

    Thanks for your disponibility.

    Bruno

  • Bruno,

    We know that we have some issues with ID on induction motors.

    A couple releases ago we added some additional software logic to correct scaling and keep control during ID for most induction motors.  We knew we still had an issue with ID of the low voltage (<100 Vdc) high current types....but I agree that we also have an issue with some of the "high voltage" (100-350Vdc) induction motors, especially the lower wattage versions.

    I just saw the EXACT same issue as you yesterday at a customer (very embarassing).  We are working on correcting in a formal release, but once we solve I will make sure to update this post directly so that you can ID these motors as well.

     

  • Could you share a plot of the currents? One thing that didn't look ok was the flux reading while identifying the motor. It shows about 4.3 V/Hz, although the specified rated flux is 0.8165*220.0/50.0 = 3.6 V/Hz.

    Make sure than at the end of the IdRated identification, the flux reading is stable and very close to what you specified under USER_MOTOR_RATED_FLUX. You can adjust how quickly or slowly IdRated is approached to the final value by adjusting this parameter:

    USER_IDRATED_DELTA

    Which has the units of A/trajectory tick. You can convert this value into Amperes per second, or A/s, with this equation:

    USER_IDRATED_DELTA (A/s) = USER_IDRATED_DELTA * USER_IQ_FULL_SCALE_CURRENT_A * USER_TRAJ_FREQ_Hz

    Another thing is if you are using a 27F control card. If you do, make sure you have the correct DIP switches positions, since some of them connect / disconnect analog pins.

    Let me know if this helps.

    -Jorge

  • Hello Chris and Jorge,


    This could interested both, so I will responde here to both.

    Chris,

    It's a pity that InstaSPIN FOC it isn't yet a 100% working for this specific motors. Could you point me a date for when you will have a release for this? I'm working on a project and InstaSPIN it's a really good solution for what I want to do.

    Jorge and Chris,

    Yesterday, after I posted this I tried to change some parameters on user.h, like

    USER_IQ_FULL_SCALE_CURRENT_A             (3.0) // 10.00 before

    USER_ADC_FULL_SCALE_CURRENT_A        (5.89)// 19.98 Before

    And with this values I coulded do the identfication. Results:


    I was following the instaspin_labs - lab2a/b for 1st identification of the motor. I coulded do the LockRotor test and get the results, but when I tried to do the next step (pag. 34)

    After I set the flag “gMotorVars.Flag_Run_Identify” = 1, the motor have a erratic behavior during a few time and I dont have any value on the offsets after waiting a lot of time.


    Now I will try the lab3 with the values calculated on lab2 and post here the results. I'll be waiting for your advices about this.

    Thanks,

    Bruno

  • Jorge,


    I'm using the launchPad with 28027F, and I have all the DIP's up -> ON.

  • This is a custom inverter?

    You can't just change the ADC and IQ values...they need to be accurate to the circuit scaling or else everything will be wrong. 

  • Chris,


    Could you tell me what I need to pay attention? I read some posts on the forum and the UG, although the guides seems look too generic and if we have a big differences between the devices, maybe you should point or refer that on the guides for beginners users, like me, are aware for that. It's a constructive criticism.

    Thanks,

  • Hello Bruno,

    About the hardware difference related to InstaSPIN, it is mentioned on InstaSPIN-FOC and InstaSPIN-MOTION User's Guide that you can get from Motorware (it will direct you to this link www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=spruhj1), chapter 5.2 of this document.

    I believe you will find what you need to put in user.h based on your hardware in this document.

    Best regards,

    Maria

  • Bruno,

    Can you please clarify exactly what HW you are using?

    Custom inverter that has IDENTICAL current and voltage scaling as well as same phase voltage filters?  That is what your user.h suggests.

    LAUNCHXL-F28027F being used as the controller?  I assume you can plug this into your inverter?

  • Hello

    Maria,

    Thanks for your help and yes, I had read almost of all that UG, less the Motion subject.

    Chris,

    The custom HW that we are using is based on the Texas HV kit (TMDSHVMTRINSPIN). I don't understand very well  your question, but if you want/could I can send you a picture of the drawing of our custom HW (by PM).

    Yes, LAUNCHXL-F28027F it's pluged on the inverter.

    Thanks,

    Bruno

  • Bruno,

    It isn't clear in your customization if you have kept all voltage / current sensing circuitry the same as the HVKIT and if you have made proper SW adjustments for the LaunchPad pin layout compared to the exsiting project with the HVKIT which uses the controlCARD.  

  • Hello,


    Could someone tell me the values of the parameters for this kind of motor? I already try to search for values, but I can't find anything.

    Caracheristics provided on motor ( Y configuration):

    - 0.37 kW

    - 50 Hz

    - 1420 rpm

    - 1,1 A

    Thanks,

  • if you have a full nameplate you can calculate everything per this post

    http://e2e.ti.com/support/microcontrollers/c2000/f/902/t/318299.aspx

    just looking at the first image you posted I'd say that the magnetizing current identified looks too high (1.8A for a 1.1A motor). 

    your flux value is larger that the target you should be setting in user.h

    #define USER_MOTOR_RATED_FLUX           (0.8165*230.0/50.0)

     

  • Chris,

    Thanks for your reply. I just have the parameters indicated on last post, so I can't calculate none of the parameters.

    The values on 1st figure I didn't considerate it, cause them return me a error. On the 2nd figure, I already get pass the error and get that values. But I don't have any idea if this values are between the range of correct values for the parameters of this kind of motor.

    If anyone have an idea of the values for this motor, I'll be very much appreciate.

  • Bruno Ramos1 said:
    On the 2nd figure, I already get pass the error and get that values.

    You "got pass the error" by completing changing the Analog to Digital scaling, which gives you incorrect values, even if the motor passes. You've told the SW you are measuring a certain value of 0 to 3.3V at the ADC pin which relates to a real high voltage / high current signal, but your relationship  is now flawed.  These values are not correct (the Rs values look much too high for one thing).

    Please check all of your current and voltage scaling, as well as the voltage filter pole calculations using SPRUHJ1 chapter 5 as a guide.  Update your user.h for your HW. Check the hal.c/.h files that the ADC channels and PWM channels are mapped correctly for your LAUNCHXL-F28027F to your inverter pins.

  • Chris,


    I understand your point, and I shouldn't change the scaling values for my HW. Got it.

    I already did what you said and now I have the value of Rs similar the value that I can measure (~= 21 Ohms).

    But the value on Ls_q is too low and return me a error on lab3a/b, and if I increase the Ls_q (I know that I shouldn't, just wanted to see what happens) now return the error that the value of Rr is too low.

    Also, on lab2b after the estimator finishes the motor ID I tried changed the value of "gMotorVars.SpeedRef_krpm" (Try doing what it's on instaspin_labs- lab2a) and nothing happens, the same for “gMotorVars.MaxAccel_krpmps”.

    Could you guide me for what is wrong?

    5584.user.h

    8764.motorware_selecting_user_variables.xlsx

    Thanks for your disponibility.

  • For motor ID, when prompted, are you locking the rotor, and keeping the shaft locked for the rest of the ID process?

    The Ls and Rr so small is usually seen if you don't.

    I'd also go back to your original problem.  When ID goes from IdRated to Rated Flux does the rotor keep spinning until RampDown & LockRotor states?

    Assuming your current/voltage ADC/IQ values are correct now, I don't see anything else in user.h that is too concerning. The USER_MOTOR_FLUX_EST_FREQ_Hz at (10.0) is not really required, but typically isn't a problem.

  • Hi Chris,

    Happily, I already could do the ID of the motor without strange behaviors and now I can tune the "gMotorVars.SpeedRef_krpm" & “gMotorVars.MaxAccel_krpmps” flags and see the motor changing his speed.

    The problem: A misunderstanding of the IGBT module! I'm really sorry for bother you and the other people that spend their time with my 'stupid' mistake!Sorry! I hope that you want keep going answering to my questions.


    If you don´t worry, I have a question about the maximum speed that I can reach with my motor. I already change the values of user.h for reach 8000rpm with my motor, but I can't pass the 6000rpm. could you tell what it's missing?

    7103.motorware_selecting_user_variables.xlsx

    2158.user.h

    Thanks,

  • You either need 

    1. More bus voltage

    2. Use more of the bus voltage (see proj_lab10 for overmodulation) 

    3. Reduce the magnetizing current for an induction motor....it nay be that the flux value used was too high, resulting in too high mag current, which is limiting the torque producing current. 

  • Dear Chris,

    I have also big problems with a high current/low voltage induction motor. I have an 48V system, drv8301 ti board, motorware 13, ccs5, compiler 6.2.7. An 34AC induction motor of 0.37kW is running ok. But an 34AC induction motor of 1.1kW gives big problems. The identification goes fault in the Idrated or RatedFlux part. In the graphs we see a not symmetric space vector of the voltage. The current is also not an good sinus. The flux calculation looks very bad.

    -you are working on this problem, is there not a workaround or makeshift for me?

    -with which old version of motorware should it be ok?

    -I have also some practical questions of ccs. Why are the graph settings are not saved? Now every time I have to made the graphs.. And why not a graph of 4 lines/inputs?

    -this calculation goes sometimes wrong (high currents):

    // calculate vector Is in amps

    gMotorVars.Is_A = _IQsqrt(_IQmpy(gMotorVars.Id_A, gMotorVars.Id_A) + _IQmpy(gMotorVars.Iq_A, gMotorVars.Iq_A));

    I changed it:

    gMotorVars.Is_A =_IQ( sqrt((double)_IQtoF(gMotorVars.Id_A)*(double)_IQtoF(gMotorVars.Id_A) + (double)_IQtoF(gMotorVars.Iq_A)*(double)_IQtoF(gMotorVars.Iq_A)));

    -I had a strange thing with motorware13 and ccs5, the debugger don't startup. There is an bad path link inside. I made a copy of an debugger of motorware 12, and then it's running. Maybe there are no problems with motorware13 and ccs6?

    Ohh sorry for all the questions. I hope we can made a good solution for our projects with InstaSPIN.

     

     

     

  • Jan van Kuilenburg said:
    The identification goes fault in the Idrated or RatedFlux part

    Jan,

    Yes, we are still having issues with ACI motor ID, especially in higher current motors (but even in low current).  It mostly has to do with settling the current control during the IdRated and RatedFlux states.

    Do you know enough about the motor to load the motor parameters in user.h directly?  There is nothing wrong with the control of ACI, just correctly ID'ing the parameters on some motors.

    This is on our to-do list to get fixed, but we have a long to-do list.

    Jan van Kuilenburg said:
    An 34AC induction motor of 0.37kW is running ok

    I'm curious, did this one ID values you expected?

    Jan van Kuilenburg said:

    -I had a strange thing with motorware13 and ccs5, the debugger don't startup. There is an bad path link inside. I made a copy of an debugger of motorware 12, and then it's running. Maybe there are no problems with motorware13 and ccs6?

    I don't have these issues. I just checked again with CCSv5p5 and MW _13. Is there a specific board / device / project you can duplicate the issue? I can check that one for any issues.

    Jan van Kuilenburg said:

    -I have also some practical questions of ccs. Why are the graph settings are not saved? Now every time I have to made the graphs.. And why not a graph of 4 lines/inputs?

    I can't answer these questions...you can complain / suggest on the Code Composer Studio forum if you want. Lots of things I don't like about CCS either!

    Jan van Kuilenburg said:

    -this calculation goes sometimes wrong (high currents):

    Is one of the values for Id or Iq overflowing?  I think the equation you wrote will take a whole bunch of cycles to complete.

  • Hi Chris,

    Thanks for your answer.

    Do you know enough about the motor to load the motor parameters in user.h directly?  There is nothing wrong with the control of ACI, just correctly ID'ing the parameters on some motors.

    I don't have enough about the motor, but with a little bit trial and error(also comparing with the another 0.37 kW motor), I can't run the motor.

    I'm curious, did this one ID values you expected?

    When I look at the torque/rpm curve, it looks like ok. But I don't have much experience with induction motors.

    I don't have these issues. I just checked again with CCSv5p5 and MW _13. Is there a specific board / device / project you can duplicate the issue? I can check that one for any issues.

    I installed mw13, remove lab5b of mw12, imported lab5b of mw13 in ccs. Then the debugger don't runs?? It gives an error with a strange path for searching the debugger. I used drv8301 board. When I go back to lab5b of mw12 or mw 11 it's ok

    Is one of the values for Id or Iq overflowing?  I think the equation you wrote will take a whole bunch of cycles to complete

    No because then should also the new function be wrong. I tested it, and the Id and Iq are correct. It takes now a lot of cycles, but its outside of the ISR. Have you an other solution?

     

     

  • Jan van Kuilenburg said:

    I don't have these issues. I just checked again with CCSv5p5 and MW _13. Is there a specific board / device / project you can duplicate the issue? I can check that one for any issues.

    I installed mw13, remove lab5b of mw12, imported lab5b of mw13 in ccs. Then the debugger don't runs?? It gives an error with a strange path for searching the debugger. I used drv8301 board. When I go back to lab5b of mw12 or mw 11 it's ok

    I can't duplicate this issue. Very strange.  You have both MotorWare versions at the same installation location / hierarchy?

    Jan van Kuilenburg said:

    No because then should also the new function be wrong. I tested it, and the Id and Iq are correct. It takes now a lot of cycles, but its outside of the ISR. Have you an other solution?

    I was trying to search to find this...I think I or Jorge Zambada posted a better calcuation for this in the last few months...the search funtion here isn't finding it though, so maybe I'm imagining.

    Jan van Kuilenburg said:

    I don't have enough about the motor, but with a little bit trial and error(also comparing with the another 0.37 kW motor), I can't run the motor.

    The main thing to focus on is the magnetizing current.  if your flux value target you are trying to achieve is too high the magnetizing current will be too high. It also may saturate to your MAX_CURRENT value.  I have found several induction motors that I think are designed for a certain Hz at a given voltage (giving me the target USER_MOTOR_RATED_FLUX) but upon testing I realize that this value should be much lower...this is very common for low voltage induction motors.

    I would first try lowering this flux value and watch the magnetizing current as you are trying to Id. It needs to make sense for the current capability of your motor (as does the MAX_CURRENT) setting.