Patent Description:
An electric motor converts electrical energy into mechanical energy that is provided to a load. More than one electric motor may be driven and controlled by a multi-zone controller, and the motors may be used to drive part of a conveying process. <CIT> relates to an auto-tuning controller that controls a single-axis robot that reciprocates an object in a linear direction. In operation, the controller first performs a system setup during which an AC servo motor is turned on and a jog feed operation, which moves a drive shaft at a constant low speed, is commanded to visually inspect the operating state of the controller. Additionally, predetermined initial values for position gain of a position controller, speed proportional gains, and speed integral gains of a speed controller are set. The system set up also may include a rough adjustment mode that can be selected from a screen menu and during which an initial operation is performed to estimate the load inertia and load torque. <CIT> relates to a numerical control device for controlling a motor, wherein a workpiece passes through a gap between tools which are stopped when an abnormality occurs during manufacturing. Position control gains for emergency stop are stored by type and the signal determining gain to be selected is set in advance according to workpiece weight. <CIT> relates to an electric motor stop control apparatus in which a motor is controlled by a speed control loop, decelerated to a predetermined speed, and a position control loop controls the motor to stop at a location. A load inertia calculation control circuit measures the load inertia during the deceleration and the load inertia is used to select a large or small gain for the speed control loop. <CIT> discloses a real-time servo motor controller based on a load weight capable of adaptively controlling the servo motor even when load inertia varies in accordance with a weight of a load.

The invention relates to a control apparatus for a conveying system as defined in claim <NUM>.

Implementations may include one or more of the following features.

The modification module is configured to estimate the size parameter based on a load on the motor while the motor conveys the item. The modification module may be configured to estimate the size parameter based on an amount of direct current (DC) current drawn by the motor while the motor conveys the item.

The modification module is configured to analyze data from a motor sensor after modifying the one or more parameters.

In some implementations, after the one or more parameters of the control module is modified, the item does not move.

The control module may include a proportional-integral (PI) controller, and the parameters may include one or more of an integral windup limit, integral gain coefficient, and a proportional gain coefficient.

The hold command may be received from a host controller.

The control module may be configured to control the power converter by providing a switching signal to the power converter, the switching signal being sufficient to cause the power converter to generate a driving signal that, when applied to the motor, controls one or more of torque, speed, and direction of the motor.

The invention also relates to a method as defined in claim <NUM>.

The indication of the load on the motor may be an amount of direct current (DC) current drawn by the motor as the motor conveys the item through the zone.

Implementations of any of the techniques described herein may include an apparatus, a device, a system, and/or a method.

Referring to <FIG>, a system <NUM> includes a conveying system <NUM> that carries an item <NUM> in a conveying process <NUM>. The conveying process <NUM> may be an industrial, commercial, or retail process in, for example, a warehouse, a distribution center, a retail center, or a manufacturing facility. The system <NUM> may be used in other contexts. For example, the conveying system <NUM> may be part of a heating, ventilation, and air conditioning (HVAC) system, a material handling system, or a pump system.

The system <NUM> includes a motor drive system <NUM> that provides a motor driver signal <NUM> to a motor <NUM>. Applying the motor driver signal <NUM> to the motor <NUM> causes the motor <NUM> to operate at a torque, speed, and direction that depends on characteristics (for example, frequency or duty cycle, polarity, and/or amplitude) of the motor driver signal <NUM>. The conveying system <NUM> includes a conveyor <NUM>, which may include, for example, conveyor belts and/or rollers. The conveyor <NUM> is driven by one or more motors, each of which is the same as or similar to the motor <NUM>. The motion of the conveyor <NUM> is controlled by controlling the torque, speed, and/or direction of the motors.

During ordinary operation, the conveying system <NUM> operates in an ordinary conveying mode and is called upon to carry a wide range of items under various conditions. For example, a stream of items on the conveyor <NUM> at a given time may include light weight items (for example, <NUM> kilogram (kg) or less) and heavy items (for example, <NUM> or more). Furthermore, the conveyor <NUM> may have a relatively complex configuration that includes horizontal portions and portions that are at an incline (for example, at an incline of +/- <NUM>% or at an angle of about +/-<NUM> degrees relative to horizontal).

It may be desirable or necessary to intentionally stop the conveyor <NUM> by removing the voltage to the motor <NUM> to, for example, perform maintenance, load the conveyor <NUM>, and/or unload the conveyor <NUM>. The motor drive system <NUM> may be configured or programmed with a position hold mode. If a position hold command is received while the motor drive system <NUM> is in the position hold mode, the conveyor <NUM> is stopped and a position hold is initiated. During the position hold, the item <NUM> should not move from the location in the conveying system <NUM> where the item <NUM> was when the conveying system <NUM> was intentionally stopped. The location where the item <NUM> was when the position hold was initiated is referred to as the initial stopping location. During the positon hold, the motor driver signal <NUM> controls the motor <NUM> with the goal of holding a rotor <NUM> of the motor <NUM> in the position it was in when the position hold was initiated such that the item <NUM> remains at its initial stopping location.

It can be challenging to hold items of a wide range of weights at their respective initial stopping locations during a position hold if a traditional control scheme is used to control the motor <NUM>. For example, if the motor <NUM> applies too little torque to the conveyor <NUM> during the position hold, the item <NUM> is more easily perturbed from its initial stopping location by gravity and other external forces. If the motor <NUM> applies too much torque to the conveyor <NUM> during the position hold, the motor <NUM> may move item <NUM> during the position hold. On the other hand, the motor drive system <NUM> uses an estimate of the weight of the item <NUM> to modify one or more parameters of a control scheme <NUM> to more precisely and accurately control the motor <NUM> and to more reliably hold the item <NUM> at its initial stopping location. In this way, the control scheme <NUM> is an adaptive control scheme that adapts to the size (for example, weight) of the item <NUM>.

In greater detail, the motor drive system <NUM> includes a control apparatus <NUM> and a power converter <NUM>. The control apparatus <NUM> includes a modification module <NUM> that estimates a size parameter (for example, weight) of the item <NUM>. The modification module <NUM> may estimate the size parameter using measured data, such as, for example, a measurement of the current drawn by the motor <NUM> while the motor <NUM> and/or another motor in the conveying system <NUM> conveyed the item <NUM> prior to initiation of the positon hold. The estimate of the size parameter provides the motor drive system <NUM> with information about the load on the motor <NUM> when the position hold is initiated. The information about the load improves the ability of the motor drive system <NUM> to hold the item <NUM> at the initial stopping location during the position hold and/or to return the item <NUM> to the initial stopping location after the item <NUM> is unintentionally moved from the initial stopping location. For example, the estimate of the size parameter aids in the determination of an appropriate amount of torque that the motor <NUM> should apply to the conveyor <NUM> during the position hold.

As compared to traditional approaches that do not account for the size of the item <NUM>, the motor drive system <NUM> drives the motor <NUM> in a more precise and efficient manner during the position hold mode and improves the overall performance of the system <NUM>. Moreover, accounting for the size of the item <NUM> may allow the conveying system <NUM> to be less complex than a legacy system by, for example, reducing or eliminating the need for physical stops and physical blocking mechanisms on the conveyor <NUM> that would otherwise be used to hold the item <NUM> during the position hold. Furthermore, by accounting for the size of the item <NUM>, items of a wide range of sizes are held with minimal or no oscillations during the position hold, even in portions of the conveying system <NUM> that are not horizontal.

An overview of the system <NUM> is provided before discussing the approach implemented by the control apparatus <NUM> in more detail.

The motor <NUM> may be a direct current (DC) motor or an alternating current (AC) motor. For example, the motor <NUM> may be a brushless DC motor, a permanent magnet AC motor, or an AC induction motor, just to name a few. The motor <NUM> may be a three-phase motor or a single-phase motor. In some implementations, the motor drive system <NUM> is a dual-zone motor drive system, such as shown in <FIG>.

The motor <NUM> includes a stator <NUM> and the rotor <NUM>. The stator <NUM> includes one winding per phase. The rotor <NUM> rotates relative to the stator <NUM> in response to application of the motor driver signal <NUM>. In implementations in which the motor <NUM> is a three-phase motor, the motor driver signal <NUM> is a three-phase AC electrical signal, with each phase of the signal <NUM> being applied to one of three phase windings in the stator <NUM>. The motor driver signal <NUM> has a voltage and current sufficient to drive the motor <NUM>.

The power converter <NUM> is any device capable of generating the motor driver signal <NUM>. For example, the power converter <NUM> may be a variable frequency drive (VFD) or an adjustable frequency drive (AFD). The power converter <NUM> includes a rectifier that converts alternating current (AC) power from a power source or power grid into direct current (DC) power and an inverter <NUM> that converters the DC power from the rectifier into alternating current (AC) power. The rectifier may be, for example, a diode bridge rectifier or an active front end (AFE) that includes controllable switches.

The inverter <NUM> includes a network <NUM> of controllable switches (for example, transistors). Examples of switches that may be used to form the inverter include, without limitation, metal oxide semiconductor field effect transistors (MOSFET), insulated-gate bipolar transistors (IGBT), Silicon-Carbide (SiC) based MOSFETs or IGBTs, Gallium-Nitride (GaN) based MOSFETs or IGBTs, optical/electrical relays, and/or silicon controlled rectifiers (SCR).

The control apparatus <NUM> also includes a control module <NUM> that implements the control scheme <NUM>. The control scheme <NUM> determines a switching signal <NUM> that controls the state of the controllable switches in the network <NUM> to modulate the DC power into the AC motor driver signal <NUM>. For example, the switching signal <NUM> may control the switches in the network <NUM> to implement a pulse width modulation (PWM) technique based on any type of control algorithm, such as, for example, a <NUM>-step electronic commutation, various field oriented controls, a space vector PWM, or a sinusoidal PWM. The modulation of the DC power and the characteristics of the motor driver signal <NUM> (for example, amplitude, polarity, and/or frequency or duty cycle) are controlled by the switching signal <NUM>. The characteristics of the motor driver signal <NUM> determine the torque, speed, and/or direction of the motor <NUM>.

The control apparatus <NUM> also includes an electronic processing module <NUM>, an electronic storage <NUM>, and an input/output (I/O) module <NUM>. The control apparatus <NUM>, the control scheme <NUM>, and the modification module <NUM> are implemented as executable instructions that are stored on the electronic storage <NUM> and executed by the electronic processing module <NUM>. In some implementations, the electronic processing module <NUM> and the electronic storage <NUM> are implemented as a microcontroller.

The electronic processing module <NUM> includes one or more electronic processors. The electronic processors of the module <NUM> may be any type of electronic processor, may be multiple types of processors, and may or may not include a general purpose central processing unit (CPU), a graphics processing unit (GPU), a microcontroller, a field-programmable gate array (FPGA), Complex Programmable Logic Device (CPLD), a digital signal processor (DSP), a microcontroller unit (MCU) and/or an application-specific integrated circuit (ASIC).

The electronic storage <NUM> may be any type of electronic memory that is capable of storing data and instructions in the form of computer programs or software, and may include multiple types of memory. For example, the electronic storage <NUM> may include volatile and/or non-volatile components. The electronic storage <NUM> and the processing module <NUM> are coupled such that the processing module <NUM> is able to access or read data from and write data to the electronic storage <NUM>.

The I/O interface <NUM> may be any interface that allows a human operator, an external device (such as a host controller <NUM>), and/or an autonomous process to interact with the control apparatus <NUM>. The I/O interface <NUM> may include, for example, audio input and/or output (such as speakers and/or a microphone), visual output (such as lights, light emitting diodes (LED)), serial or parallel port, a Universal Serial Bus (USB) connection, and/or any type of network interface, such as, for example, Ethernet. The I/O interface <NUM> also may allow communication without physical contact through, for example, an IEEE <NUM>, Bluetooth, cellular, or a near-field communication (NFC) connection. The motor drive system <NUM> may be, for example, operated, configured, modified, or updated through the I/O interface <NUM>.

The system <NUM> also includes a host controller <NUM> and a sensor system <NUM>. The host controller <NUM> communicates with the motor drive system <NUM> to control various aspects of the motor drive system <NUM>. For example, the host controller <NUM> may issue a command to the motor drive system <NUM> to place the motor drive system <NUM> in the position hold mode and to initiate a position hold while the motor drive system <NUM> is in the position hold mode. The host controller <NUM> is an electronic controller that includes an electronic processing module, an electronic storage, and an input/output (I/O) interface. The host controller <NUM> may be implemented as, for example, a microcontroller or any type of a computer.

The motor drive system <NUM> communicates with the host controller <NUM> via a communications link <NUM>. The communications link <NUM> is any type of wired or wireless bidirectional combinations path. For example, the communications link <NUM> may allow data and commands to be exchanged via, for example, an automation protocol (such as, for example, Fieldbus or Modbus), TCP/IP, a protocol based on the IEEE <NUM> standard (WiFi), any IP-based protocol that is capable of transmitting <NUM>, <NUM>, <NUM> data), Bluetooth, or any other communications protocol that is capable of exchanging data and information.

The sensor system <NUM> monitors the conveying system <NUM>. The sensor system <NUM> may include any kind of sensor, for example, the sensing system <NUM> may include optical, radiofrequency (RF), and/or electrical sensors, just to name a few. The system <NUM> also includes various sensors that measure quantities related to the motor <NUM> including a motor sensor <NUM>, a sensor system <NUM>, and an output sensor <NUM>.

The motor sensor <NUM> monitors operating characteristics of the motor <NUM> and provides data or an indicator <NUM> to the control apparatus <NUM>. The data <NUM> includes information about the monitored operating characteristics of the motor <NUM>. The motor sensor <NUM> may include electrical and/or environmental sensors. Examples of electrical sensors include, without limitation, current sensors, power sensors, and voltage sensors. Examples of environmental sensors include, without limitation, temperature sensors (such as thermocouples) and moisture sensors.

The motor sensor <NUM> measures information about the motor <NUM> while the motor <NUM> operates and provides the information to the control apparatus <NUM>. For example, the motor sensor <NUM> may include a current sensor that measures the amount of DC current that the motor <NUM> draws while conveying the item <NUM> and provides an indication <NUM> of the amount of measured current to the control apparatus <NUM>. In another example, the motor sensor <NUM> may provide an indication <NUM> of another quantity from which the DC current may be derived. Examples of measurements from which the amount of DC current drawn by the motor <NUM> to convey the item <NUM> may be derived include voltage measurements and temperature measurements.

The sensor system <NUM> monitors the motor driver signal <NUM>. The sensor system <NUM> includes one or more sensors that are capable of measuring an electrical quantity such as, for example, voltage, power, and/or current. Examples of sensors that may be used in the sensor system <NUM> include, without limitation, a Rogowski coil, a Hall effect sensor, a voltage sensor and/or a shunt resistor that measures the voltage across an element (such as a resistor) that has a known impedance. The sensor system <NUM> may include one sensor per phase such that in a three-phase system, the sensor system <NUM> includes three sensors. The sensor system <NUM> produces an indication <NUM> of the amount of an electrical quantity in the motor driver signal <NUM> at a point in time and provides the indication <NUM> to the control apparatus <NUM>.

The output sensor <NUM> measures the speed and/or position of the rotor <NUM> and/or produces data from which the speed and/or position of the rotor <NUM> may be derived and provides an indication <NUM> to the control apparatus <NUM>. The output sensor <NUM> may be, for example, a sensor, such as an encoder, that measures the speed and/or position of the rotor <NUM>. In some implementations, the output sensor <NUM> includes a plurality (for example, three) Hall effect sensors or other types of sensors. In these implementations, the three sensors transmit a unique pattern of signals for each of a plurality of angular positions of the rotor <NUM> to provide a measure of the position of the rotor <NUM>. The number of angular positions of the rotor <NUM> represented by the patterns depends on the specific configuration of the motor <NUM>. The number of different angular positions of the rotor <NUM> represented by the patterns may be, for example, between <NUM> and <NUM> and may be an integer multiple of the number of Hall effect sensors in the output sensor <NUM>.

<FIG> is a block diagram of an example of an implementation of the control scheme <NUM> for holding the position of the rotor <NUM> at a rotor hold position <NUM> during a position hold that is initiated while the control apparatus <NUM> is in the position hold mode. The control scheme <NUM> is implemented as a collection of executable instructions that are stored on the electronic storage <NUM>. The rotor hold position <NUM> is the angular position of the rotor <NUM> when the position hold command is initiated. The control scheme <NUM> uses an outer loop proportional-derivative (PD) position controller and an inner loop proportional-integral (PI) controller to generate an output <NUM>. The output <NUM> represents a PWM signal for driving the motor <NUM> to maintain the rotor <NUM> at the hold position <NUM>. The output <NUM> is used to produce the switching signal <NUM>.

The control scheme <NUM> includes a comparator <NUM>, a position control block <NUM>, a comparator <NUM>, and a speed control block <NUM>. The comparator <NUM> determines a rotor position error <NUM> by comparing a measured position <NUM> of the rotor <NUM> to the rotor hold position <NUM>. The measured position <NUM> of the rotor <NUM> may be a direct measurement from the motor sensor <NUM>.

The position control block <NUM> is a proportional-derivative (PD) controller that generates the speed reference <NUM> from the rotor position error <NUM>. The discrete time-domain form of the position control block <NUM> is shown in Equation (<NUM>): <MAT> where k is an integer number that indexes the time step, u(k) is the speed reference <NUM> at the time step k, u(k-<NUM>) is the speed reference <NUM> at the time step immediately before the time step k, e(k) is the rotor position error <NUM> at the time step k, e(k-<NUM>) is the value of the rotor position error <NUM> at the time step immediately before the time step k, P is the proportional gain of the PD controller <NUM>, N is the filter coefficient, Ts is the duration of the time step between k and k-<NUM>, u(k-<NUM>) is the speed reference <NUM> at the time step immediately before the time step k, A is the quantity shown in Equation (<NUM>), and B is the quantity shown in Equation (<NUM>). The term A in Equation (<NUM>) is expressed as shown in Equation (<NUM>): <MAT> and the term B in Equation (<NUM>) is expressed as shown in Equation (<NUM>): <MAT> The variables D, N, Ts, and k represent the same quantities in Equations (<NUM>) and (<NUM>) as they do in Equation (<NUM>). The variables D, N, and Ts are examples of control parameters of the PI control block <NUM>.

The comparator <NUM> compares the speed reference <NUM> to the measured rotor speed <NUM>. The measured rotor speed <NUM> may come from the output sensor <NUM>. The output of the comparator <NUM> is a speed error <NUM>. The value of the speed error <NUM> is zero when the rotor <NUM> is held at the rotor hold position <NUM>. The speed error <NUM> is provided to the speed control block <NUM>. The speed control block <NUM> seeks to hold the rotor <NUM> at a zero velocity and the output <NUM> is the PWM equivalent of a DC voltage that will hold the rotor <NUM> at the rotor hold position <NUM> or return the rotor <NUM> to the rotor hold position <NUM> if the rotor <NUM> has moved. The discrete time-domain form of the speed control block <NUM> is shown in Equation (<NUM>): <MAT> where k is an integer number that indexes the time step, u(k) is the output <NUM> at the time step k, u(k-<NUM>) is the output <NUM> at the time step k immediately before the time step k, e(k) is the speed error <NUM> at the time step k, e(k-<NUM>) is the speed error <NUM> at the time step immediately before the time step k, Ki is the integral gain coefficient of the PI controller, and Kp is the proportional gain coefficient of the PI controller. The integral gain coefficient (Ki) and the proportional gain coefficient (Kp) are examples of control parameters of the control scheme <NUM>.

The modification module <NUM> estimates a size parameter of the item <NUM> and modifies one or more of the control parameters of the control scheme <NUM> based on the estimated size parameter.

<FIG> is a block diagram of an example of a conveying system <NUM>. The conveying system <NUM> includes zones <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM>. The zone <NUM>-<NUM> includes rollers <NUM>-<NUM> and <NUM>-<NUM> and a conveyor belt <NUM>-<NUM>. The motor <NUM> is connected to the roller <NUM>-<NUM> by a mechanical link <NUM>-<NUM>. The mechanical link <NUM>-<NUM> is any device or system that transfers the output of the motor <NUM> to the roller <NUM>-<NUM>. For example, the mechanical link <NUM>-<NUM> may be a shaft. When the motor <NUM> receives the motor driver signal <NUM> from the control apparatus <NUM>, the motor <NUM> operates at a velocity, torque, and direction specified by the motor driver signal <NUM> and causes the roller <NUM>-<NUM> to rotate in the X-Y plane. The roller <NUM>-<NUM> and a roller <NUM>-<NUM> make physical contact with a belt <NUM>-<NUM>. The belt <NUM>-<NUM> is a continuous piece of flexible material that encircles the rollers <NUM>-<NUM> and <NUM>-<NUM>. When the rollers <NUM>-<NUM> and <NUM>-<NUM> rotate, the belt <NUM>-<NUM> moves in a loop. In this way, the item <NUM> is conveyed through the zone <NUM>-<NUM>.

The zone <NUM>-<NUM> includes rollers <NUM>-<NUM> and <NUM>-<NUM> and a belt <NUM>-<NUM>. The roller <NUM>-<NUM> is driven by a motor <NUM>-<NUM>, which is controlled by a control apparatus <NUM>-<NUM>. The zone <NUM>-<NUM> includes rollers <NUM>-<NUM> and <NUM>-<NUM> and a belt <NUM>-<NUM>. The roller <NUM>-<NUM> is driven by a motor <NUM>-<NUM>, which is controlled by a control apparatus <NUM>-<NUM>. The motors <NUM>-<NUM> and <NUM>-<NUM> have the same features as the motor <NUM>. The control modules <NUM>-<NUM> and <NUM>-<NUM> have the same features as the control apparatus <NUM>. The zones <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM> are positioned relative to each other such that the item <NUM> may be conveyed through the entire conveying system <NUM> by moving from zone to zone.

The conveying system <NUM> also includes the sensor system <NUM> and similar sensor systems <NUM>-<NUM> and <NUM>-<NUM>. The sensor systems <NUM>, <NUM>-<NUM>, <NUM>-<NUM> sense when the item <NUM> enters or is nearing a particular one of the zones, and when the item <NUM> leaves a zone. The sensor systems <NUM>, <NUM>-<NUM>, <NUM>-<NUM> may be, for example, optical sensors that detect when the item <NUM> passes a particular point in the conveying system <NUM>. Each of the sensor systems <NUM>, <NUM>-<NUM>, <NUM>-<NUM> may provide information about the location of the item to the host controller <NUM> and/or to the control modules <NUM>, <NUM>-<NUM>, <NUM>-<NUM>.

The conveying system <NUM> includes three zones <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>. However, the conveying system <NUM> may be configured with more or fewer zones. Furthermore, in the implementation shown, the belt <NUM>-<NUM> of the zone <NUM>-<NUM> has a negative incline relative to horizontal (the X axis in this example), the belt <NUM>-<NUM> of the zone <NUM>-<NUM> is horizontal, and the belt <NUM>-<NUM> of the zone <NUM>-<NUM> is at a positive incline relative to horizontal. Other configurations are possible. For example, all of the zones <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM> may be horizontal. Furthermore, the conveying system <NUM> may be configured to operate with dual-zone controllers, each of which drives two zones. An example of a dual-zone controller that includes an implementation the modification module <NUM> is shown in <FIG>.

<FIG> is a flow chart of a process <NUM> for a conveying system. The process <NUM> is discussed with respect to the conveying system <NUM> (<FIG>) and the control apparatus <NUM> (<FIG> and <FIG>). However, the process <NUM> may be performed on any conveying system that is driven by one or more motors.

The motor drive system <NUM> provides the motor driver signal <NUM> to the motor <NUM> while the conveying system <NUM> is in the ordinary conveying mode (<NUM>). The rotor <NUM> rotates in response to the motor driver signal <NUM>. The rotor <NUM> drives the link <NUM>-<NUM> to rotate the roller <NUM>-<NUM> and convey the item <NUM> through the zone <NUM>-<NUM>. The speed and direction of the rotor <NUM>, and the torque that the rotor <NUM> applies to the link <NUM>-<NUM>, are dictated by the characteristics of the motor driver signal <NUM>.

The item <NUM> loads the motor <NUM> as the belt <NUM>-<NUM> conveys the item <NUM> through the zone <NUM>-<NUM>. The motor sensor <NUM> (<FIG>) measures operating properties of the motor <NUM> as the item <NUM> moves through the zone <NUM>-<NUM> and produces the data or indication <NUM> (<FIG>). The control apparatus <NUM> accesses the indication <NUM> (<NUM>). The indication <NUM> may be accessed by the control apparatus <NUM> in a variety of ways. For example, in some implementations, the motor sensor <NUM> provides the indication <NUM> to the control apparatus <NUM> only when the motor <NUM> is conveying an item through the zone <NUM>-<NUM>. In some implementations, the control apparatus <NUM> polls or requests the indication <NUM> from the motor sensor <NUM> in response to a command from the host controller <NUM>. In some implementations, the motor sensor <NUM> provides the indication <NUM> to the control apparatus <NUM> regularly or periodically while the conveying system <NUM> is in the ordinary conveying mode regardless of whether or not an item is in the zone <NUM>-<NUM>. In these implementations, the indication <NUM> includes a no-data or null marker when the motor <NUM> is not operating.

The indication <NUM> may be saved on the electronic storage <NUM> for later analysis. Moreover, multiple instances of the indication <NUM> for the same item may be saved on the electronic storage <NUM>. For example, the control apparatus <NUM> may receive a plurality of indications <NUM> of the DC current drawn by the motor <NUM> as the item <NUM> moves through the zone <NUM>-<NUM>. In these implementations, each indication <NUM> may be stored in association with a time stamp or other unique characteristic to distinguish it from other indications.

A stop command from the host controller <NUM> may initiate a position hold in any or all of the zones <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM> if the control module <NUM> is configured for the position hold mode. The initiation of the position hold ends the ordinary conveying mode. If the control module <NUM> is configured for the position hold mode, the host controller <NUM> may initiate a position hold by providing a position hold command to the control apparatus <NUM>. Alternatively, an operator of the conveying system <NUM> may initiate the position hold via the control apparatus <NUM> I/O interface <NUM> (<FIG>).

If the host controller <NUM> issues a stop command and the position hold mode is not configured, the position hold is not initiated at (<NUM>), the voltage is removed from the motor <NUM> and it may coast to a stop, leaving the roller <NUM>-<NUM> free to rotate. The roller <NUM>-<NUM> may stop, causing the conveyor zone <NUM>-<NUM> to also stop. The process <NUM> may end, or the process <NUM> may return to (<NUM>) such that the conveying system <NUM> resumes operation in the ordinary conveying mode and voltage is again applied to the motor <NUM>. In an implementation in which the conveying system <NUM> moves items generally in the Y direction in the ordinary conveying mode, the item <NUM> moves through the zone <NUM>-<NUM> and into the zones <NUM>-<NUM> and <NUM>-<NUM>.

If the position hold mode is configured, a position hold is initiated (<NUM>) in response to a stop or hold command, and a size parameter of the item <NUM> is estimated based on the indication <NUM> (<NUM>). For example, the modification module <NUM> may estimate the weight of the item <NUM> from the amount of DC current that the motor <NUM> drew while moving the item <NUM> through the zone <NUM>-<NUM>. The amount of DC current that the motor <NUM> draws while moving the item <NUM> through the zone <NUM>-<NUM> depends on the physical properties (for example, diameter and weight) of the rollers <NUM>-<NUM> and <NUM>-<NUM>, the size of the rotor <NUM>, the characteristics (for example, the friction coefficients and/or incline) of the belt <NUM>-<NUM>, and the electrical profile (for example, rated voltage, current, frequency, and/or horsepower of the motor <NUM>). The relationship between weight of a conveyed item and the DC current drawn by the motor <NUM> while conveying the item may be stored on the electronic storage <NUM> as a look-up table, database, or a function that implements a mathematical relationship. In implementations that use a look-up table, the data in the table may be collected prior to using the conveyor system <NUM> from actual and/or simulated data collected under conditions similar to those experienced in operational use of the conveyor system <NUM>. In implementations that use a function to implement a mathematical relationship between DC current drawn by the motor <NUM> and item weight, the mathematical relationship may be derived from actual and/or simulated data collected under conditions similar to those experienced in operational use of the conveyor system <NUM>. The look-up table, database, or function may be stored on the electronic storage <NUM> by the manufacturer of the motor drive system <NUM>. In some implementations, the look-up table, database, and/or function may be modified via the I/O interface <NUM>.

The estimated size parameter may be a value, such as an estimated weight of the item <NUM>. In other implementations, the estimated size parameter may be a descriptor, such as "small", "medium", and "large. " In this implementations, each descriptor is associated with a pre-defined range of weights.

In some implementations, the control apparatus <NUM> is able to access indications measured by other control modules that control other zones in the conveying system <NUM>. For example, in an implementation of the conveying system <NUM> in which items are conveyed generally in the - Y direction during the ordinary conveying mode, the host controller <NUM> may provide the control apparatus <NUM> with an indication of the load on the motor <NUM>-<NUM> that was measured while the motor <NUM>-<NUM> conveyed the item through the zone <NUM>-<NUM>.

One or more aspects of the control scheme <NUM> are adjusted based on the estimated size parameter of the item <NUM> (<NUM>). The aspects include control parameters and/or the output <NUM>. The control parameters are any of the coefficients or terms that are used to define the speed control block <NUM> or the position control block <NUM>. Examples of control parameters include, without limitation, an integrator wind-up threshold of the speed control block <NUM>, the proportional gain coefficient (Kp) of the speed control block <NUM>, the integral gain coefficient of the speed control block (Ki), and/or the proportional gain (D) of the position control block <NUM>. Additionally or alternatively, one or more characteristics of the output <NUM> may be directly limited based on the estimated size of the item <NUM>. For example, the output <NUM> may be limited in a manner that changes the duty cycle of the motor driver signal <NUM>.

The example of modifying the integrator wind-up threshold of the speed control block <NUM> based on the estimate of the size parameter of the item <NUM> is discussed next. As discussed above, the speed control block <NUM> is a PI controller. Equation (<NUM>) shows the speed control block <NUM> in discrete time form, but the speed control block <NUM> also may be expressed as a summation of a proportional term (P) and in integral term (I), as shown in Equation (<NUM>): <MAT> where u is the control variable (the output <NUM> in this example), P is a proportional term, I is an integral term, Kp is the proportional gain coefficient, Ki is the integral gain coefficient, and e is the error (the speed error <NUM> in this example). The terms Kp, Ki, and e are the same as in Equation (<NUM>).

As discussed above, the error term (e) is the difference between the speed reference <NUM> from the position control block <NUM> and the measured speed <NUM>. The proportional term P is proportional to the current value of the speed error <NUM>. The integral shown in the right-most term of Equation (<NUM>) accounts for past values of the speed error <NUM> and integrates them over time to produce the integral term I. For example, if there is residual speed error that remains after the motor driver signal <NUM> is applied to the motor <NUM>, the integral term (I) seeks to eliminate this residual error by adding a control effect due to the cumulative value of the error. When the error is eliminated or reduced, the integral term (I) does not increase. However, if the residual error is large and/or persistent, the integral term (I) continues to increase and the large integral term (I) may drive the value of the control variable (the output <NUM>) to a point where the motor <NUM> cannot be driven to meet the output <NUM>. For example, the output <NUM> may correspond to a switching signal <NUM> that drives the inverter <NUM> to produce a motor driver signal <NUM> that attempts to drive the motor <NUM> at a torque that the motor <NUM> is incapable of producing. When the integral term (I) is in this condition, the speed control block <NUM> has integral windup.

To avoid integral windup or to mitigate the effects of integral windup, the value of the integral term (I) is limited or modified based on the estimated size parameter of the item <NUM>. For example, the integral term (I) and/or the integral gain coefficient (Ki) may have a maximum value or limit that varies with the estimated size parameter. In some implementations, the electronic storage <NUM> stores a look-up table or database that associates the maximum value of the integral term (I) and/or the maximum value of the integral gain coefficient (Ki) with each of a plurality of size parameters. In some implementations, the maximum value or limit on the integral term (I) and/or the integral gain coefficient (Ki) is determined from a mathematical relationship that relates the size parameter to the maximum value or limit on the integral term (I) and/or the integral gain coefficient (Ki). The mathematical relationship may be based on empirical data.

Additional or other parameters of the control scheme <NUM> may be modified based on the estimated size parameter of the item <NUM>. For example, the proportional term Kp of the speed controller <NUM> may be set based on the size parameter. The relationship between the proportional term Kp and the estimated size parameter of the item <NUM> may be stored in a look-up table or data base on the electronic storage <NUM>, or may be based on a mathematical relationship. For example, the proportional term Kp may be increased (for example, by a factor of <NUM>) when the item <NUM> has a size parameter that is associated with a large (or heavy) item. Increasing the proportional term Kp causes the output <NUM> to increase when a the position error <NUM> is indicated by the comparator <NUM>. The larger output <NUM> causes the motor <NUM> to output more torque.

Moreover, other aspects of the control scheme <NUM> in addition to or other than the control parameters may be modified for the position hold. For example, the characteristics of the output <NUM> may be modified based on the size parameter of the item <NUM>. Setting the one or more control parameters based on the estimated size parameter of the item <NUM> improves the ability of the control apparatus <NUM> to hold the item <NUM> still during the position hold.

After the aspect(s) of the control scheme <NUM> are modified or set, the control scheme <NUM> generates the output <NUM> to produce the switching signal <NUM> that controls the switches <NUM> in the inverter <NUM>, which produces the motor driver signal <NUM> such that the item <NUM> is maintained at the initial stopping location during the position hold (<NUM>). The indication <NUM> from the motor output sensor <NUM> (<FIG>) and/or the indication <NUM> from the sensor system <NUM> (<FIG>) is used to generate updated measured input values for the control scheme <NUM>, namely the updated measured position <NUM> of the rotor <NUM> and the measured rotor speed <NUM>. The position <NUM> and the speed <NUM> may be direct measurements <NUM> from the output sensor <NUM> or may be estimated using a sensor-less technique using the data <NUM> from the sensor system <NUM>.

The process <NUM> also may determine whether the rotor <NUM> is oscillating (<NUM>) based on the analyzing the data <NUM> from the output sensor <NUM>. During the position hold, the motor driver signal <NUM> drives the motor <NUM> such that the rotor <NUM> remains stationary and the item <NUM> also remains stationary. The precision and control of the motor <NUM> is enhanced due to the use of the estimated size parameter, but the rotor <NUM> may still oscillate under some conditions. Thus, the process <NUM> includes the oscillation detection at (<NUM>) to further stabilize the rotor <NUM> and the item <NUM>.

As discussed above, the output sensor <NUM> may include three Hall sensors that collectively produce a signal that represents which one of a plurality of possible discrete angular positions the rotor <NUM> is in. The direction of rotation of the rotor <NUM> as well as the presence of oscillation of the rotor <NUM> may be determined by analyzing the data <NUM> over time. For example, by comparing a series of measured angular positions of the rotor <NUM>, the direction of rotation (clockwise or counterclockwise in the X-Y plane of <FIG>) can be determined. If the data <NUM> indicates that the rotor <NUM> is moving in both the clockwise and counterclockwise directions, rotor <NUM> oscillation is likely present. To address the oscillations, the modification module <NUM> may reset one or more aspects of the control scheme <NUM> to bring it to a more stable state. For example, the modification module <NUM> may reset the integral term (I) of the speed control block <NUM> such that the control apparatus <NUM> then acts to hold the item <NUM> and the rotor <NUM> at a new position with a motor control signal <NUM> at a zero PWM duty cycle. The integral term (I) may be reset by setting the integrator memory state to zero, for example, by setting the term u(k-<NUM>) of Equation (<NUM>) to zero.

The process <NUM> may be implemented with or without the oscillation detection (<NUM>). Moreover, the oscillation detection (<NUM>) may be conditionally invoked. In some implementations, the oscillation detection (<NUM>) is only performed when the item <NUM> being held has a certain estimated size parameter and/or has experienced particular conditions. For example, in some implementations, the oscillation detection (<NUM>) is performed only on items estimated to have a size parameter of "small" or are estimated to be less than a certain weight and that have been perturbed from their initial stopping location.

The control scheme <NUM> continues to produce the updated output <NUM> (<NUM>) to hold the item <NUM> at its initial stopping location while the position control is in place. The position hold may be ended by a command from the host controller <NUM>. If the position hold ends (<NUM>), and if the conveying system <NUM> has been returned to the ordinary conveying mode, the process <NUM> returns to (<NUM>). Otherwise, the process <NUM> ends and the conveying system <NUM> stops operating.

Other implementations of the process <NUM> are possible. For example, in the example of <FIG>, the process <NUM> is configured such that the control apparatus <NUM> estimates the size parameter of the item <NUM> after the position hold is initiated. This approach can reduce computational processing and increase the speed and efficiency of the control apparatus <NUM>. However, in other implementations, the size parameter of the item <NUM> is estimated any time that the control apparatus <NUM> accesses the indication <NUM>, regardless of whether or not the position hold has been initiated. In these implementations, the estimate of the size parameter is stored on the electronic storage <NUM> and is accessed by the modification module <NUM> after initiation of the position hold.

Furthermore, the process <NUM> may be implemented to only include the aspects performed during the position hold, which are (<NUM>)-(<NUM>) in this example. In implementations in which the process <NUM> only includes the aspects performed during the position hold, the process <NUM> is only invoked with the position hold is initiated and the process <NUM> does not include (<NUM>) or (<NUM>). In these implementations, the indication of the load on the motor <NUM> is provided to the process <NUM> as an input variable and the process <NUM> ends when the position hold mode ends instead of returning to (<NUM>).

<FIG> show simulated results for the control apparatus <NUM> with the modification module <NUM> acting to hold an item during a position hold. The simulation included a three-phase permanent magnet motor with a constant load of <NUM> Newton-meter (N-m) applied on its shaft to emulate the item conveyed. In the simulation, the item conveyed was a "large" item that had a DC current draw of <NUM> A. All of the simulated data in <FIG> is plotted as a function of the same time scale. <FIG> shows the speed of the rotor <NUM> as a function of time in seconds (s), with the data <NUM> (solid line style) being the measured speed (for example, from the output sensor <NUM>) and the data <NUM> (dashed line style) being the estimated speed (for example, the speed reference <NUM>). <FIG> shows the angular position of the rotor <NUM> (for example, as measured by the motor sensor <NUM>) as a function of time. <FIG> shows the decoded hallstate from the three separate hall sensors (which indicates a discrete position of the rotor <NUM>) from the motor sensor <NUM> as a function of time. <FIG> shows measured current in amperes (A) for each phase (phase A, phase B, phase C) of the motor as a function of time.

As shown in <FIG>, just after time <NUM> seconds (s), the rotor <NUM> is perturbed and driven away from its initial position. A position hold is initiated at about time <NUM> seconds (s) to bring the rotor <NUM> back to its initial position. The control apparatus <NUM> responds by energizing the motor <NUM>, as shown by the currents in <FIG> changing after time <NUM>. The velocity of the rotor <NUM> (<FIG>) is controlled to bring the item back to its initial hold position. At around time = <NUM>, the item <NUM> and rotor <NUM> have been returned to their respective initial positions and remain at a standstill.

As discussed above, the control apparatus <NUM> may be implemented as part of a dual-zone motor controller. A dual-zone controller controls two motors and is capable of controlling two zones of a conveying system. Referring to the conveying system <NUM> of <FIG>, a dual-zone motor controller could, for example, drive the motor <NUM> and the motor <NUM>-<NUM> to thereby control the zones <NUM>-<NUM> and <NUM>-<NUM>.

<FIG> is a block diagram of a system <NUM> that includes a dual-zone motor drive system <NUM>. The dual-zone motor drive system <NUM> implements the modification module discussed above to more precisely hold items still in either or both of two zones of a conveying system during a position hold.

The dual-zone motor drive system <NUM> includes a first motor control apparatus 520a and a second motor control apparatus 520b. The first motor control apparatus 520a includes a first control module 522a, a first modification module 521a, and a first power converter 524a. The second motor control apparatus 520b includes a second motor control module 522b, a second modification module 521b, and a second power converter 524b. The control modules 522a, 522b implement respective control schemes 530a, 530b. The modification modules 521a, 521b implement the process <NUM> (<FIG>) and are similar to the modification module <NUM> (<FIG>).

The first control module 522a includes a control scheme 530a that produces a switching signal 529a. The switching signal 529a controls the power converter 524a to produce a motor driver signal 541a that drives a motor 540a. The second control module 522b includes a control scheme 530b that produces a switching signal 529b. The switching signal 529b controls the power converter 524b to generate a motor driver signal 541b that drives a motor 540b. The motors 540a and 540b are similar to the motor <NUM> and include respective stators 548a, 548b and rotors 549a, 549b.

The first modification module 521a estimates a size parameter of an item conveyed by the motor 540a based on measurements from a motor sensor 595a. The dual-zone motor control apparatus <NUM> is configured for the position hold mode. When the dual-zone motor control apparatus <NUM> is in the position control mode and a position hold is initiated, the first modification module 521a modifies one or more parameters of the control scheme 530a based on the estimated size parameter. The second modification module 521b estimates a size parameter of an item conveyed by the motor 540b based on measurements from a motor sensor 595b. When the dual-zone motor control apparatus <NUM> is in the position hold, the first modification module 521a modifies one or more parameters of the control scheme 530b based on the estimated size parameter.

The dual-zone motor controller apparatus <NUM> also includes first and second zone controllers 590a, 590b. The first zone controller 590a controls the first motor control module 522a and reports back to the host controller <NUM>. The second zone controller 590b controls the second motor control module 522b and reports back to the host controller <NUM>. The zone controllers 590a and 590b communicate with respective first and second sensors 565a and 565b, which are similar to the sensor system <NUM> (<FIG>).

The first zone controller 590a controls the first motor control apparatus 520a. For example, the first zone controller 590a may issue a command to the first motor control apparatus 520a that causes the first motor control apparatus 520a to generate the first motor driver signal 541a. The zone controller 590a may issue the command based on data from the sensor 565a and/or the host controller <NUM>. For example, the zone controller 590a may issue a start command to the first motor control apparatus 520a when data from the sensor 565a indicates that a package is approaching the zone associated with the motor 540a. The first zone controller 590a also reports information to the host controller <NUM>. For example, the first zone controller 590a may provide a failure indication to the host controller <NUM> when the first motor control apparatus 520a is in a fault mode. Moreover, the first zone controller 590a and the second zone controller 590b may communicate data or commands with each other directly.

Similarly, the second zone controller 590b controls the second motor control apparatus 520b. The second zone controller 590b may control the second motor control apparatus 520b based on information from the sensor 265b and/or the host controller <NUM>.

The first motor control apparatus 520a includes an electronic processing module 525a, an electronic storage 526a, and an I/O interface 527a. These elements are similar, respectively, to the electronic processing module <NUM>, the electronic storage <NUM>, the I/O interface <NUM> (<FIG>). The first zone controller 590a, the control scheme 530a, the control module 522a, and the modification module 521a are implemented as executable instructions that are stored on the electronic storage 526a and executed by the electronic processing module 525a. In some implementations, the electronic processing module 525a, the electronic storage 526a, and the I/O interface 527a are implemented as a microcontroller.

The second motor control apparatus 520b is configured in a similar manner. The second motor control apparatus 520b includes the second motor control module 522b and the second modification module 521b. The second motor control module 522b implements a control scheme 530b to produce the switching signal 529b. The second motor control apparatus 520b includes an electronic processing module 525b, an electronic storage 526b, and an I/O interface 527b. The second zone controller 590b, the second motor control module 522b, the second modification module 521b, and the second control scheme 530b are implemented with a executable instructions that are stored on the electronic storage 526b and executed by the electronic processing module 525a.

As discussed above, the first motor control module 522a produces the switching signal 529a and the second motor control module 522b produces the switching signal 529b. The switching signal 529a is applied to the power converter 524a to produce the motor driver signal 541a. The switching signal 529b is applied to the power converter 524b to produce the motor driver signal 541b. The configurations of the power converters 524a and 524b are discussed next.

The power converter 524a includes a network of switches 528a that have a controllable state arranged to form an inverter. The power converter 524a receives DC power from a DC power source <NUM>. The DC power source <NUM> may be, for example, a DC link or capacitive network that receives DC power from a rectifier (not shown), or the power source <NUM> may be a battery. The DC power source <NUM> is configured to provide an amount of DC power that is appropriate for the application. For example, the DC power source <NUM> may supply <NUM> Volt (V) DC power.

The power converter 524a converts the DC power from the source <NUM> into the motor driver signal 541a by modulating the DC power based on the switching signal 529a with, for example, a pulse width modulation (PWM) technique to modulate the DC power into the motor driver signal 541a. By controlling the power converter 524a with the switching signal 529a, the amplitude, frequency, and phase of the motor driver signal 541a is controlled such that the motor driver signal 541a operates the motor 540a at a particular torque, speed, and direction. The power converter 524b is configured in a similar manner.

The system <NUM> includes various sensors that monitor and/or measure data related to the motors 540a and 540b and feed the data back to the respective motor drive control 520a and 520b, as discussed below.

The first motor driver signal 541a is monitored by a sensor system 557a. The sensor system 557a includes one or more sensors that are capable of measuring an electrical quantity. For example, the sensor system 557a may include one or more sensors that measure voltage and/or current. The sensor system 557a may include one sensor per phase such that in a three-phase system, the sensor system 557a includes three sensors. The sensor system 557a produces an indication of the amount of an electrical quantity (for example, current and/or voltage) in the first motor driver signal 541a at a point in time and provides the indication to the first motor control apparatus 520a.

Each sensor in the sensor system 557a may be, for example, a Rogowski coil, a Hall effect sensor, a voltage sensor or a shunt resistor that measures the voltage across an element (such as a resistor) that has a known impedance. The sensor system 557a provides the indication to the first motor control module 522a. In some implementations, the three-phase line-to-line voltages are measured by three voltage sensors or estimated/calculated by an algorithm in firmware/software based on measured three-phase currents.

The motor driver signal 541b is measured by a sensor system 557b, which is configured similarly to the sensor system 557a. The sensor system 557b is similar to the sensor system 557a. The sensor system 557b produces an indication of property of an electrical quantity (for example, amplitude and/or phase of voltage and/or current) of the second motor driver signal 541b and provides the indication to the second motor control module 522b.

Output sensors 555a, 555b measure the speed and/or position of the rotors 549a, 549b or produce data from which the speed and/or position of the rotors 549a, 549b, respectively, may be derived. Each output sensor 555a, 555b may be, for example a sensor that measures the speed and/or position of the rotors 549a, 549b. For example, each output sensor 555a, 555b may be an encoder that is mounted to the respective rotor 549a, 549b. In some implementations, each output sensor 555a, 555b includes three Hall effect sensors or other types of sensors. In these implementations, the three sensors transmit a unique pattern of signals for each of <NUM> angular positions of the rotor.

The system <NUM> also includes motor sensors 595a and 595b that measure physical properties of the respective motors 540a and 540b during operation. The motor sensors 595a and 595b include electrical sensors and also may include environmental sensors. Examples of electrical sensors include, without limitation, current sensors, power sensors, and voltage sensors. Examples of environmental sensors include, without limitation, temperature sensors (such as thermocouples) and moisture sensors.

The motor sensor 595a provides an indication of an amount of DC current drawn by the motor 540a to the modification module 521a. The motor sensor 595b provides an indication of an amount of DC current drawn by the motor 540b to the modification module 521b. The indication of the amount of DC current drawn by the motors 540a, 540b may be a direct measurement of the current or a measurement from which the amount of DC current may be derived. Examples of measurements from which the amount DC current drawn may be derived include voltage measurements and temperature measurements.

Claim 1:
A control apparatus for a conveying system (<NUM>, <NUM>), the control apparatus (<NUM>, <NUM>, 520a, 520b) comprising:
a control module (<NUM>, 522a, 522b) configured to control a power converter (<NUM>, 524A, 524b) coupled to a motor (<NUM>, 540a, 540b); and
a modification module (<NUM>, 521a, 521b) configured to:
estimate a size parameter of an item (<NUM>) conveyed by the motor while the motor conveys the item through a zone (<NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>) of the conveying system;
determine if a hold command is received while the item is at a location in the zone associated with the motor; and
in response to receiving a hold command while the item is at a location in the zone:
modify one or more parameters (Ki, Kp) of the control module based on the estimated size parameter of the item to thereby hold a rotor (<NUM>, 549a, 549b) of the motor at a rotor hold position (<NUM>);
after modifying the one or more parameters of the control module, determine whether the rotor of the motor is moving in a clockwise direction and a counterclockwise direction based on data from a motor sensor (<NUM>, 595a, 595b); and
if the rotor is moving in the clockwise direction and the counterclockwise direction after the one or more parameters are modified, make a second modification to the one or more parameters of the control module.