I've been tinkering with some brushless drives and have found something that I'd like to improve. My brushless amps have a minimum pulse width they will respond to. Depending on which transistors I am using, I have different deadtime selections in the CPLD, so it goes from about 400 ns to 1 us. I am using the stock EMC2 PID routine with my PWM controller and the hal_ppmc.c driver. With my new version of the universal PWM controller, that gives me pulse width resolution of 25 ns and minimum pulse widths well below what the drive can respond to.
The problem is there is a dead band where the P term produces a pulse width that is too narrow for the servo amp to produce any output. If you deflect the motor until the pulse width is able to produce output from the servo amp, then there is a discontinuity in the transfer function, and the motor jumps when deflected across that "edge". I have tinkered with negative values of the dead band parameter to PID, and it definitely seems to help narrow the width of the motor's dead band, but I can't get it down to zero. If I try, it causes it to be very unstable, as a tiny movement of the motor jumps from + to - output of the servo. (So, not a surprise.) Maybe a very fine tweaking of this value to allow a tiny dead band to exist would help. Anyway, I'm not asking for a "solution", just a discussion of what tricks might be useful in reducing the deadband. Right now, it varies from a couple degrees to maybe 5 degrees or more of motor shaft movement. You can easily feel the zone where there is no motor current, and the sharp transition when the minimum pulse width causes the transistors to turn on. I know that if I could turn up the P gain, it would help narrow this zone. But, I have P turned up as high as I can while maintaining reasonable stability with these voltage-mode amps. I've been trying to figure out if there's an inexpensive way to turn these simple PWM-in equals PWM-out amps into some kind of torque-mode amps, but so far I haven't come up with anything that sounds promising. (It might look something like smooth the incoming PWM into an analog voltage, compare to motor current and generate PWM from that. But, that would be adding a bunch of op-amps and comparators to the board.) Jon ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers