Page 1 of 1

Verifying rescale factor for BLDC motor controller/PID

Posted: Sat Mar 20, 2021 9:44 pm
by kmtm27
Hello, new to Phidgets and still figuring things out.

I have a Brushless DC Motor Controller Phidget (https://www.phidgets.com/?tier=3&catid= ... rodid=1013) hooked up to a 42DMW61 NEMA17 Gearless Brushless Motor (https://www.phidgets.com/tier=3&catid=1 ... rodid=1076).

My goal is to be able to turn the motor very slowly by degree using position control. I chose BLDC because near-silence is pretty important to my project.

I've watched the videos on PID configuration and the rescale factor but things aren't quite working out as I expected. First step = make sure I'm actually using the right rescale factor.

The motor is 8 poles and *I believe* 3 phase, so it's 24 commutations per rotation. To go from rotations to degrees, I'm following this logic:

comms >> rotations >> degrees
1 (comms/1) >> /24 (rotations/comms) >> * 360 (degrees/rotations) >> 15

So my rescale factor is 15.

Applying this to the controls, I am looking to limit the acceleration and velocity significantly. One question: are the units for these now degrees/second (or second^2)?

Re: Verifying rescale factor for BLDC motor controller/PID

Posted: Mon Mar 22, 2021 8:03 am
by mparadis
The easiest way to verify the rescale factor is by opening the PositionController object in the Phidget Control Panel. Set the rescale factor, set the target position to 360 and click start. If the motor doesn't move 360 degrees, then the rescale factor is wrong.

The following properties are all affected by rescale factor:
- Acceleration
- Position
- VelocityLimit
- Deadband

So if the rescale factor is set so that 1 means 1 degree, then these properties will be in degrees, degrees per second, or degrees per second^2.