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.

Finding nominal values for InstaSPIN

Expert 1570 points

Hi,

I'm having trouble understanding how to setup the nominal values (current,velocity etc)

I think there 2 non-trivial situations:

1. You have the data from your manufacturer - But, when they say nominal current - is it RMS, is it peak.. rarely I think you get good information, and also then - which driver do they use ? different control methods will produce different values...efficiency of the drives...

2. You don't have any knowledge - what do you do ?

Passing through the labs, I think this is a crucial subject to pay high attention to, as many parameters in the software depends on that...

If you can suggest a way for identifying these nominal values for each motor it will be great... in that way, also each motor can be optimized, as manufacturing tolerances will also be taken into account...

I think that using information regarding the short-circuit current, R/L values can help this kind of procedure

thanks for your great support and effort !

  • Mojo,

    What variable are you trying to determine?  If for USER_MOTOR_MAX_CURRENT , this isn't exactly a current in the motor. This is a limit on the value of the Iq reference input.  The actual current in the motor will be what we call Is (this is in most of the labs as gMotorVars.Is_A).  Is_A = sqrt (Iq_A ^2 + Id_A ^2).  Is_A is not limited in your system, it's something you would have to add if you want to insure you are keeping the current below a threshold.  Notice that if Id_A = 0 (as you are normally trying to control it with a PM motor) then Is_A = Iq_A.  As you add field weakening (Id_A) you would need to decrease Iq_A to insure Is_A stays less than the maximum continuous current for your motor, else you may demagnetize.

    Regarding the motor design, I strongly agree with you. There is a post on here somewhere I made on this topic. There are many motors which are designed very "poorly" based on stability for a V/Hz (or simple trapezoidal commutation) operation, with especially low inductance.  With InstaSPIN-FOC you can control a motor that is designed in a better way to still produce the speed an torque you need without the negative effects of too high short circuit current.

    Two equations that are helpful in looking at this topic:

    Isc [A] = Flux [V/Hz] / 2pi / Ls [H]

    Theoretical Max Speed [Hz] "RoverL" = Rs [Ohm] / Ls [H]

    However, there are of course dependencies on needed torque production, dynamic performance, cost, and most importantly efficiency and thermals that lead to some decisions on motor design.

    What we often see is Isc that are MANY multiples of rated current because the inductance is so small. To make a motor with lower L, you need a larger airgap and hence a thicker magnet to create enough B in the airgap. The thicker magnet is more expensive. It is not really the L value that matters, but the short-circuit current in comparison to the rated current. Many BLDC's have much higher Isc than needed for the job when using FAST. A machine design with suitable Isc of about equal to Irated, will be soft enough, lowering ripple current, enabling very high or even unlimited maximum speed.

     

  • Hi Chris,

    Thanks for the thorough explanation.

    I fail to understand what does the following equation means:

    Isc [A] = Flux [V/Hz] / 2pi / Ls [H]

    this seems as an expression for the "imaginary"  current that the field is producing - if you would have used a separately excited field you would need this current to produce the Flux...only that Lmd is replaced by Ls

    How do you relate this to the torque producing current Iq ? (assuming you're using Id=0, which is not necessarily true). seems more appropriate to use "Is" as the nominal current - this is the magnitude of the current vector.


    The bottom line is  - can you suggest a method for determining the nominal values - Voltage, current, angular velocity ? I think that if TI writes such a software module it would be fantastic for us users...

    I think such a method will optimize the performance of each motor spinned with instaSPIN

    thanks

  • Mojo,

    this is a basic motor equation, you can reference several texts on the topic

    =+

    which can be written as:

    / =c+

    with, c= /   (short circuit currernt)

    So Isc is determined by the flux and inductance and Torque is the product of the flux and current vectors.

    =×=

    Regarding your bottom line...I'm still not sure what you are requesting.  Voltage and current are through motor design. They will be specified by the manufacturer or at least by investigation of the motor parameters.

  • this e2e forum SW drives me crazy. It shows the equation / symbols fine when I copy paste them into my response, but then it doesn't post correctly!!!

     

  • Maybe a printscreen ?

    what do you mean by "investigation of the motor parameters"  ?

    about using nominal current from the manufacturer statement - well, it depends who's the manufacturer :)

    It's not always the case that you can use well-designed motors, but still need to spin them the best you can...

  •  

    What I mean by "investigation of motor parameters" is that TI can't tell you what your motor capabilities are. We can't create a test that tells you the maximum voltage or current of your motor. 

    I'm still not exactly sure what you are asking from us.

     

  • The root of my question comes from the fact that you're using a PU system, rather than real-world values. I think that using the PU system is a great idea... however, it imposes difficulties on the user, and small errors can become significant (since the PU system is not linear, but rather 1/X, where X is the nominal value).

    To clarify my question, let's take an example:

    I use a motor which is 30V rated. I don't know the nominal power exactly, or I don't trust the  manufacturer. I know it with 20-30% error....

    If the power rating was exact, I could calculate the nominal current (also, not trivial...).

    but it is not exact... that's the main problem...

    what I thought of doing is using your identification system (flux,R,L) to somehow relate them to the nominal values...

    Actually, as we progressed with this thread, I understand that maybe it's impossible... But still, I need to write something in the software as nominal values.

    I just raising a "user" problem, which maybe other people encounter...

  • The R, L, Flux, Torque, and Speed are in real-world values.

    But yes, before they are presented to the user they go through scaling. This is partially because the algorithm needs to work on a VERY wide variety of systems. And also due to the fixed point nature of the code. 

    Are you asking if there is a way for us to automate the choice of the IQ scaling variables (Frequency, Voltage, and Current)?  This is something that would be nice to do...essentially adaptively change these as required base on other calculations in the system.  We do have a couple of "check" equations that can tell you if the IQ Voltage scaling is in the right range based on the flux and Hz value.

    At the end of the day though you do need to know "enough" about the motor if you are trying to control it in an efficient way.