|
An explanation of when to use and when not to use the new NXT motor
speed control option.
The RCX supports only a motor power level control where the input is
the percentage of time that power should be applied to the motor. The
NXT supports not only this mode but also a new speed level control
where you specify the percentage of "full speed" operation that you
want for the motor.
The speed level control is a "closed loop" system where feedback from
the NXT motor encoder (i.e. rotation counter) is used to control the
motor. If the motor is going slower than the target speed then the
power level is increased and if it is going too fast then the power
level is decreased.
Speed level control is great. But there are some situations where it's
still better to use the power level control; e.g. in a line-following
robot. This is explained in more
detail below.
The value of the speed level control is that you can get consistent
speed operation that in independent of the factors that influence
motor performance. You'll get the same speed operation regardless of
battery
level, regardless of variations between motors and regardless of load
on motor (robot moving uphill vs moving on level surface). Each of
these factors may have a 10% variation on motor performance.
Of course, like many other things, there's a drawback as well. With
speed level control you won't get the highest possible speed. This is
probably best illustrated by an example.
- At full battery and no load a motor may reach a speed of 1000 counts
per time interval
- With the resistance of a load on the motor the maximum speed may
rop to 850
- At low battery levels the maximum speed may drop to 750.
- A different motor may have 10% variation over this motor so maximum
speed drop to 675.
Using the above example number (they are not based on actual
measurement), the "full" speed level for the closed loop control
should be set to ~650.
For the closed loop system to work, the "full speed" has to be set to
no more than the worst case (675 in this example) maximum speed. If
you set it higher than this, then the closed loop algorithm cannot
achieve the same speed across the range of operating parameters!
While the above are example numbers, I suspect they will be fairly
close to reality. Using these numbers, the NXT speed control may only
achieve
70% of the full speed that can be achieved with the open loop "power
level" control.
Another potential drawback to the NXT speed control is the rate of
update of the PID control loop. This might be as long as one update
per 100
milliseconds.
A line following robot is a good example where "power level" rather
than "speed level" should be used on the NXT motors.
|
|
Message has 1 Reply:
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
Active threads in...
Robotics
NXT programmable brick
|
|
|
|