Speed with Current Control Scheme in XMC1300

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Suraj
Level 2
Level 2
10 replies posted 10 questions asked 10 sign-ins

Greetings of the day,

I am present working on Speed with Current Controlling for 120W BLDC motor using XMC1300 MCU, am trying to Control Speed by Setting Current limit, here if Speed Limit is Set to 100% and Current Limit is Set to 50%, can we achieve Maximum Speed with 50% duty cycle Is it correct ? If wrong plz correct me ! and VICEVERSA (Speed Limit = 50% & Current Limit = 100%) Is not Possible right ? Please explain me in detail & I have some  queries regarding 

1) In Speed Controlling and Speed with Current Controlling Can we able to measure Mechanical Speed (RPM), I have used  below function but am not getting expected RPM  ? getting O/P values in Q14 Format

Motor0_BLDC_SCALAR_GetMotorSpeed();

Motor0_BLDC_SCALAR_GetSpeedVal();

2) How to Validate Speed with Current Controlling and what are the parameters to be Controlled & observed ?

Please try to solve this issue ASAP

 

Thanking you advance

Suraj,N

 

0 Likes
1 Solution
psb
Moderator
Moderator
Moderator
250 sign-ins 25 solutions authored 100 replies posted

Hello @Suraj ,

The below is the block diagram for speed with current control. 

psb_0-1661417731568.png

The "Limiter" above in the speed controller sets the limits for current reference to the current control loop and the one in the current control loop sets the limits for voltages to the motor. What are the limits that you've set ?
The below points are given based on speed limit based on limit on the ref_speed, current limit based on the limiter in the speed loop and the other limiter being the voltage limit. 

  • If the speed limit is kept at 100% and current limit is kept at 50%, depending on the load torque requirements, if the load torque required corresponds to more than 50% of the current for any speed below 100% speed limit, then the maximum speed will be according to the torque corresponding to the 50% current limit. If the current limit of 50% is not reached for all the speed range up to 100% speed limit, then the maximum speed will be 100% or the maximum value of ref_speed.

  • If speed limit is set at 50% of maximum ref_speed possible and current limit at 100%, depending on the load torque requirements, if the load torque required corresponds to more than 100% of the  rated current for any speed below 50% speed limit, then the maximum speed will be according to the torque corresponding to the 100% current limit. If the current limit of 100% is not reached for all the speed range up to 50% speed limit, then the maximum speed will be 50% of the maximum value of ref_speed.

  • If the current limiter limit is kept at 50% and internal voltage limit is kept at 100%, then the maximum speed possible will correspond to the speed that can settled at with the torque corresponding to the current limit. The motor will remain to run at the same maximum speed for any ref_speed above that value. 

  • If the current limit is not hit, but the internal voltage limit is hit, and the saturated value of voltage is there, then there will be some speed ripples/oscillations for a while, and then the speed will settle to a value beyond which it will not increase. 

  • Motor0_BLDC_SCALAR_GetSpeedVal(int32_t *speed) updates the reference variable with the speed set value in RPM. Kindly check for this in the code. 

  • Motor0_BLDC_SCALAR_GetMotorSpeed(int32_t *speed) updates the reference variable with the motor mechanical speed in RPM. Kindly check for this in the code.

  • Mechanical speed is calculated and  converted into 2^14 format using pole pair and speed scaling.
    psb_7-1661428529465.png
  • In speed with current controlling, the reference and actual values of speed of the motor, currents id, iq are to be monitored based on the system requirements. 
Best Regards,
Sai

View solution in original post

0 Likes
1 Reply
psb
Moderator
Moderator
Moderator
250 sign-ins 25 solutions authored 100 replies posted

Hello @Suraj ,

The below is the block diagram for speed with current control. 

psb_0-1661417731568.png

The "Limiter" above in the speed controller sets the limits for current reference to the current control loop and the one in the current control loop sets the limits for voltages to the motor. What are the limits that you've set ?
The below points are given based on speed limit based on limit on the ref_speed, current limit based on the limiter in the speed loop and the other limiter being the voltage limit. 

  • If the speed limit is kept at 100% and current limit is kept at 50%, depending on the load torque requirements, if the load torque required corresponds to more than 50% of the current for any speed below 100% speed limit, then the maximum speed will be according to the torque corresponding to the 50% current limit. If the current limit of 50% is not reached for all the speed range up to 100% speed limit, then the maximum speed will be 100% or the maximum value of ref_speed.

  • If speed limit is set at 50% of maximum ref_speed possible and current limit at 100%, depending on the load torque requirements, if the load torque required corresponds to more than 100% of the  rated current for any speed below 50% speed limit, then the maximum speed will be according to the torque corresponding to the 100% current limit. If the current limit of 100% is not reached for all the speed range up to 50% speed limit, then the maximum speed will be 50% of the maximum value of ref_speed.

  • If the current limiter limit is kept at 50% and internal voltage limit is kept at 100%, then the maximum speed possible will correspond to the speed that can settled at with the torque corresponding to the current limit. The motor will remain to run at the same maximum speed for any ref_speed above that value. 

  • If the current limit is not hit, but the internal voltage limit is hit, and the saturated value of voltage is there, then there will be some speed ripples/oscillations for a while, and then the speed will settle to a value beyond which it will not increase. 

  • Motor0_BLDC_SCALAR_GetSpeedVal(int32_t *speed) updates the reference variable with the speed set value in RPM. Kindly check for this in the code. 

  • Motor0_BLDC_SCALAR_GetMotorSpeed(int32_t *speed) updates the reference variable with the motor mechanical speed in RPM. Kindly check for this in the code.

  • Mechanical speed is calculated and  converted into 2^14 format using pole pair and speed scaling.
    psb_7-1661428529465.png
  • In speed with current controlling, the reference and actual values of speed of the motor, currents id, iq are to be monitored based on the system requirements. 
Best Regards,
Sai
0 Likes