![pid control bldc tool pid control bldc tool](https://i.ytimg.com/vi/0d06akGY4kw/maxresdefault.jpg)
So I really have to guess a lot of the things. I want to implement some interface to monitorate PID output and setpoint, then plot in the screen.īut the small PIC CPU is almost on the limit. I have read that the most efficient controller for servo motor is PI and derivative causes oscillations.īut you are right about the real problem to tune the PID. So if someone could help me to make this controller work better, I will apreciate.
#Pid control bldc tool how to
I didn't understood how to generate a current reference from speed controller. Where speed generates a current setpoint, then another loop corrects the system MV using current error. I have read documents in internet showing cascade loops. The problem is that I don't know the best way to insert current measurement in PID speed controller. I have used a shunt resistor to read current with A/D port. To reach a good performance system I think that current measurement should be used also. The PID reference is the speed from hall sensors. The system becomes slower and very unstable around SP.īut at least the BIG overshoots are reduced considerably. The system also becomes unstable even without loads, having random overshoots around SP. Increasing Ki from 7 to 10 creates big overshoots. Ki = 7 makes the system take 3 seconds to stabilize.
![pid control bldc tool pid control bldc tool](https://esk8content.nyc3.digitaloceanspaces.com/uploads/db2454/optimized/3X/b/5/b5938ec1b8bec3be74f74bd321913c0b7554917d_2_690x412.png)
Oscillations happens around setpoint even without load. The system becames unstable in all conditions. I did some tricks to avoid floating point because I'm dealing with 8-bit MCU. The problem is that they seems to be in limit. Well, probably you could say that I need to increase I constant or change the P constant. The PI needs about 3 seconds to stabilize the speed again.ĭuring this time, the PWM duty is slowly decreased till reach almost zero, then it increases back to the setpoint. When I remove the load the motor starts to rotate in a very high speed due to the PWM duty. I keep the load and the system remains stable. It takes about 2 seconds to stop increasing, then it is stable. When the system is stable, I insert a load. PID is slow to react into this condition for example. PWM duty stays high generating high speed. The biggest problem is about deceleration when load is removed. I actually have turned off the "D" controller, because it generates oscillations around setpoint. The performance is too bad even using a PID controller. The goal is to keep continuous speed with heavy changes on load. I'm using a PIC 18f2431 8bits MCU to control the bridge with PWM. The motor in question is a Maxon EC22 100W with 24:1 gearhead. I'm trying to control a BLDC motor with 6-step commutation sequence.