Drives for standard (brushed) DC motors use an entirely different principle from any AC drive because the commutation frequency is set by the action of the brushes on the commutator, so the motor will spin up to a speed determined solely by the voltage and current of the supply. At first cut this looks like it means that we can use simple voltage regulation as a speed control. Alas, not so, despite several sources having promoted such ideas. The devil, as always, is in the details. The motor generates a back emf according to its speed and requires a forward current according to its output torque, so the primary performance specifications of a DC motor are its speed constant, usually given in RPM per volt, its torque constant, usually given in mNm per amp (oz.in per amp in USA) and its winding resistance in ohms. The run speed for a given supply is determined by all three of these parameters, not just the voltage. The run speed will be determined by the voltage remaining after some of the supply voltage is used to drive the required current across the winding resistance. More torque = more current = less remaining voltage = less speed.
To explain this properly we need to establish a few equations, using the following symbols:
Ks= Speed constant (rpm / V)
Kt = Torque constant (mNm / A)
Rw = winding resistance (ohms)
Rd = Drive output resistance (ohms)
T = Torque (mNm)
S = Speed (rpm)
I = Current (A)
V= voltage (V)
note that the minimal drive current (Imin) is ignored in the calculations.
The equilibrium speed at a given voltage is that speed which gives a back EMF equal to the supply voltage minus the product of the forward torque current and the sum of the winding and supply resistance, so it will be given by :
S = Ks. (V supply – (T load / Kt ) . (Rw + Rd ) )
This means that with constant voltage supply the motor has a constant negative speed / torque relationship with the slope given by
Delta S / Delta T load = Ks (Rw + Rd ) / Kt .
Even given a perfect DC regulator with zero output impedance we would still have a negative slope, now equal simply to Ks x Rw / Rd . A constant speed DC drive thus requires that the sum of Rw and Rd be made as close as possible to zero. Since Rw is always positive, we need a negative Rd. More on this later.
To give you an idea of the importance of all this, here's a table with several motors with their performance specs. I have included max continuous torque and the current required to achieve this as these are important later. The last rows are the percentage speed change for a 10mN drag load applied at the outer groove (roughly the drag produced by a stylus down force of 18mN or 1.8 grams) for Rd = 0 and also for (Rw + Rd ) = 1 ohm (an easily achievable figure). It should be noted that this speed variation is independent of platter mass or moment of inertia as these cannot supply the energy which the drag converts to waste heat, they merely slow the effect down so it happens over a period of the order of one second.
Part No | 110191 | 110189 | 220423 | 226764 | 2326-942- |
---|---|---|---|---|---|
Type | Amax |
Amax |
REmax |
REmax |
S (obs) |
Nom Voltage | 48 |
36 |
48 |
48 |
30 |
Ks (rpm / V) | 121 |
180 |
106 |
58 |
203 |
Kt (mNm / A) | 79 |
52.9 |
89.7 |
165 |
47 |
Ks/t (rpm / mNm) | 107 |
102 |
175 |
38.2 |
207 |
Ks/Kt (rpm / mNm ohm ) | 1.5 |
3.4 |
1.1 |
0.3 |
4.2 |
Tmax mNm | 16.2 |
16.6 |
10.1 |
27.2 |
10.7 |
I maxt (mA) | 206 |
304 |
110 |
150 |
220 |
Rw (ohms) | 70 |
30.1 |
147 |
108 |
48 |
% var @ 10 mN | 3.5 |
3.4 |
6 |
1.3 |
6.7 |
%var @ 10mN @ 1 ohm | 0.05 |
0.11 |
0.04 |
0.01 |
0.2 |
The motors are all from Maxon and all but the last are currently available. I have included the last as it was the motor recommended in an article in Sound Practices some years ago (ref 1) even though it is the least suitable of these motors. I do not know the specifications of the motors used by Origin Live but they look like Maxon motors. Amax indicates the use of Alnico magnets, REmax the use of rare earth (NdFeB) which are stronger but less heat tolerant. I chose to use the #110191 motor for the first project as it seemed suitable for the belt drive turntable in which it was to be used. It costs about $AUD170 (about $USD130) including shipping. The other promising motor is the # 226764 which is slightly more expensive, around $AUD200 (about $USD 150). The higher torque of this second motor is probably more useful as a replacement for motors such as that in the Garrard 301.
For some years I have been using simple DC regulators in the heater circuits of my amplifiers so for my first attempt at a DC drive I adapted one of these circuits. This is an extremely simple discrete circuit which nevertheless sounds better than any IC regulator circuit I have used. It uses a series constant current source which should be set to the current that corresponds to the max continuous torque from the motor, followed by a simple shunt regulator, the output voltage of which is controlled by varying the voltage seen by the first transistor in the output cascade using a simple resistive voltage divider.
By the way in all these circuits it is a simple matter to dupicate or triplicate the voltage divider and add a selector switch so that the drive can have independent adjustment of two or more output voltages and therefore two or more motor speeds.
This circuit is suitable as a DC motor drive but it suffers two problems; it still gives the high slope of speed vs current as demonstrated above and it suffers from a degree of thermal drift due to the inherent negative temperature coefficient of the base emitter voltage of the transistors. These two problems are soluble independently but I'm not sure if it's worth doing one without the other.
This adapts the basic design but includes a stabilised voltage reference which is made variable by adding a resistive dividerfloowed by a buffer. This buffer then feeds the output arm of a 10 :1 Widlar current mirror whose input is in the return arm of the motor circuit, allowing us to implement current compensation. The idea of current compensation is simple - we measure the current through the motor and use that to generate a voltage equal to the voltage required to drive that current across the motor winding (and any residual drive resistance). This is a form of positive feedback, in that the output voltage increases with output current. Another way of saying the same thing is that the drive's resistance becomes negative by the same amount that the motor's resistance is positive, so their sum becomes zero (or as close to it as we can manage without instability).
The input impedance of the current mirror is very low but this still results in some tens of millivolts of commutation noise on the return. This noise is fed through the current mirror so the current compensation circuit would amplify it back into the output if we didn't take steps to reduce it. The first of these is to reduce the current variation seen by the mirror by shunting it through a capacitor, which has to be fairly large to be effective. The second is to include some filtering in the output arm of the current mirror, these can be smaller but not too small. The capacitance at the points has a second function in that it slows down the response of the compensation loop, preventing it from oscillating if the net impedance is slightly below zero. The motor windings are copper so they will have a positive temperature coefficent of resistance of around 3900 ppm / degree C, way higher than any resistor. This also helps with stability: if the net impedance is slightly below zero the ouput voltage will increase, this increases the power sent to the motor which heats up and thus increases its resistance, stabilising the loop.
The current drawn by the current mirror circuit creates a voltage drop across its output resistor, this is amplified by the inverting op amp and summed with the reference voltage on its positive input, giving us an output voltage equal to V ref plus current times transimpedance gain. The gain of the inverting amp is variable, allowing the net transimpedance gain of the current mirror to be varied. If this is made equal to the resistance of the motor winding, the result is a reference output voltage which equals the reference voltage plus the voltage required to produce the current corresponding to the torque load on the motor, so the motor does not change speed with load. There is a small capacitor across the feedback element of the inverting amp to keep it stable and to further reduce noise.
This is then fed to the output stage of the shunt regulator. Note that there is an emitter follower driving the drive transistor, this is not because we need any huge amount of current gain but simply to ensure that there are two pn junctions between the reference output voltage and the actual output. This cancels the drift of the two pn junctions in the current mirror on the return leg, improving temperature stability. The negative tempco of the actual shunt transistor remains uncompensated but its effect should be divided by the gain of the driver so it will be small. In any case it is easy to keep the temperature of this junction constant by leaving the drive running and switching the output from the motor to a shunt resistor(which must be of slightly higher resistance than the motor winding). In addition the drive transistors and the current sense transistors must be close in temperature so they should be grouped together, gluing them to a small heatsink works.
An elaboration of this includes an error amplifier and lots of global feedback but allows us to dispense with the capacitor on the ground return leg of the motor circuit. It's your choice which to build, they both fit on the same circuit board, the error amp version has about one tenth the commutation ripple of the straight version but they're both so low this is probably immaterial. If you really hate feedback, use the first. If you really hate electrolytic capacitors, use the second.
To use the error amplifier circuit we must be able to compare the output voltage to the reference voltage. It is easiest to derive a scaled version of the ouput voltage to compare to the reference rather than boosting the reference to the output level, so we use a 1:1 divider on the output. Since we are interested in the voltage across the terminals of the motor rather than from the drive output to ground, we construct the voltage divider between the output terminals and feed this to a differential amplifier. We also connect the voltage reference so that it connects to the negative motor terminal. Note that this puts the reference current through the current mirror which is not part of the output, to avoid this source of error we put a shunt across the current mirror to equalise it.
Fig 3. Drive with error correction
Click pic for full size version.
The error amplifer then compares the divided output voltage to the sum of the reference voltage and the current feedback voltage and feeds the amplified, inverted result back to the output driver cascade. The amplifier itself is set at about x 500 and the output driver contributes a further x 20 or so, so we have overall feedback around x 10,000 or 80 dB. The high level of feedback means this circuit must be laid out carefully and debugged on a reasonably fast scope – on my prototype I got a lovely oscillation at 2.2 MHz at about 5 V peak to peak on the output, easily solved with a 100pF stabilisation capacitor on the error amp. This circuit fits on the same PCB as the other circuit and the difference in cost is very small you can afford to build both versions to try (I've included a jumper on the PCB that makes the circuit changes very easy indeed..
OK so far, but lots of DIY types are going to be thinking "how can we improve this?" These circuits were designed to be insensitive to parts quality, the prototypes were built with ordinary metal film resistors, commercial zener diodes and TL072 op -amps but that doesn't mean we can't do better. A quality specialised voltage reference would be the first change to make, we will use one of the REF02 series eg the AD REF02CP with a typical 5ppm tempco - that's a 0.005 percent change for a 10 C temperature rise. The reference current is only 1 mA we need to shunt this plus the voltage divider current so the bypass resistor is 680R,.
The next change is to upgrade the op-amps to ultra-precision instrumentation grade units like the OPA2277 or the AD 708. These are pin compatible with the TL072 so all we need is to mount the op-amps in sockets and we can substitute with no changes. We might as well use quality low noise metal film resistors like Dales. We'll use good quality low impedance electros like the Rubycon ZL or Elna RSH series because we don't use cheap electros, there's space on the board to parallel extra caps of the same value thus halving the ESR and doubling the capacitance. This doesn't scale forever as eventually the impedance of the board traces becomes significant so we'll leave it at 2. The compensation cap on the error amp can be changed from a ceramic to silver mica.
In the power supply we can move from a 7815 pre-regulator something like an LT1086 (unfortunately several times the price) but the biggest improvement is probably powering the whole thing from an SLA battery. Depending on the motor RPM required and thus the voltage required, a 4-7 Ah 12V SLA should be ample and will give upwards of 20 hours per charge. I think this works realy well so I have reconfigured the pre-regulator using an L200C current limiting voltage regulator to act as a charger for a 12V SLA or as the primary power supply, this can be selected by jumper.