Systems and methods for trajectory shaping for feasible motion commands
By introducing a trajectory forming module into the motor drive system, the interference acceleration is estimated in real time and the acceleration limit is adjusted, and the overshoot, oscillation and performance degradation that the motor drive may occur in response to motion commands is solved, achieving more efficient and stable motor operation.
Patent Information
- Application Number
- CN202210655332.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-21
- Filing Date
- 2022-06-10
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2042-06-10
AI Technical Summary
The prior art is difficult to effectively solve the problems of overshoot, oscillation and performance degradation that motor drivers may occur in response to motion commands, especially in situations of load changes or resonance.
By introducing a trajectory forming module into the system, using position feedback signals and motion commands, the interference acceleration is estimated in real time and the acceleration limit is dynamically adjusted, thereby determining the modified motion commands to improve the response performance of the motor.
This method effectively reduces the impact of load on motor performance, improves the system's response speed and stability, and reduces the occurrence of overshoot and oscillation.
Smart Images

Figure CN115580176B_ABST
Abstract
Description
Technical Field
[0001] The subject matter disclosed herein relates to systems and methods for providing a viable command trajectory for a motion system, and more particularly, to systems and methods for estimating the performance of a load connected to an electric motor to adaptively adjust the speed and acceleration limits of the electric motor used to control the operation of the load. Background Art
[0002] As is known to those skilled in the art, motor drives are used to control the operation of electric motors. According to a common configuration, a motor drive includes a DC (direct current) bus having a DC voltage of an appropriate magnitude, from which an AC (alternating current) voltage can be generated and supplied to the electric motor. The DC voltage can be provided as an input to the motor drive, or alternatively, the motor drive can include a rectifier section that converts the AC voltage input into the DC voltage present on the DC bus. The rectifier section can be a passive rectifier having diodes for converting the AC voltage to a DC voltage, or the rectifier section can be an active front end having power electronic switching devices such as 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 drive generates switching signals to selectively turn on or off each switching device, thereby converting the AC voltage to the desired DC voltage on the DC. An inverter section is provided between the DC bus and the output of the motor drive to convert the DC voltage on the DC bus back to an AC voltage with a variable magnitude and frequency to control the rotation of the electric motor. The inverter section includes power electronic switching devices and receives switching signals to selectively turn on and off each switching device to obtain the desired AC voltage.
[0003] The motor drive receives a command signal indicating the desired operation of the electric motor. The command signal can be the desired position, speed, or torque at which the electric motor is to operate. The position, speed, and torque of the electric motor are controlled by changing the magnitude and frequency of the AC voltage applied to the stator. The electric motor is connected to the output terminals of the motor drive, and the controller generates switching signals to rapidly turn on and off the switching devices at a predetermined switching frequency, and thereby alternately connect or disconnect the DC bus to the output terminals, and thus to the electric motor. The magnitude of the output voltage is changed by varying the duration during each switching cycle in which the output of the motor drive is connected to the DC voltage. The motor controller uses modulation techniques such as pulse width modulation (PWM) to control the switching and synthesize a waveform with the desired magnitude and frequency.
[0004] In some applications, command signals for motor drives can be generated by an industrial controller such as a programmable logic controller (PLC) or a programmable automation controller (PAC). The industrial controller is configured to execute a control program to control the operation of an industrial machine or process. Additionally, the industrial machine or process can include multiple motors and multiple motor drives for controlling the motors. The industrial controller receives feedback signals corresponding to the current operating state from sensors on the controlled machine or process and generates output signals to actuators and motor drives based on the feedback signals through the control program to achieve the desired operation of the controlled machine or process.
[0005] Although the industrial controller generates command signals corresponding to the desired operation of the controlled machine or process, the motor drive may not always be able to control the operation of the motor to achieve the desired operation. For example, the industrial controller can generate a step command for the motor to instantaneously change the speed from a first speed to a second speed. The motor cannot change speed immediately, and the drive will accelerate to the second speed based on many adjustment parameters. In a first configuration, the response of the motor drive can be adjusted to a slow response. This first configuration can allow the motor to accelerate to the desired speed without any overshoot, but it requires an extended period of time to complete the acceleration. However, such performance reduces productivity and does not fully utilize the performance capacity of the motor drive. Alternatively, the motor drive can be adjusted to achieve a fast response. This second configuration can cause the motor to reach the desired speed quickly, but it may also result in some overshoot, meaning the motor initially accelerates beyond the second speed and must be controlled back to the second speed. If the motor drive is adjusted to a very fast response, the overshoot may cause the motor to oscillate back and forth multiple times around the second speed before finally stabilizing at the second speed.
[0006] To avoid these undesirable operating conditions, the industrial controller can have stored parameters corresponding to the capabilities of the motor drive, and the industrial controller can be configured to generate a motion profile corresponding to the capabilities of the motor drive. For example, the industrial controller can produce a ramp speed change from the first speed to the second speed at the maximum available acceleration of the motor drive instead of a step change in speed. The ramp change in speed provides a more feasible command trajectory for the motor drive than a step change in speed.
[0007] However, despite knowledge of the configuration of the motor drive, the industrial controller may not always be able to generate a feasible trajectory for the motor drive to follow. The ability of the motor drive to follow a trajectory depends not only on the configuration of the motor drive but also on the configuration of the load on the motor drive. In some applications, the load may be coupled by a rigid connection and have a fixed inertia. Such a load can result in a predictable response and can be taken into account in the motion profile generated by the industrial controller. In other applications, the load may be coupled by a flexible coupling, which may introduce resonance and / or backlash into the controlled system. In other applications, the load may change during operation, and may even change in an unknown manner. The changing dynamics of the controlled system can result in a motion profile that the motor drive cannot always follow. The motor drive will respond according to its maximum response limit, but the motor may experience overshoot, oscillation, or other poor performance.
[0008] Accordingly, it is desirable to provide a system for shaping the trajectory of a motion command to reduce the effect of the load on motor performance. SUMMARY OF THE INVENTION
[0009] According to one embodiment of the present invention, a system for shaping a motion command for a motor includes: an input configured to receive a position feedback signal; a memory configured to store a plurality of instructions; and a processor. The position feedback signal corresponds to the angular position of the motor. The processor communicates with the memory and is configured to execute the plurality of instructions to sample the position feedback signal and determine an estimate of the disturbance acceleration. The acceleration limit is dynamically modified in real time in response to the estimate of the disturbance acceleration. A motion command for the motor is received from a motion controller, and a modified motion command is determined based on the motion command and the modified acceleration limit. The modified motion command is provided as an input to a control module, where the control module is configured to control the motor.
[0010] According to another embodiment of the present invention, a method for shaping a motion command for a motor receives, at a motor drive, a motion command for the motor from a motion controller. The motor drive samples a position feedback signal corresponding to the angular position of the motor and determines an estimate of the disturbance acceleration in the motor drive. The acceleration limit is dynamically modified in real time in response to determining the estimate of the disturbance acceleration. A modified motion command is determined based on the motion command and the modified acceleration limit.
[0011] According to yet another embodiment of the present invention, a system for shaping a motion command includes: a memory configured to store a plurality of instructions; and a processor in communication with the memory. The processor is configured to execute the plurality of instructions to obtain an estimate of disturbance acceleration, where the disturbance acceleration is generated in response to the motion command. The processor is further configured to dynamically modify an acceleration limit in real time in response to obtaining the estimate of disturbance acceleration to receive the motion command from a motion controller and to determine a modified motion command based on the motion command and the modified acceleration limit.
[0012] These and other advantages and features of the present invention will become apparent to those skilled in the art from the detailed description and the drawings. However, it should be understood that although the detailed description and the drawings indicate preferred embodiments of the present invention, the detailed description and the drawings are given by way of illustration and are not restrictive. Many changes and modifications can be made within the scope of the present invention without departing from the spirit of the present invention, and the present invention includes all such modifications. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Various exemplary embodiments of the subject matter disclosed herein are shown in the drawings, where like reference numerals throughout the drawings represent like components and in the drawings:
[0014] Figure 1 is an exemplary industrial control system in which an embodiment of the present invention is incorporated;
[0015] Figure 2 is Figure 1 a partial block diagram representation of the exemplary industrial control system of
[0016] Figure 3 is a Figure 1 block diagram representation of a motor drive incorporating an embodiment of the present invention;
[0017] Figure 4 is Figure 3 a block diagram representation of the rectifier section of the motor drive of
[0018] Figure 5 is Figure 3 a block diagram representation of the inverter section and gate drive module of the motor drive of
[0019] Figure 6 is for Figure 1 a block diagram representation of a controller for the motor drive of
[0020] Figure 7 is for Figure 6 a block diagram representation of an embodiment of a control module of the controller for
[0021] Figure 8 is a block diagram representation of the filter section of the control module from Figure 7 ; and
[0022] Figure 9 is a block diagram representation of another embodiment of the control module of the controller for Figure 6 .
[0023] Figure 10 is Figure 1 a partial block diagram representation of one embodiment of an exemplary industrial control system;
[0024] Figure 11 is Figure 10 a block diagram representation of one embodiment of the trajectory shaping module;
[0025] Figure 12 is Figure 11 a block diagram representation of one embodiment of the state filter of the trajectory shaping module for
[0026] Figure 13 is Figure 10 a graphical representation of the performance of one embodiment of the trajectory shaping module;
[0027] Figure 14 is Figure 6 a block diagram representation of another embodiment of the control module of the controller for
[0028] Figure 15 is Figure 6 a block diagram representation of another embodiment of the control module of the controller for
[0029] Figure 16 is Figure 1 a partial block diagram representation of another embodiment of an exemplary industrial control system;
[0030] Figure 17 is Figure 16 a block diagram representation of one embodiment of the trajectory shaping module; and
[0031] Figure 18 is Figure 17 a block diagram representation of one embodiment of the state filter of the trajectory shaping module for
[0032] In describing the various embodiments of the present invention shown in the accompanying drawings, specific terms will be employed for the sake of clarity. However, the present invention is not intended to be limited to the specific terms so chosen 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 "connected", "attached" or terms similar thereto are often used. They are not limited to direct connection but include connection through other elements, such connection being considered equivalent by those skilled in the art. Detailed Description
[0033] The various features and advantageous details of the subject matter disclosed herein are explained in more detail with reference to the non - limiting embodiments described in the following.
[0034] The subject matter disclosed herein describes systems and methods for shaping the trajectory of a motion command to reduce the impact of a load on motor performance. A motion controller generates a motion profile for an axis to be followed in a controlled system, where the motion axis includes a motor and a motor drive for controlling the operation of the motor. The motion controller can be a dedicated motion control module in an industrial controller, or alternatively, the motion controller can be a routine executed within a processor module of an industrial controller. In other embodiments, the motion controller can be a dedicated motion controller that executes independently of the industrial controller. According to yet another embodiment, the motion controller can be configured to execute within the motor drive. In response to a control program executed on the processor module, the motion controller generates a motion profile that can include a position reference signal, a speed reference signal, an acceleration reference signal, or a combination thereof. The motion profile is passed to a trajectory shaping module that improves the feasibility of the motion profile, regardless of the load characteristics controlled by the axis. According to one embodiment of the present invention, the trajectory shaping module executes within the industrial controller. According to another embodiment of the present invention, the trajectory shaping module executes within the motor drive configured to control the axis.
[0035] The trajectory shaping module receives a motion profile from an industrial controller and dynamically modifies the motion profile in real time to limit the reference signals in the motion profile to feasible commands. A load observer is configured to determine an estimate of the disturbance acceleration experienced at the motor. The estimated disturbance acceleration includes all unknown or non-ideal dynamic characteristics of the controlled load or external disturbances experienced by the load, and is used to dynamically modify the motion profile. The estimated disturbance acceleration is used to modify the maximum and minimum limits of the acceleration reference. The acceleration limits are in turn used to determine the maximum and minimum speed limits. The motion profile, the modified acceleration limits, and the modified speed limits are provided to a state filter, which determines a new motion profile for use by a motor drive to control the operation of the motor and the load connected to the motor. The state filter is configured to reflect the control modules implemented within the motor drive. However, the state filter limits the speed and acceleration references determined within the state filter to the modified limits. As a result, the shaped motion profile output from the state filter is limited to commands that are more feasible for the load connected to the motor than the commands that could otherwise be configured in the motor drive.
[0036] First referring to Figure 1 , an industrial control system 10 can include an industrial controller 12, which typically houses a housing 14 and a bus 16 that provides communication among a plurality of modules 18 mounted within the housing 14. The modules can include, for example, a power 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 can communicate between the industrial controller 12 and other devices connected to the industrial controller via an industrial control network 28 (such as or EtherNet / ). The industrial controller 12 can be, for example, a programmable logic controller (PLC), a programmable automation controller (PAC), etc. It is contemplated that the industrial controller 12 can also include other modules, such as an axis control module or additional racks connected via the industrial control network 28. Optionally, the industrial controller 12 can have a fixed configuration, for example, with a predetermined number of network and I / O connections.
[0037] The industrial control network 28 can connect the industrial controller 12 to remote I / O modules (not shown) and one or more remote motor drives 30, which can communicate with corresponding motors 32 and position sensors 34 to provide controlled movement for the motors 32. The controlled movement of the motors in turn controls the associated industrial machine or process 36. Although a single motor drive and motor can be referred to as a motion axis, a motion axis may also require multiple motors controlled by a single motor drive or multiple motor drives and multiple motors operating in series. The network 28 can also be connected to other devices 31, 33 in the controlled machine or process 36, including, for example, an actuator 31 that can be controlled by an output signal from the industrial controller 12, or a sensor 33 that can provide an input signal to the industrial controller.
[0038] The configuration computer 40 can communicate with the industrial controller 12 and / or the motor drive 30 via the industrial control network 28 or via a dedicated communication channel 42, for example, connected 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.
[0039] Next, referring to Figure 2 , the processor module 22 includes a processor 51 that communicates with a memory device 50 to execute an operating system program 52 and a control program 54. The operating system program 52 generally controls the operation of the processor module 22, and the control program 54 describes the desired control of the industrial machine or process 36, where each control program 54 is generally unique for a given application of the industrial control system 10. The memory 50 can also include data tables, such as I / O tables and service routines (not shown in Figure 2 ) used by the control program 54.
[0040] The processor module 22 can communicate with any other module 18 in the network module 26 or the industrial controller 12 via the bus 16, which can be implemented as a backplane 25 extending between backplane connectors 23. The network module 26 includes a control circuit 55, which can include a microprocessor and programs stored in memory and / or dedicated control circuits, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). The control circuit 55 can communicate with a network interface circuit 56 within the network module 26, where the network interface circuit 56 provides a low-level electrical protocol for execution on the industrial control network 28. Similar network interface circuits 56 can be provided on other devices, such as the motor drive 30, to provide communication between the devices.
[0041] According to the illustrated embodiment, the motion control module 27 determines a motion profile for one or more of the electric motors 32 to follow. The motion profile may include a position reference signal (q*), a velocity reference signal (w*), an acceleration reference signal (a*), or a combination thereof. The motion control module 27 includes a processor 38 that communicates with a memory device 39 to execute one or more motion profile generators. It is contemplated that the motion control module 27 may execute a separate motion profile generator for each motion axis. One or more reference signals are sent from the motion control module 27 via the backplane 25 to the network module 26 and then via the industrial control network 28 to each motor drive. In some embodiments of the present invention, it is contemplated that the processor module 22 may be configured to generate the motion profile for each axis and, in turn, generate a position reference signal (q*), a velocity reference signal (w*), an acceleration reference signal (a*), or a combination thereof.
[0042] As described above, the configuration computer 40 may be a standard desktop computer having a processor 41 that communicates with a memory 43, which stores an operating system program 45 as well as various data structures 47 and programs 49. Such programs 49 may be used to configure the industrial control system 10. The configuration computer 40 may also provide, for example, an interface circuit 48 for communicating between the processor 41 and the industrial network 28 or a separate communication channel 42 to the processor module 22, as well as a screen 46 and a keyboard 44 in accordance with methods understood in the art.
[0043] Turning next to Figure 3 , according to one embodiment of the present invention, the motor drive 30 includes a power section 61 and a control section 63. The power section 61 includes components that typically handle, for example, 200 - 575 VAC or 200 - 800 VDC, and the power section 61 receives electrical power in one form and uses power switching devices to regulate the power output to the electric motor 32 in a controlled manner to achieve the desired operation of the electric motor 32. The control section 63 includes components that typically handle, for example, 110 VAC or 3.3 - 48 VDC, and the control section 63 includes processing means, feedback circuits, and support logic circuits to receive feedback signals and generate control signals within the motor drive 30.
[0044] According to the illustrated embodiment, the motor drive 30 is configured to receive a three-phase AC voltage at an input 15 of the motor drive 30, which is in turn provided to a rectifier section 70 of the motor drive 30. The rectifier section 70 may include any electronic device suitable for passive or active rectification, as understood in the art. Also referring to Figure 4, the illustrated rectifier section 70 includes a set of diodes 72 forming a diode bridge that rectifies a 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 resulting from converting the AC voltage into a 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 magnitude of the peak of the AC input voltage.
[0045] The DC bus 75 is connected in series between the rectifier section 70 and the inverter section 80. Also refer to Figure 5 , the 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, which are 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 IGBT 82 receives a gating 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 to the motor 32. When enabled, each transistor 82 connects the corresponding rails 77, 79 of the DC bus 75 to a conductor 83 connected between the transistor 82 and the output terminal 35. The conductor 83 is selected according to the application requirements (e.g., the rating of the motor drive 30), and the conductor 33 may be, for example, a conductive surface on a circuit board to which the transistor 82 is mounted, or a busbar that connects to the terminals of a power module containing the transistor 82. The output terminals 35 of the motor drive 30 may be connected to the motor 32 via a cable that includes conductors connected to each output terminal 35.
[0046] One or more modules are used to control the operation of the motor drive 30. According to Figure 3In the illustrated embodiment, the controller 100 includes these modules and manages the execution of these modules. The illustrated embodiment is not intended to be limiting, and it should be understood that various features of each of the modules discussed below may be performed by another module, and / or various combinations of other modules may be included in the controller 100 without departing from the scope of the present invention. These modules may be stored programs executed on one or more processors, logic circuits, or combinations thereof. The 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 device. The motor driver 30 also includes a memory device 95 that communicates with the controller 100. The memory device 95 may include transient memory, non-transient memory, persistent memory, or non-persistent memory, or a combination thereof. The memory device 95 may be configured to store data and programs, which include a series of instructions executable by the controller 100. It is contemplated that the memory device 95 may be a single device, multiple devices, or incorporated as part of another device, such as an application specific integrated circuit (ASIC). The controller 100 communicates with the memory 95 to read the instructions and data required to control the operation of the motor driver 30.
[0047] 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 (q*), a speed reference (w*), or a torque reference (T*). For a high-performance servo control system, the reference signal 97 is typically a position reference signal (q*). As will be discussed in more detail below, the illustrated embodiment receives a shaped position reference signal (q*') as the reference signal 97.
[0048] Controller 100 also receives a feedback signal indicative of the current operation of motor driver 30. According to the illustrated embodiment, 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 that convert a feedback signal in a first format into a second format understandable in the art and suitable for use by controller 100. Motor driver 30 may include a voltage sensor 71 and / or a current sensor 73 on DC bus 75 to generate a feedback signal corresponding to the magnitude of the voltage and / or current present on DC bus 75. Motor driver 30 may also include one or more voltage sensors 85 and / or current sensors 87 on the output phases of inverter section 80, which generate a feedback signal corresponding to the magnitude of the voltage and / or current present on conductor 83 between inverter section 80 and the output 85 of the motor driver. A position feedback device 34 may be connected to motor 32 and is operative to generate a position feedback signal q corresponding to the angular position of motor 32. Motor driver 30 includes an input configured to receive the position feedback signal from position feedback device 34. Depending on the configuration of position feedback device 34, it is contemplated that the input may be configured to receive a sinusoidal feedback signal, a square wave, a digital pulse train, a serial communication data packet, or a combination thereof.
[0049] Controller 100 utilizes the feedback signal and reference signal 97 to control the operation of inverter section 80 to generate an output voltage having a desired magnitude and frequency for motor 32. The feedback signal is processed by feedback module 65 and converted into a signal for control module 105 as needed.
[0050] Still referring Figure 6 to, as will be discussed in more detail below, control module 105 includes a control loop 107 and a filter 122 to receive a command signal 97 and a feedback signal such as the position feedback signal, and to execute in response to the command signal 97 and the feedback signal to generate a desired reference signal. Control module 105 may also include a load observer 110 to generate an estimated response of one or more operating characteristics of motor 32. The estimated response may be added to the reference signal from control loop 105 to generate a modified reference signal. One or more filters 122 may be present in control module 105 to reduce or eliminate undesired components of the modified reference signal. The output of filter block 122 is a filtered reference signal. As Figure 6As shown, an optional inertia block 124 may be included, in series with the filter 122. As will be discussed in more detail below, an inertia gain may be included in the inertia block 124 or, alternatively, may be incorporated into the gain within the control loop 107. The filtered reference signal is provided to the inertia block, which outputs a torque reference signal. The torque reference signal is in turn output to the current regulator 67. As is understood in the art, the current regulator 67 can independently regulate the torque-producing component of the current and the flux-producing component of the current. The torque reference signal is provided as an input to the regulator that controls the torque-producing component of the current. The current regulator 67 uses the torque reference signal and the current feedback signal to output a voltage signal to the gate driver module 90. The gate driver module 90 generates a gating signal 81, for example, by pulse width modulation (PWM) or by other modulation techniques. The gating signal 81 then enables / disables the transistor 82 to provide a desired output voltage to the motor 32, which in turn results in the desired operation of the mechanical load coupled to the motor 32. As is understood in the art, the current regulator 67 is configured to operate at a bandwidth that is sufficiently greater than the bandwidth of the control module 105 such that the current regulator 67 can be approximated as a unity gain of the control module 105.
[0051] Next, referring to Figure 7 , a control module 105 according to one embodiment of the present invention is shown. The control module 105 receives a shaped position command signal (q*') 97 as an input. The shaped position command signal (q*') 97 is compared with the position feedback signal (q) at a first summing node 102. A position error signal is output from the first summing node 102 and input to the position loop controller 104. According to the illustrated embodiment, the position loop controller 104 includes a proportional integral (PI) controller. Alternatively, the position loop controller 104 may be a proportional only (P) controller or may also include a derivative (D) controller. Each of the proportional (P), integral (I), and / or derivative (D) controllers in the position loop controller 104 includes a controller gain value. These controller gain values are commonly referred to as the proportional gain (Kpp), the integral gain (Kpi), and the derivative gain (Kpd). The output of the position loop controller 104 is a speed reference signal (w*).
[0052] At the second summing node 106, the speed reference signal (w*) is compared with the speed feedback signal (w). The speed feedback signal (w) is generated by the load observer 110. Optionally, the speed feedback signal (w) can be determined by differentiating the position feedback signal (q). The speed error signal is output from the second summing node 106 and input to the speed loop controller 108. According to the illustrated embodiment, the speed loop controller 108 includes a proportional integral (PI) controller. Optionally, the speed loop controller 108 can be a proportional (P) only controller or can also include a derivative (D) controller. Each of the proportional (P) controller, integral (I) controller, and / or derivative (D) controller in the speed loop controller 108 includes a controller gain value. These controller gain values are commonly referred to as the proportional gain (Kvp), integral gain (Kvi), and derivative gain (Kvd). The output of the speed loop controller 108 is the acceleration reference signal.
[0053] The control module 105 can also include a feedforward branch. According to the illustrated embodiment, the control module 105 includes feedforward branches for both the speed element and the acceleration element. Also referring to Figure 10 , a trajectory shaping module can be utilized to generate the feedforward signal. The operation of the trajectory shaping module 200 will be discussed in more detail below. The trajectory shaping module provides a shaped speed feedforward signal (w FF ’) and a shaped acceleration feedforward signal (a FF ’). The shaped speed feedforward signal (w FF ’) is added to the speed reference signal and the speed feedback signal at the summing node 106, and the shaped acceleration feedforward signal (a FF ’) is added to the acceleration reference signal at the third summing node 120.
[0054] The output of the third summing node 120 is provided as an input to the filter section 122. The filter section 122 can include one or more filters to remove unwanted components from the control system. Also referring to Figure 8 , the 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 unwanted effect on the controlled mechanical load 37. It is also conceivable that additional filters can be included in the filter section 122 without departing from the scope of the present invention.
[0055] According to Figure 7 the illustrated embodiment, the output of the filter section 122 is provided to the inertia scaling block 124, and 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 simply identified as the inertia J. The inertia gain can include the motor inertia value J m , the load inertia value Jl 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 the inertia gain that does not include the load inertia or inaccurately represents the load inertia. 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 a desired voltage to the motor 32. Figure 7 The device 130 shown in incorporates components of the motor 32 and the motor driver 30 external to the control module 105, and may incorporate the current regulator 67, the gate module 60, and the inverter section 80 of the motor driver 30, the motor 32, the mechanical load 37, and the position feedback device 34. The position feedback device 34 generates a position feedback signal (q) used by the control module 105.
[0056] Although the reference signal from the control loop 105 is shown as the acceleration reference a* in Figure 7 , the output of the third summing node 120 can be an acceleration or torque reference signal. Referring to Figure 9 , the inertia gain from the inertia block 124 can be incorporated into the controller gain. Figure 9 shows the shaped torque feedforward (T FF ’) and the improved speed loop controller 108', indicating that the inertia gain has been incorporated into the controller gain. As understood in the art, angular acceleration is proportional to torque, and more specifically, torque is equal to inertia multiplied by angular acceleration. As a result, the reference signal generated by the control loop 105 is the torque reference T*, and the estimated response generated by the load observer 110 is the estimated torque applied to the motor shaft as a result of the load on the motor 32 The torque reference T* and the estimated torque are combined at the fourth summing node 121 to provide a combined reference signal, which is a combined torque reference signal in this embodiment, as an input to the filter 122. Since the inertia gain has been merged with the controller gain, there is no need for the inertia block 124 shown in Figure 9 in the exemplary control module 105 shown. The output of the filter 122 is the torque reference that can be directly provided to the current regulator 67. Figure 7
[0057] In some applications, position control is not required, and the control module 105 can receive a speed reference instead of a position reference. Next, referring to Figure 14 , which shows a control module 105 according to another embodiment of the present invention. The control module 105 receives the shaped speed command signal (w*’) 98 as an input. At the summing node 106, the shaped speed command signal (w*’) 98 is compared with the speed feedback signal (w). The speed feedback signal (w) is generated by the load observer 110. Optionally, the speed feedback signal (w) can be determined by differentiating the position feedback signal (q). The speed error signal is output from the summing node 106 and input to the speed loop controller 108. According to the illustrated embodiment, the speed loop controller 108 includes a proportional integral (PI) controller. Optionally, the speed loop controller 108 can be a proportional (P) controller only or can also include a derivative (D) controller. Each of the proportional (P) controller, integral (I) controller, and / or derivative (D) controller in the speed loop controller 108 includes a controller gain value. These controller gain values are commonly referred to as the proportional gain (Kvp), integral gain (Kvi), and derivative gain (Kvd). The output of the speed loop controller 108 is the acceleration reference signal.
[0058] The control module 105 may also include a feedforward branch. According to Figure 14 the embodiment in Figure 16 , the control module 105 includes a feedforward branch for the acceleration element. Also referring to FF , the trajectory shaping module can be used to generate a feedforward signal. The operation of the trajectory shaping module 200 will be discussed in more detail below. The trajectory shaping module 200 provides a shaped speed command signal (w*’) and a shaped acceleration feedforward signal (a FF ’). The shaped acceleration feedforward signal (a
[0059] ’) is added to the acceleration reference signal at another summing node 120. Figure 8 The output of the summing node 120 is provided as an input to the filter section 122. The filter section 122 may include one or more filters to remove unwanted components from the control system. Also referring to
[0060] According to Figure 14 the illustrated embodiment, the output of the filter section 122 is provided to the inertia scaling block 124, and 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 simply identified as the inertia J. The inertia gain may include the motor inertia value J m , the load inertia value Jl 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 the inertia gain that does not include the load inertia or inaccurately represents the load inertia. 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 a desired voltage to the motor 32. Figure 14 The device 130 shown in incorporates components of the motor 32 and the motor driver 30 external to the control module 105 and may incorporate the current regulator 67, the gate module 60, and the inverter section 80 of the motor driver 30, the motor 32, the mechanical load 37, and the position feedback device 34. The position feedback device 34 generates a position feedback signal (q) used by the control module 105.
[0061] Although the reference signal from the control loop 105 is shown as the acceleration reference a* in Figure 14 , the output of the summing node 120 can be an acceleration or torque reference signal. Referring to Figure 15 , the inertia gain from the inertia block 124 can be incorporated into the controller gain. Figure 15 shows the shaped torque feedforward (T FF ’) and the modified speed loop controller 108’, indicating that the inertia gain has been incorporated into the controller gain. As understood in the art, angular acceleration is proportional to torque, and more specifically, torque is equal to inertia multiplied by angular acceleration. As a result, the reference signal generated by the control loop 105 is the torque reference T*, and the estimated response generated by the load observer 110 is the estimated torque applied to the motor shaft as a result of the load on the motor 32 The torque reference T* and the estimated torque are combined at an additional summing node 121 to provide a combined reference signal, which in this embodiment is a combined torque reference signal and is input to the filter 122. Since the inertia gain has been merged with the controller gain, the inertia block 124 shown in Figure 15 is not required in the exemplary control module 105 shown in Figure 14 . The output of the filter 122 is the torque reference that can be directly provided to the current regulator 67.
[0062] Figure 7 and Figure 14 show an embodiment of the present invention in which the output of the trajectory shaping module 200, which is discussed in more detail below, is provided to the control module 105 of the motor driver to automatically shape the trajectory. It is also contemplated that the output of the trajectory shaping module 200 (i.e., the shaped position reference signal q*’, if any; the shaped speed feedforward signal w FF’; and the shaped acceleration feedforward signal a FF ’) can be used for diagnostic capabilities. The original reference signal, position reference signal q*, if present; velocity reference signal w*; and acceleration reference signal a* can be used in the control module 105, and the output of the trajectory shaping module 200 can be compared with the original reference signal. When the original reference signal defines a feasible trajectory that the motor drive 30 can follow, there is no difference between the original reference signal and the shaped reference signal. When the original reference signal defines a trajectory that the motor drive 30 cannot follow, the shaped reference signal is different from the original reference signal. A message may be generated to alert the technician to the infeasible trajectory, but no further action is taken to enable the motor drive 30 to follow the trajectory as closely as possible.
[0063] According to another embodiment of the present invention, it is contemplated that the calculations of the control module 105 can be performed in a per-unit system. The per-unit system uses a scaling factor to convert the value of a physical unit to a percentage value or a unit value, where the expected operating range of the value is converted to a value between 0 and 1 or between 0 and 100. According to the per-unit system, an acceleration range of 0% to 100% may be equivalent to a torque range of 0% to 100%. As a result, the per-unit acceleration value will be equal to the per-unit torque value. Each reference signal and filtered reference signal in the per-unit system will be a unitless reference signal.
[0064] In another embodiment, the inertia of the motor can be included in the filter gain to convert the acceleration reference signal output from the third summing node 120 to a torque reference signal in the filter section 122. Combining the inertia gain with another controller gain or filter gain reduces the real-time computational burden imposed on the controller 100 of the motor drive 30.
[0065] In operation, the trajectory shaping module 200 receives one or more reference signals from the motion controller and generates a shaped or modified command signal to cause the motor drive 30 to control the operation of the motor 32. Refer to Figure 10 , the illustrated embodiment contemplates that the motion controller is included in the industrial controller 12 and includes a position reference signal. The trajectory shaping module 200 will be discussed first according to the embodiment including the position reference signal and then according to the embodiment not requiring the position reference signal. Figure 10The motion controller generates a motion command that includes a position reference signal q*, a velocity reference signal w*, an acceleration reference signal a*, or a combination thereof. As understood in the art, velocity is the derivative of position with respect to time, and acceleration is the derivative of velocity with respect to time. Thus, given one of the reference signals, each of the other reference signals can be determined. Preferably, the motion command provides each of the position, velocity, and acceleration reference signals. The motor drive 30 includes a load observer 110 (also see Figure 3 ), and the load observer 110 is configured to generate an estimated acceleration Estimated acceleration which, together with the position reference signal q*, the velocity reference signal w*, and the acceleration reference signal a*, is provided to the trajectory shaping module 200. As described above, it is contemplated that the trajectory shaping module 200 may be implemented in the industrial controller 12 or the motor drive 30. For the purposes discussed herein, the trajectory shaping module 200 will be discussed as being implemented by the motor drive. The trajectory shaping module 200 generates a shaped position reference signal q*', a shaped velocity feedforward signal w FF ', and a shaped acceleration feedforward signal a FF ' for the controller 100 in the motor drive 30.
[0066] Next, turning to Figure 11 , the trajectory shaping module 200 includes an acceleration limit module 210, a velocity limit module 220, an intercept time module 230, and a state filter module 250. The acceleration limit module 210 responds to the estimated acceleration determined by the motor drive And the acceleration limit of the motor driver 30 is determined dynamically in real time. The initial value of the acceleration limit can be stored in the memory 95 of the motor controller. According to one embodiment of the present invention, the acceleration limit can be a single value corresponding to the maximum acceleration in both the positive and negative directions. According to another embodiment of the present invention, the acceleration limit can include a first value that defines the maximum acceleration and the minimum acceleration. The maximum acceleration is also referred to herein as the acceleration upper limit, and the minimum acceleration is also referred to herein as the acceleration lower limit. If the motor is operating in a single rotational direction, it can be conceived that both the acceleration upper limit and the lower limit may have the same sign. If the motor is operating in two rotational directions, it can be conceived that the acceleration upper limit can have the maximum acceleration value in the positive direction, while the acceleration lower limit can have the maximum acceleration value in the negative direction. In addition, the acceleration limit can be stored as a value in real number units, such as meters per second squared, as a percentage of the desired acceleration, or as a value per unit expressed as a decimal value, where a value between 0 and 1 corresponds to 0% to 1%. For the sake of computational efficiency, it is desirable to store one or both of the acceleration limit values in a manner consistent with the units used in the control loop 107 in the controller 100. For the purposes discussed herein, the motor driver 30 incorporating the illustrated trajectory shaping module 200 stores the acceleration upper limit and the acceleration lower limit with values between positive and negative values, where these values correspond to values between positive and negative values of 100% of the maximum acceleration of the motor 32, and where the sign of the acceleration limit corresponds to the rotational direction of the motor. The acceleration limit module 210 reads the acceleration limit from the memory and adds the estimated acceleration determined by the motor driver to each of the positive and negative acceleration limits. The modified acceleration limit 212 includes a modified positive acceleration limit and a modified negative acceleration limit. The modified acceleration limit 212 is output from the acceleration limit module 210 and provided as an input to the speed limit module 220 and the state filter module 250.
[0067] The speed limit module 220 dynamically determines the speed limit of the motor drive 30 in real time in response to the determination of the acceleration limit by the acceleration limit module 210. In addition to the modified acceleration limit 212, the speed limit module 220 also receives the speed reference signal w* from the motion command and the intercept time 232 determined by the intercept time module 230 and discussed in more detail below. The intercept time 232 corresponds to the approximate time at which the controller 100 will be able to force the existing position error in the controlled system to converge to zero based on the current limits imposed on acceleration and speed. As an initial step, the speed limit module 220 multiplies the intercept time 232 by each of the modified acceleration upper and lower limits determined by the acceleration limit module 210. Each resulting value is added to the speed reference signal. Since the acceleration upper limit is positive and the acceleration lower limit is negative, the sum of the resulting values after multiplying by the intercept time will add and subtract the required amounts from the speed reference signal. The higher value becomes the speed upper limit, and the lower value becomes the speed lower limit. These limits are output from the speed limit module 220 as the modified speed limit 222 and provided to the state filter module 250. The modified speed limit 222 will define the acceptable range of the speed reference within the state filter 250, which includes the original speed reference signal w* from the motion command.
[0068] The intercept time module 230 determines the approximate time at which the controller 100 will be able to force the existing position error in the controlled system to converge to zero based on the current limits imposed on acceleration and speed. The intercept time module 230 receives the position reference signal q* and the speed reference signal w* from the motion command as inputs. The intercept time module 230 also receives the shaped position reference signal q*’ and the shaped speed reference signal w from the modified motion command output by the state filter module 250. FF’ as an input. The intercept time module 230 determines the position error by finding the difference between the position reference signal and the shaped position reference signal. The intercept time module 230 similarly determines the velocity error by finding the difference between the velocity reference signal and the shaped velocity reference signal. According to a first embodiment of the present invention, the intercept time module 230 divides the position error by the velocity error to determine the intercept time 232 output from the intercept time module 230. According to another embodiment of the present invention, the intercept time module 230 first compensates the position error with a correction factor that takes into account deceleration. The position error can be fed back by a gain module that provides deceleration correction to the summing node, and the position error is added to the initial position error to determine the modified position error. Then the modified position error can be divided by the velocity error to determine the intercept time 232. The initial determination of the intercept time takes into account the velocity error at full speed. However, as the position error and the velocity error decrease, the rate at which the correction occurs may decrease, and the amount of time required to zero the existing position error in the controlled system may increase. The gain block in the feedback path can be adjusted so that the position error can be increased accordingly, thus allowing for a more accurate determination of the intercept time 232.
[0069] Referring to Figure 11 and Figure 12 , the state filter 250 is configured to receive the original motion command and shape the motion command into a modified motion command when needed to obtain a more feasible motion profile. The state filter 250 receives the position reference signal q* of the motion command; the velocity reference signal w*; and the acceleration reference signal a* as inputs. The state filter 250 also receives the acceleration limit 212 determined by the acceleration limit module 210 and the velocity limit 222 determined by the velocity limit module 220 as inputs. The state filter 250 further obtains the value of the controller gain used in the control module 105 and determines the modified motion command based on the initial motion command, the acceleration limit, the velocity limit, and the controller gain.
[0070] The state filter 250 includes a model of the control module 105 executed by the motor driver 30. This model includes a model of the position loop 254 and a model of the speed loop 262. The position reference signal q* is initially provided to a first summing node 252, where the position reference signal q* is compared with the shaped position reference signal q*'. The output of the first summing node 252 is the estimated position error, which is provided to the model of the position loop 254. When the state filter 250 is executed within the motor driver 30, the state filter can read the controller gains of the control module 105, which are stored as parameters in the memory 95 of the motor driver 30. According to the illustrated embodiment, the model of the position loop 254 corresponds to the position loop controller 104, which models a proportional-integral (PI) controller. If the position loop controller 104 is only a proportional (P) controller or also includes a derivative (D) controller, the model of the position loop 254 will similarly correspond to a proportional controller or a proportional-integral-derivative controller. Each of the proportional (P), integral (I), and / or derivative (D) controllers in the position loop controller 104 includes a controller gain value. These controller gain values are commonly referred to as the proportional gain (Kpp), the integral gain (Kpi), and the derivative gain (Kpd). The model of the position loop controller 254 reads each gain according to the appropriate model 254 and determines the estimated speed command 255.
[0071] The estimated speed command 255 is combined with the speed reference signal w* at a second summing node 256. Thus, the speed reference signal w* serves as a feedforward signal for the modeled control system. In a similar manner, the shaped speed reference signal w FF ’ will serve as a feedforward signal in the control module 105. The output of the second summing node 256 is provided as an input to the speed limit block 258. The speed limit block 258 receives the dynamically determined speed limit 222 and prevents the output of the second summing node 256 from exceeding the speed upper limit or being less than the speed lower limit. The output of the speed limit block 258 is the limited speed command 259, which is in turn provided to a third summing node 260. At the third summing node, the limited speed command 259 is compared with the shaped speed reference signal w FF ’ at 260.
[0072] The output of the third summing node 260 is the estimated velocity error, which is provided to the model of the velocity loop 262. When the state filter 250 is executed within the motor drive 30, the state filter can read the controller gains for the control module 105 stored as parameters in the memory 95 of the motor drive 30. According to the illustrated embodiment, the model of the velocity loop 262 corresponds to the velocity loop controller 108, which models a proportional-integral (PI) controller. If the velocity loop controller 108 is only a proportional (P) controller or also includes a derivative (D) controller, the model of the velocity loop 262 will similarly correspond to a proportional controller or a proportional-integral-derivative controller. Each of the proportional (P) controller, integral (I) controller, and / or derivative (D) controller in the velocity loop controller 108 includes a controller gain value. These controller gain values are commonly referred to as the proportional gain (Kvp), integral gain (Kvi), and derivative gain (Kvd). The model of the velocity loop controller 262 reads each gain and determines the estimated acceleration command 263 according to the appropriate model 262.
[0073] The estimated acceleration command 263 is combined with the acceleration reference signal a* at the fourth summing node 264. Thus, the acceleration reference signal a* serves as a feedforward signal for the modeled control system. In a similar manner, the shaped acceleration reference signal a FF ’ will serve as a feedforward signal in the control module 105. The output of the fourth summing node 264 is provided as an input to the acceleration limit block 266. The acceleration limit block 266 receives the dynamically determined acceleration limit 212 and prevents the output of the fourth summing node 264 from exceeding the acceleration upper limit or being less than the acceleration lower limit. The output of the acceleration limit block 266 is the shaped acceleration reference signal a FF ’. The shaped acceleration reference signal a FF ’ is passed through the first integration block 268 and the second integration block 270 to obtain the shaped velocity reference signal w FF ’ and the shaped position reference signal qFF'.
[0074] Next, turning to Figure 13, showing the exemplary performance of the trajectory shaping module 200. The first curve 302 shows an exemplary step command provided to the motor driver 30 as the position reference signal q*. However, a step change in position is not a feasible trajectory for the motor 32 to follow. The motor 32 needs some time to accelerate to speed and decelerate back to zero speed at the desired position. The second curve 304 shows an exemplary angular position path of the motor generated by such a step change command without the trajectory shaping module 200. The control module 105 in the motor driver 30 will command the motor 32 to reach the desired position as quickly as possible. When the motor driver 30 recognizes that the motor 32 has reached the commanded position, but there is some overshoot before the motor driver 30 can stop the motor. When the motor driver 30 causes the motor 32 to oscillate back and forth around the commanded position for approximately two-tenths of a second, there is some ringing before finally staying at the commanded position.
[0075] In contrast, the third curve 306 shows the performance of the trajectory shaping module 200. The trajectory shaping module 200 receives a step command for the position reference signal q* and converts the step command into the shown curved reference signal 306. The shown curved reference signal is the modified position reference signal q*’, which is output from the trajectory shaping module 200 and provided to the control module 105 as an input instead of the step command. The control module 105 is able to follow this modified position reference signal. Figure 13 The fourth curve 308 in shows the actual angular position of the motor 32 in response to the modified position reference signal. A small delay in following the modified position reference signal occurs at the start of the command, but then the control module 105 brings the position error very close to zero. The position error remains very close to zero throughout the ramp, and there is only a small overshoot at the end of the modified position reference signal. The control module 105 quickly brings the motor to the commanded speed. As a result of the trajectory shaping module 200, the motor is able to achieve the desired position reference in approximately one-half of the time required to respond to a step change and does not oscillate around the desired position shown in the second curve 304.
[0076] The trajectory shaping module 200 operates in real time to modify the motion commands from the industrial controller 12 as needed. In some applications, the motion commands from the industrial controller can take Figure 13in the form of the third curve 306 and may not require modification of the motion command. The industrial controller 12 can have knowledge of, for example, motor inertia, load inertia, the coupling between the motor and the load, and other system dynamics, and is capable of generating a feasible command trajectory for the motor drive 30 and the motor 32 to follow. In other applications, it may not be possible to accurately model the system dynamics or know the load inertia in the system. Although the industrial controller 12 can generate a feasible trajectory in some cases, in other cases, the motion command or the load coupled to the motor may cause the motor drive 30 to be unable to control the motor 32 to follow the desired position reference. As the motion command passes through the trajectory shaping module 200, the trajectory shaping module 200 can allow the feasible command to pass through unshaped, can shape the infeasible command, and smoothly transition between the feasible and shaped motion commands. The output of the trajectory shaping module 200 is provided as an input to the control module 105, and the control module 105 executes to regulate the current output to the motor while the trajectory shaping module 200 generates a feasible command trajectory.
[0077] Next, referring to Figure 16 , the illustrated embodiment contemplates that the motion controller is included in the industrial controller 12 and does not require a position reference signal. Figure 16 The motion controller of generates a motion command that includes a velocity reference signal w*; an acceleration reference signal a*; or a combination thereof. As understood in the art, acceleration is the derivative of velocity with respect to time. Thus, given one of the reference signals, the other reference signal can be determined. Preferably, the motion command provides each of the velocity and acceleration reference signals. The motor drive 30 includes a load observer 110 (see also Figure 3 ), which is configured to generate an estimated acceleration estimated acceleration which is provided to the trajectory shaping module 200 together with the velocity reference signal w* and the acceleration reference signal a*. As described above, it is contemplated that the trajectory shaping module 200 can be executed in the industrial controller 12 or the motor drive 30. For the purposes of discussion herein, the trajectory shaping module 200 will be discussed as being executed by the motor drive. The trajectory shaping module 200 generates a shaped velocity command signal w*' for the controller 100 in the motor drive 30; and a shaped acceleration feedforward signal a FF '.
[0078] Next, turning to Figure 17, the trajectory shaping module 200 includes an acceleration limit module 210, a speed limit module 220, and a state filter module 250. The acceleration limit module 210 dynamically determines the acceleration limit of the motor driver 30 in real time in response to the estimated acceleration α^ determined by the motor driver. The initial value of the acceleration limit can be stored in the memory 95 of the motor controller. According to one embodiment of the present invention, the acceleration limit can be a single value corresponding to the maximum acceleration in both the positive and negative directions. According to another embodiment of the present invention, the acceleration limit can include a first value that defines the maximum acceleration and the minimum acceleration. The maximum acceleration is also referred to as the acceleration upper limit herein, and the minimum acceleration is also referred to as the acceleration lower limit herein. If the motor operates in a single rotational direction, it can be conceived that both the acceleration upper limit and the lower limit may have the same sign. If the motor operates in two rotational directions, it can be conceived that the acceleration upper limit can have the maximum acceleration value in the positive direction, while the acceleration lower limit can have the maximum acceleration value in the negative direction. In addition, the acceleration limit can be stored as a value in real number units, such as meters per second squared, as a percentage of the desired acceleration, or as a value per unit represented as a decimal value, where the value between 0 and 1 corresponds to 0% to 1%. For the sake of computational efficiency, it is desirable to store one or both acceleration limit values in a manner consistent with the units used in the control loop 107 in the controller 100. For the purposes discussed herein, the motor driver 30 incorporating the illustrated trajectory shaping module 200 stores the acceleration upper limit and the acceleration lower limit with values between positive and negative values, where these values correspond to the values between positive and negative values of 100% of the maximum acceleration of the motor 32, and the sign of the acceleration limit corresponds to the rotational direction of the motor. The acceleration limit module 210 reads the acceleration limit from the memory and adds the estimated acceleration determined by the motor driver to each of the positive and negative acceleration limits. The modified acceleration limit 212 includes a modified positive acceleration limit and a modified negative acceleration limit. The modified acceleration limit 212 is output from the acceleration limit module 210 and provided as an input to both the speed limit module 220 and the state filter module 250.
[0079] The speed limit module 220 dynamically determines the speed limit of the motor driver 30 in real time in response to the determination of the acceleration limit by the acceleration limit module 210. When position adjustment is not required, the speed limit module 220 replaces the intercept time input with a fixed zero input, as Figure 11As shown. The speed reference does not require an intercept time module 230 because the intercept time determines the approximate amount of time required for the intercept time determination controller 100 to force the existing position error in the controlled system to converge to zero. Since the controlled system in this embodiment does not use a position reference or a position controller, there is no position error. As a result, no convergence time is required, and the input can be set to zero. As previously described, the speed limit module 220 multiplies the intercept time 232 by each of the modified acceleration upper and lower limits determined by the acceleration limit module 210. Since this input has been set to zero, the resulting value is zero. Each resulting value can still be added to the speed reference signal to provide a limit to the speed reference signal. In other words, the speed reference signal output from the controller 12 is maintained at its original value. Combining the previously discussed embodiments, setting the input from the intercept time calculation to zero allows a single control module 105 to implement a single state filter regardless of whether position control or speed control is required. When position control is required, the operation of the state filter 250 occurs as described above with respect to Figures 10 to 12 When speed control is required, the operation of the state filter 250 assumes a zero position reference and a zero position error and converges to the operation described in Figures 16 to 18 It is conceivable that some applications can be specifically configured to handle speed control, and the speed limit module 220 can be eliminated to reduce computational requirements.
[0080] Referring to Figure 17 and Figure 18 , the state filter 250 is configured to receive the original motion command and shape the motion command into a modified motion command when needed to achieve a more feasible motion profile. The state filter 250 receives the speed reference signal w* and the acceleration reference signal a* of the motion command as inputs. The state filter 250 also receives the acceleration limit 212 determined by the acceleration limit module 210 and the speed limit 222 determined by the speed limit module 220 as inputs. The state filter 250 further obtains the value of the controller gain used in the control module 105 and determines the modified motion command based on the initial motion command, the acceleration limit, the speed limit, and the controller gain.
[0081] The state filter 250 includes a model of the control module 105 implemented by the motor driver 30, including a model of the speed loop 262. A speed reference signal w* is provided as an input to the speed limit block 258. The speed limit block 258 receives a dynamically determined speed limit 222 and prevents the output of the second summing node 256 from exceeding the speed upper limit or being less than the speed lower limit. The output of the speed limit block 258 is a limited speed command 259, which is in turn provided to the first summing node 260. As described above, when the motor driver 30 receives only the speed reference signal and not the position reference signal, the speed limit is configured to hold the speed reference signal at its original value. Thus, it is conceivable that the state filter 250 can be implemented without the speed limit block 258 and directly pass the speed reference signal to the first summing node 260. At the first summing node 260, the limited speed command 259 is compared with the shaped speed reference signal w FF ’.
[0082] The output of the first summing node 260 is an estimated speed error, which is provided to the model of the speed loop 262. When the state filter 250 is implemented within the motor driver 30, the state filter can read the controller gains of the control module 105, which are stored as parameters in the memory 95 of the motor driver 30. According to the illustrated embodiment, the model of the speed loop 262 corresponds to the speed loop controller 108, modeling a proportional-integral (PI) controller. If the speed loop controller 108 is only a proportional (P) controller or also includes a derivative (D) controller, the model of the speed loop 262 will similarly correspond to a proportional controller or a proportional-integral-derivative controller. Each of the proportional (P), integral (I), and / or derivative (D) controllers of the speed loop controller 108 includes a controller gain value. The controller gain values are commonly referred to as the proportional gain (Kvp), the integral gain (Kvi), and the derivative gain (Kvd). The model of the speed loop controller 262 reads each gain and determines an estimated acceleration command 263 according to the appropriate model 262.
[0083] The estimated acceleration command 263 is combined with the acceleration reference signal a* at the second summing node 264. Thus, the acceleration reference signal a* serves as a feedforward signal for the modeled control system. In a similar manner, the shaped acceleration reference signal a FF ’ will serve as a feedforward signal in the control module 105. The output of the second summing node 264 is provided as an input to the acceleration limit block 266. The acceleration limit block 266 receives a dynamically determined acceleration limit 212 and prevents the output of the second summing node 264 from exceeding the acceleration upper limit or being less than the acceleration lower limit. The output of the acceleration limit block 266 is the shaped acceleration reference signal a FF ’. The shaped acceleration reference signal, aFF is passed through an integration block 268 to obtain a shaped speed reference signal w FF '.
[0084] It should be understood that the present invention is not limited in its application to the details of the construction and arrangement of the components set forth herein. The present invention is capable of other embodiments and of being practiced or carried out in various ways. Variations and modifications of the foregoing are within the scope of the present invention. It should also be understood that the invention as disclosed and defined herein extends to all alternative combinations of two or more of the individual features mentioned or evident from the text and / or drawings. All such different combinations constitute various alternative aspects of the present invention. The embodiments described herein illustrate the best mode known for practicing the invention and enable others skilled in the art to utilize the invention.
[0085] In the foregoing specification, various embodiments have been described with reference to the accompanying drawings. However, it will be apparent that various modifications and changes can be made thereto without departing from the broader scope of the invention as set forth in the following claims, and additional embodiments can be realized. Accordingly, the specification and drawings are to be regarded as illustrative rather than restrictive.
Claims
1. A system for shaping motion commands for an electric motor, the system comprising: An input end configured to receive a position feedback signal, wherein the position feedback signal corresponds to the angular position of the electric motor; A memory configured to store a plurality of instructions; and A processor communicatively coupled to the memory and configured to execute the plurality of instructions to: Sample the position feedback signal and determine an estimated value of disturbance acceleration, Dynamically modify the acceleration limit in real time in response to the estimated value of the disturbance acceleration, Receive a motion command for the electric motor from a motion controller, Determine a modified motion command based on the motion command and the modified acceleration limit, and Provide the modified motion command as an input to a control module, wherein the control module is configured to control the electric motor, Wherein the processor is further configured to dynamically modify the acceleration limit by: Reading an initial acceleration limit value from the memory, and Adding the estimated value of the disturbance acceleration to the initial acceleration limit value.
2. The system according to claim 1, wherein: The motion command includes a position reference signal and a speed reference signal, The processor is further configured to dynamically modify the speed limit in real time, and The modified motion command includes a shaped position reference signal and a shaped speed reference signal.
3. The system according to claim 2, wherein The processor is further configured to: Determine a position error by determining the difference between the position reference signal and the shaped position reference signal, Determine a speed error by determining the difference between the speed reference signal and the shaped speed reference signal, Determine a modified position error by subtracting a deceleration correction value from the position error, and Determine an intercept time by dividing the speed error by the modified position error.
4. The system according to claim 3, wherein, The processor is further configured to dynamically modify the speed limit by: Multiplying the modified acceleration limit by the intercept time, and Adding the result of multiplying the modified acceleration limit by the intercept time to the speed reference signal.
5. The system according to claim 1, wherein, The processor is further configured to: Execute a control module to regulate the current output to the electric motor, and Execute a state filter in parallel with the execution of the control module, wherein: The state filter includes a model of the control module, The state filter receives the motion command and the dynamically modified acceleration limit as inputs, and The state filter determines the modified motion command as an output.
6. The system according to claim 5, wherein: The processor is further configured to dynamically modify the speed limit, The state filter receives the dynamically modified speed limit as an input, The motion command includes a position reference signal, a speed reference signal, and an acceleration reference signal, and The modified motion command signal includes a shaped position reference signal, a shaped speed reference signal, and a shaped acceleration reference signal.
7. A method for shaping a motion command for an electric motor, the method comprising the steps of: Receiving, at a motor driver, a motion command for the motor from a motion controller; Sampling, using the motor driver, a position feedback signal corresponding to an angular position of the motor; Determining, in the motor driver, an estimated value of disturbance acceleration; Dynamically modifying, in real time in response to determining the estimated value of disturbance acceleration, an acceleration limit; and Determining a modified motion command based on the motion command and the modified acceleration limit, wherein the step of dynamically modifying the acceleration limit further comprises the steps of: Reading, from a memory of the motor driver, an initial acceleration limit value, and Adding the estimated value of the disturbance acceleration to the initial acceleration limit value.
8. The method according to claim 7, wherein: The motion command includes a position reference signal and a speed reference signal, The method further comprises the step of dynamically modifying, in real time, a speed limit, and The modified motion command includes a shaped position reference signal and a shaped speed reference signal.
9. The method according to claim 8, further comprising the steps of: Determining a position error as a difference between the position reference signal and the shaped position reference signal, Determining a speed error as a difference between the speed reference signal and the shaped speed reference signal, Determining a modified position error by subtracting a deceleration correction value from the position error, and Determining an intercept time by dividing the speed error by the modified position error.
10. The method according to claim 9, wherein, The step of dynamically modifying the speed limit further comprises the steps of: Multiplying the modified acceleration limit by the intercept time, and Adding a resultant value of multiplying the modified acceleration limit by the intercept time to the speed reference signal.
11. The method according to claim 7, further comprising the steps of: Executing a control module to regulate a current output to the motor, and Executing a state filter in parallel with executing the control module, wherein: The state filter includes a model of the control module, The state filter receives the motion command and the dynamically modified acceleration limit as inputs, and The state filter determines the modified motion command as an output.
12. The method according to claim 7, further comprising the step of dynamically modifying, in real time, a speed limit, wherein: The motion command includes a position reference signal, a speed reference signal, and an acceleration reference signal, The modified motion command is further determined based on a modified speed limit, and The modified motion command signal includes a shaped position reference signal, a shaped speed reference signal, and a shaped acceleration reference signal.
13. A system for shaping a motion command, the system comprising: A memory configured to store a plurality of instructions; And A processor in communication with the memory and configured to execute the plurality of instructions to: Obtain an estimated value of the disturbance acceleration, where the disturbance acceleration is generated in response to the motion command, Dynamically modify the acceleration limit in real time in response to obtaining the estimated value of the disturbance acceleration, Receive the motion command from the motion controller, and Determine a modified motion command based on the motion command and the modified acceleration limit, where the processor is further configured to dynamically modify the acceleration limit by: Read an initial acceleration limit value from the memory, and Add the estimated value of the disturbance acceleration to the initial acceleration limit value.
14. The system according to claim 13, wherein The motion controller is an industrial controller.
15. The system according to claim 13, wherein, The motion controller is a dedicated control module communicating with the industrial controller.
16. The system according to claim 13, further comprising: An industrial controller configured to generate a motion profile; And A motor driver communicating with the industrial controller to receive the motion profile.
17. The system according to claim 16, wherein The memory and the processor are located in the industrial controller, and wherein the motion profile is the modified motion command.
18. The system according to claim 16, wherein: The motion profile is the motion command, The motor driver receives the motion command from the industrial controller, and The memory and the processor are located in the motor driver.
Citation Information
Patent Citations
Motor control system and motor control method
CN102647152A
Follow-up controller and control system using the same
JP2005237111A