System and method for determining cycle disturbance in an industrial control system
By receiving commands and cyclic position signals in the motor driver, dynamically observing and storing the estimated acceleration values caused by disturbances, and using a lookup table to adaptively reduce tracking errors, the problem of disturbances in the motor driver during the operation cycle is solved, and the accuracy and stability of motor operation are improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ROCKWELL AUTOMATION TECH INC
- Filing Date
- 2023-01-19
- Publication Date
- 2026-07-31
AI Technical Summary
Existing motor drives have difficulty effectively monitoring and adaptively reducing tracking errors caused by disturbances during operation cycles, which may cause the controlled machine or process to fail to perform the expected operation and may result in a fault state.
By receiving command signals and cyclic position signals in the motor driver, the estimated acceleration values caused by disturbance forces are dynamically observed and stored. The tracking error is adaptively reduced by using a lookup table, and dynamic compensation is performed by using a cyclic observer and control module.
It effectively reduces the impact of cyclic disturbances in the controlled machine or process, improves the accuracy and stability of motor operation, and avoids failures caused by tracking errors.
Smart Images

Figure CN116500923B_ABST
Abstract
Description
Technical Field
[0001] The subject matter disclosed herein relates to adaptively decoupling cyclic disturbances in a controlled machine or process. More specifically, a controller provides a reference signal to a motor driver corresponding to an operating cycle for the controlled machine or process, and the motor driver monitors the performance of the motor controlled by the motor driver throughout the operating cycle to adaptively reduce tracking errors caused by disturbances observed during the operating cycle. Background Technology
[0002] As those skilled in the art know, motor drivers are used to control the operation of a motor. According to a common configuration, a motor driver includes a DC bus with a suitably sized DC voltage from which an AC voltage can be generated and supplied to the motor. The DC voltage can be provided to the motor driver as an input, or the motor driver can include a rectifier section that converts the AC voltage input into a DC voltage present on the DC bus. The rectifier section can be a passive rectifier with diodes that convert the AC voltage to DC voltage, or the rectifier section can be an active front end with power electronic switching devices such as metal-oxide-semiconductor field-effect transistors (MOSFETs), insulated-gate bipolar transistors (IGBTs), thyristors, or silicon controlled rectifiers (SCRs). The power electronic switching devices also include reverse-conducting power electronic devices, such as freewheeling diodes, connected in parallel across the power electronic switching devices. The reverse-conducting power electronic devices are configured to conduct during time intervals when the power electronic switching devices are not conducting. A controller in the motor driver generates switching signals to selectively close or open each switching device, thereby converting the AC voltage into the desired DC voltage on the DC bus. The inverter section is supplied between the DC bus and the motor driver output to convert the DC voltage on the DC bus back into an AC voltage with variable amplitude and frequency, thereby controlling the rotation of the motor. The inverter section includes power electronic switching devices and receives switching signals to selectively close and open each switching device to obtain the desired AC voltage.
[0003] The motor driver receives command signals instructing the desired operation of the motor. These command signals can be the desired position, speed, or torque at which the motor is to operate. The motor's position, speed, and torque are controlled by varying the amplitude and frequency of the AC voltage applied to the stator. The motor is connected to the output terminals of the motor driver, and the controller generates switching signals to rapidly close and open switching devices at a predetermined switching frequency, thereby alternately connecting or disconnecting the DC bus from the output terminals, and consequently, from the motor. The amplitude and / or frequency of the output voltage are altered by varying the duration of each switching cycle during which the motor driver's output terminals are connected to the DC voltage. The motor controller utilizes modulation techniques such as pulse width modulation (PWM) to control the switching and synthesizes waveforms with the desired amplitude and frequency to follow the command signals and achieve the desired operation.
[0004] However, operational limitations can sometimes prevent a motor driver from following a command signal. The difference between the actual trajectory achieved by the motor driver and the trajectory defined by the command signal is called tracking error. In many cases, this inability to follow a command trajectory is temporary. For example, a motor driver might receive a position command requiring acceleration beyond its capabilities. When attempting to follow the command trajectory, the motor driver can output the maximum current it can produce, and thus achieve the maximum rate of acceleration. However, this maximum rate of acceleration may not result in the motor following the position command and will lead to some tracking error. After the motor has accelerated to a speed corresponding to the rate of change of the position command, and without exceeding the maximum operating speed for the motor driver, the motor driver can continue to accelerate and operate at a speed greater than the expected operating speed for a short period to resolve the tracking error. Once the motor has eliminated the tracking error, the motor driver returns to the command trajectory and continues operating according to the command signal.
[0005] If a motor drive experiences a certain level of tracking error over an excessively long period, or if the magnitude of the tracking error becomes too large at any given time, the controlled machine or process may no longer perform the expected operation and may malfunction. When the tracking error is too large, for example, parts being manufactured, containers being filled, or labels being applied may produce parts that are out of tolerance, containers may be filled incorrectly, or labels may be misused on products.
[0006] Therefore, it is desirable to minimize the tracking error in the controlled machine or process.
[0007] When generating command trajectories, the known operating conditions and capabilities of the controlled machine or process are considered to generate feasible command trajectories. However, external influences acting on the controlled machine or process can introduce some tracking errors. Some such external influences may include vibrations in the gearbox or drive belt, resonant operating conditions, or physical impacts between components in the controlled machine or process.
[0008] The ability of a motor drive to follow a trajectory depends not only on the configuration of the motor drive itself but also on the configuration of the load driven by the motor. In some applications, the load may be coupled via a rigid connection and has a fixed inertia. Such a load can result in a predictable response and can be factored into the motion profile generated by an industrial controller. In other applications, the load may be coupled via flexible coupling, which may introduce resonance and / or recoil into the controlled system. In still other applications, the load may change during operation, and may even change in an unpredictable way. Such variations in the dynamics of the controlled system may cause the motor drive to not always follow a motion profile. The motor drive will respond according to its maximum response limits, but overshoot, oscillations, or other undesirable motor performance may occur.
[0009] Therefore, it is desirable to provide a system and method for monitoring the operation of a motor during operation and adaptively tracking disturbances experienced by the motor.
[0010] It is also desirable to provide systems and methods for decoupling disturbances identified as a result of adaptive tracking. Summary of the Invention
[0011] According to one embodiment of the present invention, a method for dynamically observing cyclic disturbances in a controlled machine or process includes: receiving a command signal and a cyclic position signal at a motor driver. The command signal corresponds to a desired operation of a motor operably controlled by the motor driver, and the cyclic position signal corresponds to a position within an operating cycle of the controlled machine or process, wherein the operating cycle does not correspond to one rotation of the motor. An estimated acceleration value caused by the disturbance force experienced by the motor during the operating cycle is determined, and the estimated acceleration value is stored in the memory of the motor driver at multiple sample instances within the operating cycle.
[0012] According to another embodiment of the invention, a motor driver is configured to dynamically observe cyclic disturbances in a controlled machine or process. The motor driver includes: at least one input configured to receive a command signal and a cyclic position signal; a memory configured to store a lookup table; and a processor. The command signal corresponds to a desired operation of a motor operatively connected to the motor driver, and the cyclic position signal corresponds to a position within an operating cycle of the controlled machine or process. The processor is configured to determine an estimated acceleration value caused by the disturbance force experienced by the motor during the operating cycle, and to store the estimated acceleration value in the lookup table at multiple sample instances within the operating cycle.
[0013] According to another embodiment of the present invention, a method for dynamically compensating for cyclic disturbances in a controlled machine or process includes: receiving a command signal and a cyclic position signal at a motor driver. The command signal corresponds to a desired operation of a motor operably controlled by the motor driver, and the cyclic position signal corresponds to a position within an operating cycle of the controlled machine or process, wherein the operating cycle does not correspond to one rotation of the motor. A disturbance value is read from a lookup table stored in the memory of the motor driver, wherein the disturbance value corresponds to the cyclic position signal. In response to receiving the command signal, a control module is executed within the motor driver to obtain the desired operation of the motor, and the disturbance value is provided to the control module to reduce tracking errors in the control module.
[0014] These and other advantages and features of the invention will become apparent to those skilled in the art from the detailed description and accompanying drawings. However, it should be understood that while the detailed description and accompanying drawings indicate preferred embodiments of the invention, they are given by way of illustration and not by way of limitation. Many changes and modifications can be made within the scope of the invention without departing from its spirit, and the invention includes all such modifications. Attached Figure Description
[0015] Various exemplary embodiments of the subject matter disclosed herein are shown in the accompanying drawings, wherein the same reference numerals denote the same parts throughout the drawings, and in the drawings:
[0016] Figure 1 This is an exemplary industrial control system incorporating embodiments of the present invention;
[0017] Figure 2 yes Figure 1 A partial block diagram representation of an exemplary industrial control system;
[0018] Figure 3 This incorporates one embodiment of the present invention. Figure 1 A block diagram representation of a motor driver;
[0019] Figure 4 It comes from Figure 3 A block diagram showing the rectifier section of the motor driver;
[0020] Figure 5 It comes from Figure 3 A block diagram showing the inverter section and gate driver module of the motor driver;
[0021] Figure 6 It is used for Figure 1 A block diagram representation of the controller for the motor driver;
[0022] Figure 7 It is used for Figure 6 A block diagram illustrating one implementation of the controller's control module;
[0023] Figure 8 It comes from Figure 7 A block diagram representation of the filter section of the control module;
[0024] Figure 9 Is Figure 3 A block diagram illustrating one implementation of a cyclic observer in a motor driver;
[0025] Figure 10 This is a block diagram representation of one implementation of a loop observer, partially implemented within the motor driver and partially within an external controller; and
[0026] Figure 11 It is a tabular representation of the data stored in the lookup table used according to an embodiment of the present invention.
[0027] In describing the various embodiments of the invention illustrated in the accompanying drawings, specific terminology will be used for clarity. However, this does not mean that the invention is limited to the specific terminology chosen so far, and it should be understood that each specific term includes all technical equivalents that operate in a similar manner to achieve a similar purpose. For example, the words “connection,” “attachment,” or similar terms are frequently used. They are not limited to direct connections but include connections via other elements, where those skilled in the art consider such connections equivalent. Detailed Implementation
[0028] The various features and advantageous details of the subject matter disclosed herein are explained more fully with reference to the non-limiting embodiments described in detail below.
[0029] This document discloses a system and method for monitoring motor operation during operation and adaptively tracking disturbances experienced by the motor. A motor driver receives command signals and cyclic position signals. During the initial run of an operating cycle, the motor driver monitors the motor operation and generates estimated disturbances throughout the operating cycle. The estimated disturbance values are stored in a lookup table at periodic intervals within the operating cycle. During subsequent runs of the operating cycle, the motor driver uses the stored disturbance values from previous runs as feedforward values to the control module. The motor driver again monitors the motor operation and generates new estimated disturbance values in each subsequent operating cycle. The estimated disturbance values are updated within the lookup table based on the new estimated disturbance values and the previously stored values. The estimated disturbance values throughout an operating cycle are continuously calculated in subsequent cycles to reduce the impact of periodic disturbances observed by the motor driver on the controlled machine or process within the operating cycle. The stored disturbance values adaptively track cyclic disturbances in the controlled machine or process and reduce the impact of these cyclic disturbances on tracking errors in the controlled machine or process.
[0030] First refer to Figure 1 The industrial control system 10 may include an industrial controller 12 providing multiple modules 18 and a bus 16 providing communication between the multiple modules 18. Modules 18 may be mounted within a housing or on mounting brackets such as DIN rails. The bus 16 is typically coupled between modules 18 via a backplane using suitable connectors. Modules may include, for example, a power supply module 20, a processor module 22, one or more I / O modules 24, a motion control module 27, and a network module 26. The network module 26, the processor module 22, or a combination thereof may be used in an industrial control network 28 between the industrial controller 12 and other devices connected to the industrial controller. or The industrial controller 12 can be, for example, a programmable logic controller (PLC), a programmable automation controller (PAC), etc. It is anticipated that the industrial controller 12 may still include other modules, such as axis control modules, or additional racks connected via the industrial control network 28. Optionally, the industrial controller 12 may have a fixed configuration, for example, having a predetermined number of network and I / O connections.
[0031] Industrial control network 28 can connect industrial controller 12 to remote I / O modules (not shown) and one or more remote motor drivers 30. These remote motor drivers 30 can communicate with corresponding motors 32 and position sensors 34 to provide controlled motion of the motors 32. The controlled motion of the motors, in turn, controls the associated industrial machine or process 36. While a single motor driver and motor may be referred to as a motion axis, a motion axis may also require multiple motors controlled by a single motor driver, or multiple motor drivers and multiple motors operating in series. Network 28 can also connect to other devices 31, 33 in the controlled machine or process 36, including, for example, actuators 31 controlled by output signals from industrial controller 12, or sensors 33 providing input signals to the industrial controller.
[0032] The configuration computer 40 can communicate with the industrial controller 12 and / or motor driver 30 via the industrial control network 28 or via a dedicated communication channel 42, for example, by connecting to the processor module 22. The configuration computer 40 can be a standard desktop or laptop computer and includes a keyboard 44, a display screen 46, etc., to allow a human operator to input and display data and operate configuration programs.
[0033] Next, refer to Figure 2 The processor module 22 includes a processor 51 that communicates with the memory device 50 to execute: an operating system program 52, which generally controls the operation of the processor module 22; and a control program 54 that describes the desired control of the industrial machine or process 36, wherein each control program 54 is generally unique for a given application of the industrial control system 10. The memory 50 may also include data tables, such as I / O tables and service routines used by the control programs 54. Figure 2 (Not shown in the image).
[0034] Processor module 22 communicates with network module 26 or any other module 18 in industrial controller 12 via bus 16, which is shown as a backplane 25 extending between backplane connectors 23. Network module 26 includes control circuitry 55, which may include a microprocessor and programs stored in memory and / or a dedicated control circuitry system such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA). Control circuitry 55 can communicate with network interface circuitry 56 within network module 26, which provides execution of low-level electrical protocols on industrial control network 28. Similar network interface circuitry 56 may be provided on other devices, such as motor driver 30, to provide communication between devices.
[0035] According to the illustrated embodiment, motion control module 27 determines a motion profile to be followed by one or more motors 32. The motion profile may include a position reference signal (θ*), a velocity reference signal (ω*), an acceleration reference signal (α*), or a combination thereof to define the desired motion profile. Motion control module 27 includes a processor 38 communicating with memory device 39 to execute one or more motion profile generators. It is anticipated that motion control module 27 may execute a separate motion profile generator for each motion axis. One or more reference signals are transmitted from motion control module 27 via backplane 25 to network module 26, and then via industrial control network 28 to each motor driver. In some embodiments of the invention, processor module 22 is anticipated to be configured to generate a motion profile for each axis, and further generate a position reference signal (θ*), a velocity reference signal (ω*), an acceleration reference signal (α*), or a combination thereof.
[0036] In addition to the motion profile, the motion control module 27 or processor module 22 is also configured to generate a cyclic position reference signal 99. The cyclic position reference signal 99 indicates which point in the cyclic process the controlled machine or process is operating. According to one aspect of the invention, the cyclic position reference signal 99 can be a value between zero and one or a value between zero and 100%. As the controlled machine or process performs a cycle, the cyclic position reference signal 99 increments between zero and one. When the cycle is complete, the cyclic position reference signal 99 returns to zero. This example is not intended to be limiting. Depending on the application requirements, the cyclic position reference signal 99 can be limited to any suitable range of values, wherein each value provides an indication of a repetition point within the cycle. According to the illustrated embodiment, the cyclic position reference signal 99 is transmitted to the motor driver 30 via an industrial control network 28. Alternatively, the cyclic position reference signal 99 can be transmitted to the motor driver via a dedicated output signal or via a separate communication bus.
[0037] As described above, the configuration computer 40 may be a standard desktop computer with a processor 41 communicating with a memory 43, which stores an operating system program 45, as well as various data structures 47 and programs 49. Such a program 49 can be used to configure the industrial control system 10. The configuration computer 40 may also provide interface circuitry 48, which communicates, for example, between the processor 41 and an industrial network 28 or a separate communication channel 42 to the processor module 22, and with a screen 46 and a keyboard 44 according to methods understood in the art.
[0038] Next, turn to Figure 3According to one embodiment of the present invention, the motor driver 30 includes a power section 61 and a control section 63. The power section 61 includes components that typically handle, for example, 200 to 575 VAC or 200 to 800 VDC. The power section 61 receives power in one form and uses power switching devices to controllably regulate the power output to the motor 32 to achieve desired operation of the motor 32. The control section 63 includes components that typically handle, for example, 110 VAC or 3.3 to 50 VDC. The control section 63 includes processing devices, feedback circuitry, and supporting logic circuitry to receive feedback signals and generate control signals within the motor driver 30.
[0039] According to the illustrated embodiment, the motor driver 30 is configured to receive a three-phase AC voltage at its input terminal 15 and then provide it to the rectifier section 70 of the motor driver 30. The rectifier section 70 may include any electronic device suitable for passive or active rectification as understood in the art. See also... Figure 4 The rectifier section 70 shown includes a set of diodes 72 forming a diode bridge that rectifies the three-phase AC voltage into a DC voltage on the DC bus 75. Optionally, the rectifier section 70 may include other solid-state devices, including but not limited to thyristors, silicon controlled rectifiers (SCRs), or transistors, to convert the input power 15 into a DC voltage for the DC bus 75. The DC voltage exists between the positive rail 77 and the negative rail 79 of the DC bus 75. A DC bus capacitor 74 is connected between the positive rail 77 and the negative rail 79 to reduce the magnitude of the ripple voltage generated during the conversion of the AC voltage to the DC voltage. It should be understood that the DC bus capacitor 74 may be a single capacitor or multiple capacitors connected in parallel, series, or a combination thereof. The magnitude of the DC voltage between the negative rail 79 and the positive rail 77 is typically equal to the peak value of the AC input voltage.
[0040] DC bus 75 is connected in series between rectifier section 70 and inverter section 80. See also... Figure 5The inverter section 80 includes switching elements, such as transistors, thyristors, or SCRs known in the art. The illustrated inverter section 80 includes insulated-gate bipolar transistors (IGBTs) 82 and freewheeling diodes 84 connected in pairs between the positive rail 77 and each phase of the output voltage, and between the negative rail 79 and each phase of the output voltage. Each of the IGBTs 82 receives a strobe signal 81 to selectively enable the transistor 82 and convert the DC voltage from the DC bus 75 into a controlled three-phase output voltage for the motor 32. When enabled, each transistor 82 connects the corresponding rail 77, 79 of the DC bus 75 to an electrical conductor 83 connected between the transistor 82 and the output terminal 35. The electrical conductor 83 is selected according to application requirements (e.g., the rating of the motor driver 30) and may be, for example, a conductive surface on a circuit board on which the transistors 82 are mounted, or a busbar connected to terminals of a power module containing the transistors 82. The output terminals 35 of the motor driver 30 can be connected to the motor 32 via cables, the cables including electrical conductors connected to each output terminal 35.
[0041] One or more modules are used to control the operation of the motor driver 30. According to... Figure 3 In the embodiments shown, controller 100 includes modules and manages the execution of the modules. The embodiments shown are not intended to be limiting, and it should be 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 controller 100 without departing from the scope of the invention. Modules may be stored programs that execute on one or more processors, logic circuits, or combinations thereof. Controller 100 may be implemented in, for example, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other such customizable devices. Motor driver 30 also includes a memory device 95 that communicates with controller 100. Memory device 95 may include transient memory, non-transitory memory, permanent memory, or non-permanent memory, or combinations thereof. Memory device 95 is configured to store data and programs, including a series of instructions executable by controller 100. Memory device 95 may be a single device, multiple devices, or incorporated, for example, as part of another device such as an application-specific integrated circuit (ASIC). Controller 100 communicates with memory 95 to read instructions and data required to control the operation of motor driver 30.
[0042] The controller 100 receives a reference signal 97 that identifies the desired operation of the motor 32 connected to the motor driver 30. The reference signal 97 may be, for example, a position reference (θ*), a speed reference (ω*), a torque reference (T*), or a combination thereof. Although Figure 3All three reference signals are shown, but typically one of the three input signals is selected and provided to the motor driver 30. For high-performance servo control systems, reference signal 97 is typically a position reference signal (θ*). Additionally, controller 100 receives a cyclic position reference signal 99. The cyclic position reference signal 99 provides an indication of the time, position, duration, etc., at which the controlled machine is currently repeating an operation within a cycle. Although shown as separate input signals, reference signal 97 and cyclic position signal 99 can be transmitted as a single data packet via industrial network 28. Depending on application requirements, reference signal 97 and cyclic position signal 99 can be transmitted at the same or different period intervals.
[0043] The cyclic position reference signal 99 can be transmitted at a lower rate than the motion profile reference signal 97. Furthermore, the cyclic position reference signal can be generated at discrete intervals, and the motor driver 30 can be configured to interpolate between new values of the cyclic position reference signal. For example, a cycle might take five seconds to complete. In many applications, the cycle length is fixed and repeatable. Therefore, the cyclic position reference signal may not need to be updated frequently. The cyclic position reference signal can be updated, and new values of the cyclic position reference signal can be transmitted at a rate of ten times per second. However, the motor driver can execute its control routine in the range of one thousand to ten thousand times per second. The motor driver receives the updated position reference signal 99 at intervals of ten per second and can interpolate one hundred to one thousand divisions of the cyclic position reference signal between each new value received according to the frequency of executing the control routine. See Table 154 (also see below) for more details. Figure 11 This can include the increment of the loop position corresponding to the frequency of executing the control routine.
[0044] The controller 100 receives a feedback signal indicative of the current operation of the motor driver 30. According to the illustrated embodiment, the controller 100 includes a feedback module 65, which may include, but is not limited to, an analog-to-digital (A / D) converter, a buffer, an amplifier, and any other components necessary to convert the feedback signal of a first format into a signal of a second format suitable for use by the controller 100, as understood in the art. The motor driver 30 may include a voltage sensor 71 and / or a current sensor 73 on a DC bus 75, which generates a feedback signal corresponding to the magnitude of the voltage and / or current present on the DC bus 75. The motor driver 30 may also include one or more voltage sensors 85 and / or current sensors 87 on the output phase of the inverter section 80, which generate a feedback signal corresponding to the magnitude of the voltage and / or current present on the electrical conductor 83 between the inverter section 80 and the output 85 of the motor driver. A position feedback device 34 may be connected to the motor 32 and is operable to generate a position feedback signal θ corresponding to the angular position of the motor 32. The motor driver 30 includes an input configured to receive a position feedback signal from the position feedback device 34. Depending on the configuration of the position feedback device 34, the input can be configured to receive a sinusoidal feedback signal, a square wave, a digital pulse sequence, a serial communication data packet, or a combination thereof.
[0045] The controller 100 uses feedback signals and reference signals 97 and 99 to control the operation of the inverter section 80 to generate an output voltage with the desired magnitude and frequency for the motor 32. The feedback signals are processed by the feedback module 65 and converted into signals for the control module 105 as needed.
[0046] Also refer to Figure 6 Control module 105 includes control loop 107 and filter 122, as will be discussed in more detail below, for receiving command signal 97 and feedback signal, such as position feedback signal, and performing actions in response to command signal 97 and feedback signal to generate desired reference signal. Control module 105 also includes load observer 110 to generate estimated responses to one or more operating characteristics of motor 32. The estimated response can be added to the reference signal from control loop 107 to generate a modified reference signal. The estimated response can also be provided to loop observer 150. Loop observer 150 receives cyclic position reference signal 99 and estimated acceleration 152 from load observer 110 as inputs and generates cyclic disturbance acceleration feedforward signal 155 as output. As will be discussed in more detail below, loop observer 150 provides control loop 107 with an estimate of the cyclic disturbance experienced by the controlled machine or process. One or more filters 122 may be present in control module 105 to reduce or eliminate unwanted components of the modified reference signal. The output of filter block 122 is the filtered reference signal. For example... Figure 6As shown, the optional inertia block 124 may be included in a row with the filter 122. As will be discussed in more detail below, the inertia gain may be included in the inertia block 124, or alternatively, may be incorporated into the gain within the control loop 107. A filtered reference signal is provided to the inertia block, which outputs a torque reference signal. The torque reference signal is then output to the current regulator 67. As understood in the art, the current regulator 67 can independently regulate the torque-generating component and the flux-generating component of the current. The torque reference signal is provided as input to a regulator that controls the torque-generating component of the current. The current regulator 67 outputs a voltage signal to the gate driver module 90 using the torque reference signal and the current feedback signal. The gate driver module 90 generates a gating signal 81, for example, via pulse width modulation (PWM) or other modulation techniques. The gating signal 81 then enables / disables the transistor 82 to provide the desired output voltage to the motor 32, which in turn causes the desired operation of the mechanical load 37 coupled to the motor 32. As understood in the art, the current regulator 67 is configured to operate at a bandwidth sufficiently large than that of the control module 105, such that the current regulator 67 can be approximated as the unity gain of the control module 105.
[0047] Next, refer to Figure 7 A control module 105 according to an embodiment of the present invention is shown. The control module 105 receives a position command signal (θ*) 97 as input. At a first summing point 102, the position command signal (θ*) 97 is compared with a position feedback signal (θ). A position error signal is output from the first summing point 102 and input to a position loop controller 104. According to the illustrated embodiment, the position loop controller 104 includes a proportional and integral (PI) controller. Optionally, the position loop controller 104 may be simply a proportional (P) controller or may also include a derivative (D) controller. Each of the proportional (P), integral (I), and / or derivative (D) controllers of the position loop controller 104 includes a controller gain value. The controller gain value is generally referred to as the proportional gain (Kpp), integral gain (Kpi), and derivative gain (Kpd). The output of the position loop controller 104 is a speed reference signal (ω*).
[0048] At the second summation point 106, the velocity reference signal (ω*) is compared with the velocity feedback signal (ω). The velocity feedback signal (ω) is generated by the load observer 110. Optionally, the velocity feedback signal (ω) can be determined by differentiating the position feedback signal (θ). The velocity error signal is output from the second summation point 106 and input to the velocity loop controller 108. According to the illustrated embodiment, the velocity loop controller 108 includes a proportional and integral (PI) controller. Optionally, the velocity loop controller 108 may be just a proportional (P) controller or may also include a derivative (D) controller. Each of the proportional (P), integral (I), and / or derivative (D) controllers of the velocity loop controller 108 includes a controller gain value. The controller gain value is commonly referred to as the proportional gain (Kvp), integral gain (Kvi), and derivative gain (Kvd). The output of the velocity loop controller 108 is the acceleration reference signal (α*).
[0049] The control module 105 may also include a feedforward branch. According to the illustrated embodiment, the control module 105 includes a feedforward branch for both the velocity element and the acceleration element. At the summation point 106, the velocity feedforward signal (ω) is... FF ) is added to the velocity reference signal and velocity feedback signal, and at the third summation point 120, the acceleration feedforward signal (α) is added. FF Add to the acceleration reference signal. The output of the third summation point 120 is the modified acceleration reference signal (α*').
[0050] The controller also includes a load observer 110. The output of the third summation point 120 is shown as being provided to the load observer 110. According to one embodiment of the controller 100, the load observer 110 determines the estimated acceleration disturbance based on the modified acceleration reference signal (α*') and the position feedback signal (θ). 152. The estimated acceleration disturbance can be added to the modified acceleration reference signal (α*') and provided to the fourth summation point 121. Alternatively, the modified acceleration reference signal (α*') can be used internally by the load observer 110, and the modified acceleration reference signal (α*') can be provided directly to the fourth summation point 121 without modification of the load observer 110.
[0051] The output of the fourth summation point 121 is provided as input to the filter section 122. The filter section 122 may include one or more filters to remove unwanted components from the control system. See also... Figure 8The illustrated filter section 122 includes: a low-pass filter 132 to attenuate unwanted high-frequency components; and a notch filter 134 to attenuate specific frequency components that have an undesirable effect on the controlled mechanical load 37. Additional filters are also contemplated to be included in the filter section 122 without departing from the scope of the invention.
[0052] according to Figure 7 In the embodiment shown, the output of filter section 122 is provided to gain block 125. Gain block 125 includes... Figure 6 The inertial scaling block 124 shown also includes the torque constant K. T Torque constant K T The reciprocal of the value is used to convert the torque reference into a current reference, which is then provided to the current regulator 67, such as... Figure 6 As shown. The inertia scaling block 124 applies a gain corresponding to the inertia of the controlled system. The gain of the inertia scaling block 124 is often simply referred to as inertia J. The inertia gain may include the motor inertia value J. m The load inertia value J1 or a combination thereof. Although the motor inertia value may be known or provided by the motor manufacturer, it may be difficult to accurately identify the load inertia value. The load observer 110 can compensate for inertia gains that do not include load inertia or do not accurately represent load inertia.
[0053] As described above, the output of the control module 105 is provided to the current regulator 67 and the gate driver module 90 to output the desired voltage to the motor 32. Figure 7 The device 130 shown represents components of the motor 32 and motor driver 30 outside the control module 105, and may include a current regulator 67, a gate module 60, an inverter section 80 of the motor driver 30, the motor 32, a mechanical load 37, and a position feedback device 34. The position feedback device 34 generates a position feedback signal (θ) used by the control module 105.
[0054] Although the reference signal from the third summation point 120 is in Figure 7 The value is shown as the acceleration reference a*, but in other embodiments, the output of the third summation point can be the torque reference signal T*. The inertia value from gain block 125 can be incorporated into the controller gain. As understood in the art, angular acceleration is proportional to torque, and more specifically, torque equals inertia multiplied by angular acceleration. Therefore, incorporating the inertia gain into the controller gain generates a torque reference signal, not an acceleration reference signal. The acceleration feedforward and the estimated acceleration from load observer 110 can similarly be converted into a torque value by multiplying by the inertia value. The feedforward signal will be the torque feedforward T*. FF The estimated response generated by the load observer 110 is the estimated torque applied to the motor shaft due to the load on the motor 32. Because the inertia gain has been combined with the controller gain, Figure 7 The gain block 125 shown will simply include the torque constant K. T The reciprocal of the value.
[0055] According to another embodiment of the invention, calculations for control module 105 are intended to be performed per unit system. The per unit system uses a scaling factor to convert the value of a physical unit into a percentage value or a per-unit value, wherein the intended operating range for that value is converted into a value between zero and one or between zero and 100%. Depending on the per unit system, an acceleration range of zero to 100% can correspond to a torque range of zero to 100%. Therefore, a per-unit acceleration value will correspond to a per-unit torque value. Each reference signal and filtered reference signal in the per-unit system will be a unitless reference signal.
[0056] In operation, the present invention provides a system for monitoring and adaptively decoupling cyclic disturbances in a controlled machine or process 36. Some applications are performed in a cyclic manner. For example, products may travel along a continuous drive component, such as a conveyor belt, or on a pallet, which in turn is driven along a processing path. Auxiliary equipment adjacent to the processing path may be configured to stamp or bend products, apply labels to products, print text or graphics on products, or combinations thereof. The auxiliary equipment may include a drive motor 32 configured to move the device in a first direction to engage the product and then move the device in the opposite direction to disengage the product. The auxiliary equipment operates in a cyclic manner for each product passing through the device.
[0057] The operating cycles for auxiliary equipment typically do not correspond to the rotation of the drive motor 32. Movement toward and away from the product may require only partial rotation of the motor, or it may require multiple rotations of the motor. Furthermore, each operating cycle includes movement in one direction and movement in the opposite direction, with a potential stop at either end of the stroke. Therefore, there is no direct correspondence between the operating cycles for auxiliary equipment and the position feedback signals generated by the encoder 34 mounted to the motor 32.
[0058] During each operating cycle, motor 32 may experience various disturbances. For example, motor 32 may experience initial disturbances when overcoming static friction or due to winding in the gearbox at the start of the cycle. Motor 32 experiences sudden changes in torque when auxiliary equipment impacts the product for stamping or folding operations or when labels are adhered to the product. During reversal of direction, motor 32 may experience some instability or resonance in the mechanical coupling near or transitioning through zero speed. All these disturbances may change slightly over time, for example, due to changes in the product's position as it passes through the equipment or changes in surrounding operating conditions. However, within each cycle, the disturbances are generally repetitive and have similar amplitudes for each operating cycle. When disturbances occur, they may additionally introduce some tracking error within motor drive 30.
[0059] Although the controller 100 is configured to return the tracking error to zero, the loop observer 150 monitors the performance of the motor 32 and the motor driver 30 in each operating cycle to identify disturbances experienced in an operating cycle. See again... Figure 7 The load observer 110 shown determines the estimated acceleration disturbance. 152. Estimate acceleration 152 is a function of the external disturbance force experienced by the motor. This estimated acceleration Signal 152 and cyclic position signal 99 are provided to cyclic observer 150. Cyclic observer 150 will receive the estimated acceleration over the entire operating cycle. Signal 152 is stored in a lookup table and is provided as a feedforward signal to controller 100 to minimize tracking errors caused by the cyclic operation of the controlled machine or process 36.
[0060] During the initial run of an operating cycle, the loop observer 150 generates a lookup table (LUT) 154 corresponding to the estimated accelerations observed throughout the entire operating cycle (see also...). Figure 9 and Figure 11 The loop position signal 99 is generated at multiple sample instances throughout an operating cycle. According to the illustrated implementation, the cycle is divided into one thousand sample instances. The loop position signal 99 is a value between zero and one, where zero corresponds to the start of the cycle and one corresponds to the end of the cycle. Each sample instance increments by one-thousandth (0.001). The LUT 154 includes an identifier for the in-cycle increment 156 and a perturbation value 158 determined by the load observer 110 at that sample instance. The LUT 154 is filled for each sample instance within an operating cycle. Figure 11The LUT 154 shown is exemplary and not intended to be limiting. The lookup table may simply store perturbation values 158 with a known number of sample instances and have a fixed length. Similarly, LUT 154 may include any number of sample instances. The number of sample instances can vary depending on the length of time an operating cycle occurs or the desired resolution of the observed perturbations.
[0061] In some applications, control module 105 may execute at a frequency higher than the resolution of the lookup table. Therefore, the position within a loop changes at a greater rate, but with smaller increments, during each loop through control module 105 compared to the data stored in lookup table 154. Control module 105 may utilize a perturbation value 158 in lookup table 154 at the increment 156 that best approximates the current position determined in control module 105 within the loop. Alternatively, control module 105 may be configured to interpolate between two adjacent values 158 within lookup table 154.
[0062] After the initial operating cycle, the loop observer 150 generates an acceleration feedforward value used in the control module 105. This acceleration feedforward value is shown as the loop acceleration feedforward (α) output from the loop observer 150. cyc Signal 155. After the initial operating cycle, the cyclic acceleration feedforward (α) cyc Signal 155 corresponds to the estimated acceleration generated during the initial run of an operating cycle. The value of signal 152. During subsequent runs of the operation loop, LUT 154 is continuously updated by the cyclic perturbation filter routine.
[0063] Reference Figure 9 The cyclic disturbance filter routine 170 is being executed within the cyclic observer 150 of the motor driver 30. At the summation point 160, the cyclic acceleration (α) previously stored in LUT 154 is fed forward. cyc Signal 155 is added to the new estimated acceleration determined by load observer 110. 152. This sum, along with the cyclic position signal 99, is provided as input to the cyclic perturbation filter routine 170. The cyclic perturbation filter routine 170 can take many different forms. Two exemplary cyclic perturbation filter routines 170 are given below in Equations 1 and 2.
[0064] A simple averaging filter can take the form of Equation 1. If direct averaging is desired, the weighting value w can be set to 1. With the weighting value set to 1, the previously stored value and the new estimated acceleration are added together and divided by 2. Alternatively, the filtered value can be given a larger weighting value, so that historical data has a greater weight and the new estimated acceleration value (which may include temporary perturbations that are significantly different from historical cyclic perturbations) does not disproportionately affect the cyclic perturbation value.
[0065] D(n)=[D(n-1)·w+A(n)] / (w+1) (1)
[0066] in:
[0067] D(n) = the new estimated acceleration value for the lookup table;
[0068] D(n-1) = Previous estimated acceleration values from the lookup table;
[0069] A(n) = the new estimated acceleration from the load observer; and
[0070] w = weighted value.
[0071] Referring to Equation 1 above, the weighting value is preferably set to a value greater than 1. In this way, historical data has a greater influence on the new value to be stored in the lookup table compared to a single estimated acceleration value received from observer 110. As the value of the weighting value increases, the bandwidth of the filter decreases, and the cyclic perturbation filter routine 170 will take an increased number of runs throughout the loop to filter out cyclic perturbations more completely. However, once the cyclic perturbation filter routine 170 has accurately identified the cyclic perturbation, the increased weighting value will make the filter less susceptible to one-off perturbations detected by load observer 110 that are not part of the cyclic operation.
[0072] Equation 2 shows a more complex cyclic perturbation filter 170. The cyclic acceleration feedforward (α) of the LUT 154 is also shown. cyc Each new value of signal 155 is determined as a function of the previous filtered acceleration value at both the current position within the operating cycle and the adjacent position within the operating cycle. The principle behind the cyclic perturbation filter 170 in Equation 2 is that the estimated acceleration value should not change significantly with small changes in the operating cycle. Therefore, if the load observer 110 determines the previous cyclic acceleration feedforward (α)... cyc A new estimate of acceleration perturbation with a significant change in the signal 155 value. Signal 152, then a single outlier will not significantly affect the cyclic acceleration feedforward (α) stored in LUT 154. cycSignal 155. Equation 2 provides a first weighting value w1 for the previous value stored in LUT 154; for the estimated acceleration disturbance received from load observer 110. The newly determined value of signal 152 provides a second weighting value w2; and the previous estimate of the cyclic perturbation at sample instances immediately before and after the current sample instance provides a third weighting value w3.
[0073]
[0074] in:
[0075] D(n, t) = the new estimated acceleration value of the lookup table at the current sample instance in the loop;
[0076] D(n-1, t) = the previous estimated acceleration value from the lookup table at the current sample instance in the loop;
[0077] D(n-1, t-1) = the previous estimated acceleration value from the lookup table at the previous sample instance in the loop;
[0078] D(n-1, t+1) = the previous estimated acceleration value from the lookup table at the next sample instance in the loop;
[0079] A(n) = the new estimated acceleration from the load observer;
[0080] w1 = First weighted value;
[0081] w2 = the second weighted value; and
[0082] w3 = the third weighted value.
[0083] Referring to Equation 2 above, the first weighting value w1 is similar to the weighting value w in Equation 1. The first weighting value w1 is preferably set to a value greater than 1. In this way, historical data has a greater influence on the new value to be stored in the lookup table compared to a single estimated acceleration value received from observer 110. The second weighting value w2 is determined based on the distance between the actual position within the loop and the discrete position stored in lookup table 154. As previously discussed, control module 105 can be executed at a frequency higher than the resolution of the lookup table. When the actual loop position corresponds to the loop increment 156 stored in lookup table 154, the second weighting value w2 is 1. As the actual loop position deviates from the loop increment 156, the second weighting value w2 decreases. If the actual loop position is directly between two increments of the lookup table, the second weighting value w2 is half. Therefore, the second weighting value w2 will be a value between half and one (0.5-1). The third weighting value w3 can be set to a value between zero and half (0.0-0.5), where the third weighting value is disabled when set to zero. The third weighting value w3 allows the estimated perturbation determined for neighboring sample instances to have some weight, but less than the weight of the previous and current values of the perturbation value at the current sample instance.
[0084] Next, refer to Figure 10 The cyclic perturbation filter routine 270 can also be executed on the external controller 250. The external controller 250 is shown in general. However, regarding... Figure 1 The industrial control system 10 presented herein may include an external controller 250, which may be an industrial controller 12 or an external computing device, for example... Figure 1 The computer 40 is configured as shown. The motor driver 30 will have an estimated acceleration determined by the load observer 110 at each update interval. Signal 152 is transmitted back to external controller 250. External controller 250 is able to process data at a slower update rate and periodically transmits data for LUT 154 back to motor driver 30.
[0085] If the external controller 250 is the industrial controller 12, the cyclic position value 99 will typically be generated by the industrial controller 12 and is available within the industrial controller 12. Estimated acceleration disturbances are received from the motor driver 30 via the industrial control network 28. Signal 152. The external controller 250 maintains a copy of the lookup table, shown as LUT'254. Similar to the cyclic disturbance filter routine 170 described above and executed on the motor driver 30, the cyclic disturbance filter routine 270 executed on the external controller 250 is used to update the estimated disturbance observed by the motor within one operating cycle. At the summation point 260, the cyclic acceleration (α) previously stored in LUT'254 is fed forward. cycSignal 255 is added to the new estimated acceleration disturbance determined by load observer 110. 152. This sum, along with the cyclic position signal 99, is provided as input to the cyclic perturbation filter routine 270. The cyclic perturbation filter routine 270 can similarly take many different forms, of which Equations 1 and 2 above are two exemplary forms.
[0086] A copy of the lookup table can be updated more frequently than the LUT 154 on the motor driver. For example, the external controller 250 can execute the cyclic perturbation filter routine 270 for each sample instance in an operating cycle, thereby determining a new value for each sample instance in the LUT 254. After determining the new value within the complete cycle, the external controller 250 can transfer a copy of the entire LUT 254 to the motor driver 30. The motor driver then updates its own LUT 154 with the copy of the lookup table received from the external controller. In some applications, updating the LUT 154 in the motor driver every five or ten operating cycles may be sufficient.
[0087] According to another aspect of the invention, the external controller 250 can be configured to monitor changes in the estimated disturbance value over time. A set of initial values for LUT 254 can be stored as a reference table. LUT 254 can be continuously updated. After each operating cycle, the external controller 250 can compare the new value in LUT 254 with the value in the reference table. If the difference between any new value in LUT 254 and the value at the corresponding sample instance in the reference table exceeds a predefined value, the external controller transmits LUT 254 to the motor driver 30 to update LUT 154 used on the motor driver. In this way, the processing overhead on the motor driver 30 can be reduced, and the communication bandwidth on the industrial network 28 is also kept to a minimum by transmitting new values for LUT 154 only when the estimated disturbance change is required.
[0088] According to another aspect of the invention, the external controller 250 can be configured to provide notification of estimated disturbance values changing over time or among similar stations. A first threshold can be set by which the LUT'254 is transmitted from the external controller 250 to the motor driver 30, as previously indicated. A second threshold can be set to indicate that the change over time exceeds a maximum threshold. This maximum threshold may correspond to a predefined level of wear that requires maintenance in the controlled machine or process 36. Optionally, the maximum threshold may indicate that a safe operating level has been exceeded, whether for normal maintenance needs or due to component failure. The controlled machine or process 36 may include multiple stations performing the same function. For example, a bottling process may simultaneously label six bottles and then insert these bottles into a bottle holder. Each of the six stations should be identical in construction and operation. The external controller 250 can compare the values of each label station in the LUT'254 stored in the external controller. If the value of one LUT'254 deviates from a predefined amount of another LUT'254, an error is detected, and the external controller 250 can generate a message identifying the faulty station.
[0089] It should be understood that the invention, in its application, is not limited to the details of the construction and arrangement of the components described herein. The invention can have other embodiments and can be practiced or performed in a variety of ways. The foregoing variations and modifications are within the scope of the invention. It should also be understood that the invention disclosed and defined herein extends to all alternative combinations of two or more individual features mentioned or apparent in the text and / or drawings. All these different combinations constitute multiple alternative aspects of the invention. The embodiments described herein explain the known best mode for practicing the invention and will enable others skilled in the art to utilize the invention.
[0090] Various embodiments have been described in the foregoing specification with reference to the accompanying drawings. However, it will be apparent that various modifications and changes can be made thereto, and additional embodiments can be implemented without departing from the broader scope of the invention as set forth in the appended claims. Therefore, the specification and drawings are to be considered illustrative rather than restrictive.
Claims
1. A method for dynamically observing cyclic disturbances in a controlled machine or process, the method comprising the following steps: A command signal is received at the motor driver, wherein the command signal corresponds to a desired operation of the motor that is operably controlled by the motor driver; A cyclic position signal is received at the motor driver, wherein the cyclic position signal corresponds to a position within one operating cycle of the controlled machine or process, and wherein the one operating cycle does not correspond to one rotation of the motor; Determine the value of the estimated acceleration caused by the disturbance force experienced by the motor during the operating cycle; The estimated acceleration value is stored in the memory of the motor driver at multiple sample instances within the operating cycle; The estimated acceleration is transmitted to an external controller; Receiving the filtered value of the estimated acceleration from the external controller, wherein the step of storing the value of the estimated acceleration in the memory includes storing the filtered value of the estimated acceleration received from the external controller in the memory of the motor driver; Read the filtered value of the estimated acceleration corresponding to the cyclic position signal from the memory; and The filtered value of the estimated acceleration corresponding to the cyclic position signal is added to the control routine executed in the motor driver to reduce the tracking error in the control routine.
2. The method of claim 1, wherein, The step of determining the value of the estimated acceleration caused by the disturbance force experienced by the motor is performed in the motor driver.
3. The method according to claim 1, wherein, The step of determining the value of the estimated acceleration caused by the disturbance force experienced by the motor during the operating cycle further includes the following steps: A position feedback signal is received at the motor driver, the position feedback signal corresponding to the angular position of the motor; and Using a load observer executed in the motor driver, a new estimate of the acceleration or torque at the motor is determined based on the position feedback signal, wherein... During the operation cycle, a new estimate of the acceleration or the torque is determined for each of the plurality of sample instances, and The estimated acceleration transmitted to the external controller corresponds to the new estimated value of the acceleration or the torque.
4. The method according to claim 3, further comprising the following steps: The current sample instance within the operation loop is determined based on the loop position signal; as well as Read the previous value of the estimated acceleration for the current sample instance, wherein the estimated acceleration is determined based on the new estimated value and the previous value.
5. The method according to claim 4, wherein, The estimated acceleration is determined as a weighted average of the new estimate and the previous value.
6. The method according to claim 4, further comprising the following step: Read the current value of the cyclic position signal in the motor driver; The previous value of the estimated acceleration for the current value of the cyclic position signal is read from the memory of the motor driver; as well as The previous value of the estimated acceleration for at least one additional value of the cyclic position signal is read from the memory of the motor driver, wherein the filtered value of the estimated acceleration is determined as the new estimate, the previous value of the estimated acceleration at the current value of the cyclic position signal, and the weighted average of the previous values of the estimated acceleration for the at least one additional value of the cyclic position signal.
7. A motor driver configured to dynamically observe cyclic disturbances in a controlled machine or process, the motor driver comprising: At least one input is configured to receive a command signal and a cyclic position signal, wherein the command signal corresponds to a desired operation of a motor operably connected to the motor driver, and the cyclic position signal corresponds to a position within an operating cycle of the controlled machine or process; Memory, configured to store lookup tables; and The processor is configured to: Determine the estimated acceleration value caused by the disturbance force experienced by the motor during the operating cycle, and The estimated acceleration values are stored in the lookup table at multiple sample instances within the operation loop. The processor is further configured to: transmit the estimated acceleration to an external controller, and receive a filtered value of the estimated acceleration from the external controller, wherein the value of the estimated acceleration stored in the lookup table is the filtered value received from the external controller, and The processor is further configured to execute a control routine to obtain the desired operation of the motor, wherein the filtered value of the estimated acceleration corresponding to the cyclic position signal is added to the control routine to reduce the tracking error in the control routine.
8. The motor driver according to claim 7, further comprising: At least one additional input is configured to receive a position feedback signal corresponding to the angular position of the motor, wherein the processor is further configured to: Execute a load observer to determine a new estimate of the acceleration or torque at the motor based on the position feedback signal, and During the operation cycle, a new estimate of the acceleration or the torque is determined for each of the plurality of sample instances, wherein the estimated acceleration transmitted to the external controller corresponds to the new estimate of the acceleration or the torque.
9. The motor driver according to claim 8, wherein, The processor is also configured to: The current sample instance is determined from the plurality of sample instances based on the cyclic position signal. Read the previous value of the estimated acceleration for the current sample instance from the lookup table, and The filtered value of the estimated acceleration to be stored in the lookup table is determined based on the new estimate and the previous value.
10. The motor driver according to claim 9, wherein, The processor is also configured to determine a weighted average of the new estimate and the previous value.
11. The motor driver according to claim 9, wherein, The processor is also configured to: Read the current value of the cyclic position signal; Read the previous value of the estimated acceleration for the current value of the cyclic position signal from the lookup table; as well as The previous value of the estimated acceleration for at least one additional value of the cyclic position signal is read from the lookup table, wherein the filtered value of the estimated acceleration is determined as the new estimate, the previous value of the estimated acceleration at the current value of the cyclic position signal, and the weighted average of the previous values of the estimated acceleration for at least one additional value of the cyclic position signal.
12. A method for dynamically compensating for cyclic disturbances in a controlled machine or process, the method comprising the following steps: A command signal is received at the motor driver, wherein the command signal corresponds to a desired operation of the motor that is operably controlled by the motor driver; A cyclic position signal is received at the motor driver, wherein the cyclic position signal corresponds to a position within one operating cycle of the controlled machine or process, and wherein the one operating cycle does not correspond to one rotation of the motor; Read the disturbance value from the lookup table stored in the memory of the motor driver, wherein the disturbance value corresponds to the cyclic position signal; and In response to receiving the command signal, a control module is executed within the motor driver to obtain the desired operation of the motor, wherein the disturbance value is provided to the control module to reduce the tracking error in the control module.
13. The method of claim 12, further comprising the step of: A position feedback signal is received at the motor driver, the position feedback signal corresponding to the angular position of the motor; as well as Using the load observer in the motor driver, a new estimate of acceleration or torque is determined based on the position feedback signal, wherein, The disturbance value is determined from the lookup table based on a previous estimate of the acceleration or torque determined for the corresponding position within the operating cycle indicated by the cyclic position signal.
14. The method of claim 13, further comprising the step of updating the lookup table based on the new estimate of the acceleration or the torque.
15. The method of claim 14, further comprising the step of: At each value of the cyclic position signal, a new value for the lookup table in the motor driver is determined, wherein the new value is a function of the new estimated value and the perturbation value read from the lookup table; and The new value used for the lookup table is used to overwrite the perturbation value read from the lookup table.
16. The method of claim 13, further comprising the step of: The new estimate of the acceleration or the torque is transmitted to an external controller; At each value of the cyclic position signal, a new value is determined for the lookup table in the external controller; The new value used in the lookup table is periodically transmitted to the motor driver; as well as The new value received from the external controller is used to overwrite the lookup table in the motor driver.