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.

MCF8316A: Motor overshoots during startup

Part Number: MCF8316A


Tool/software:

Good morning,

I am working with the MCF8316A motor driver to control a DF45M024053-A2 BLDC motor in a reaction wheel system. A flywheel is mounted to the motor shaft using a flange, secured with lateral screws.

To configure the system, I retrieve motor parameters using the MPET tool, run it once, and save the values related to the closed-loop operation. This allows me to control the wheel without repeatedly estimating parameters. When managing the motor alone, everything works as expected. However, issues arise when I attach the flywheel.

The additional inertia introduced by the flywheel is between 0.000281 and 0.000445 Nm², depending on the model. To account for this, I re-run MPET with the flywheel attached. However, when I attempt to start the motor, it tends to overshoot significantly.

I have experimented with various parameters, particularly within MOTOR_STARTUP1 and MOTOR_STARTUP2, adjusting values such as OL_LIMIT, OL_ACC1, and OL_ACC2. However, I observed that the most impactful changes come from the MPET-estimated motor parameters. Running MPET multiple times, I found a configuration that reduces the startup overshoot to around 200 RPM when the target speed is 200 RPM (meaning the motor initially jumps to 400 RPM). At higher speeds, the overshoot is even more pronounced.

Below is my current configuration:

{0x0080, 0x64630C20}, // ISD_CONFIG
{0x0082, 0x283AF064}, // REV_DRIVE_CONFIG
{0x0084, 0x4C3307D4}, // MOTOR_STARTUP1
{0x0086, 0x13AE6000}, // MOTOR_STARTUP2
{0x0088, 0x28A181B0}, // CLOSE_LOOP1
{0x008A, 0x1AADA363}, // CLOSE_LOOP2
{0x008C, 0x1F800005}, // CLOSE_LOOP3
{0x008E, 0x6BCACE10}, // CLOSE_LOOP4
{0x0090, 0x5FE80207}, // FAULT_CONFIG1
{0x0092, 0x74000000}, // FAULT_CONFIG2
{0x0094, 0x00000000}, // SPEED_PROFILES1
{0x0096, 0x00000000}, // SPEED_PROFILES2
{0x0098, 0x00000000}, // SPEED_PROFILES3
{0x009A, 0x00000000}, // SPEED_PROFILES4
{0x009C, 0x00000000}, // SPEED_PROFILES5
{0x009E, 0x00000000}, // SPEED_PROFILES6
{0x00A0, 0x00B3407D}, // INT_ALGO_1
{0x00A2, 0x000001A7}, // INT_ALGO_2
{0x00A4, 0x00000001}, // PIN_CONFIG
{0x00A6, 0x00000000}, // DEVICE_CONFIG1
{0x00A8, 0x0000B000}, // DEVICE_CONFIG2
{0x00AA, 0x40000000}, // PERI_CONFIG1
{0x00AC, 0x00000100}, // GD_CONFIG1
{0x00AE, 0x00200000}, // GD_CONFIG2
{0x00EA, 0x00000000}, // DEV_CTRL
{0x00EC, 0x00000000}, // ALGO_CTRL1
{0x00EE, 0x00000000}, // ALGO_CTRL2

I would appreciate any guidance on additional parameters that might help reduce this startup overshoot further. Given the relatively high inertia of the system, is this an inherent limitation, or are there other settings that could help mitigate the issue?

Thank you in advance for your help,
Silvio Saccoman.

  • Hi Silvio,

    Thanks for providing good clarity.

    Let me start by verifying device part number, tools and environment which you are using.

    I have a question about the device, is this MCF8316A or MCF8316C?

    The latest EVM will have MCF8316C, and we recommend using this along with GUI Motor studio.

    As you said rightly, MPET need to run for motor with load for proper gain calculation.

    The reason for overshoot can be

    1. Open loop to closed loop hand off speed-> You can reduce hand off threshold and disable auto hand off.

    2. Closed loop acceleration value-> I see closed loop acceleration set is too high 2000Hz/s, this may not be achievable too which is based on the motor inertia and current level configured. To achieve such a transition time, we need to have high KP, KI gains as well. What is the required startup time?

    Please share the JSON file.

    Thanks and Best Regards

    Venkatadri S