cancel
Showing results for 
Search instead for 
Did you mean: 

First torque ramp always produces an unexpected strong overshoot

Quentin Ch
Associate III

Hello,

The first torque ramp command that I start always has a strong overshoot/an unwanted motion. The same command applied right after, with or without having stopped and restarted the motor, behaves as expected.

All the next speed ramps are executed without this overshoot.

I expect the motor to not moves when I set and start a torque ramp to 0 s16A in 0.05s and that the motor is already not moving, and without resistive torque applied.

What could be the cause of this phenomenon ?

Setup:

  • I use a Nucleo G474RE with MCSDK 6.0.0. I send commands to the Nucleo using ASPEP and MCP protocol over UART.
  • I control a BLDC motor in FOC mode, 3 shunt configuration
  • I have a 1204 pulse quadrature encoder used as main sensor

1 REPLY 1
Quentin Ch
Associate III

Test sequence (pseudocode), executed on a "master" microcontroller that sends MCP commands over UART to the Nucleo G474 attached to the IHM08M1:

/// Initialization sequence
HardResets of NucleoG474RE + IHM08M1;
Delay 10ms, /* Let time to boot */
 
Delay 500ms;  /* Time to charge capacitors on IHM08M1. Motor may run out of control if commands are sent before this delay */
 
/* Trigger encoders aligment */
SetSpeedRamp(0.0 rpm, 0.0 ms);
StartMotor();
Delay 1s    /* Executing current ramps to force the motors in a known position. Aligment ramp duration 700ms configured in MotorControlWB GUI */
StopMotor();
 
// Few seconds later, this command will make the motor spin very quickly during 100-300ms,
// The speed decreses very quickly until it stops spinning
// Excpected behavior: the motors does not moves as it is idle and orque ramp final value is 0.
SetTorqueIrefRamp(0.0 s16A, 0.05s);
MotCtrlStartMotor();