C
CC
- Jan 1, 1970
- 0
Tim said:I think the root of your problem lies in the amplifier.
Your brushed DC motor system has magnets attached to the case, a thingy
wound with coils attached to the shaft, an amplifier that delivers
current to a switch, and a switch that directs that current to the
appropriate coils depending on the angle of the shaft with relation to
the case (and hence the magnets with relation to the coils).
Your brushless "DC" motor system has magnets attached to the shaft, a
thingy wound with coils attached to the case, sensors that tell you
where the shaft is in relation to the case, and what sounds like this
gawdaful mess of electronics interposed between your torque command and
your coils.
Which appears to be almost an "industry standard" drive topology. Even
the packaging varies little between vendors.
You say you're driving the brushed motor with a power op-amp that's
being driven by your torque command -- why not do the same thing with
your brushless motor?
Well it was simple with the PM motor, and at only about 45W delivered, a
relatively small and easy to manage heat dissipation.
Get three power op amps that are big enough to
handle the current, take the signals from your motor's position sensors
and commutate your drive current (or drive voltage) command with an
appropriate complement of 405x switches, and do the whole thing
linearly. You won't have any concerns about the internal PWM of the
drive doing weird things because there won't be any. You won't have to
worry about internal sampling in the controller, or weirdo loops, or any
of that, either.
Wow. I never thought of doing it that way. Very interesting. I wonder
how long it will take me to figure out how to do the commutation...
I suspect that if you do this you will find out two things: one, the
room will be warmer when the system is running, and two, the brushless
motor/amplifier system will act a whole lot more like the brushed
motor/amplifier system did.
Yes and yes. I didn't think seriously of attempting a linear drive for
this thing simply because PWM drives are the norm, and I didn't want to
mess with figuring out commutation logic when I could possibly avoid
another case of reinventing the wheel. I also thoroughly expected it
wouldn't be difficult to use an off-the-shelf drive. I get enough flak
for making custom stuff as it is. Once in a while I pick something off
the shelf, and whammo! Shouldn't have done that.
But seriously, isn't using minor loop synthesis (Bill Sloman, where are
you?) and using the drive in it's intended application as a speed servo
a suitable way as well?
As I see it there are three drive approaches for a motor (the following
is as much a question as a statement of what little I know so feel
free to educate):
1. current drive -- this is most commonly used for position servos
since acceleration is proportional to torque is proportional to current.
Position servos like to be able to directly control acceleration.
2. voltage drive -- this is used in speed servos since speed is almost
proportional to voltage with the minor complication of the terminal
voltage not being the same as the back EMF. I started using this rather
than current because that's what was done in the Unitrode app notes that
got me started on this odyssey.
3. For a PLL, one is usually controlling a VCO, which produces a
frequency (speed) directly proportional to input voltage. One also
usually expects that the VCO response, ie., the frequency response of
the phase, is not burdened by zeros/poles close to the desired PLL BW,
so one can treat it simply as Kvco/s.
If a motor is put in a speed servo, then it would behave more like a
true VCO than the first two cases. As long as the PLL BW was safely
removed from the response rolloff (likely to be complex poles) of the
speed servo, one can treat it as well as Kvco/s.
This seems to be a very compelling approach. Also, it allows one to use
off the shelf PWM drive hardware with all it's nice features such as
current limiting, very minimal power dissipation, and small package size.
Of course there needs to be a speed feedback path for #3 to work. As we
know, there are issues with that. For my fast wheel, there is an
encoder available, which would need an F-to-V converter. For the slow
wheel, there would only be the possibility of getting 3 pulses/rev from
the halls.
In a time crunch, which makes more sense? Building amplifiers, or
building F-to-V converters? Or maybe neither if there is a speed servo
drive that can take my encoder signal directly. But that still leaves
the slow wheel with it's lack of anything but the hall signals. This
wheel does however have the advantage of requiring much less power, so a
linear custom concoction might be workable.
The amp building looks like a lot of work. I suppose here it would make
sense to first see what kind of ready-made linear DC amps are on the
market. This also would change my rough sketch of what the final system
package would look like to a larger volume. This may be tolerable.
Here's something:
http://www.aerotech.com/products/amps/bal.html
To summarize we have two different wheels. Here are the parameters and
possibilities for each:
SLOW:
motor: Maxon EC 22mm 50W series, model 167130 32V, no tach or encoder
possible; only 3 pulses/rev from hall sensors
speed: 3000RPM
power: <<50W probably about 10-20W needed
voltage: only needs about 2.5V to reach this speed
options:
1. Not sure if it can be put into a speed servo with only 3pp/rev
feedback to undergo F-to-V. If so, this would be worth trying.
2. Since power is low, a linear drive wouldn't be too large or hot.
Since time is in short supply, a big construction project for drive
electronics is to be avoided. If a commercial linear amp ready made is
available then the approach suggested above to do the commutation
ourselves is viable. This might be the best method if the lack of
finely resolved feedback is a showstopper. Thus this would be a true
voltage drive motor PLL.
FAST:
motor: Maxon EC Powermax 30mm 200W, model 305014 32V
incl. encoder 500 pulses/rev (200kHz max)
speed: 24000RPM (motor maximum permissable is 25000RPM)
power: a lot, probably between 100-200W
voltage: need about 52Vrms to do this
current: would need 4A for 200W at 24000RPM
options:
1. Speed servo using 500pp/rev encoder via F-to-V LM2907 and Advanced
Motion Controls B15A8 drive. Advantage is small drive and avoids wasted
capital for items already obtained. Should be fairly expedient. Wrap
PLL around speed servo. What are the gotchas yet unanticipated?
2. Building a linear drive of this magnitude at this stage of the game
is something I seriously want to avoid. Look into commercial options
for plain linear amps?
The Aerotech linear drive is a possibility. However, if that works with
the encoder to make a speed servo, what is the advantage over the PWM?
One thing is that it might take the encoder directly instead of needing
me to implement another circuit.
Need to find out if the Aerotech can operate open-loop.
Goals:
Build PLL around both motors with minimum of custom construction. Focus
should be on choosing the hardware that will drive the motors leaving
the design problem boiled down to PLL loop stabilization. Must work
around limitations of commercial PWM drives, or perhaps find better
drives... Resolve which topology is best and simplest: PLL around
speed servo, or voltage mode motor drive PLL.
Thanks for interest folks!