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-FOC Start-up method

Other Parts Discussed in Thread: DRV8301-69M-KIT, CONTROLSUITE, MOTORWARE, 2MTR-DYNO, DRV8312

HI,

I'm developing PMSM FOC control system and the focus of my project is to start the rotation in the correct direction.

I've recently read of Instaspin-FOC solution and the start-up feature. At page 8 of Instaspin FOC Technical Reference Manual ( spruhi9 ) there is a compare of this technic with typical solution for Start-up.

Instaspin-FOC includes zero speed start with forced-angle.

Forced-angle is something like parking methods?

Thanks.

  • Not exactly. There are actually a few methods that can be used with InstaSPIN-FOC.  I'm in process of putting together a wiki page that explains them all, but let me start here with a post.

    Start-Up with InstaSPIN-FOC (FAST software sensor)

    • Please see the UG http://www.ti.com/lit/spruhj1 chapter 12 for full description and documentation of the techniques.
    • From a new start at 0 speed, with no "history", FAST does not have inputs and hence does not produce an output ANGLE that the FOC control system can use to orient the stator field in the proper location

       

    ForceAngle

    • The default/primary start-up technique for using FAST
    • ForceAngle is described in the UG, primarily chapter 12.4
    • In simple terms what it does is
    • From a starting angle, generates a delta angle, based on user frequency - which is used by the FOC system -  until a user limit, at which point the feedback from FAST is used instead
    • the default configuration is: 0 angle start, delta angle produced from rotating 1 Hz. This is used by the FOC system until the limit (USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz), which in the default user.h is 0.002 * 800 = +/- 1.6 Hz
    • Why this works so well for this solution is that FAST is so good that it will start producing the proper angle within one electrical cycle of rotation, so ForceAngle just needs to get the rotor moving slightly - and if the limits are set correctly - FAST will take over at the minimum point possible.
    •  
    • NEGATIVES:
    • Note that the starting angle is set at 0.  More than likely the fields do not happen to be in that alignment, so what happens when the initial stator field is not properly aligned? It depends on the load, the capability of the motor, and the strength of the output (max current command at start and then from the control system as it starts to compensate) but in general you could/will see at some point
    • rotor start-up delayed as the field builds and FAST takes over (high load, low output)
    • the rotor rocking slightly in the opposite direction (med load, med output)
    • the rotor moving suddenly in the opposite direction (low load, high output)
       

    Align / Park & Go

    • When using ForceAngle the initial instant of start can appear "violent" or "jerky" if the starting field is misaligned and especially if there is no load on the motor and care is not taken to limit the FOC current output during this process.
    • One way to manage this is to do an initial alignment or parking.  This allows for a more gentle movement of the rotor (may be forward or backwards) to orient correctly with the stator field. Once aligned the ForceAngle can start properly oriented for maximum torque production and a smooth, proper direction start.
    • This feature is discussed in UG chapter 12.5.2
       
    • NEGATIVES
    • Need time to do the alignment
    • Rotor still will move backwards sometimes
       

    ForceAngle-II

    • This is something we are testing now which is working quite well
    • It uses the same ForceAngle system but instead of just switching at a set threshold we monitor the signals and use some logic on this transition
    • This allows for very smooth transitions and enables moving to full closed loop with FAST as quickly as possible
    • It also has less dependency on the actual Rs, which makes it more robust
    • This will be published in the future and will work with all InstaSPIN-FOC systems (no revisions required to the ROM, etc.)
    • NEGATIVES
    • Does not solve the need to align or know your starting angle
    • Summary
    • Note that there is tremendous flexibility in these techniques and the default settings will NOT work for all applications. But there are some clever things that can be done depending on trade-offs for your start-up.
    • Do you even care if the motor slightly rocks backwards?
    • Can you allow any movement in reverse?
    • Do you have time to align/park (and the rotor will sometimes move backwards) before you start-up?
    • If the motor is always loaded do you have time to slowly build a field (and limit duty cycle / current) to allow FAST to take over?
    • What's more important, speed to start-up, smoothness, or no mis-direction?
       

    What's Next?

    • Notice that the ForceAngle starts at 0 angle by default, and in some of the techniques we align the rotor to orient correctly to the stator field. Why not do the opposite?
    • If we can use an algorithm that will identify the rotor position at zero speed, we can then align our starting stator field (by seeding the starting angle). And if we can do this quickly it is a big improvement over the Align / Park techniques for those that need very fast start-up with absolutely no mis-direction.
    • We do have these techniques working with FAST / InstaSPIN-FOC and we will be releasing them in the future :)
    • NEGATIVES
    • These techniques can be motor design dependent, relying on specific motor saturation or saliencey capabilities, so they will not work for every motor and testing must be done to see if the technique is appropriate. If you have the capability to design your own motor these design features could be implemented of course.
  • Chris, thanks for your explanation, but unfortunately no news.

    We're developing an algorithm to identify the position of the rotor at standstill because we don't want that the motor goes backwards and the motor cannot stay parked.

    We have planned to implement this in your DRV8301-69M-KIT.

    Fortunately we're developing for the motor producer company, for this we know well the motor parameters.

    Thanks for your help.

  • Alessandro,

    I'd be interested in discussing this with you. As mentioned we have several techniques already working. You can message me with your email if you want to discuss further.

  • For posterity, I wanted to add another comment to this start-up discussion that could help some people.

    When trying to start-up with full load it can help / may be necessary to get a better initial alignment as you start the Force Angle.  As mentioned above and in the UG one way to do this is an initial RsRecal (which is just adding +IdRef to align the stator/rotor fields).

    Another way to get a similar effect is to bypass the RsRecal, but actually inject some +IdRef directly as you start-up, just for the first second or so.  This has the same effect, aligns the stator/rotor fields w/o doing the full Rs recalibration.  We have seen a value of +20% of rated current required for IdRef for certain motors to start under full load.  This would be Field Boosting for an induction motor (where you are inducing the rotor field), but also helps as Field Maximizing for synchronous motors.

     

  • Just thought of some other items for posterity also :)

    Some other items that can help with loaded start

    • take note of the ForceAngle switching point (USER_ZEROSPEEDLIMIT * USER_IQ_FULL_SCALE_FREQ_Hz) and rotation rate (USER_FORCE_ANGLE_FREQ_Hz)
    • you want the switching point to occur as soon as FAST is providing good feedback. In some motors / inverters that is < 1 Hz, in some it will be higher
    • take note of USER_MOTOR_MAX_CURRENT, which is the maximum IqRef input
    • if you can run at least initially in torque mode, this allows a better step input of IqRef into the Iq controller (follow lab 4 to make sure you are setting a non-zero speed in torque mode so the direction capability works correctly)
    • if using speed mode recall that it is the speed controllers output that sets the IqRef, and this will not immediately be a step input and the maximum value.
      • to increase start-up capability
        • The speed controller needs to build up its integrator output to provide max IqRef
        • it needs a persisting positive error to do so
          • A higher Ki_mech value will hasten the build-up of IqRef.
          • a higher delta of [reference speed - force angle speed] increases error that integrates into IqRef.
            • increase reference speed if possible or lower forced angle speed.
  • Does the "What's Next?" section refer to zero-speed rotor position estimation techniques based on some kind of high frequency injection? Is there a plan to eventually include this as an alternative to ForceAngle to allow robust torque control (including reversals) at low speeds (below the limit of FAST)?

  • Sam,

    Yes, this is a HFI technique. It works with salient motors.....but some non salient motors have enough of a signature that it works well enough.

    Yes, it can be used to seed the initial angle for ForceAngle or it can be run during low speed operation providing the angle all the time.

    This initial position detection (and slow speed position detection) - call it IPD for short - will be offered as a .lib under software license for customers who have a TI or distribution FAE to request/support.  We are offering this first with our controlSUITE based SMO solution (example on the HVKIT) and will offer later this year as a project inside MotorWare for InstaSPIN solutions.

     

  • I've just spotted the announcement of the new eSMO in controlSUITE. Am I right in thinking that the way you are licensing the .lib for the HFI component means it always going to be unavailable to me (as a hobbyist working on a one-off non-comercial project) whether in controlSUITE or MotorWare. That would be pretty disappointing - I've been evaluating InstaSPIN-FOC on the basis that it seemed like the most advanced technique available and was really expecting to get access to future improvements. Previous posts about the roadmap for InstaSPIN didn't mention additional licensing.

  • Sam,

    No, I wouldn't say it will be unavailable to you.  We are simply changing the strategy of just putting every bit of source code out for free to anyone - including our competitors - who can click a download button.  For unique speciality functionality we are requiring you to request and give us some information.

    The vast majority of enhancements are being released in source code in MotorWare.  Version _09 will be available on 8/22 and offers several new enhancements.

     

     

  • Chris,

    That's good to know. I have no issue with you keeping functionality in embedded or library form only.

    I see you've been busy. I would be testing out the new version but I've sadly managed to fry my DRV8312. It was my own fault - I was pushing it way beyond its intended use. I don't suppose you can tell us when the 2MTR kit will be released? I've seen the 2MTR-DYNO (i.e. the two motors plus coupling) already. Will the board be released to coincide with the next version of Motorware by any chance?

     

  • Hi Sam,

    The 2MTR board itself is done, we're actually using a LEM modified version for datasheet style testing on FAST (will be updating the TRM with results).  Unfortunately there is a significant amount of software and documenation work to be done. Right now - with the other things we have in the works between now and January - I am thinking it will be April before we release the board as a full kit.

    Regarding new HW to replace your damaged DRV8312 (BTW - you can probably just swap out the DRV8312 chip) I'm not sure exactly what your power rating is, but we are going to release a new inverter end of October that I'm testing now.  It's pretty slick, 6-30V up to 10A and very small form factor.  Our MotorWare support will be for the new F2802xF we just announced today, but it would be extremely simple to enable SW support for TMSDCNCD28069MISO controlCARD and create a breakout board to interface to the inverter.