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.