The present invention generally relates to limited rotation motors, and relates in particular to systems for controlling limited rotation motors.
Limited rotation motors generally include stepper motors and constant velocity motors. Certain stepper motors may be employed in applications requiring high speed and high duty cycle sawtooth scanning at large scan angles. For example, U.S. Pat. No. 6,275,319 discloses an optical scanning device for raster scanning applications.
Limited rotation motors for certain applications, however, require the rotor to move between two positions with a precise and constant velocity rather than by stepping and settling in a sawtooth fashion. Such applications require that the time needed to reach the constant velocity be as short as possible and that the amount of error in the achieved velocity be as small as possible. Constant velocity motors generally provide a higher torque constant and typically include drive circuitry for causing the rotor to rotate about a central axis, as well as a position transducer, e.g., a tachometer or a position sensor, and a feedback circuit coupled to the transducer that permits the rotor to be driven by the drive circuitry responsive to an input signal and a feedback signal. For example, U.S. Pat. No. 5,424,632 discloses a conventional two-pole limited rotation motor that includes a feedback circuit.
Such limited rotation motors may be used, for example, in a variety of laser scanning and processing applications, such as high speed surface metrology, laser welding (e.g., high speed spot welding), surface treatment, cutting, drilling, marking, trimming, laser repair, rapid prototyping, forming microstructures, or forming dense arrays of nanostructures on various materials.
The processing speeds of such systems are typically limited by one or more of mirror speed, X-Y stage speed, material interaction and material thermal time constants, the layout of target material and regions to be processed, and software performance. Generally, in applications where one or more of mirror speed, position accuracy, and settling time are factors that limit performance, any significant improvement in scanning system open loop gain may translate into immediate throughput improvements.
The controllers for such systems must also typically be designed and constructed to fully optimize the performance of the limited rotation motor system. Controllers that employ analog electronics are generally able to control the motor systems in real time, but analog control systems must generally be specifically designed for each system, requiring fine adjustment of control parameters. Analog control systems also limit flexibility in changing the amount and character of feedback that may be available from such control systems.
Digital control circuits may be used to generate command signals in the form of pulses as disclosed, for example in U.S. Pat. No. 4,282,468, which also discloses the use of analog feedback signals that are generated using a quadrature phase resolver. Digital controllers may also be employed with digital-to-analog (D/A) converters as disclosed, for example, in U.S. Pat. No. 4,893,068, which discloses a digital servo position system that employs an integrator to switch between either velocity error or position error.
Digital signal processors may also be used in digital controllers together with D/A converters for driving limited rotation motors.
During use, asynchronous commands (e.g., x, y, z, and laser data) from a control computer 25 are sent to a timing unit 21 that includes a first-in-first-out stack 23. The commands are then sent along a real time serial data bus to the multiplexor 3, where digital data for the x, y, and z motors is provided to the D/A converters 5, 7 and 9 respectively, and corresponding analog control signals are then provided to the analog controllers 11, 13 and 19 respectively. Laser trigger data is provided directly to the laser trigger unit 17 from the multiplexor 3.
The commands provide position change information regarding a mark or cut that is to be made on the imaging surface. The control system of
The feedback from the motors may be provided as either digital or analog signals. For example, U.S. Pat. No. 4,398,241 discloses a digital signal processor based control system in which the feedback signals are provided as a sequence of pulse signals, and U.S. Pat. No. 7,200,464 discloses a digital signal processor based control system in which the feedback signals are provided as analog signals that are converted to digital signals using A/D converters.
Digital processing units that include micro processors generally perform multiple processing tasks such as managing inputs and outputs, user interfaces, and receiving and responding to interrupt signals. To handle these tasks, the processing units typically employ time-multiplexed multitasking, but such multi-tasking limits the availability of the processor to the controller interface. The speed of operation of the limited rotation motor, therefore, needs to rotate relatively slowly to ensure that the next output signal will always be available when needed. The coupling of any feedback signals to the associated output signal would also require a relatively slow speed of operation. Further, unwanted noise from execution of the motor command signals may adversely affect the analog or digital feedback signals.
The generation of status information is also sometimes adversely affected by operation of the device itself or of other devices due to electrical interference or switching noise in the device. Faster motors typically require substantially larger heat sinks, and may result in substantial interference that may adversely affect feedback information that is generated by the devices since amplifier power is proportional to the square of the speed. For example, noise created in the amplifier may couple into the position detector, be amplified and cause either instability or unwanted movement of the scanning system.
There continues to be a need, therefore, for a controller for limited rotation motors and for laser processing systems that enable real time feedback and more flexibility in the control and feedback operations to further optimize the performance of the limited rotation motor system.
The invention provides a control system for controlling the movement of a limited rotation motor. The control system includes a computer system and a closed-loop motor controller. The computer system is for generating command digital data including digital input commands for controlling the movement of the limited rotation motor. In accordance with an embodiment, the closed-loop motor controller includes an input circuit for receiving the command digital data synchronous with a data input signal, a digital control system for processing the command digital data, an output circuit for providing a motor drive signal to the limited rotation motor, and a feedback circuit for providing digital feedback data to said digital control processing circuit. The digital control processing circuit providing closed-loop motor control calculations on a computation cycle that is synchronous with the data input signal.
In accordance with another embodiment, the closed-loop motor controller includes an input circuit for receiving the command digital data control signal for processing the command digital data, an output circuit for providing a motor drive signal to the limited rotation motor, and a feedback circuit for providing feedback digital data to the digital control system. The output circuit is synchronous with the feedback circuit such that feedback input data is read from the limited rotation motor only when the motor control signal is not changing.
In accordance with a further embodiment, the invention provides a method of controlling movement of a limited rotation motor that includes the steps of generating command digital data including digital input commands for controlling the movement of the limited rotation motor, generating a timing signal, executing closed-loop motor control calculations responsive to each digital input command on a computation cycle that is synchronous with the timing signal to provide an motor drive signal for controlling the movement of the limited rotation motor, and receiving feedback information from the limited rotation motor such that said closed-loop motor control calculations are responsive to each digital input command and responsive to the feedback information from the limited rotation motor.
The following description may be further understood with reference to the accompanying drawings in which:
The drawings are shown for illustrative purposes only.
Laser marking or scanninig systems typically require synchronized motion between multiple axes. Generally, the desired motion of the laser is broken into coordinate sets called micro-vectors that are spaced evenly in time. The time interval between the sets is referred to as the command sample rate, and the coordinate set for each sample period is the micro-vector. These micro-vectors may be calculated in a computer, then either converted to an analog voltage with a D/A card in the computer and transmitted over analog signal lines, or transmitted digitally over a proprietary synchronous communication channel to a D/A converter adjacent to the servo controller. Both of these solutions require a specialized card in the computer, and custom cables from the computer to the servo controller.
Applicant has discovered that high motor control speeds, substantial programming flexibility and real-time feedback may be provided in a control system for limited rotation motors. The invention provides for the generation of command and feedback micro-vector data for servo controllers in limited rotation torque motors for optical scanning. In accordance with various embodiments, the invention provides a system and method for synchronizing continuous command and status information with intermittent command and status generation using event markers.
Command signals are generated by a control program in the personal computer 38, and forwarded to a control processor 54 in the bridge unit 32 where they are stored in a first-in-first-out (FIFO) stack 50. The FIFO stack 50 provides that asynchronous communication from the personal computer 38 (that may, for example, be due to the processor in the personal computer 38 handling multiple tasks using time division multiplexing), are successively made available to the HSCI bus 48 without interruption.
As further shown in
As shown in
The system, therefore, employs two different clock signals; the command clock signal (CMD_CLK) 58 and the status clock signal (STAT_CLK) 36. The command clock signal is used to generate the command frame synch signal (CMD_FS), and each frame is divided into sub-frames that are, for example, thirty two bits each. Four sub-frames are shown in
The status clock signal (STAT_CLK) 36 and the status frame synch signal (STAT_FS) are generated by one of the controllers, for example by the controller that is physically located furthest from the bridge unit. Each frame is divided into the same number of thirty two bit sub-frames of status data (STAT_D) as there are sub-frames of command data.
The STAT_CLK, STAT_FS and STAT_D signals, therefore, are generated by one of the controllers (e.g., the x controller), and the CMD_CLK, CMD_FS and CMD_D signals are generated by the bridge processing unit. The status clock signal, may for example, be a nominal 24 MHz signal, and is used to receive status information as well as to provide synchronization of pulse width modulation signals and data conversions by A/D converters in the motor controller circuits.
The status frame synch signal provides a pulse once per frame generated by one of the servo drivers. The status frame synch signal locks to the command frame synch signal issued by the bridge. The status data signal is a serial stream of data from the motor controllers that is provided to the bridge using the status frame synch and status clock signals for control. It is driven by the servo drivers with real time information representing the servo system at the beginning of the frame. The first sub-frame is channel 0, and the second is channel 1 etc.
The command clock signal is transmitted by the bridge and is generated by buffering and deglitching the status clock signal received from the last motor controller. The command frame synch signal is generated by the bridge by counting 256 command clock signals, and yields a sampling frequency of about 93.75 kHz. The command data signal is the serial data stream of (e.g., 8) thirty two bit micro-vectors in a frame. It is driven by the servo drivers with real time information representing the servo system at the beginning of each frame. The first sub-frame is channel 0, and the second is channel 1 etc.
The command data and status data transmit data by assigning each controller a channel in a frame. The current status data channel servo drives the bus for thirty two bits and then tri-states its output yielding to the other channels. The command data is driven from the bridge for the entire frame, and then respective servo controllers latch their data during their channel period.
The laser signals are separated from the data stream by the bridge, and are directed to the laser for control. As discussed above, the bridge functions may be provided in any of the servo controllers by programming the inherent field programmable gate array (FPGA) or microprocessor with the required functions, and also buffer the data both ways on an asynchronous bus to a computer. In alternative embodiments, the bridge may stand alone or the bridge may be programmed into the direct output of a system computer. The bridge, for example, may be a logic card plugged into the PCI bus of a computer. The HSCI bus may be linked to one of the controllers showing the command clock, command frame synch and command data that are connected for input to command processor latch, and the status clock, status frame synch and status data are provided for status output via a latch. An A/D synchronization signal is derived from the command frame synch signal, and synchronizes the D/A activity of each controller, and further synchronizes the pulse width modulation motor output stage.
In particular,
The input circuit 310 includes a latch-in unit 81 for latching in from the bus 48 the appropriate command data signal 64 for the channel assigned to the controller, as well as the command clock signal 58 and command frame synch signal 60. The latch-in unit 81 looks for the micro-vector in each frame that is assigned to that controller, and latches in the thirty two bit command data for that channel responsive to the command frame synch signal.
The computation circuit 320 includes a command processor unit 82 and a control unit 83. The command processor unit 82 generates a command acceleration signal 96, a command velocity signal 97 and a command position signal 98 to the control unit 83. The command processor 82 determines whether the next position command requires the servo to move beyond any of an acceleration limit, a velocity limit or a jerk limit. If not, a command voltage is passed to the control unit 83, which in turn passes a command voltage to an amplifier 84 of the output circuit 330, which in turn drives the motor 85 with the appropriate pulse width modulated signal. Specifically, the acceleration, velocity and position signals are provided by the processor 82 to the control unit 83, and the position signal is also provided to the motor-mirror feedback unit 92. The command voltage output from the control unit 84 is also provided to the motor-mirror feedback unit 92 of the feedback circuit 340 to provide command information against which motor control feedback information is compared.
As shown in
Pulse width modulation is employed in driving certain motors in order to optimize high speed operation without substantially increasing the required power required by the amplifier. Pulse width modulation provides that a power signal (e.g., voltage) is on at full power for a percent of an operational duty cycle that equals the value of the motor control signal as a percent of the effective operating power if continuously operating at full power. The use of pulse width modulation in controlling a motor, however, involves constantly switching the voltage supply or ground to the motor leads such that the average voltage to the motor is applied in a controlled manner. The high frequency switching is filtered by the inductance of the motor and the inertia of the motor, resulting in smooth motor control. This method of pulse width modulation requires substantially less power in the amplifier.
The switching frequencies of pulse width modulation motor control, however, are usually in the 15 KHz and higher range to avoid unwanted audible noise (to Humans). To minimize power, the switching is done very quickly, causing voltage transients. These switching transients have the potential to electrically couple into the feedback signal, causing unwanted positional errors. The amplifier 84 provides a motor output signal to a motor 85 that may, for example therefore, be a pulse width modulated signal. The motor 85 is coupled to a position transducer 86 that provides feedback signals via A/D converters 87 and 88 to a position converter 89 in the feedback circuit 340. The current used by the motor is also monitored by an amplifier 90, and the output of the amplifier 90 is provided to the motor-mirror feedback unit 92 via another A/D converter 91. Status data is provided by the motor mirror feedback unit 92 to a system monitor unit 93, and the status data 26 is provided to the bus 48 via an output latch unit 94.
During use, the command processor 82 provides an A/D synchronization signal 95 that is used to control the timing of the amplifier output as well as the timing of the A/D converters. In particular, and as further shown at 2 in
The pulse width modulated signal 24 includes pulses 4 that are designed to provide pulses that are centered between each command frame synch signal, and the value of the associated output signal 99 dictates the length of time that the signal 24 is on during each frame. The pulse width modulation signal is generated by providing a positive signal 4 when the output voltage signal 99 from the control unit 83 is greater than the triangle wave control signal 95 as shown in
The control signal 95, therefore, synchronizes both the A/D conversions as well as the motor control signal. If the feedback sampling were at a different rate than the pulse wide modulation, then switching noise may alias down to frequencies to which the system will respond. The feedback devices, therefore, are synchronized with the cycle of the device commands, and are synchronously sampled at the same phase of the pulse width modulated waveforms on every cycle so that any switching noise coupled to the signal will be constant and will manifest itself as a DC component that may be easily be removed (or ignored). As the duty cycle of the pulses 4 of the PWM signal changes, the voltage of the PWM signal at the sample time is constant.
In further embodiments, the motor drive signal may be an analog signal rather than a pulse width modulated signal, as long as the value of the analog signal changes at specific times so that the A/D converters will not convert their analog input while the motor drive signal is changing. For example, the output circuit 330 may provide an analog drive signal that only changes value when the control signal 95 is at its lowest value in each cycle.
The command data 64 from the bus is also latched into the command processor 82 between each command frame synch pulse. As shown in
The status frame synch signal 28 is based on (and therefore follows) the command frame synch signal 60. Status data 26 from the A/D conversions is deigned to be output to the bus 48 between each pulse of the status frame synch signal 28. The feedback status data (including for example, motor current, velocity and position) may be used to provide feedback control of the motor at the controller 80, as well as to provide status information to the central computer 38 via the HSCI bus and the bridge unit 32. The status data stream may be configured in a way similar to the command data stream in that each status frame includes a plurality of micro-vectors for each motor, except that the data will represent feedback status data. System data representative of control system information such as temperature and overall current use, may also be provided to the computer 38 via the HSCI bus and the bridge unit 32.
In particular, the motor current feedback system 90, 91 provides a motor feedback signal to the motor-mirror feedback unit 92, and the position converter unit 89 and A/D converters 87, 88 provide velocity information 6 and position information 8 to the motor-mirror feedback unit 92. The feedback unit 92 provides estimations of the motor position and mirror state, and also records current motor control, mirror velocity and mirror position signals. If preprogrammed to do so, the system provides any of the motor control, mirror velocity and mirror position signals to the system monitor unit 93, which also records the temperature and over current status. The system monitor unit 93 provides temperature and current control feedback as programmed as well. The feedback from the motor-mirror feedback unit 92 and the feedback from the system monitor unit 93 are coupled to the high speed communication interface connection system 48. This feedback may be directly coupled to any unused micro-vectors that are in the status data signal 26. For example, if eight micro-vectors are used, the first four may be assigned to the x motor controller, the y motor controller, the z motor controller and the laser controller.
The status data is provided, in accordance with an embodiment, by forming the status data as follows. Status micro-vectors are generated by the system monitor unit, and the number of status micro-vectors matches the number of command micro-vectors. The tag data bits and the controller identification bits of each command micro-vector are written into associated status micro-vectors so that the status information may be correlated with the command data that was executed contemporaneous with the status information. The desired status information, e.g., position, velocity, motor power, controller temperature and controller power, may be provided as the status data in the 24 bits of available micro-vector data. This status data is then latched onto the bus as shown at 26 by the output latch unit 94 synchronous with the status frame synch pulses 28.
In further embodiments, the x, y, z and laser command data even may be re-sent (to identify the point in time that the status data was generated), and the un-used micro-vectors from the command data may then be used for the status data relating to the controllers and/or motors. In particular, in an embodiment, four un-used micro-vectors may be used to provide status data regarding the x, y, z and laser controllers respectively. By coupling the status data in this way to the contemporaneous command data, the status data becomes tagged to the time at which each controller was executing the associated command data.
In various embodiments, the laser controller 46 may also include a status feedback system that provides feedback data synchronous with the status frame synch signal, and may be coupled to the communication bus 48 similar to the controllers 40, 42 and 44 discussed above.
As mentioned above, the generation and transmission of time sensitive data may be tagged with event markers, and the bridge unit provides that the data is stored in a first-in-first-out (FIFO) stack in each direction (to and from the computer processor 38). Gaps in transmission that might occur both to and from the computer processor 38, therefore, do not disturb the operation of the controllers 40 and 42 and the laser 44. The computer processor 38 provides substantial computational power to calculate all of the micro-vectors that are averaged over a large period of time. The bridge unit buffers sufficient micro-vectors to allow transmission on the synchronous side while lapses in data transmission occur on the asynchronous side.
Because data is buffered in the bridge by the FIFO stacks, the time between a micro-vector being generated and used is somewhat indeterminate. The time between an external event, and the associated status signal arriving at the computer would also be indeterminate if the data was not stamped (or tagged) as disclosed in more detail below. The system of tagging command and status data is employed to allow for system synchronization, data flow, and command/status correlation.
On system start up, or during operation, it may be desirable to synchronize the micro-vector command stream relative to an outside event or servo controller status. This is done by tagging micro-vectors with synchronization data. When synchronization data (e.g., a WAIT instruction) is encountered in the micro-vector command stream, the command stream will stop (and repeat the last command) until the synchronizing signal is encountered. The synchronizing signal may be from an outside source such as a switch that indicates that a positioning element for relative movement between a laser beam and a substrate (such as a stage) has stopped moving or that a laser has fired. In other embodiments, the synchronizing signal may be triggered by status information that is being continuously provided by a servo controller.
Control of execution of the micro-vectors responsive to the synchronization data may be performed at the bridge unit 32 or may be performed at each controller. A benefit of controlling the execution of the micro-vectors at the bridge unit is that the execution of all controllers may be achieved responsive to one set of synchronization data.
An example of the execution of a WAIT command is shown in
The command set 108 shown in
As shown at 130 in
An example of the execution of a TRIGGER command is shown in
During operation as shown at 206 in
The system illustrated above operates in real time, and operates continuously. In certain applications, it may be desirable to change the size of the command micro-vector during operation to add or remove additional axis. By tagging the last micro-vector in each set with an end of frame tag, the system knows where each frame ends and may modify the size of each frame and/or add new micro-vectors to each frame during operation. The system will first generate the data and then automatically provide the data in the sample period to the synchronous bus while the length of the vector is increased or decreased without any danger of a micro-vector being unloaded in the wrong time frame.
The status data written onto the micro-vectors may be used to provide a wide range of programmable status information, and may be readily correlated with the associated command that is executed at the time of generation of the status information. In most cases, there is no need for a continual stream of status data for each micro-vector, and the trigger command is used to gate in status information at specific times. In this manner, data driven status collection is achieved. An example of when this might be useful is if the step response for an axis is desired. The central computer would stamp the step command data and some time period later with transmit an enable signal. Each micro-vector command executed with this stamp will cause a status to be transmitted back to the central computer.
Those skilled in the art will appreciate that numerous modifications and variations may be made to the above disclosed embodiments without departing from the spirit and scope of the invention.