Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Problem with implementing PID control loop for BLDC motor

Status
Not open for further replies.

pranay.upadhyay

Junior Member level 2
Joined
May 26, 2009
Messages
23
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Pune,India
Activity points
1,448
Hello All,

We are trying to implement PID control loop for BLDC motor.
But during it starts with one or two small jerk. It is not able to start smoothly.

With open loop it starts smoothly, but with PID gives jerky starts.

Please suggest me possible reason for it.

-Thanks & Regards,
Pranay
 

Re: PID control for BLDC

hi pranayu,

r u trying for trapezoidal control of BLDC motor with sensor or sensorless?
try to mention these then i can give u some suggetions.

thanks
 

Re: PID control for BLDC

Thanks,
We are using Hall Sensor based BLDC controller.
With Hall sensors interrupts we are measuring the current speed of motor .

-Regards,
Pranay
 

Re: PID control for BLDC

Check ur PID loop program...

because it doesnt have Inertia problem much as stepper motor..

Check ur initial conditions...
 

Re: PID control for BLDC

Hello,
This type jerks appears only when motor is at rest and starts from rest.
When motor having some speed and starting motor by throttle or potentiometer then there is no jerk experienced.

Also When we try with quick start means we are rotating the throttle quickly then almost jerk not experienced.

Jerks appears only when motor starts slowly with some load.
 

Re: PID control for BLDC

some BLDC drivers have that issue at low speed...
they dont give precise speed control below 10% of rated speed u...
which driver ur using??
 

Re: PID control for BLDC

Hello
We are using IR2110.
I think there is no problem with driver, because there is no speed disturbance at lower speed.
Only jerks come at load and lower speed.
We also try with giving 20% duty cycle but there is no change.
 

Re: PID control for BLDC

IR2110 is not a BLDC driver, it is general bridge driver..
I'm using that, it dont have any problem....
why r u mentioning about 20% duty cycle...:?:
i have said about 10% of rated rpm...:D
and i'm talking about ready BLDC driver
 
Re: PID control for BLDC

hi pranayu

i hope you are trying the control in micro controller not a dedicated BLDC driver (if u don't mind can you tell which controller you are using?). if you required full torque at zero speed means you will have to implement Direct Torque control DTC ( i have not done DTC). if you are doing the field oriented control ie FOC this we cannot avoid up-to a certain extent. this kind of control is not mend for that type of applications. and tell me how you are starting the motor by sensing the hall sensor output?

With regards
shijith
 

Re: PID control for BLDC

Hi Shijjith,

I am collegue of Pranay.

We have designed a Speed loop BLDC controller.
This is not a Field Oriented Control.
It is simple Speed loop PID.

Can you please elaborated Direct Torque Control.As we are sensing current.We are in a way sensing Torque?

We are having Cypreess PSOC uC used for BLDC drive.

Thanks and Regards,

Chaitanya
 

Re: PID control for BLDC

hi Chaitanya,

if you want to know about DTC just Google it or try for some IEEE papers.
what is the exact problem you are facing is it the motor is not taking the load at starting or motor giving jerk at the starting with load? since you have implemented SPEED LOOP BLDC control it's possibly the tuning of PID making the problem. try to tune to get still finer result. and one more suggestion if you implemented PID try for PI alone and let me know the result.

Regards,
SHIJITH
 

Re: PID control for BLDC

Thanks Shitish.

Actually we are not having exact PID.

What we are having is Delta incrementing Close Loop.
It checks the error and adds or subtracts incrementing fixed steps.
The size of error determine the added or decreased step will be small or large.

This is some thing close to PI as it involves accumulation.
However this does closes the loop.It means even load is changed speed remains constant as per set point.

Why we could not make the PID is
1.We are not having BLDC motor transfer function. What info we are having is it is a 350W,48V BLDC 3 phase 6 pole motor.

2.We are suing low cosr uC as the pressure of production caused to select lower end device.Every simple non-integer multiplications like the PID constants of Kp and KI in 0.1,10.5 etc cause the code size to be increase tremendously on a simple RISC which does not have multiply unit.


If you have any information about how to calculate the Motor Transfer function,pls tell us.

If you have any reference model or coef for PID pls help us on that.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top