Imc102t speed ramp issue

Announcements

From sunburn to sun earn – we’ve got the power! Watch our #poweringgreen videos now.

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

cross mob
ES1
Level 1
Level 1
25 sign-ins 10 replies posted 5 replies posted

I'm using imc102t  for controlling my 6pole bldc motor and I have interfaced a arm cortex m4 controller to interface things when I try to run the motor by declaring 30500 as my ramp rate motor is getting stalled ,if I lower the value to 15000 it's running fine but the response is little slow is there any way can I rectify this issue.

0 Likes
1 Solution
Giraffe1492
Level 5
Level 5
25 sign-ins 25 likes received 10 solutions authored

Hello,
It seems that you are experiencing issues with your motor stalling when using a ramp rate of 30500 with the iMC102T for controlling your 6-pole BLDC motor. I understand that lowering the ramp rate to 15000 works, but the response is slower than desired.
One possible solution to this issue is to implement a dynamic ramp rate adjustment. You can start with a lower ramp rate (e.g., 15000) and gradually increase it as the motor gains speed. This can help prevent stalling during startup while still providing a faster response as the motor reaches higher speeds.
Here's a simple example of how you can implement this in your ARM Cortex M4 controller code:
```c #define INITIAL_RAMP_RATE 15000 #define MAX_RAMP_RATE 30500 #define RAMP_RATE_INCREMENT 1000
int currentRampRate = INITIAL_RAMP_RATE;
void main() { while (1) { // Run motor with current ramp rate runMotor(currentRampRate);
// Check if motor is running without stalling if (isMotorRunning()) { // Increase ramp rate if it's below the maximum value if (currentRampRate < MAX_RAMP_RATE) { currentRampRate += RAMP_RATE_INCREMENT; } } else { // Decrease ramp rate if motor stalls currentRampRate -= RAMP_RATE_INCREMENT; } } } ```
Please note that this is a simplified example and you may need to adjust the values and logic based on your specific motor and application requirements. You should also consider implementing additional safety features, such as overcurrent, overvoltage, and undervoltage protection, as mentioned in the [IMD111T-6F040 datasheet](https://www.infineon.com/dgdl/Infineon-IMD111T-6F040-DS-v01_00-ENhttps://www.infineon.com/cms/en/product/power/motor-control-ics/imotion-integrated/imd111t-6f040/?re...
https://www.infineon.com/cms/en/product/power/motor-control-ics/imotion-integrated/imd111t-6f040/
https://www.infineon.com/cms/en/product/power/motor-control-ics/bldc-motor-control-ics/battery-suppl...
https://www.infineon.com/cms/en/product/power/motor-control-ics/brushed-dc-motor-control-ics/integra...
https://www.infineon.com/cms/en/product/power/motor-control-ics/bldc-motor-control-ics/battery-suppl...

View solution in original post

0 Likes
4 Replies
Giraffe1492
Level 5
Level 5
25 sign-ins 25 likes received 10 solutions authored

Hello,
It seems that you are experiencing issues with your motor stalling when using a ramp rate of 30500 with the iMC102T for controlling your 6-pole BLDC motor. I understand that lowering the ramp rate to 15000 works, but the response is slower than desired.
One possible solution to this issue is to implement a dynamic ramp rate adjustment. You can start with a lower ramp rate (e.g., 15000) and gradually increase it as the motor gains speed. This can help prevent stalling during startup while still providing a faster response as the motor reaches higher speeds.
Here's a simple example of how you can implement this in your ARM Cortex M4 controller code:
```c #define INITIAL_RAMP_RATE 15000 #define MAX_RAMP_RATE 30500 #define RAMP_RATE_INCREMENT 1000
int currentRampRate = INITIAL_RAMP_RATE;
void main() { while (1) { // Run motor with current ramp rate runMotor(currentRampRate);
// Check if motor is running without stalling if (isMotorRunning()) { // Increase ramp rate if it's below the maximum value if (currentRampRate < MAX_RAMP_RATE) { currentRampRate += RAMP_RATE_INCREMENT; } } else { // Decrease ramp rate if motor stalls currentRampRate -= RAMP_RATE_INCREMENT; } } } ```
Please note that this is a simplified example and you may need to adjust the values and logic based on your specific motor and application requirements. You should also consider implementing additional safety features, such as overcurrent, overvoltage, and undervoltage protection, as mentioned in the [IMD111T-6F040 datasheet](https://www.infineon.com/dgdl/Infineon-IMD111T-6F040-DS-v01_00-ENhttps://www.infineon.com/cms/en/product/power/motor-control-ics/imotion-integrated/imd111t-6f040/?re...
https://www.infineon.com/cms/en/product/power/motor-control-ics/imotion-integrated/imd111t-6f040/
https://www.infineon.com/cms/en/product/power/motor-control-ics/bldc-motor-control-ics/battery-suppl...
https://www.infineon.com/cms/en/product/power/motor-control-ics/brushed-dc-motor-control-ics/integra...
https://www.infineon.com/cms/en/product/power/motor-control-ics/bldc-motor-control-ics/battery-suppl...

0 Likes
Viswa
Moderator
Moderator
Moderator
10 likes received 50 solutions authored 100 replies posted

Hi

We would like to know if the problem is resolved or if you need any further assistance in this regards?

Best Regards

0 Likes
ES1
Level 1
Level 1
25 sign-ins 10 replies posted 5 replies posted

Hi @Viswa @Giraffe1492 

Ramp Rate problem is solved but when the motor comes from higher and even low to zero RPM some motor jerk is happening.

I am not able to solve this problem is there any way to solve this

0 Likes
Viswa
Moderator
Moderator
Moderator
10 likes received 50 solutions authored 100 replies posted

Hi

 

Please refer to the thread below for the same issue.

https://community.infineon.com/t5/Motor-Control-ICs/IMC102t-Initial-jerk-problem/m-p/447115#M2624

 

Best Regards

 

0 Likes