Skip to main content
Roberto Giovinetti
Associate III
January 30, 2023
Solved

Change max current limit during RUN state

  • January 30, 2023
  • 1 reply
  • 2048 views

Hello everybody

I'm using ST Motor Control 5.4.1 to drive a BLDC motor. It works fine, and I'm able to drive in SPEED MODE my motor, changing speed and with the system that can react to load changes.

I would like to realize a software limit, so I can limit current to a certain max value during RUN, and after some time remove the limit and return to normal operation.

I've tried to change SpeednTorqCtrl_Handle_t parameterms but it doesn't work.

I've tried to change current Iq reference via API but the same as before: the behaviour is not as I would like to obtain.

I think it can be simple to do but I'm not able to set maximum current for short period of time.

Does anybody know how to set this values?

Thanks

Roberto

This topic has been closed for replies.
Best answer by FouadB

We would like to sincerely apologize for the delay in replying to your post.
If your point is still relevant, the following APIs can be used to set the maximum current at the ouput of the speed regulator:

PID_SetLowerOutputLimit( pHandle->PISpeed, LowerLimit )
PID_SetUpperOutputLimit( pHandle->PISpeed, UpperLimit )

By default, the current limitation is set to [-IQMAX, IQMAX] during initialization (refer to mc_config.c, hLowerOutputLimit & hUpperOutputLimit).
Additionally, the conversion from physical units (A) to 16-bit digits can be found in the file parameters_conversion.h.

Best regards

1 reply

FouadB
FouadBBest answer
ST Employee
August 29, 2023

We would like to sincerely apologize for the delay in replying to your post.
If your point is still relevant, the following APIs can be used to set the maximum current at the ouput of the speed regulator:

PID_SetLowerOutputLimit( pHandle->PISpeed, LowerLimit )
PID_SetUpperOutputLimit( pHandle->PISpeed, UpperLimit )

By default, the current limitation is set to [-IQMAX, IQMAX] during initialization (refer to mc_config.c, hLowerOutputLimit & hUpperOutputLimit).
Additionally, the conversion from physical units (A) to 16-bit digits can be found in the file parameters_conversion.h.

Best regards

If you agree with my answer, please accept it by clicking on 'Accept as solution'.""