cancel
Showing results for 
Search instead for 
Did you mean: 

FOC Open Loop API

Vincent7
Associate III

Hello Everybody,

MCSDK:6.3.0

CubeMX: 6.3.0

Workbench : 6.3.0

Motor Pilot : 1.2.9

I used open-loop voltage on the motor pilot to perform tuning with (voltage_ref, TargetSpd) at the following settings: (10%, 300), (20%, 600), and (30%, 900), each with a duration of 2000, to check the motor's operating condition.

However, when I used the API for tuning, only (10%, 300) operated normally. When I updated voltage_ref to 20% and set the Speed to 600, the motor struggled to rotate (it was jittering).

My question is: during the rotation process, do I need to stop the motor before calling OL_UpdateVoltage and MCI_ExecSpeedRamp? or I should use others api to change the voltage_ref and the speed?

1 ACCEPTED SOLUTION

Accepted Solutions

Hi herryjams22,

Thank you for your reply. Currently, using open loop-voltage in the program, I can freely switch V_ref and RPM without stopping the motor.

This morning, I rechecked the usage of the API (open_loop.c), and there is a line that states: "* user, with OL_UpdateVoltage(), or computed by OL_Calc() if the V/F mode is selected."

From my understanding, these two APIs cannot be used simultaneously (as they apply to different scenarios). However, my program was set to execute both at the same time (refer to the attached image from the original question). As a result, changing V_ref during program execution caused the motor to stall. After marking out the V/F command and re-flashing the program, everything worked normally.

View solution in original post

2 REPLIES 2
Vincent7
Associate III

the issue has been solved.

Hi herryjams22,

Thank you for your reply. Currently, using open loop-voltage in the program, I can freely switch V_ref and RPM without stopping the motor.

This morning, I rechecked the usage of the API (open_loop.c), and there is a line that states: "* user, with OL_UpdateVoltage(), or computed by OL_Calc() if the V/F mode is selected."

From my understanding, these two APIs cannot be used simultaneously (as they apply to different scenarios). However, my program was set to execute both at the same time (refer to the attached image from the original question). As a result, changing V_ref during program execution caused the motor to stall. After marking out the V/F command and re-flashing the program, everything worked normally.