Seagull High Speed Linear Controller
The goal of this project was to design and build a new spindle controller for Seagull's newest high-speed, high-stiffness air bearing spindle. I designed and assembled the controller, wired the electronics, plumbed the pneumatics, then wrote an interface program using Labview to command the controller through the serial port on any computer running Windows. The controller is capable of spinning an air bearing spindle up to 30,000 RPM with the lowest velocity jitter of any 3-phase servomotor controller we have measured. The controller has two modes. The first is velocity mode, where the spindle accelerates to a constant velocity and then maintains that velocity as precisely as it can. The second mode is position control, where the spindle turns to some encoder count or angle, relative the the index mark on the encoder, and holds that position without vibrating. The controller monitors and actuates pneumatic circuits with digital I/O connected to air pressure sensors and solenoids. The power supplies and amplifier are all linear, to minimize noise. All digital signals between components (e.g. encoder to controller) are differential (and sent through twisted-pair wires), to help reject common-mode signal noise. The encoder is a special design that allows us to mechanically center the encoder disk based on the encoder electrical output signal. The controller uses sinusoidal commutation and can advance or retard the commutation phase angle automatically to minimize motor current. All in all, the design is pretty good. The performance is about the best we have ever seen, although the high component cost makes the unit very expensive.
Seagull manufactures air bearing spindles and controllers and sells them primarily to the hard drive industry for servo-writing applications. During hard drive servo-writing, the data tracks are physically written onto the disks for the first time. The data tracks are sets of concentric circles. Each circle is made up of discrete bits. The hard drive industry is always pushing to make the track and bit densities as high as possible. In order for them to do so, the tracks and bits must be spaced as evenly as possible, so no room is wasted to accommodate bit misplacement. In order for the bit and track spacing to remain constant, the spindle turning the disk during the servo-writing must spin with constant velocity and the spindle axis must not wobble. Of course the spindle axis does wobble and the spindle velocity does fluctuate, but we go through pains to minimize these unwanted motions.
Seagull already manufactures and sells spindles and controllers that can spin disks up to 20,000 RPM. The faster the spindle spins, though, the faster the disk manufacturers can complete the servo-writing process. Time is money in the manufacturing world, so manufacturers are hoping to push spindle speeds up to around 30,000 RPM in the near future. These high speeds present all sorts of challenges, though. Centrifugal forces caused by imbalances in the spindle grow geometrically with spindle rotational velocity (doubling the speed quadruples the centrifugal force). Centrifugal forces make the entire structure vibrate, which is death to the little servo-writing heads that float mere millionths of an inch above the surface of the disk. The controller bandwidth has to be large enough to power the spindle up to those higher speeds and the amplifier voltage has to be high enough to overcome the back-emf of the motor.
The rotational velocity of a spindle is governed by a control system. A control system is an interconnection of components forming a system configuration that will provide a desired system response. In this particular case, the desired system response is constant angular velocity of the spindle rotor with respect to time. The velocity modulation of the spindle is a measure of the variation of the angular velocity over a period of time. Ideally we want the velocity modulation to be as low as possible once the rotor is spinning at the desired speed.
The Spindle Velocity Control System
Control systems, and the components within them, process input signal variables to provide output signal variables, often with power amplification. In this way, they are very analogous to mathematical functions. When the number 3 is passed into the function “y = 2 + x” as the input variable x, the function processes the input through the rules of mathematics and returns the number 5 as the output variable y. In an electrical motor, current could be considered the input and torque could be considered the output. The relationship between the input current and the output torque depends on the motor configuration. In control systems, the input is the desired system response and the output is the actual system response.
Control systems can either be open-loop or closed-loop. Closed-loop control systems utilize feedback to determine the control action, while open-loop control systems do not. Feedback signals are measurements of the system response. If a particular motor has a torque constant of about 2.5 oz-in/amp, you could control the motor with an open-loop system by setting the input current to 2 amps and expecting the output torque to be around 5 oz-in. To control the motor with a closed-loop system, you could measure the output torque and use the measurement to alter the input if necessary to get a different output response. If the measured motor torque was too high you could reduce the input current and if it was too low you could raise it. Closed-loop control systems compare measurements of the output to the desired input and use the difference between the two as a means of control. Closed-loop control systems, when tuned properly, can have much more accurate output than simpler open-loop systems. They also have the advantage of being able to respond to external influences on the system output and are less sensitive to variations in system parameters. When closed-loop control systems are not tuned properly, however, they have a tendency toward unwanted oscillations or even instability.
The figure above is a block diagram of the closed-loop negative feedback system used to control the rotational velocity of the spindle. The word “negative” simply means that the control loop takes the difference between the output signal and the desired input signal to use for control. In this control loop, the input is the desired velocity of the spindle in units of rotations per minute (RPM). The control system tries its best to make the actual spindle RPM equal to the desired RPM. If the measured velocity is too low, the control system supplies more current through the motor, increasing the torque on the bearing rotor. The increase in net torque on the rotor accelerates it, increasing the rotor velocity. If the measured velocity is too high, the control system acts to lower it. If the difference between the measured velocity and the desired velocity is zero, meaning they are exactly the same value, the control system makes no corrections to the output.
The spindle velocity control system is made up of various mechanical and electrical components and subsystems. The controller functions as the brain of the system. It uses the desired input command, along with the measured feedback signal, to determine the appropriate motor current. The controller sends a motor current command to the amplifier with an analog voltage signal. The amplifier uses a negative feedback loop of its own to supply the correct amount of current to the motor based on the analog voltage signal from the controller. The motor then converts the current into torque on the bearing rotor, translating information from the electrical world into the mechanical. The bearing rotor spins both the bearing load and an encoder disk. The encoder sends rotor velocity information back to the controller in the form of an electrical pulse train. The frequency of the pulse train signal is proportional to the velocity and this closes the control loop.
The net torque on the bearing rotor causes it to accelerate or decelerate in proportion to the rotor and load inertia, according to a rotation form of Newton’s Second Law. Since the ultimate goal of the control loop is to keep the rotational velocity as constant as possible, the rotor should not undergo any acceleration or deceleration once it has reached the correct speed. This means that there should not be any net torque on the bearing rotor to maintain constant speed. Without friction or other outside forces acting on the rotor, the motor would not need to apply any torque on the rotor to maintain constant speed. The control system could shut off and the bearing would run perfectly. In the real world, however, the motor always needs to supply enough torque to overcome the constant source of torque friction. The motor also needs to supply torque to cancel out any disturbance torques acting on the rotor from outside the system. These disturbance torques can come from the air or other sources acting on the spinning load and can be considered spurious system inputs that need to be canceled out. So the control system should only provide enough torque to overcome friction and the disturbance torques and never more or less in order to maintain constant running speed.
The Control System Components and Subsystems
The main function of the controller is to take the difference between the desired input and the measured output and determine an appropriate action for the system actuator to take to make that difference zero. There are any number of algorithms the controller can use to calculate the correct response. The simplest possible controller algorithm just tells the actuator to turn on or off. This is the algorithm used by the most basic thermostats. If the temperature of the room is below the desired level, the heater (the actuator of the thermostat control system) turns on to raise it. If the temperature is too high, then the heater turns off. This generally causes the temperature of the room to hover around the desired temperature. This scheme only works because the room tends to transmit heat when the heater is off, which lowers the room temperature. On a hot day, the temperature of the room might never lower to the desired level. The next simplest controller algorithm tells the actuator which direction to push the system plant or process in order to return it to the desired level. A thermostat hooked up to both a heater and an air conditioner would be an example. Another very popular control algorithm is known as PID. PID stands for the three algorithm gains: proportional, integral, and derivative. One simplified way to think of these gains is to consider the proportional gain like a spring trying to return a mass to some equilibrium position. The farther the process or plant is from the desired condition, the more the actuator tries to return it. The derivative gain acts like a dashpot. This gain controls the actuator force based on the rate of change of the system error. The integral gain sums the error over a period of time, which helps remove long term offsets. These gains allow much more control over the system response than the simpler algorithms. The popularity of PID controllers can be partially attributed to their robust performance in a wide range of operating conditions and partially to their functional simplicity, which allows engineers to operate them in relatively simple, straightforward manners.
Controllers can either be digital or analog. The data in digital controllers are both discrete, which means the signals change only at intervals instead of varying continuously in time, and they are quantized, which means it is stored in digital logic with a finite number of digits. Discrete data must be sampled or updated after a given amount of time and these intervals introduce delays into the control loop. These time delays can degrade the system performance if the system cannot react quickly enough to environmental changes. Sampling can also lead to signal aliasing. More than one continuous signal can result in exactly the same sample values, which introduces ambiguity as to what the digital system is actually measuring. A control loop cannot properly compensate a system if it cannot measure how it is actually changing. In addition to these potential problems with digital control loops, quantized data also introduces round-off error in the information. Measured or calculated values in the digital control loop often need to be rounded off or truncated in order to fit in the allocated storage space. Analog controllers are not subject to these potential problems, but they come with their own set of design considerations. Analog control algorithms are generally programmed into the electrical hardware as opposed to the more flexible software or firmware of digital controllers. Changing a gain value in an analog algorithm may necessitate physically swapping resistors or turning potentiometers, whereas changing gains in digital controllers is often as simple as typing in a new value to be stored as data in memory. In addition, analog signals are more subject to corruption from electrical noise and voltage drops than digital signals. Modern digital computers are generally fast enough and have large enough word storage sizes that their programming flexibility more than makes up for the errors introduced by the discrete and quantized data. These errors are still very real, however, and can be significant if not treated properly.
Seagull’s new LCA02 spindle control system uses a digital controller with a PID servo algorithm. The most important algorithm variables for tuning the system performance are the gains (proportional, derivative, and integral) and the servo update rate. These variables have to be tweaked to get the best performance possible without driving the system unstable. In addition to using feedback, the control algorithm also uses feedforward control. There is a velocity feedforward gain that reduces following errors introduced by damping (which are proportional to velocity) and an acceleration feedforward gain that reduces or eliminates following errors due to system inertia (which are proportional to acceleration). The algorithm can also be setup to implement notch filters. Notch filters can be used as anti-resonance (band-reject) filters to counteract physical resonance modes if necessary.
Communication Between Control Loop Components
The arrows in the control loop block diagram represent the communication of the output signals from one functional component block to the input of another. These signals can take various forms, such as torque, current, and analog and digital voltage signals. It is possible for the signals to get corrupted as they pass from one component to another, reducing the performance of the control loop. For example, a slipping friction clutch may not be delivering the appropriate amount of torque from the drive to the load in some mechanical power transmission application. Electromagnetic interference and noisy grounds can corrupt voltage signals and the information they are passing between components. To reduce the corruption in the voltage signals to and from the controller (from the encoder to the controller and from the controller to the amplifier), we use differential line drivers instead of single-ended. Single-ended signals use one signal line per channel while differential signals use two (one main and one complementary per channel). Differential voltage signals can enhance noise immunity by providing common-mode noise rejection. Differential receivers use the difference between the two lines to decode the signal, so any noise that raised or lowered the voltage on both lines gets canceled out. The two lines of the differential signal are sent through wires that have been twisted together. The twisting reduces the amount of electromagnetic interference inducted into the wires. For further protection against noise, the twisted-pair cables can also be shielded by a conductive material that has been connected to ground. These preventative measures are especially important when the controller is in the presence noisy equipment, such as PWM amplifiers, large brushed motors, and anything emitting radio frequency interference.
Software: Operator to Control System Interface
The input into the LCA02 control system is implemented through custom software on a PC. The operator simply types the desired velocity value in the software and the program sends that information to the controller through an RS-232 serial port. The software can also run the controller in zero speed position control. In the position control mode, there are N number of angular positions around one 360 degree rotation of the spindle, where N is equal to the number of quadrature encoder counts. The input into the control loop is the desired angular position and the output is the actual angular position. Once the rotor is at the correct angular position, the control loop holds it there at zero speed.
Motor and Commutation
The motor is the actuator of this control system. The actuator of a control system is the component that “pushes” the system output to force it to the desired state. The motor applies torque to the bearing to change the rotor velocity. Electric motors work by converting current into magnetic force. If an electric current is passed through a conductor which is positioned perpendicular to the direction of a magnetic field, then that conductor will experience a mechanical force tending to cause it to move in a direction that is perpendicular to both the current flowing through the conductor and the direction of the magnetic field. In a rotary electric motor, the forces on the rotor should all cancel in such a way as to leave only a net torque about the rotation axis. One way to do this is to have two equal and opposite forces acting on the rotor, each a given radial distance from the axis of rotation, both forces perpendicular to the radial direction and the rotation axis. The trick to making the motor work properly is to change the direction of the electric fields, with respect to the magnetic fields, in order to correctly orient the mechanical forces. The electric fields are typically defined by current flowing through coils of conducting wire. The magnetic fields can either come from permanent magnets or from electrically conducting materials where magnetic fields can be induced. Motors are generally classified by how they situate the magnets and coils within the motor geometry.
The motor coils can either be located in the spinning part of the motor (the rotor) or the stationary part of the motor (the stator) or both. When only one set of coils is used, magnets are located on the opposite motor part as the coils. When the coils are located on the rotor and the magnets are located on the stator, the motor is called a DC brushed motor. All other rotary motor types have the coils located on the stator. In the DC brushed motor, current is supplied into the windings in the rotor through contact brushes. In all other types, current is directed into the coils electronically. Directing the current into the motor windings is called commutating the motor. The motor commutation can either be closed-loop, meaning it uses rotational position information in determining how to energize the motor windings, or it can be open-loop, meaning the commutation does not depend on rotor position information. Motor commutation is a sub control system of the larger control loop. Examples of closed-loop commutated motors are DC brushed (mechanical feedback), DC brushless (sometimes called AC synchronous), and AC induction with servo feedback. Some examples of open-loop commutated motors are stepper motors and AC induction motors.
In this application, open-loop motor commutation is simply not accurate enough to achieve super low velocity modulation, for all the same reasons any open-loop control system can be less accurate than a comparable closed-loop system. DC brushed motors are easy to understand and simple to control, but do not perform well at low speeds and the brushes wear out producing dust and requiring maintenance. DC brushless motors differ from AC induction motors in that they have permanent magnets in the rotor while AC induction motors do not. AC induction motors can be driven with feedback, but the magnitude of the magnetization (inducing) current and the amount of slip (the inability for the rotor to keep up with the moving AC voltage waves generated on the stator) both must be estimated for the control algorithm. The estimation in these values makes AC induction motors with feedback less accurate than DC brushless motors.
For our application we chose to use a DC brushless motor (also called servo motors because of the closed commutation loop) since it can provide us with the most accurate speed control of any of the motor types. Even within the DC brushless motor type, there are any number of configurations. Each configuration has advantages and disadvantages and the designer of the control system must weigh the tradeoffs before making an educated decision. Some of the factors include: the number of motor poles, the number of phases in the motor windings, the geometry of the rotor and stator, and the amount of iron in the stator. For low velocity modulation, it is crucial that the motor have the least amount of torque ripple possible over the intended speed range. Of course, as in any application, the motor needs to have enough power to supply the necessary torque to drive the load at any given speed, and be efficient enough not to overheat with the current required to do so. In addition, the motor needs to be able to react quickly enough to change the torque on the rotor in time to correct the velocity error before it becomes too large.
The LCA02 controller was designed primarily for 3 phase motors with a variable number of poles (typically 8 pole motors are used). Generally, the motor pole number is limited by the maximum desired RPM, the number of encoder counts, and the bandwidth of the controller. The bandwidth of a system is the range of frequencies over which the system responds satisfactorily. For example, ideal high-fidelity audio amplifiers have a flat frequency response (the ratio of the output magnitude over the input magnitude remains constant) from 20 to 20,000 Hz (bandwidth of 19,980 Hz: the range of frequencies audible to the human ear).
Amplifier and Motor Commutation Continued
The amplifier is the major source of power into the system. Energy dissipates from the system in several forms, such as heat and noise, which result from friction and vibration. The amplifier replenishes this energy from electrical power it draws externally to maintain steady state. According to the first law of thermodynamics, the energy entering the system must equal the energy leaving the system when the system is in equilibrium. The energy loss from the system is usually undesirable, but as the second law of thermodynamics states, some energy loss is inevitable. The designer of the control system needs to minimize the unwanted energy loss and deal with the inevitable losses appropriately. Heat can destroy electrical components and distort mechanical components causing malfunction or damage. Electromagnetic radiation and vibration can act as noise both internal and external to the control system.
The amplifier supplies current to the motor based on the current command from the controller and monitors the current output with a negative feedback loop. Closed-loop-current-command amplifiers are often called torque-mode amplifiers. There are also velocity-mode amplifiers that take a velocity command from the controller and try to maintain that velocity with the motor. The velocity feedback loop is closed inside the amplifier instead of the controller. Amplifiers that do not use feedback are often called voltage-mode amplifiers. They simply take an input voltage and magnify it before outputting it to the motor. Generally velocity-mode and voltage-mode amplifiers have much poorer performance than torque-mode amplifiers connected to high quality controllers.
Torque-mode amplifiers can either close the commutation loop or leave that function up to the controller. When a motor is running at constant velocity and load, the current waveforms into each phase of the motor windings should look like sinusoids. Torque-mode amplifiers that do not commutate the motor are often called sinusoidal-input amplifiers, because the torque commands from the controller into the amplifier must vary like sine waves in each motor phase. Sinusoidal-input amplifiers are often advantageous over regular torque-mode amplifiers since the controller usually has higher performance commutation algorithms than most amplifiers. They also reduce wiring since only the controller needs the velocity and position feedback from the spindle, not the amplifier. When a sinusoidal-input amplifier is connected to a three-phase motor, the controller usually outputs two of the three motor phase waveforms and allows the amplifier to generate the third. The three sinusoidal waveforms in a three-phase motor must have phase angle offsets 120 electrical degrees from one another. The two sinusoids from the controller are separated with a phase angle of 120 degrees and the third sinusoid is simply the negative sum of the first two, based on a trigonometric identity.
The spindle position feedback necessary to close the commutation loop usually either comes from an encoder mounted on the bearing or hall effect sensors mounted in the motor. Hall effect sensor feedback is the most common. When they are used, one hall effect sensor is mounted in the motor for each motor phase. Hall effect sensors are relatively inexpensive and easy to use, but they do not provide enough information to generate good sinusoidal current waveforms for the motor, so the optimal sinusoidal waveforms are approximated with square waveforms. The square current waveforms introduce torque ripple in the motor, however, and therefore are not ideal for very low velocity modulation applications. Optical encoders provide much more information to the commutation feedback loop, so the current waveforms can better approximate the ideal. When incremental encoders are used for the position feedback, the encoder pulse count needs to be matched to the position of the motor windings. It is analogous to setting the timing in an automobile engine and the act is referred to as “setting the commutation”. Seagull’s LCA02 controller uses incremental encoder feedback to close the commutation loop and automatically sets the commutation every time the software is run to ensure it is always optimal. When the commutation is not set properly, the motor current is higher than normal and the control loop performance is degraded. Even if the commutation is set perfectly on startup, though, lags in the electrical circuits and calculation delays in the controller cause offsets in the phase angles that are proportional to the rotor velocity. The LCA02 automatically advances the phase angles in proportion to the rotor velocity in order to maintain proper commutation. This feature is extremely important for minimizing motor current and the spindle velocity modulation.
The amplifier in the LCA02 is a sinusoidal-input amplifier. There are actually three amplifiers, one for each motor phase. Each amplifier takes a sinusoidal voltage command and converts it to a sinusoidal current output. The amplifier adjusts its output voltage to supply the motor with the proper amount of current. According to Ohm’s law, the current output is proportional to the voltage divided by the resistance of the winding. The resistance is actually the complex resistance (or the electrical impedance) since it varies with the voltage frequency because of the induction and capacitance effects in the windings. The voltage that affects the current is actually the voltage difference between the phase leads. The output voltage of the amplifier must adjust to compensate for the back-emf generated by the motor as it is spinning. The motor back-emf is proportional to the velocity. For example a motor might have a back-emf value of 2 volts per thousand RPM. The amplifier powering such a motor would have to output at least 60 volts just to overcome the motor back-emf. Amplifiers are usually either classified as linear or as PWM, depending on how they adjust the magnitude of the output voltage. Linear amplifiers change the analog voltage output directly, while PWM amplifiers use a technique called pulse width modulation (PWM). PWM amplifiers are analogous to riding a bicycle. The rider can either peddle to supply power to the bicycle or coast and let momentum carry the bicycle forward. The rider can vary the speed of the bicycle, without having to adjust the peddling frequency, by the combination of peddling and coasting. The ratio of peddling time to coasting time is called the duty cycle. 100% duty cycle means that the rider peddles all the time, 50% means he peddles half the time. PWM amplifiers apply a voltage to the motor in the duty cycle fashion like the rider applies peddling to the bicycle. The amplifier has a maximum output voltage, say 100 volts, which is turned on and off at a fixed frequency. The ratio of how long the voltage is turned on to how long it is turned off determines the effective voltage output. 100 volts can act like 30 volts with the proper PWM duty cycle at high enough frequency. It is like varying the brightness of a lamp by flicking the light switch on and off very quickly. If you do it fast enough, your eyes cannot see the flicker and the brightness simply dims. PWM amplifiers are very popular since they are easy to implement with digital electronics and are much more efficient than linear amplifiers. The high frequency, high voltage switching radiates a great deal of electromagnetic noise, however, so they are unsuitable in applications where the noise cannot be tolerated or designed around. In addition, the high frequency, high voltage signal has to be filtered to act like a low voltage signal. This filtering is either done mechanically, with the inertia of the load, or electrically, with a digital filter circuit. The filtering adds a delay into the control loop that can limit the control loop bandwidth. The amplifiers in the Seagull LCA02 are specially designed linear amplifiers to maximize the system bandwidth and minimize the noise radiation and output distortion.
There is a common maxim in controller design that the controller is only as good as its feedback sensor. Sometimes the controller can clean up and enhance the feedback data before using them, but if you cannot accurately sense what you are trying to control, then you will get poor results. The incremental optical encoder in the LCA02 control system provides both the velocity feedback for the velocity control loop and the position feedback for the commutation control loop. The encoder outputs a digital pulse stream when the spindle is spinning. The velocity control loop measures the frequency of the pulse stream while the position control loop keeps track of the pulse counts. The frequency of the pulse stream is proportional to the rotational velocity of the spindle and should remain constant at constant spindle velocity. All encoders have some frequency modulation of the output signal, however, and this needs to be minimized in order to provide a nice clean feedback signal. The control system will do its best to track the feedback signal, so any measurement errors in the feedback component can turn into physical errors in the system. The encoder feedback signal is digital, so it suffers from the same discretization and quantization errors as a digital controller. To minimize these errors, it is important to maximize the number of encoder pulses per spindle revolution, without going over the maximum encoder input frequency of the controller. Low-speed applications should use higher line count encoders than high-speed applications to ensure the controller has equivalent amounts of information to use for calculating output every time it closes the servo loop.
The air bearing is the physical plant of this control system. The plant is the process or device or system that the control loop is trying to control. The bearing rotor can be approximated as a single degree of freedom system for this application. The number of degrees of freedom in a system is the number of variables necessary to specify the system state. The motion of an unconstrained rigid object has six degrees of freedom, three directions of translation and three directions of rotation. Flexible bodies have even more degrees of freedom to describe the distortion. The bearing is single degree of freedom in the control loop, because the state of the system is completely described by the angular position of the rotor. This assumes that the rotor is completely rigid and that the other possible motions of the rotor are negligible to the control loop. If the rotor has significant torsional flexibility, or if the bearing load is only weakly coupled to the rotor, the control system can falter if not designed for it. If the angular positions of the encoder, motor, and load change relative to each other, then the feedback signals may not provide the control loop with the information the designer of the control loop thought they would. The control system user probably cares most about the velocity modulation of the load, but the control system will be trying to correct the velocity modulation of the sensor with the motor and the relative movement between the three components complicates and corrupts the entire process. In order to maintain good system performance, the designer has the option of either trying to predict the torsional flexure, or better yet, using several feedback sensors in nested control loops within the larger control loop, or better still, trying to eliminate the relative motion entirely. Using multiple sensors (e.g. putting one near the motor and one near the load) feeding back signals to nested feedback loops is a clever way of getting good performance out of such a system, but adding extra components in the feedback loop is unnecessary if changing the physical plant can solve the problem.
The bearing can be thought of as a component that takes torque as input and outputs rotational acceleration. Rotational acceleration is the time rate of change of rotational velocity. The rotational acceleration is proportional to the net torque on the rotor divided by the rotor rotational inertia. When a constant net torque is applied to the rotor, the rotor velocity increases by a constant amount (the larger the torque magnitude, the greater the velocity growth rate). When zero net torque is applied, the velocity remains constant. When negative net torque is applied (torque in the opposite direction as the rotation), the velocity slows. When net torque is applied cyclically, the change in velocity depends on the frequency of the torque input as well as the torque magnitude. If the input torque magnitude varies at a super high frequency, the velocity does not have enough time to change significantly. Just as the rotor starts to slow down, the torque changes directions and tries to speed it up again, canceling out the affects. High frequency harmonic torque input acts effectively like zero net torque. (If the torque waveform is other than a perfect sinusoid, however, the effective torque can be non-zero, even at high frequency. With PWM amplifiers, the effective torque is a function of the duty cycle of the square waveform.) With harmonic torque input, the bearing acts like a low-pass filter. At low frequency, the velocity is altered by the input torque, but at high input frequency, the velocity change is attenuated. The larger the rotor inertia, the lower the frequencies that are effectively filtered (with infinite inertia, even zero frequency torque input would have no effect on the velocity). Flywheels are often used in rotating applications to add rotational inertia and blind the rotor to high frequency torque ripple. Flywheels can limit the maximum acceleration rate of the bearing.