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.

LEM current sensing, and Phase Voltage Sensing with Lab13b (modified)

Other Parts Discussed in Thread: MOTORWARE

I have two separate questions here, I think.

1. If I use LEM current sensors instead of shunt resistor measurement in an FOC design, where should the LEM sensors be in the circuit, in-line with the load, or somewhere else? Also, how many LEM sensors are needed, or preferred? From reading the Instaspin User Guide, I know that a three shunt solution  is the best for shunt resistor measurement

2. Am I correct in thinking that phase and dc bus voltage measurements are only used when the FAST algorithm is being used, and that is only used for a sensorless motor drive? If I have a motor with absolute encoder position sensing and am deriving motor pole-position from this, can I dispense with the voltage measurements or are they used for some other purpose?

I had a system working from the 69M-KIT some time ago but am now using the Launchpad-XL 28069M board with the BOOST-XL, and a custom plug-in board with LEM current sensors, which can be wired into the circuit where appropriate.

Thanks for any help with this.

Regards,

Geoff 

  • Geoff,

    1. in-line between the driving line and the motor phase wire.  only 2 are required as you can take measurements on both phases at any time, unlike shunts where sometimes one or two phases are unavailable.

    2. the phase measurements are only required for the FAST algorithm.  the voltage measurement is used for DC bus compensation. it can often be eliminated, but most applications keep it for monitoring at least.

  • Thank Chris.

    Just so I'm clear on this, should I put the two LEM sensors in the A and B phase lines, then set the user.h file up for two sensor operation, and other than that everything else stays the same in the software ? Also does the timing trigger point of the ADC for reading the currents stay unchanged ?

    Is the dc bus compensation used by the current loop, i.e even without the use of the FAST algorithm ?

    Regards,

    Geoff

  • correct, use A and B and set NUM_CURRENT_SENSORS (2)
    no other changes required. timing stays the same.
    since you have continuous current monitoring capability you can implement over sampling and averaging, but we don't show an example at this time.

    DC Bus Compensation can be enabled/disabled. You should disable if you don't measure Vbus.
    // enable DC bus compensation
    CTRL_setFlag_enableDcBusComp(ctrlHandle, true);

    Also, in your ADC data storage structure I think you want to go ahead and fill in all the Vdc, Va, Vb, Vc with 0 values.
  • OK, it's good that there's nothing needs to change.

    Oversampling would mean sampling several times within a PWM cycle, would it ? If I'm running a high PWM cycle rate, say 50KHz, wouldn't the processor start to run out of steam in doing that and some averaging? Presumably the averaging would give a smoother current reading and quieter motor operation, which is important in my application ?

    Thanks again,

    Geoff

  • yes, two or more times.
    you wouldn't stay in the interrupt, and wouldn't run the full current/est/ctrl interrupts at your PWM rate, or even your ADC rate.
    this isn't so straight forward to do by using the CTRL and timing/decimation included in InstaSPIN

    the good news is you very likely don't need to oversample. it would really only be beneficial if you have a pretty low inductance / high short circuit current motor which tends to not have a very linear current change during hi/lo-side switching events. For most motors taking a sample in the center of the switching event gives you the reasonable average that you require for FOC.
  • Chris,

    I think the oversampling may be beneficial, because audibly quiet operation of my motor at very low speed (this is a direct-drive PMSM motor) is important. I'm pretty sure that noisy current measurement is a big contributor to audible motor noise, isn't it, so oversampling and averaging would help? Anyway, I'll think about this later, after I've got the motor going with the LEM sensors.

    One other thing, although it's been very heavily modified to use a sine/cosine encoder for position control, the version of Lab13b that my design is based on is pretty old now. Have there been any significant developments in the Insta-Spin software in the last 12 months or so that may help in me?

    Thanks again for your help,

    Geoff

  • what version of MW is your code based on?
  • Where do I find the Motoware version? If I start MW up, I can't find any way to display the version
  • 1. it's in the path name
    C:\ti\motorware\motorware_1_01_00_15

    2. there is a SW manifest document at that location with the revision in the name

    3. from MotorWare.exe under Resources --> Revision History
  • OK, looks like I'm working with 1_01_00_12
  • there were some significant updates in v13, including SpinTAC library upgrade. some minor updates in 14 and 15.
    I would definitely migrate up to 15 if you can.

    we have v16 planned end of February, and maybe one more next summer/fall.