cancel
Showing results for 
Search instead for 
Did you mean: 

Change max current limit during RUN state

Roberto Giovinetti
Associate III

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

1 ACCEPTED SOLUTION

Accepted Solutions
FouadB
ST Employee

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'."

View solution in original post

1 REPLY 1
FouadB
ST Employee

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'."