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.

LAUNCHXL-F28069M: Problems with INSTASPIN/Motor ID on custom hardware

Part Number: LAUNCHXL-F28069M
Other Parts Discussed in Thread: BOOSTXL-DRV8301, MOTORWARE

Hello! My name is Lucas Paiva, and I am an undergraduate student working with a Formula Student team. I have been developing a three-phase inverter using InstaSpin. Initially, I began with LAUNCHXL-F28069M + BOOSTXL-DRV8301 to validate the idea. Recently, I designed my own custom board (still utilizing the LAUNCHXL-F28069M) with the following specifications:

  • 6 isolated gate drivers
  • PWM at 15kHz (capable of reaching at least 20kHz)
  • Current sensitivity: 3.52 mV/A (with USER_ADC_FULL_SCALE_CURRENT_A set to 937.5 using LEM HO 150-S-0100 with a 5V to 3v3 divider)
  • Voltage sensitivity: 32.35 mV/V (with USER_ADC_FULL_SCALE_VOLTAGE_V set to 102.0 using an isolated voltage divider + filter)

Currently, I am testing it with the following motor specifications:

  • ACIM motor
  • 4 poles (2 pole pairs)
  • Nominal voltage: 65.5 V
  • Nominal current: 122 A
  • Power factor (Cos(theta)): 0.5
  • Nominal RPM: 3530
  • Nominal frequency: 120Hz

I have successfully completed Lab1b with open-loop control, and signal integrity appears satisfactory (verified with an oscilloscope and by plotting variables from Lab1b). However, I encountered difficulties implementing closed-loop control (Lab1c).

I am facing challenges during the motor identification process in Lab2a (also in 2c). I am not using the nominal currents and voltages. Currently, I am powering the system with a 30V battery limited to 10A DC input current (protected by a fuse). To work with lower currents, I modified my current transducer by increasing the number of turns to five, resulting in a sensitivity of 17.6 mV/A (with USER_ADC_FULL_SCALE_CURRENT_A set to 187.5).

Despite extensive parameter tweaking, I managed to complete the motor identification, but the motor fails to run afterward. The estimator appears to become unstable, causing the motor to behave erratically and stall. Additionally, I obtained inductance values (Lsd/Lsq) in the order of e-10, indicating significant inaccuracies.

I utilized the motorware_selecting_users_variables spreadsheet to tune my values, but it did not yield satisfactory results.

Some specific questions:

  1. Where should I begin troubleshooting? Despite trying various approaches and consulting similar topics on forums, I still feel lost due to lack of progress.

  2. Would it be advisable to attempt motor identification with currents and voltages closer to their nominal values?

  3. Is there an alternative method to verify my current and voltage gains? Despite triple-checking, I suspect I might be overlooking something.

  4. Should I configure offsets or biases for my current and voltage sensors? My understanding is that these are calculated and applied in Lab2a (and 2c), with the option to reuse them later.

Attached are my user.h, user_j1.h, and motorware_selecting_users_variables.xls files.

motorware_1_01_00_18 and CCS 12.6.0.00008 (arm, MacOS)


thanks you

8357.user_j1.h2061.motorware_selecting_user_variables.xlsx

61661.user.h

  • Lucas,

    The first thing I notice there is you mentioning that it's an ACIM motor. Referring to the InstaSPIN-FOC and InstaSPIN-MOTION User's Guide, there are special considerations for ACIM motors. Section 6.4 of the current rev (Rev I) in particular goes over those differences. Section 6.10.2 goes over common troubleshooting steps for ACIM Motor ID.

    At a glance in your user_j1.h file, I see that you've accounted for these changes. However, I see that your RES_EST_CURRENT (20A) is very high, particularly seeing that your max current is also 20A.

    Last thing I see from an initial glance is that HW pole as calculated in the selecting_user_variables excel sheet is significantly lower than the minimum pole value. Make sure that you're adhering to the minimum value provided.

    Regards,
    Jason Osborn