Closed loop speed control
7 years 6 months ago #29530604 by intolubbe
I have an Astroflight 3220 motor (8 pole) with a US Digital EC-35 encoder that combines commutation and encoder (2000ppr). Open loop is fine and the encoder speed tracks what the motor is doing (Hall speed is 1/2 of actual speed). I can't get closed loop speed to work. If I put in KI=1 and give the motor any G command that makes it move it runs away to the max rpm (2000). The only way to stop that from happening is to put the ICAP in single digits, but I still don't get accurate speed control. It doesn't hunt around or anything, it just won't go the speed it supposed to. I'm using my old HBL1650 with current firmware, but I plan on using my new MBL1660s. I have a model boat with 3 water jets that I need to run matched at various rpms.
7 years 6 months ago - 7 years 6 months ago #29530616 by intolubbe
I did find a commutator problem; the ?BS was the opposite sign from ?S. Negative ?BS for a positive !G command. That is fixed now and all the signs are correct, but the closed loop control still runs away with KP 0, KI 1, and KD 0. The ?BS speed is half the ?S speed. It is an 8 pole motor because I ordered an 8 pole EC35 commutator kit and everything matches up on the scope.
7 years 6 months ago #29530618 by TechSupport
7 years 6 months ago #29530632 by intolubbe
I've been poking around and found the ?E query (I generally don't use Roborun+). The only way I can get closed loop to be stable is to set KP at 3 or 4, which I guess is .03 and .04. Anyway, if I set !G to 250 i get ?M=500 and ?E=500. I am in closed loop and it doesn't matter if I have feedback set to hall or encoder. ?F is alway 0 whether I'm using hall or encoder feedback. If I set !G to 125 then M and E go to 250. It appears that the controller isn't seeing the feedback, even though ?S reports the correct RPM.
7 years 6 months ago #29530634 by intolubbe
Time to create page: 0.094 seconds