Dynamic offsets for use in motor control

A system and method for motor control includes at least one dynamic offset value provided to a motor drive. Each dynamic offset value is determined by an external processing device and transmitted to the motor drive. The external processing device includes a rigid-body model of the motor and of the load controlled by the motor to generate each dynamic offset value. The dynamic offset value may be a position, velocity, or torque offset signal or a combination thereof. Each dynamic offset value and the desired motion profile are provided at a first update rate. The system control loops execute at a second update rate faster than the first update rate. Each dynamic offset value and the reference command are interpolated to generate values for each period of the second update rate. The interpolated values are provided to the system control loops to achieve desired performance of the motor.

BACKGROUND INFORMATION

The subject matter disclosed herein relates to dynamic offsets for improved control of a motor by a motor drive. More specifically, a dynamic offset value, received at an input to the motor drive at a coarse update rate is interpolated to a servo update rate and filtered for use during a servo update rate within the motor drive.

As is known to those skilled in the art, motor drives are utilized to control operation of a motor. According to one common configuration, a motor drive includes a DC bus having a DC voltage of suitable magnitude from which an AC voltage may be generated and provided to the motor. The DC voltage may be provided as an input to the motor drive or, alternately, the motor drive may include a rectifier section which converts an AC voltage input to the DC voltage present on the DC bus. The rectifier section may be passive and include diodes or alternately, the rectifier section may be active and include power electronic switching devices, such as insulated gate bipolar transistors (IGBTs), metal-oxide semiconductor field-effect transistors (MOSFETs), thyristors, or silicon-controlled rectifiers (SCRs). The power electronic switching device typically includes a reverse conduction power electronic device, such as a free-wheeling diode, connected in parallel across the power electronic switching device. The reverse conduction power electronic device is configured to conduct during time intervals in which the power electronic switching device is not conducting. A controller in the motor drive generates switching signals to selectively turn on or off each switching device to generate a desired DC voltage on the DC bus. The motor drive further includes an inverter section to convert the DC voltage on the DC bus to a desired AC voltage output to the motor. The inverter section includes power electronic switching devices as discussed above to selectively connect the DC bus to the output of the motor drive, thereby generating the desired AC voltage.

The motor drive receives a command signal which indicates the desired operation of the motor. The command signal may be a desired position, speed, or torque at which the motor is to operate. The position, speed, and torque of the motor are controlled by varying the amplitude and frequency of the AC voltage applied to the motor. The motor is connected to the output terminals of the motor drive, and the controller generates the switching signals to rapidly switch the switching devices on and off at a predetermined switching frequency and, thereby, alternately connects or disconnects the DC bus to the output terminals and, in turn, to the motor. By varying the duration during each switching period for which the output terminal of the motor drive is connected to the DC voltage, the magnitude of the output voltage is varied. The motor controller utilizes modulation techniques such as pulse width modulation (PWM) to control the switching and to synthesize waveforms having desired amplitudes and frequencies.

In order to convert the command signal to the desired output voltage, the motor drive includes a control section. The control section may vary in complexity according to the performance requirements of the motor drive. For instance, a motor drive controlling operation of a pump may only need to start and stop the pump responsive to an on/off command. The motor drive may require minimal control such as an acceleration and deceleration time for the pump. In contrast, another motor drive may control a servo motor moving, for example, one axis of a machining center or an industrial robotic arm. The motor drive may need to not only start and stop the motor but also operate at various operating speeds and/or torques or follow a position command. The motor control for a servo motor may include multiple control loops, such as a position loop, velocity loop, acceleration loop, torque loop, current loop, or a combination thereof. Each control loop may include, for example, a proportional (P), integral (I), or derivative (D) controller and an associated controller gain value for each controller in the control loop.

Regardless of the complexity of the control loop required, the control section for motor control has historically been a single-input, single-output (SISO) system. In other words, a single command, such as position, velocity, or torque is provided as the input, and a single, controlled voltage or current is output from the motor drive. Within the control loop, the input may be fed through cascaded or paralleled control loops. For example, a position command is initially fed into a position regulator which outputs a velocity command. The velocity command is cascaded into a velocity regulator which, in turn, outputs an acceleration reference. The acceleration reference is proportional to a desired torque or desired current output from the motor drive and is provided to a further cascaded current regulator. It may also be desirable to utilize the position command as a feed forward value. Providing the position command to a derivative block, where the derivative block is arranged in parallel to the position regulator, generates a velocity feed forward value. The velocity feed forward value is summed with the velocity command prior to the velocity regulator. Similarly, the velocity feed forward value may be provided to another derivative block, where the additional derivative block is arranged in parallel to the velocity regulator, to generate an acceleration feed forward value. The acceleration feed forward value is summed with the acceleration reference before converting the acceleration reference to a current reference and supplying the current reference to the current regulator. Various applications may utilize only a portion of these elements; however, each control system still represents a SISO system. The selected SISO system must be configured to entirely compensate for the dynamics of the controlled system.

In order to achieve the desired operating performance of the motor, it is necessary to properly select the desired regulators, the associated controller gain values associated with each regulator, the desired feed forward elements, and gains associated with each feed forward element. Adjusting one gain value in a SISO system impacts performance of other gain values within the system. Further, feed forward values and feedback regulators separately attempt to compensate for the dynamics in a controlled system. Tuning the controller typically takes a very experienced technician and can often require a substantial amount of time. Further, the interaction of gains may limit the available performance from the motor drive.

Thus, it would be desirable to provide an improved system and method for motor control by a motor drive.

It would further be desirable to provide dynamic offset values in parallel with a SISO system to reduce following error observed in the SISO system.

BRIEF DESCRIPTION

According to one embodiment of the invention, a motor drive for controlling operation of a motor includes a DC bus having a positive rail and a negative rail and an inverter section having a plurality of switching elements. The DC bus is operable to receive a DC voltage between the positive rail and the negative rail, and each switching element is controlled by a gating signal. The inverter section is operable to receive the DC voltage from the DC bus and provide an AC voltage at an output of the motor drive. The motor drive also includes an input interface, a feedback interface, and a controller. The input interface is configured to receive a reference signal and an offset signal from an external source, and the reference signal and the offset signal are sampled from the input interface at a first update rate. The feedback interface is configured to receive a position feedback signal from a position sensor operatively connected to the motor. The controller is operable to sample the feedback interface to obtain values of the position feedback signal at a second update rate and to interpolate the reference signal, sampled at the first update rate, to generate a plurality of values of the reference signal at the second update rate, where the second update rate is faster than the first update rate. The controller is further operable to interpolate the offset signal, sampled at the first update rate, to generate a plurality of values of the offset signal at the second update rate and to generate either a voltage reference or a current reference as a function of the position feedback signal, the reference signal, and the offset signal at the second update rate. The voltage reference or the current reference corresponds to desired operation of the motor connected to the motor drive.

According to another embodiment of the invention, a method for controlling operation of a motor includes obtaining a reference signal and an offset signal from an input interface of a motor drive at a first update rate and sampling a position feedback signal at a second update rate. The motor drive is operatively connected to control operation of the motor, and the position feedback signal corresponds to an angular position of the motor. The second update rate is faster than the first update rate. The reference signal is interpolated to generate a plurality of values of the reference signal at the second update rate, and the offset signal is interpolated to generate a plurality of values of the offset signal at the second update rate. Either a voltage reference or a current reference is generated as a function of the position feedback signal, the reference signal, and the offset signal at the second update rate, where the voltage reference or the current reference corresponds to desired operation of the motor connected to the motor drive.

According to still another embodiment of the invention a controller for a motor includes an input interface configured to receive a reference signal and an offset signal from an external source, a feedback interface configured to receive a position feedback signal corresponding to an angular position of the motor, and a processor. The processor is operative to sample the reference signal and the offset signal at a first update rate and sample the position feedback signal at a second update rate, where the second update rate faster than the first update rate. The processor interpolates the reference signal, sampled at the first update rate, to generate a plurality of values of the reference signal at the second update rate and interpolates the offset signal, sampled at the first update rate, to generate a plurality of values of the offset signal at the second update rate. The processor is further operative to generate either a voltage reference or a current reference as a function of the position feedback signal, the reference signal, and the offset signal at the second update rate, where the voltage reference or the current reference corresponds to desired operation of the motor.

DETAILED DESCRIPTION

The subject matter disclosed herein describes an improved system and method for motor control in a motor drive. At least one dynamic offset value is provided as an input to the motor drive. Each dynamic offset value works in combination with a reference command to the system control loops to achieve desired operation and reduce following error of a motor connected to the motor drive. Each dynamic offset value is determined by an external processing device. The external processing device includes, for example, a model of the motor and of the load controlled by the motor. The model includes rigid-body dynamics for the motor and the controlled load. The rigid-body dynamic model uses a desired motion profile for the motor to generate each dynamic offset value. The dynamic offset value may be a position offset signal, a velocity offset signal, a torque offset signal, or a combination thereof. According to one aspect of the invention, the external processing device may generate both the desired motion profile and each dynamic offset value. Optionally, the external processing device may receive the desired motion profile and generate each dynamic offset value. The position offset value corresponds to a desired position of the motor defined by the motion profile. The velocity offset value corresponds to a desired velocity of the motor to achieve the desired position of the motor. The torque offset value defines the torque required from the motor to achieve the desired position of the motor as a function of the rigid-body model defined in the external processing device.

Each dynamic offset value and the desired motion profile may be provided to the motor drive at a first update rate. The dynamic offset value may be the position, velocity, and/or torque offset values as provided to the motor drive, and the desired motion profile is provided as a position reference command to the motor drive. The system control loops are configured to execute at a second update rate, where the second update rate is faster than the first update rate. Each dynamic offset value and the reference command are interpolated such that new values for each dynamic offset value and for the reference command are generated for each period of the second update rate. The interpolated values are provided to the system control loops to achieve desired performance at the second update rate.

Turning initially toFIG.1, a motor drive10, according to one embodiment of the invention, is configured to receive a three-phase AC voltage at an input15of the motor drive10which is, in turn, provided to a rectifier section20of the motor drive10. The rectifier section20may include any electronic device suitable for passive or active rectification as is understood in the art. With reference also toFIG.2, the illustrated rectifier section20includes a set of diodes22forming a diode bridge that rectifies the three-phase AC voltage to a DC voltage on the DC bus25. Optionally, the rectifier section20may include other solid-state devices including, but not limited to, insulated gate bipolar transistors (IGBTs), metal-oxide semiconductor field-effect transistors (MOSFETs), thyristors, or silicon-controlled rectifiers (SCRs) to convert the input power15to a DC voltage for the DC bus25. The DC voltage is present between a positive rail27and a negative rail29of the DC bus25. A DC bus capacitor24is connected between the positive and negative rails,27and29, to reduce the magnitude of the ripple voltage resulting from converting the AC voltage to a DC voltage. It is understood that the DC bus capacitor24may be a single capacitor or multiple capacitors connected in parallel, in series, or a combination thereof. The magnitude of the DC voltage between the negative and positive rails,29and27, is generally equal to the magnitude of the peak of the AC input voltage.

The DC bus25is connected in series between the rectifier section20and an inverter section30. Referring also toFIG.3, the inverter section30consists of switching elements, such as IGBTs, MOSFETs, thyristors, or SCRs as is known in the art. The illustrated inverter section30includes an IGBT32and a free-wheeling diode34connected in pairs between the positive rail27and each phase of the output voltage as well as between the negative rail29and each phase of the output voltage. Each of the IGBTs32receives gating signals31to selectively enable the transistors32and to convert the DC voltage from the DC bus25into a controlled three phase output voltage to the motor40. When enabled, each transistor32connects the respective rail27,29of the DC bus25to an electrical conductor33connected between the transistor32and the output terminal35. The electrical conductor33is selected according to the application requirements (e.g., the rating of the motor drive10) and may be, for example, a conductive surface on a circuit board to which the transistors32are mounted or a bus bar connected to a terminal from a power module in which the transistors32are contained. The output terminals35of the motor drive10may be connected to the motor40via a cable including electrical conductors connected to each of the output terminals35.

One or more modules are used to control operation of the motor drive10. According to the embodiment illustrated inFIG.1, a controller50includes the modules and manages execution of the modules. The illustrated embodiment is not intended to be limiting and it is understood that various features of each module discussed below may be executed by another module and/or various combinations of other modules may be included in the controller50without deviating from the scope of the invention. The modules may be stored programs executed on one or more processors, logic circuits, or a combination thereof. The controller50may be implemented, for example, in a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or other such customizable device. The motor drive10also includes a memory device45in communication with the controller50. The memory device45may include transitory memory, non-transitory memory or a combination thereof. The memory device45may be configured to store data and programs, which include a series of instructions executable by the controller50. It is contemplated that the memory device45may be a single device, multiple devices, or incorporated, for example, as a portion of another device such as an application specific integrated circuit (ASIC). The controller50is in communication with the memory45to read the instructions and data as required to control operation of the motor drive10.

The controller50receives a command signal47from an external source identifying desired operation of the motor40connected to the motor drive10. The command signal47may be, for example, a position command (θ*), a speed command (ω*), or a torque command (T*). For a high performance servo control system, the command signal47is commonly a position command signal (θ*). For purposes of discussion herein, the command signal47will be the position command signal (θ*) as shown inFIG.1. In addition to the command signal47, the controller50receives at least one offset signal from an external source. According to the embodiment shown inFIG.1, a single offset signal49is provided. The single offset signal is utilized for ease of illustration and discussion and is not intended to be limiting. As will be discussed herein, multiple offset signals may be provided. According to the embodiment illustrated inFIG.1, the offset signal49is a torque offset value, Toff. As will be discussed in more detail below, the torque offset value, Toff,49is a dynamic value and may be determined by an external source, or external processing device, having a rigid-body model of the motor40and load42to be controlled by the motor drive10.

The motor drive10receives the command signal47and the dynamic offset signal49at an input interface. The input interface may be configured to receive an analog signal having a range between zero and a positive voltage, a range between a maximum negative value and a maximum positive value, or any other suitable range according to application requirements. Optionally, the input interface is a communication interface configured to receive data packets according to a communication protocol. The communication protocol may be, for example, a standard Ethernet communication protocol or an industrial protocol such as the Common Industrial Protocol (CIP) executing on Ethernet/IP™, DeviceNet™, or ControlNet™, or any other suitable communication protocol. The input interface may further include analog-to-digital converters, communication buffers, memory, or other electronic devices as would be understood in the art to sample a signal and convert a data signal from one form to a digital value suitable for use in a processing device.

With reference also toFIG.4, the command signal47and the offset signal49are sampled by the controller50at a first update rate. This first update rate is a slower update period within the motor drive10. The first update rate may execute in the millisecond to tens of millisecond range. According to one aspect of the invention, the first update rate executes at a five millisecond interval. In order to achieve position regulation within desired tolerances for servo control, the control loops105execute at a second update rate, where the second update rate is faster than the first update rate. The second update rate may be configurable within the motor drive10and may execute in a range between twenty and two hundred microseconds and, for example at one hundred microseconds. A first interpolator70is provided in the control module55to receive the command signal47. The first interpolator70generates a plurality of values for the command signal47corresponding to the second update rate. The output of the first interpolator70is provided as an input to a first notch filter72. The first notch filter72is used to reduce or eliminate components of the command signal47that may generate undesirable performance of the motor40and/or load42. Such components may include, for example, a frequency of operation that excites a resonance in the controlled system which, in turn, may generate vibration or unstable operation of the motor40. The interpolated and filtered command signal is then provided to the summing junction102for comparison to the position feedback signal from the position sensor44. A second interpolator74is provided in the control module55to receive the offset signal49. The second interpolator74generates a plurality of values for the offset signal49corresponding to the second update rate. The output of the second interpolator74is provided as an input to a second notch filter76. The second notch filter76is used to reduce or eliminate components of the offset signal49that may generate undesirable performance of the motor40and/or load42. The interpolated and filtered offset signal is then provided as an input to the control loops105and will be used as a torque feed forward command, as discussed in more detail below.

With reference also toFIG.5, additional dynamic offset signals may be provided to the motor drive10. The torque offset value, Toff,49is provided as a first dynamic offset signal. An additional position offset value, θoff,57and a velocity offset value, ωoff,59are also provided to the motor drive. Each of the additional dynamic offset signals are similarly interpolated and filtered. The position offset value, θoff,57is provided to a third interpolator80and then to a third notch filter82. The velocity offset value, off,59is provided to a fourth interpolator84and a fourth notch filter86. Interpolating the dynamic offset signals49,57,59allows the signals to be provided to the control loops105for improvement of the performance of the motor40connected to the motor drive. Further, providing interpolation within the motor drive10reduces computational burden on both the external processing device and the communication network between the external processing device and the motor drive10. The external processing device needs only to determine and transmit the dynamic offset signals at the first update rate rather than at the faster second update rate.

In some applications, the position reference signal47and the position offset value57may be identical. The signal may be provided to either input of the motor drive. If, for example, the external processing device receives a motion profile and generates offset signals, including the position offset value57, desired control of the motor40may be achieved by providing only the dynamic offset values, including the position offset value57to the controller50and keeping the position reference signal47at zero. With reference also toFIG.10, the dynamic position offset value57will act as a position command to the control loops105and the position regulator will compensate for disturbances in the controlled system that deviate from the dynamic position offset value57.

With reference again toFIG.4, the controller50also receives feedback signals indicating the current operation of the motor drive10. According to the illustrated embodiment, the controller50includes a feedback module65that may include, but is not limited to, analog to digital (A/D) converters, buffers, amplifiers, and any other components that would be necessary to convert a feedback signal in a first format to a signal in a second format suitable for use by the controller50as would be understood in the art The motor drive10may include a voltage sensor51and/or a current sensor52on the DC bus25generating a feedback signal corresponding to the magnitude of voltage and/or current present on the DC bus25. The motor drive10may also include one or more voltage sensors53and/or current sensors54on the output phase(s) of the inverter section30generating a feedback signal corresponding to the magnitude of voltage and/or current present on the electrical conductors33between the inverter section30and the output35of the motor drive. A position feedback device44may be connected to the motor40and operable to generate a position feedback signal (θ) corresponding to the angular position of the motor40.

The controller50utilizes the feedback signals and the command signal47to control operation of the inverter section30to generate an output voltage having a desired magnitude and frequency for the motor40. The feedback signals are processed by the feedback module65and converted, as necessary, to signals for the control module55. The control module55includes control loops105to receive an error signal, determined as a difference between the command signal47and a feedback signal. The control loops105execute responsive to the command signal47and the feedback signals to generate a desired reference signal. The control module55also includes a load observer110to generate one or more estimated values of an operating characteristic of the motor40or of a load connected to the motor. The estimated value may be an estimated position of the motor40, an estimated velocity of the motor, an estimated acceleration present in the motor, or an estimated torque experienced at the motor. As will be discussed in more detail below, the estimated value may be used by a control loop or added to the reference signal output from one of the control loops to generate the desired reference signal. One or more filters122or gains may be included between the control loops105and the current regulator61according to an applications requirement. An inertia block124is illustrated as optional. The inertia of the motor, load, or a combined system inertia may be included as a separate gain or incorporated into controller gains within the control loops105.

The output of the control module55is a current reference signal provided to the current regulator61. As is understood in the art, the current regulator61may independently regulate a torque producing component of the current and a flux producing component of the current. The current reference signal may include both a torque reference component and a flux reference component. Optionally, the flux reference component may be a fixed value and the current reference signal may consist just of a torque reference component. The current regulator61uses the torque reference component and a current feedback signal to output a voltage signal to a gate driver module60. The gate driver module60generates the gating signals31, for example, by pulse width modulation (PWM) or by other modulation techniques. The gating signals31subsequently enable/disable the transistors32to provide the desired output voltage to the motor40, which, in turn, results in the desired operation of the mechanical load42coupled to the motor40. As is understood in the art, the current regulator61is configured to execute at a bandwidth sufficiently greater than the bandwidth of the control module55such that the current regulator61may be approximated as a unity gain to the control module55.

Referring next toFIG.6, a control module55according to one embodiment of the invention is illustrated. The control module55receives a position command signal (θ*)47as an input. The position command signal (θ*) is compared to a position feedback signal (θ) at a first summing junction102. A position error signal is output from the first summing junction102and input to a position loop controller104. According to the illustrated embodiment, the position loop controller104includes a proportional and an integral (PI) controller. Optionally, the position loop controller104may be just a proportional (P) controller or further include a derivative (D) controller. Each of the proportional (P), integral (1), and/or derivative (D) controllers of the position loop controller104includes a controller gain value. The controller gain values are commonly referred to as a proportional gain (Kpp), integral gain (Kpi), and a derivative gain (Kpd). The output of the position loop controller104is a velocity reference signal (ω*).

The velocity reference signal (ω*) is compared to a velocity feedback signal (ω) at a second summing junction106. The velocity feedback signal (a) is generated by a load observer110. A velocity error signal is output from the second summing junction106and input to a velocity loop controller108. According to the illustrated embodiment, the velocity loop controller108includes a proportional and an integral (PI) controller. Optionally, the velocity loop controller108may be just a proportional (P) controller or further include a derivative (D) controller. Each of the proportional (P), integral (I), and/or derivative (D) controllers of the velocity loop controller108includes a controller gain value. The controller gain values are commonly referred to as a proportional gain (Kvp), integral gain (Kvi), and a derivative gain (Kvd). The output of the velocity loop controller108is an acceleration reference signal.

The control module55may also include a first set of feed forward branches, generated from the position command signal (θ*)47. According to the illustrated embodiment, the control module55includes feed forward branches generated from the position command signal (θ*)47for both the velocity and the acceleration elements. The position command signal (θ*) is passed through an initial derivative element112to obtain a velocity feed forward signal. The velocity feed forward signal is multiplied by a velocity feed forward gain (Kvff)114and combined with the velocity reference signal (ω*) and the velocity feedback signal (co) at the second summing junction106. The velocity feed forward signal is passed through another derivative element116to obtain an acceleration feed forward signal. The acceleration feed forward signal is multiplied by an acceleration feed forward gain (Kaff)118and combined with the acceleration reference signal at a third summing junction120. The output of the third summing junction120is an acceleration reference, α*, and in the embodiment of the control module55illustrated inFIG.6, the acceleration reference signal is the reference signal generated by the control loops105.

The first set of feed forward branches, generated from the position command signal (θ*)47, are illustrated as optional. The control module55also receives the offset signal49as a torque offset value, Toff. This torque offset value, Toff, may be generated by an external computing device, such as a programmable logic controller (PLC), programmable automation controller (PAC), a dedicated motion processing device, or other computing device. The external computing device includes a model for the rigid-body dynamics of the motor40and load42. The rigid-body dynamics of the motor40and load42predict a portion of the expected operating characteristics of the controlled system. The rigid-body dynamics are typically less computationally intense than the elastic dynamics and provide an initial estimate of the operating performance of the controlled system. The external computing device receives and/or determines the position command signal (θ*)47and uses the rigid-body dynamic model to determine the expected torque required by the motor40to follow the desired position command. By determining the expected torque required by the motor40to follow the desired position command, this expected torque may be supplied as a dynamic offset value49to the motor drive and used as a feed forward signal to achieve at least a portion of the desired performance of the controlled system. If the controlled system is accurately modeled just from the rigid-body model, the dynamic offset value49would be sufficient to obtain desired operation of the motor40. The torque offset value provided at the dynamic offset value49may substitute for the feed forward paths generated from the position command signal. The feed forward gains114,118for the velocity and acceleration feed forward paths may be set to zero to disable these feed forward paths. Because the actual controlled system will typically include some elastic, or compliant, performance based, for example, on couplings between a motor shaft and a driven shaft the control loops105and the load observer110within the control module55compensate for the elastic dynamic elements not included in the rigid-body model used by the external computing device.

The offset signal49is illustrated being provided to an offset gain128. The offset gain128, illustrated as a torque offset gain (Ktoff), is shown as optional. The external computing device may include a selectable gain, which may render a separate gain within the control module55unnecessary. Optionally, the control module55may simply use the offset signal49provided by the external processing device directly as a feed forward signal and allow the other control loops105to compensate for any error in the dynamic offset signal. In some applications, it may be desirable to adjust the torque offset gain (Ktoff)128and, therefore, it is illustrated as an optional gain value within the torque offset path. The dynamic offset signal49is provided to a summing junction126subsequent to the feedback control paths such that the feedback control loops105may be tuned independently of the torque offset provided from the external processing device.

Returning again to the output of the third summing junction120illustrated inFIG.6, the acceleration reference, α*, is combined with an estimated acceleration, â, applied to the motor shaft as a result of the load torque at a fourth summing junction121. The estimated acceleration, â, is the estimated response determined by the load observer110. With the rigid-body dynamics included in the torque offset signal49, the load observer110primarily compensates for the elastic dynamics within the controlled system. The estimated acceleration, â, is the estimated response to the dynamic elements of the controlled system not included in the torque offset signal49. The output of the fourth summing junction121is the modified reference signal and is provided as an input to a filter section122. The filter section122may include one or more filters to remove unwanted components from the control system. Referring also toFIG.7, the illustrated filter section122includes a low pass filter132to attenuate undesirable high frequency components and a notch filter134to attenuate specific frequency components having an undesirable effect on the controlled mechanical load42. It is further contemplated that additional filters may be included in the filter section122without deviating from the scope of the invention.

According to the embodiment illustrated inFIG.6, the output of the filter section122is provided to an inertia scaling block124, and the inertia scaling block124applies a gain corresponding to the inertia of the controlled system. The gain of the inertia scaling block124includes a motor inertia value, Jm, and a ratio, R, of the load inertia, Jl, to the motor inertia, Jm. As indicated above, the output of the control module55is provided to a current regulator61and gate module60to output a desired voltage to the motor40. The plant130shown inFIG.6represents components of the motor40and motor drive10external to the control module55and may incorporate the current regulator61, gate module60, and the inverter section30of the motor drive10, the motor40, a mechanical load42, and a position feedback device44. The position feedback device44generates the position feedback signal (θ) used by the control module55. Although the reference signal from the control loops105is illustrated as an acceleration reference, α*, inFIG.6, the output of the third summing junction120may be an acceleration or torque reference signal.

With reference toFIG.8, the inertial gains from the inertia block124may be incorporated into the controller gains.FIG.8illustrates a modified acceleration feed forward gain (K′aff)118′ and a modified velocity loop controller108′ indicating that the inertial gains have been incorporated within the controller gains. As is understood in the art, angular acceleration is proportional to torque and, more specifically, torque is equal to inertia times the angular acceleration. As a result, the reference signal generated by the control loops105is a torque reference, T*, and the estimated response generated by the load observer110is an estimated torque, {circumflex over (T)}, applied to the motor shaft as a result of the dynamics not compensated within the torque offset signal49and present as a load on the motor40. The torque reference, T*, and the estimated torque, {circumflex over (T)}, are combined at the fourth summing junction121to provide the modified reference signal, which in this embodiment is a modified torque reference signal, as an input to the filter122. Because the inertial gains have been incorporated with the controller gains, the inertia block124shown inFIG.6is not required in the exemplary control module55illustrated inFIG.8. The output of the filters122is a torque reference that may be summed with the torque offset signal49and provided to the current regulator61.

According to still another embodiment of the invention, it is contemplated that the calculations for the control module55may be performed in a per unit system. A per unit system employs scaling factors to convert values in physical units to values in a percentage, or per unit value, where the expected operational range for the value is converter to a value between zero and one or between zero and one hundred percent. Depending on the per unit system, a range of zero to one hundred percent acceleration may be equivalent to a range of zero to one hundred percent torque. As a result, a per unit value of acceleration would be equivalent to a per unit value of torque. Each of the reference signal, modified reference signal, and the filtered reference signal in the per unit system would be a unitless reference signal.

In still other embodiments, the inertia of the motor may be included in a filter gain to convert the acceleration reference signal output from the third summing junction120to a torque reference signal in the filter section122. Combining the inertial gain with another controller gain or with the filter gain reduces the real time computational burden imposed on the controller50of the motor drive10.

Turning next toFIG.9, still another embodiment of the control module55is illustrated. The load observer110is provided as a cascaded control element after the third summing junction120. The load observer receives the acceleration reference, α*, as an input along with a speed feedback signal, ω. The speed feedback signal, ω, is determined by passing the position feedback signal, θ, through a derivative block111. An estimated angular velocity, {circumflex over (ω)}, is output from the load observer110and provided as the speed feedback signal to the second summing junction106. The load observer uses the speed feedback signal and the acceleration reference to determine the uncompensated dynamics of the controlled system and generate a modified acceleration reference signal, α*′. The modified acceleration reference signal, α*′, is provided to the filter block122. The inertia is accounted for by either adding an inertia block (not shown) in series with the acceleration reference signal, α*, or by incorporating the inertia into a gain value within the load observer110or within a filter122. The output of the filter block122is a torque reference signal, T*, that is added to the torque offset signal, Toff, at the fourth summing junction126.

Turning next toFIG.10, yet another embodiment of the control module55is illustrated. As indicated above, the dynamic offset signals may include multiple dynamic offset signals.FIG.10illustrates a control module55receiving the position offset signal, θoff;57; the velocity offset signal, ωoff,59; and the torque offset signal, Toff. As further indicated above, the feed forward paths derived from the position reference signal, θ*,47are optional. For the control module55illustrated inFIG.10, these feed forward paths are removed. They may be removed entirely or, alternately, the feed forward gains114,118may be set to zero to effectively remove the feed forward paths. In the embodiment shown inFIG.10, the dynamic offset values49,57, and59provide command elements to the controller55. Each dynamic offset signal includes an offset gain. The position offset signal, θoff,57includes a position offset gain, Kpoff, the velocity offset signal, ωoff,59includes a velocity offset gain, Kωoff, and the torque offset signal, Toff, includes the torque offset gain, Ktoff. Each offset gain is shown as optional. The external computing device may include a selectable gain for each dynamic offset signal49,57, and59, which may render a separate gain within the control module55unnecessary. Optionally, the control module55may simply use each dynamic offset signal49,57, and59provided by the external processing device directly as a command signal and allow the other control loops105to compensate for any error in the dynamic offset signals. In some applications, it may be desirable to adjust the dynamic offset gains and, therefore, they are illustrated as an optional gain value within the respective dynamic offset paths.

The multiple dynamic offset signals may be used in place of traditional feed forward signals. The position offset signal, θoff,57is provided as an input to the second summing junction106after the position loop controller104. The velocity offset signal, ωoff,59is provided as in input to the third summing junction120after the velocity loop controller108. Finally, the torque offset signal, Toff, is provided as an input to the fourth summing junction126subsequent to the feedback control paths. This allows the feedback control loops105to still be tuned independently of the torque offset provided from the external processing device

With reference again toFIG.1, the output of the control module55is provided as an input to the current regulator61and, in turn, to the gate driver module60. The gate driver module60converts the input to a desired output voltage having a variable amplitude and frequency. Having determined the output voltage required to produce the desired input, the gate driver module60generates the gating signals31used by pulse width modulation (PWM) or by other modulation techniques to control the switching elements in the inverter section30to produce the desired output voltage. The gating signals31subsequently enable/disable the switching elements32to provide the desired output voltage to the motor40, which, in turn, results in the desired operation of the mechanical load42coupled to the motor40.

In operation, the dynamic offset value49provides improved feed forward control of the motor40by the motor drive10. The torque offset value, Toff, provided as the dynamic offset value49provides predictive torque requirements of the controlled system as determined by an external processing device. The predictive torque requirement allows the motor drive10to output a voltage that more closely corresponds to the voltage required to follow the desired motion profile for the motor. This results in reduced following error between the commanded position and the actual position of the motor40.

According to one aspect of the invention, the external processing device determines the torque offset value, Toff, according to the rigid-body dynamic model of the controlled system. The additional control loops105then compensate for elastic dynamics present in the controlled system and not included in the rigid-body model. As discussed above, both the torque offset value49and the motion command47may be provided to the motor drive10at a first update rate. The first update rate accommodates network communication rates between the external processing device and the motor drive10. The slower first update rate additionally reduces processing burden on the external processing device generating the torque offset value, Toff, and the position reference command, θ*.

As discussed above, the motor drive10includes a first interpolator70, receiving the reference command signal47, and a second interpolator74, receiving the torque offset value, Toff, as a dynamic offset value49. The first and second interpolators70,74are configured to interpolate the input values, sampled at the first update rate, and to generate multiple values for both the torque offset value, Toff, and the position reference command,9*, between those values sampled at the first update rate. The resulting values correspond to a single value for each of the torque offset value, Toff, and the position reference command, θ*, at each sampling interval for the second update rate. For the embodiment illustrated inFIG.5, the third and fourth interpolators80,84similarly execute on the position offset signal, θoff,57and the velocity offset signal, ωoff. Interpolation, as used herein, indicates generation of additional values of a sampled signal such that the sampled signal appears to be sampled at a rate faster than the original sampling rate. Interpolation does not strictly indicate determining a value between two existing values. Rather, it is contemplated that a pattern of sampled values may be extended in time beyond the most recent sampled value for additional intervals prior to the next sampled value. For instance, a first sampled value and a second sampled value may be used to determine a rate of change between the two sampled values. If the second update rate executes ten times faster than the first update rate, the motor drive10may be configured to generate nine additional values of the sampled signal where a rate of change of the additional values remains the same for the nine additional values and the interval between each of the additional values is at the second update rate. The nine additional values plus the sampled value generate ten values of the sampled signal that are used between sampling intervals at the first sampling update rate. When the third sampled value of a signal is taken at the next interval of the first sampling update rate, the second and third sampled values may be utilized to determine a new rate of change of the sampled signals. The process continues to repeat itself generating additional values of the sampled signal for each successive sampling interval.

As discussed above, the output of each of interpolators70,74,80, and84are provided as inputs to notch filters72,76,82, and86, respectively. The notch filters may remove a component of the interpolated reference command signal or of the interpolated torque offset value, where the component corresponds to a undesired frequency of operation in the controlled system which may generate vibration or unstable operation of the motor40. Although an initial value of the notch frequency, FN, may be set for each of the notch filters,72,76,82, and86it may be necessary to adjust the value during operation to maintain the desired performance. Variable conditions including, but not limited to, temperature fluctuation, humidity variation, and component wear may cause the dynamics of the controlled system to change. In addition, resonant operating points, not observed during initial tuning of the control module55, may manifest during operation of the controlled system. The controller50, therefore, may adjust the notch frequency, FN, for each of the notch filters,72,76,82, and86to track changes in existing resonances or new resonances developing in the controlled system during operation of the motor40.

The frequency, FN, of the notch filter may initially be set during a commissioning process for the motor drive10. A known reference signal may be applied to the system to determine a resonant frequency of the controlled system. The known reference signal may be, for example, a position command signal (θ*) varying at a known rate, a velocity command signal (ω*), or a torque command signal (T*). While the known command signal is applied to the system, a signal corresponding to the response of the controlled system is measured. The signal preferably corresponds to either an internally computed signal or a measured feedback signal related to the torque and/or current output to the motor40when the known command signal is applied. According to one embodiment of the invention, a feedback signal from one of the current sensors54at the output from the inverter section30is used for the response data. According to another embodiment of the invention, a feedback signal from the position sensor44is used for the response data. A series of values of either the current or position feedback signals while the motor40is operating are sampled and stored in the memory device. A frequency response of the system may be determined from the series of stored values and an initial notch frequency, FN, is set to a resonant frequency as identified in the frequency response. According to another aspect of the invention, the resonant frequency may be very slow with respect to the reference signal. Rather than utilizing feedback signals within the drive, a technician performing the commissioning process may run a timer and count a number of oscillations in the controlled system while the timer is running. A resonant frequency may be determined as a function of the duration of the timer and the number of oscillations counted. The initial notch frequency, FN, may be set to the resonant frequency identified by the technician.

The frequency response is a measurement of a signal providing a magnitude and phase of the signal as a function of frequency. In order to determine the frequency response of a signal, a continuous function defining the signal may be determined and a Fourier transform of the continuous function is performed. The Fourier transform expresses the function as a function of frequencies over an infinite frequency interval. However, determining the Fourier transform of a continuous function is computationally intensive. In order to reduce the computation requirements for the frequency analysis of the signal to a suitable level for real-time control, the signal is sampled over a defined sample interval at a sampling frequency and the sampled data is stored in memory. A Discrete Fourier Transform (DFT) is performed on the sampled data to express the stored signal as a discrete set of complex vectors having magnitude and phase information of the sampled signal over a finite frequency interval.

According to one embodiment of the invention, the controller50monitors two signals within the controlled system. A first monitored signal corresponds to a command signal and a second monitored signal corresponds to a response signal. With reference toFIG.6, the monitored command signal may be the command signal47or the dynamic offset value49. The monitored response signal may be taken after the third summing junction120and before the output to the plant130. The controller50continually stores values of the monitored signals in the memory device45on a periodic basis while the motor drive10is operating. Preferably, a buffer is defined in the memory device45having a fixed length and data is stored on a first-in-first-out (FIFO) basis in the buffer. The controller50obtains the frequency response of the stored data for both the monitored command signal and the monitored response signal while also controlling operation of the motor40. A DFT is evaluated to determine the frequency response of the stored signals. The controller50generates a command spectrum and response spectrum, each of which identifies a frequency, or frequencies, having the greatest magnitude information based on the monitored command signal and the monitored response signal, respectively. In the frequency response, the frequency, or frequencies, with the greatest magnitude information are those most excited by the control system and the response at those frequencies may need to be reduced.

The controller50then evaluates the command spectrum and the response spectrum to determine how best to respond to the identified frequency. If, for example, the controller50is being commanded to perform a repeated operation, the frequency in the response spectrum having the greatest magnitude may be a desired operation and, therefore, correspond to a frequency in the command spectrum. Tuning the controller50to reduce the magnitude of this frequency in the response spectrum would be detuning a desirable response. If, however, the frequency identified in the response spectrum with the greatest magnitude information is not in the command spectrum, the controller50may adjust the notch frequency, FN, to correspond to the resonant frequency in order to reduce or mitigate the response.

Optionally, the controller50may be configured to determine frequency responses for the position reference signal47and/or each of the dynamic offset values49,57,59. Separate notch frequencies may be maintained for each notch filter72,76,82,86. Optionally, a separate notch frequency may be maintained for the position reference signal47while the notch frequency for each of the dynamic offset values49,57,59are changed in tandem. The notch frequency for each of the dynamic offset values49,57,59may utilize the frequency component from each frequency response having the greatest amplitude as a frequency requiring filtering. The notch frequency, FN, for the second, third, and fourth notch filters76,82,86are kept the same, such that the same frequency components are filtered from each input signal. The notch frequency, FN, for these filters are set to the undesired frequency component from each of the frequency responses having the greatest magnitude.

Turning next toFIG.11, a plot of position error with respect to time illustrates the improvement obtained in controlling the motor40via a motor drive10incorporating at least one of the dynamic offset inputs. A first plot150illustrates following error present in the motor control loops105when no dynamic offset signal is provided to the motor drive10. A second plot155illustrates following error present in the motor control loops105when an external processing device is providing a torque offset value, Toff, as the dynamic offset value49. The addition of the torque offset value, Toff, as the dynamic offset value49reduces following error to about one-third of the following error present with no dynamic offset signal49.