Patent Description:
Forklifts and other types of industrial vehicles are expected to operate under a variety of different conditions. Further, such vehicles typically include a number of different functional systems such as a traction system to control a traveling speed of the vehicle and a steering system to control a direction in which the vehicle travels.

Under various vehicle operating conditions, it may be beneficial to control a maximum vehicle speed such as, for example, when a vehicle is moving a load.

<CIT> discloses a method for controlling a maximum vehicle speed of an industrial vehicle based on the calculated load being moved by the industrial vehicle. According to this document, the payload moved by the vehicle is measured by means of a transducer. This measured value is then processed to provide a load weight value. An instantaneous dynamic speed limit is calculated by a microcomputer based on said load weight, in addition to other values. This document therefore also discloses a control system for controlling the speed of an industrial vehicle based on factors including load weight, load elevation, heading angle and direction of truck travel.

<CIT> discloses a vehicle system provided with a controller configured to generate an output indicative of a vehicle mass estimation based on a longitudinal acceleration and a wheel torque.

<CIT> discloses a method and apparatus for processing vehicle speed signal data and vehicle push force data to estimate vehicle mass.

The present invention relates to a method for controlling a maximum vehicle speed for an industrial vehicle. This method includes determining, by a processor of the industrial vehicle, a torque applied to the traction wheel of the industrial vehicle; and determining, by the processor of the industrial vehicle, an acceleration of the industrial vehicle while the torque is applied to the traction wheel. The method also includes calculating, by the processor of the industrial vehicle, a load being moved by the industrial vehicle, based at least in part on the acceleration and the torque applied to the traction wheel. The method further includes controlling, by the processor of the industrial vehicle, the maximum speed of the industrial vehicle based on the calculated load being moved by the industrial vehicle. As an example, the load can comprise one or more trailers being pulled by the industrial vehicle. Another example, the industrial vehicle can comprise a fork assembly for carrying the load.

Preferred embodiments of the present invention relate to determining, by the processor of the industrial vehicle, whether the industrial vehicle has traveled more than a predetermined distance from previously being stopped, wherein calculating the load being moved by the industrial vehicle is delayed until the industrial vehicle is determined to have traveled more than the predetermined distance.

Preferred embodiments of the present invention relate to determining, by the processor of the industrial vehicle, the maximum speed of the industrial vehicle based on the calculated load and a grade of a path being traveled by the industrial vehicle.

Other embodiments of the present invention relate to determining, by the processor of the industrial vehicle, a rolling resistance of the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the rolling resistance.

Other embodiments of the present invention relate to determining, by the processor of the industrial vehicle, a grade of a path being traveled by the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the grade.

Additional embodiments of calculating the load in accordance with the principles of the present invention relate to calculating a set comprising at least a minimum number of individual values of the load being moved by the industrial vehicle; and averaging the at least a minimum number of individual values to determine a respective value for the set. Further embodiments of the present invention relate to collecting, by the processor of the industrial vehicle, a plurality of the sets of individual values of the load being moved by the vehicle; and averaging the respective values of the plurality of sets to determine the calculated load.

An additional embodiment of the present invention relates to defining, by the processor of the industrial vehicle, an initial value of the calculated load to be the maximum load the industrial vehicle is designed to move.

Another embodiment of the present invention relates to determining, by the processor of the industrial vehicle, when a lift mechanism of the industrial vehicle is being raised or lowered, wherein calculating the load being moved by the industrial vehicle based on the acceleration and the torque may not be performed while the lift mechanism is being raised or lowered. Additionally another embodiment of the present invention relates to, in response to determining the lift mechanism of the industrial vehicle is being raised or lowered, defining, by the processor of the industrial vehicle, the calculated load to be the maximum load the industrial vehicle is designed to move.

Additional embodiments of the present invention relate to calculating a set comprising a predetermined number of individual values of the load being moved by the industrial vehicle in response to the industrial vehicle accelerating above a first predefined value and traveling at least a predetermined distance; and averaging the predetermined number of individual values to determine a respective value for the set. The predetermined number of individual values of the load may be equal to or less than <NUM>.

An additional embodiment of calculating the load in accordance with the principles of the present invention relates to detecting, by the processor of the industrial vehicle, a first operating condition that comprises: a) an acceleration of the industrial vehicle is less than the first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value; subsequent to the first operating condition, determining, by the processor of the industrial vehicle, a second operating condition comprising the industrial vehicle, within a predefined time period after the first operating condition: a) begins accelerating again above the first predefined value, and b) has traveled the predetermined distance; in response to occurrence of the first operating condition and occurrence of the second operating condition within the predefined time period after the first operating condition, collecting, by the processor of the industrial vehicle, a further set of individual values of the load being moved by the industrial vehicle; and averaging the respective values of the plurality of sets to calculate the calculated load.

An additional embodiment of calculating the load in accordance with the principles of the present invention relates to detecting, by the processor of the industrial vehicle, a first operating condition that comprises: a) an acceleration of the industrial vehicle is less than the first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value; subsequent to the first operating condition, determining, by the processor of the industrial vehicle, a third operating condition comprising the speed of the industrial vehicle, within a predefined time period after the first operating condition, does not reach or exceed the second predefined value; in response to occurrence of the first operating condition and occurrence of the third operating condition within the predefined time period after the first operating condition, defining, by the processor of the industrial vehicle, the calculated load to be the maximum load the industrial vehicle is designed to move.

Aspects of the present invention relate to a system for controlling a maximum vehicle speed for an industrial vehicle. The system includes a memory device storing executable instructions; and a processor in communication with the memory device. In particular, the processor, when executing the executable instructions: a) determines a torque applied to the traction wheel of the industrial vehicle; b) determines an acceleration of the industrial vehicle while the torque is applied to the traction wheel; c) calculates a load being moved by the industrial vehicle based at least in part on the acceleration and the torque; and d) controls a maximum speed of the industrial vehicle based on the calculated load being moved by the industrial vehicle. As an example, the load can comprise one or more trailers being pulled by the industrial vehicle. As another example, the industrial vehicle can comprise a fork assembly for carrying the load.

Additional aspects of the present invention relate to wherein the processor when executing the executable instructions determines whether the industrial vehicle has traveled more than a predetermined distance from previously being stopped; and wherein calculating the load being moved by the vehicle is delayed until the industrial vehicle is determined to have traveled more than the predetermined distance.

Another aspect of the present invention relates to wherein the processor when executing the executable instructions determines the maximum speed of the industrial vehicle based on the calculated load and a grade of a path being traveled by the industrial vehicle.

Additional aspects of the present invention relate to the processor determining a rolling resistance of the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the rolling resistance.

Additional aspects of the present invention relate to the processor determining a grade of a path being traveled by the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the grade.

Other aspects of the present invention relate to wherein the processor when executing the executable instructions calculates a set comprising at least a minimum number of individual values of the load being moved by the industrial vehicle; and averages the at least a minimum number of individual values to determine a respective value for the set. Further, the processor when executing the executable instructions collects a plurality of the sets of individual values of the load being moved by the vehicle; and averages the respective values of the plurality of sets to determine the calculated load.

In accordance with an additional aspect of the present invention the processor when executing the executable instructions defines an initial value of the calculated load to be the maximum load the industrial vehicle is designed to move.

In accordance with another aspect of the present invention the processor when executing the executable instructions determines when a lift mechanism of the industrial vehicle is being raised or lowered, wherein calculating the load being moved by the industrial vehicle based on the acceleration and torque is not performed while the lift mechanism is being raised or lowered. Further, the processor when executing the executable instructions can define the calculated load to be the maximum load the industrial vehicle is designed to move, in response to determining the lift mechanism of the industrial vehicle is being raised or lowered.

In accordance with yet another aspect of the present invention the processor when executing the executable instructions calculates a set comprising a predetermined number of individual values of the load being moved by the industrial vehicle in response to the industrial vehicle accelerating above a first predefined value and traveling at least a predetermined distance; and averages the predetermined number of individual values to determine a respective value for the set.

In accordance with an additional aspect of the present invention the processor when executing the executable instructions detects a first operating condition that comprises: a) an acceleration of the industrial vehicle is less than the first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value; subsequent to the first operating condition, determines a second operating condition comprising the industrial vehicle, within a predefined time period after the first operating condition: a) begins accelerating again above the first predefined value, and b) has traveled the predetermined distance; in response to occurrence of the first operating condition and occurrence of the second operating condition within the predefined time period after the first operating condition, collects a further set of individual values of the load being moved by the industrial vehicle; and averages the respective values of the plurality of sets to calculate the calculated load.

In accordance with another aspect of the present invention the processor when executing the executable instructions detects a first operating condition that comprises: a) an acceleration of the industrial vehicle is less than the first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value; subsequent to the first operating condition, determines a third operating condition comprising the speed of the industrial vehicle, within a predefined time period after the first operating condition, does not reach or exceed the second predefined value; and in response to occurrence of the first operating condition and occurrence of the third operating condition within the predefined time period after the first operating condition, defines the calculated load to be the maximum load the industrial vehicle is designed to move.

Another aspect of the present invention relates to the calculated load being calculated according to: <MAT> where TC is a torque command, TIT is an inertial torque; gearbox ratio is a predetermined gearbox ratio of the industrial vehicle; gearbox efficiency is a predetermined gearbox efficiency of the industrial vehicle; driven wheel radius is a radius of the traction wheel; R% is a rolling resistance value; G% is a present grade as a percentage of a surface on which the industrial vehicle is traveling; VAg is the acceleration of the industrial vehicle in g's; and the individual load value = TVM - (an empty weight of the industrial vehicle).

Another aspect of the present invention relates to the torque applied to the traction wheel being converted an equivalent force FA and the calculated load being calculated according to: <MAT> where FA is the equivalent force value; R% is a rolling resistance value; G% is a present grade as a percentage of a surface on which the industrial vehicle is traveling; VAg is the acceleration of the industrial vehicle in g's; and the individual load value = TVM - (an empty weight of the industrial vehicle).

In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration, and not by way of limitation, specific preferred embodiments in which the invention may be practiced.

Referring now to <FIG>, a materials handling vehicle <NUM> (hereinafter "vehicle") is shown, which is a forklift truck.

The vehicle <NUM> includes a main body or power unit <NUM>, which includes a frame <NUM> defining a main structural component of the vehicle <NUM> and which houses a battery <NUM>. The vehicle <NUM> further comprises a pair of fork-side support wheels <NUM> coupled to first and second outriggers <NUM>, a driven and steered wheel <NUM> (also referred to herein as a "traction wheel") mounted near a first corner at a rear 12A of the power unit <NUM>, and a caster wheel (not shown) mounted to a second corner at the rear 12A of the power unit <NUM>. The wheels <NUM>, <NUM> allow the vehicle <NUM> to move across a floor surface.

An operator's compartment <NUM> is located within the power unit <NUM> for receiving an operator driving the vehicle <NUM>. A tiller knob <NUM> is provided within the operator's compartment <NUM> for controlling steering of the vehicle <NUM>. The speed and direction of movement (forward or reverse) of the vehicle <NUM> are controlled by the operator via a multi-function control handle <NUM> provided adjacent to an operator seat <NUM>, which control handle <NUM> may control one or more other vehicle functions as will be appreciated by those having ordinary skill in the art. The vehicle <NUM> further includes an overhead guard <NUM> including a vertical support structure <NUM> affixed to the vehicle frame <NUM>.

A load handling assembly <NUM> of the vehicle <NUM> includes, generally, a mast assembly <NUM> and a carriage assembly <NUM>, which is movable vertically along the mast assembly <NUM>. The mast assembly <NUM> is positioned between the outriggers <NUM> and includes a fixed mast member <NUM> affixed to the frame <NUM>, and nested first and second movable mast members <NUM>, <NUM>. It is noted that the mast assembly <NUM> may include additional or fewer movable mast members than the two shown in <FIG>, i.e., the first and second movable mast members <NUM>, <NUM>. The carriage assembly <NUM> includes conventional structure including a reach assembly <NUM>, a fork carriage <NUM>, and fork structure comprising a pair of forks 56A, 56B. A movable assembly <NUM> as defined herein includes the lower and upper movable mast members <NUM>, <NUM> and the carriage assembly <NUM>. The mast assembly <NUM> may be configured as the monomast described in <CIT> and assigned to the applicant, Crown Equipment Corporation.

The vehicle <NUM> of <FIG> is provided by way of example and many different types of materials handling vehicles are contemplated within the scope of the present invention. For example, <FIG> and <FIG> illustrate a tow tractor type industrial vehicle or materials handling vehicle <NUM>'. Similar to the vehicle <NUM> of <FIG>, the tow tractor <NUM>' includes a main body or power unit <NUM>', which includes a frame defining a main structural component of the vehicle <NUM>' and which houses a battery <NUM>'. A traction and steered, or driven and steered, wheel (not shown), located on a corner portion of the power unit <NUM>', drive and steer the tow tractor <NUM>'. The speed, direction of movement (forward or reverse) and steering of the vehicle <NUM>' are controlled by the operator via a multi-function control handle <NUM>. The control handle <NUM> may control one or more other vehicle functions as will be appreciated by those having ordinary skill in the art.

As shown in <FIG>, the tow tractor <NUM>' can be used to pull multiple trailers <NUM> that each have a respective linkage <NUM> for coupling to the vehicle <NUM>' or another trailer <NUM>. As explained in more detail below, when the vehicle <NUM>' starts moving forward from a stopped state, the linkages or couplings <NUM> may have some slack such that all the trailers do not initially move forward together until the slack of all the linkages or couplings <NUM> is overcome.

While the present invention is described herein with reference to the illustrated materials handling vehicles <NUM> and <NUM>', it will be apparent to those skilled in the art that the present invention may be used in a variety of other types of materials handling vehicles.

<FIG> depicts a block-level view of a computing environment for providing control logic and software applications in a vehicle control module (VCM) <NUM>, according to one or more embodiments shown and described herein. The vehicle control module <NUM> and the way it interfaces with various operator controls and other functional systems of the vehicle <NUM> may be similar to control structure disclosed in <CIT>, <CIT> and <CIT>. The VCM is one of a number of cooperating modules, such as, in addition to a traction control module (TCM) or a steering control module (SCM), that cooperatively control operation of the vehicle <NUM> or <NUM>. ' Each of the cooperating modules may comprise one or more respective processors, memories storing executable program code, and other circuitry configured to perform their individual functions, as well as communicate with one another, as described in detail below. The TCM may also be referred to herein as a "traction controller" and the SCM may also be referred to herein as a "steering controller".

In the illustrated embodiment, the VCM <NUM> includes one or more processors or microcontrollers <NUM>, input/output hardware <NUM>, network interface hardware <NUM>, a data storage component <NUM>, and a memory component <NUM>. The data storage component <NUM> and the memory component <NUM> may each be configured as volatile and/or nonvolatile memory and as such, may include random access memory (including SRAM, DRAM, and/or other types of RAM), flash memory, secure digital (SD) memory, registers, compact discs (CD), digital versatile discs (DVD), and/or other types of non-transitory computer-readable mediums. Any stored information that is intended to be available after the vehicle <NUM>, <NUM>' is shutdown and restarted may beneficially be stored in non-volatile memory. Also, depending on the particular embodiment, the non-transitory computer-readable medium, mentioned above, may reside within the VCM <NUM> and/or external to the VCM <NUM>.

Additionally, the memory component <NUM> may store software or applications that can be executed (i.e., using executable code) by the one or more processors or microcontrollers <NUM>. Thus, the memory component <NUM> may store an operating application or logic <NUM>, a traction application or logic <NUM>, a steering application or logic <NUM>, a hoist application or logic <NUM>, and accessory application(s) or logic <NUM>. The operating logic <NUM> may include an operating system and other software such as, for example, diagnostic-related applications for managing components of the VCM <NUM>. The traction application or logic <NUM> may be configured with one or more algorithms and parameters for facilitating optimal traction control for the vehicle <NUM>, <NUM>'. The steering application or logic <NUM> may be configured with one or more algorithms and parameters for facilitating optimal steering control of the vehicle <NUM> or <NUM>'. The hoist application or logic <NUM> may include one or more algorithms and parameters for facilitating optimal hoist control of the vehicle <NUM>, <NUM>', which acts as the primary load handling assembly system used to raise and lower the moveable assembly <NUM> of the vehicle <NUM>. Additionally, the accessory application or logic <NUM> may include one or more algorithms and parameters for providing control of accessories of the vehicle <NUM>, <NUM>' such as an auxiliary load handling assembly system, which performs additional tasks such as tilt and sideshift of the carriage assembly <NUM>. A local communication interface <NUM> is also included in <FIG> and may be implemented as a bus or other communication interface to facilitate communication among the components of the VCM <NUM>.

The one or more processors or microcontrollers <NUM> may include any processing component operable to receive and execute instructions (such as program code from the data storage component <NUM> and/or the memory component <NUM>). The processors or microcontrollers <NUM> may comprise any kind of a device which receives input data, processes that data through computer instructions, and generates output data. Such a processor can be a microcontroller, a hand-held device, laptop or notebook computer, desktop computer, microcomputer, digital signal processor (DSP), mainframe, server, cell phone, personal digital assistant, other programmable computer devices, or any combination thereof. Such processors can also be implemented using programmable logic devices such as field programmable gate arrays (FPGAs) or, alternatively, realized as application specific integrated circuits (ASICs) or similar devices. The term "processor" is also intended to encompass a combination of two or more of the above recited devices, e.g., two or more microcontrollers.

The input/output hardware <NUM> may include and/or be configured to interface with a monitor, positioning system, keyboard, touch screen, mouse, printer, image capture device, microphone, speaker, gyroscope, compass, and/or other device for receiving, sending, and/or presenting data. The network interface hardware <NUM> may include and/or be configured for communicating with any wired or wireless networking hardware, including an antenna, a modem, LAN port, wireless fidelity (Wi-Fi) card, WiMax card, mobile communications hardware, and/or other hardware for communicating with other networks and/or devices. From this connection, communication may be facilitated between the VCM <NUM> and other computing devices including other components coupled with a CAN bus or similar network on the vehicle <NUM> or <NUM>'.

It should be understood that the components illustrated in <FIG> are merely exemplary and are not intended to limit the scope of this disclosure. While the components in <FIG> are illustrated as residing within the VCM <NUM>, this is merely an example. In some embodiments, one or more of the components may reside external to the VCM <NUM>. It should also be understood that while the VCM <NUM> in <FIG> is illustrated as a single device; this is also merely an example. In some embodiments, the traction application <NUM>, the steering application <NUM>, the hoist application <NUM>, and/or the accessory application <NUM> may reside on different devices. Additionally, while the VCM <NUM> is illustrated with the traction application <NUM>, the steering application <NUM>, the hoist application <NUM>, and the accessory application <NUM> as separate logical components, this is also an example. In some embodiments, a single, composite software application may cause the VCM <NUM> to provide the described functionality.

It also should be understood that the VCM <NUM> may communicate with various sensors and other control circuitry of the vehicle <NUM> to coordinate the various conditions of manual operation and automatic operation of the vehicle <NUM>.

<FIG> schematically illustrates selected features of a vehicle <NUM> or <NUM>' and an example vehicle control module <NUM> that are helpful in describing vehicle control operations that utilize a traction application and steering application. The other features of the vehicle <NUM> or <NUM>' and the VCM <NUM> described with respect to <FIG> and <FIG> are omitted from <FIG> so as not to obscure aspects of the example control of vehicle operations described herein.

Referring to <FIG>, the VCM <NUM> includes a processor <NUM> illustrated to include the steering application <NUM>, the traction application <NUM> and other applications (not shown) to be executed by the processor <NUM>. In other example embodiments, the VCM <NUM> can include more than one microcontroller such as a master microcontroller and a slave microcontroller.

In <FIG>, an operator-controlled steering control input sensor <NUM> forming part of a steering device comprising the tiller knob <NUM> of the vehicle <NUM> set out in <FIG>, provides sensor output signal values defining a steering command signal or signals <NUM> (e.g., an analog voltage) to the vehicle control module (VCM) <NUM>. The operator control handle <NUM> of the vehicle <NUM>' in <FIG> and <FIG> can be similarly configured. The steering control input sensor <NUM> may also form part of another steering device comprising a steering wheel, a steering tiller or like steering element. The steering command signals <NUM> may be adjusted or otherwise conditioned and may, for example, be provided to an input pin of the processor <NUM> within the VCM <NUM>. That signal may be further conditioned and supplied as an input value to the steering application <NUM> that is being executed by the processor <NUM>. The voltage, for example, of the steering command signals <NUM>, or the rate of change of that voltage, can vary based on the position and the rate of change of position of the steering control input sensor <NUM> associated with the steering device, i.e., the tiller knob <NUM> in the illustrated embodiment. Based on the input signal the steering application <NUM> receives that corresponds to the steering command signals <NUM>, the steering application <NUM> determines a setpoint for a control attribute related to the steered wheel <NUM> of the vehicle. For example, a voltage value can be used along with a lookup table to correlate the voltage value to a particular wheel angle value for a steering setpoint or the rate of change of the voltage could be multiplied by a predetermined scaling factor to convert that rate of change into the setpoint that changes a steering motor angular velocity. Hence, the control attribute may, for example, be a steered wheel angle or an angular velocity of a steering motor <NUM> and, therefore, a value of the setpoint may be a steered wheel angle θ<NUM> or a steering motor angular velocity ω<NUM>. The steering setpoint ω<NUM> or θ<NUM> can be provided to a steering control module (SCM) <NUM>. The SCM <NUM> uses the setpoint ω<NUM> or θ<NUM> for controlling a steering motor <NUM> which positions the steered wheel <NUM> to conform to a desired position as indicated by the operator's manipulation of the steering control input sensor <NUM>. The SCM <NUM> can also provide a feedback value θ<NUM> or ω<NUM> of the control attribute related to the steered wheel. In particular, the feedback value is a measured, or actual, steered wheel angle θ<NUM> of the steered wheel <NUM> or is a measured, or actual, angular velocity ω<NUM> of the steering motor <NUM>. The SCM <NUM> can, for example, provide the feedback value θ<NUM> or ω<NUM> to the steering application <NUM>.

The steering application <NUM> additionally produces a target steering angle θT which is provided to the traction application <NUM>, which may be calculated as discussed in U. Patent Publication No. <NUM>/<NUM>. The target steering angle θT received at the traction application <NUM> from the steering application <NUM> serves as a limiting constraint that is converted by the traction application <NUM> to a traction control speed limit via a predetermined desired speed-to-wheel-angle relationship and is used in the determination of a desired traction speed setting ω<NUM> and a traction torque setpoint τ<NUM>. The traction wheel speed, or a traction motor speed, can be considered a control attribute related to the traction wheel or driven wheel <NUM> of the vehicle <NUM>, and the desired traction speed setting ω<NUM>, for either a traction motor <NUM> or the traction wheel <NUM>, and the traction torque setpoint τ<NUM>, for the traction motor, can be considered to be respective setpoints for this control attribute related to the traction wheel.

The traction torque setpoint τ<NUM> can be provided to a traction control module (TCM) <NUM>. The TCM <NUM> uses the traction torque setpoint τ<NUM> for controlling the operation of the traction motor <NUM>. The TCM <NUM> monitors the traction motor <NUM> and provides a traction feedback speed ω<NUM> to the traction application <NUM> and the steering application <NUM>. The traction feedback speed ω<NUM> may be an angular speed/velocity of either the traction motor <NUM> or the driven wheel <NUM>, as discussed further below. It may be beneficial in some embodiments to convert the traction speed, or speed feedback, ω<NUM>, to an actual linear speed of the vehicle <NUM> by the traction application <NUM>. If, for example, the speed feedback ω<NUM> was an angular speed of the traction motor <NUM>, then the traction application <NUM> could scale that value to an actual linear speed, v<NUM>, of the vehicle <NUM> based on a) a gearing ratio between the traction motor <NUM> and the driven wheel <NUM> and b) the circumference of the driven wheel <NUM>. Alternatively, if the speed feedback ω<NUM> was an angular speed of the driven wheel <NUM>, then the traction application <NUM> could scale that value to an actual linear speed, v<NUM>, of the vehicle <NUM> based on the circumference of the driven wheel <NUM>. The linear speed of the vehicle equals the linear speed of the driven wheel <NUM>, presuming there is no slip at the driven wheel.

The traction setpoint τ<NUM> is determined by the traction application <NUM> based on traction speed command signals <NUM> received from an operator controlled traction speed control input sensor <NUM>, such as the multi-function control handle <NUM> of the vehicle <NUM>, and the target steering angle θT output from the steering application <NUM>. The traction setpoint τ<NUM> is output from the traction application <NUM> to the TCM <NUM> as a torque value which results in a corresponding speed of a traction motor <NUM> under the control of the TCM <NUM>.

It is also beneficial to have the ability to control a vehicle's speed as a function of a trailer load, or fork load, in order to ensure safe braking. In particular, embodiments of the present invention relate to determining, or estimating, a vehicle's load without any means of direct measurement of that load. In some instances the vehicle <NUM> or <NUM>' when empty may weigh approximately <NUM>,<NUM> but can tow up to a <NUM>,<NUM> load.

The top part of the chart of <FIG> has a vertical axis <NUM> that represents a maximum speed for a vehicle <NUM> or <NUM>' based on the braking capacity of the vehicle <NUM> or <NUM>'. The horizontal axis <NUM> represents a towing force that may depend on a grade over which the vehicle is traveling and a weight of the vehicle's current load. The lower part of the chart of <FIG> has a horizontal <NUM> axis that represents a load being moved by the vehicle <NUM> or <NUM>' and a vertical axis <NUM> that represents the grade (in <FIG> any percentage greater than <NUM>% is a downhill grade) over which the vehicle is traveling.

The maximum allowable speed is <NUM> kilometers/hour (kph) for a vehicle with no load and traveling on a level floor. On a <NUM>% downhill grade, however, the same vehicle would have a maximum allowable speed of <NUM> kph. <FIG> is a chart similar to that of <FIG> but highlights that if the vehicle is moving a load of <NUM> metric tons or <NUM>,<NUM>, then the maximum allowable speed is <NUM> kph on a level floor and <NUM> kph for any downhill grade over <NUM>%.

One of ordinary skill will recognize that for a tow tractor <NUM>' or forklift <NUM>, the force to accelerate a vehicle can be supplied by an electric motor's or internal combustion engine's output torque. By way of example only, and not intending to limit aspects of the present invention, the description below describes using a three-phase induction motor, the traction motor <NUM> in the illustrated embodiment, and the processor <NUM> in the illustrated embodiment, to control the traction speed of the vehicle <NUM> or <NUM>'. In theory, if the output torque of such a motor is known with a high level of fidelity at any instance in time, then an equivalent force could be determined by converting the rotational torque to the equivalent linear force by way of a gearbox ratio ("gearbox ratio," as used herein, means the ratio of the driven wheel RPM to the electric motor's shaft RPM) and a diameter of the driven wheel <NUM>. The equivalent force (Newtons) applied to the vehicle <NUM> or <NUM>' would be the motor torque (Nm) times the product of Gearbox Ratio and the Gearbox Efficiency ("gearbox efficiency," as used herein, is indicative of a torque loss or power loss as a percentage of the motor torque), divided by the radius of the driven or traction wheel <NUM> (meters). An acceleration of the vehicle (meters/sec<NUM>) can be calculated by the processor <NUM> using the change in rotational or angular speed of the traction motor <NUM> (rpm), which angular speed values are received from the traction control module <NUM>, divided by <NUM> sec/min, divided by the gearbox ratio, multiplied by the rotational circumference of the driven or traction wheel <NUM> (meters) and divided by the sample rate (seconds) of the angular speed provided by the traction control module <NUM>.

However, there are additional significant forces acting on a vehicle <NUM> or <NUM>' as it accelerates that also can be accounted for when converting motor torque to an equivalent force. There is an amount of torque required to accelerate the inertia of rotational components of the vehicle <NUM>, <NUM>', such as the motor rotor, gears, and driven wheel <NUM>. There is also rolling resistance and road surface grade or incline which contribute in a positive or negative manner depending on if the vehicle <NUM> or <NUM>' is accelerating up or down an incline. Therefore, total force required for a vehicle to move a load can be calculated according to EQUATION <NUM>, which is as follows: <MAT>.

As stated above, vehicle acceleration can be calculated by converting traction motor rotational acceleration to linear acceleration, assuming there is no tire slippage. Alternatively, an accelerometer may be present on the vehicle <NUM> or <NUM>' and sense the vehicle's acceleration directly. An incline/decline grade can be determined by using the same onboard accelerometer or a combination of an accelerometer and a gyro. The torque required to accelerate the inertia of the vehicle's rotational components, such as the motor rotor, gears, and driven wheel <NUM>, can be calculated by determining the moment of inertia (i.e., rotational inertia) of the rotating components described earlier and multiplying by an angular acceleration of the traction motor <NUM>. This "rotational inertia" value can be a pre-calculated constant value, is different for different vehicles and can be easily calculated as is well known to those skilled in the art. Rolling resistance or rolling resistance force is a function of many varying vehicle and environmental factors such as vehicle and load weight, tire materials, temperature, and floor conditions. A constant rolling resistance value is estimated, which is equal to a percentage, e.g., <NUM>%. Hence, a rolling resistance force could be determined by multiplying the constant rolling resistance value, e.g.,. <NUM>, by the weight of the vehicle in combination with any load. Rolling resistance or rolling resistance force is relatively constant once the vehicle is moving.

At steady state travel (i.e., no acceleration of the vehicle) on a level surface, the rolling resistance is likely to be the most significant drag on the vehicle <NUM> or <NUM>' but under heavy acceleration, the rolling resistance can become the least significant. Therefore, as described below, in accordance with the principles of the present invention the calculations regarding a vehicle's load can be performed while the vehicle is under heavy acceleration to put greater significance to the (Force to Accelerate Total Vehicle and Load Mass) component in EQUATION <NUM> above.

Initial acceleration includes the sloppiness or the slack in the linkages or couplings <NUM> of one or more trailers <NUM> connected to and being pulled by the vehicle <NUM>, <NUM>' As the slack is taken up in each coupling, there may be a jerk or pull experienced as additional load is taken on by the vehicle <NUM>, <NUM>', which is indicated by acceleration spikes shown in the example data of <FIG>, which data shows how vehicle speed, acceleration and distance may vary over time when the vehicle <NUM> or <NUM>' accelerates from a stopped state. Therefore, it may be beneficial to delay the calculations for load until all couplings have been fully engaged.

<FIG> and <FIG> are flowcharts of an example process, in accordance with the principles of the present invention, to calculate, or estimate, a load a vehicle is moving without directly measuring or sensing that value. The process in <FIG> and <FIG> can, for example, be implemented with executable code that is executed by the VCM <NUM> described earlier. A number of operating conditions of the vehicle <NUM> or <NUM>' can be sensed using appropriate sensors located on components of the vehicle <NUM> or <NUM>'. These sensed values can be used directly by the process or can be used to derive other values which can be used by the process.

In general, and as described more fully below, the process, under certain vehicle operating conditions, calculates an individual value for an estimate of the load the vehicle is currently moving (referred to herein as an "individual load value"). After a minimum number or predetermined maximum count number of individual load values are calculated, an average of these individual load values is considered a load estimate value for a valid set (referred to herein as a "set load value"). A number of sets of set load values are calculated and a running average of the multiple set load values of these sets is maintained. The running average value is considered by the VCM <NUM> to be the load currently being moved by the vehicle <NUM> or <NUM>' (referred to herein as the "output load value" or "LoadOut"). The VCM <NUM> can then use this output load value as being the load the vehicle is presently moving when determining a maximum allowable speed of the vehicle <NUM> or <NUM>'.

As mentioned above, <FIG> and <FIG> depict one example process for calculating, or estimating, a load being moved by an industrial vehicle. For an industrial vehicle that has a movable load-supporting platform (e.g., the forks carriage <NUM> of vehicle <NUM>), the example process illustrated in <FIG> and <FIG> assumes that the forks of the industrial vehicle are not moving. When the industrial vehicle detects that the forks are either being raised or lowered while any of the steps of <FIG> and <FIG> are being performed, then control returns to step <NUM> and the calculated load of the industrial vehicle is defined to be a maximum load the industrial vehicle is designed to move, e.g., <NUM>.

To begin, in step <NUM>, a number of values are initialized that are used in later steps of the process. These values include a "count" which represents the number of individual load values that have been calculated in the current set; a "sum" value which represents a running sum for the individual load values that have been calculated in the current set; a "LDCount" value that represents the number of set load values that have been calculated; a "LDSum" value which represents a running sum of the load set values that have been calculated; a "Valid" value that represents whether a valid set of individual load values has been collected; a "dist" value which represents a distance the vehicle has traveled. Each of these values are initially set to "<NUM>". Another value initialized in step <NUM> is the "LoadOut" value which represents the output load value that the process considers to be the current load the vehicle is moving. This value is initially set to the maximum load the vehicle is designed to move, e.g., <NUM>.

In step <NUM>, the process also begins calculating a value for "dist" after it is initialized. In the discussion below, an example sample rate is considered to be <NUM> second and can be denoted as "dt". One of ordinary skill will easily recognize that larger or smaller sample rates can be utilized without departing from the scope of the present invention. The distance value "dist" can be calculated according to: <MAT> where "dist(n)" is the current distance value being calculated, "dist(n-<NUM>)" was the distance value previously calculated and the "vehicle linear speed" can be determined from the feedback value ω<NUM> discussed earlier. As mentioned, the TCM <NUM> monitors the traction motor <NUM> and provides a traction feedback speed ω<NUM>, to the traction application <NUM> and the steering application <NUM>. It may be beneficial in some embodiments to convert the traction speed, or speed feedback, ω<NUM>, to an actual linear speed of the vehicle <NUM> by the traction application <NUM>. If, for example, the speed feedback ω<NUM> was an angular speed of the traction motor <NUM>, then the traction application <NUM> could scale that value to an actual linear speed of the vehicle <NUM> based on a) a gearing ratio between the traction motor <NUM> and the driven wheel <NUM> and b) the circumference of the driven wheel <NUM>. Alternatively, if the speed feedback ω<NUM> was an angular speed of the driven wheel <NUM>, then the traction application <NUM> could scale that value to an actual linear speed of the vehicle <NUM> based on the circumference of the driven wheel <NUM>. The linear speed of the vehicle equals the linear speed of the driven wheel <NUM>, presuming there is no slip at the driven wheel.

The process continues in step <NUM> by determining whether the distance traveled by the vehicle is greater than a predetermined distance, also referred to herein as a "predefined distance" (e.g., <NUM> meter) and the acceleration of the vehicle is greater than a predetermined acceleration, also referred to herein as a "first predefined value" (e.g., <NUM>/s<NUM>). The predetermined distance is selected to be a distance where all of the slack in the linkages or couplings <NUM> of the one or more trailers <NUM> connected to the vehicle <NUM>, <NUM>' should be taken up. The predetermined acceleration is selected to be a value of sufficient magnitude representing relatively "hard" acceleration. If the distance traveled by the vehicle is not greater than the predetermined distance (e.g., <NUM> meter) and/or the acceleration of the vehicle is not greater than the predetermined acceleration (e.g., <NUM>/s<NUM>), then the process returns to step <NUM> and the loop repeats by once again performing step <NUM>. Once both conditions of step <NUM> are satisfied, the process advances to step <NUM> where an individual load value is collected or calculated. For each collected individual load value, the "count" is incremented and the "sum" is increased by the current individual load value being calculated or collected. Next, in step <NUM>, the process checks to see if a number of individual load values that have been calculated for a current set, which equals the "count" value as discussed above, equals the minimum count number or a predetermined maximum count number or value. The value for "count" can be compared to the predetermined maximum count number (also referred to herein as the "predetermined number") such as, for example, "<NUM>. " The "predetermined count number" can be any value other than <NUM>, but preferably is greater than <NUM>. It is further preferred that the predetermined maximum count number not exceed a value such as <NUM> when the sample rate is <NUM> second, more preferably not exceed <NUM> when the sample rate is <NUM> second and still more preferably not exceed <NUM> when the sample rate is <NUM> second. It is also preferred that the predetermined maximum count number and the sample rate be selected such that the count reaches the predetermined maximum count number within <NUM> seconds, preferably within <NUM> seconds and most preferably within <NUM> second from the time when the count was first incremented. This is because a more accurate "individual load value" is calculated using EQUATION <NUM> above when the vehicle is under a heavy acceleration such that a greater significance is placed on the (Force to Accelerate Total Vehicle and Load Mass) component in EQUATION <NUM> above. Hence, it is preferred that the predetermined count number be selected such that the vehicle is most likely still accelerating and has not reached a steady state travel state when the "count" value reaches the predetermined maximum count number. Once the predetermined number of individual load values is collected, i.e., the count equals the predetermined number, the value for "valid" can be set to "<NUM>" or "true", etc..

If the test of step <NUM> fails, then control passes to step <NUM> to determine if the vehicle is presently accelerating, i.e., the acceleration of the vehicle is greater than the predetermined acceleration (e.g., <NUM>/s<NUM>). If not, then a determination is made, in step <NUM>, if the value for "valid" is "<NUM>" or "<NUM>" (or "false" or "true", etc.). The first time through this portion of the process in <FIG>, the value for "valid" will be "<NUM>" and so the process returns to step <NUM>. This path represents an operating condition where the vehicle started to accelerate but did not continue long enough to collect the minimum number or predetermined maximum number of individual load values for the first set. The phrase "first time through" means that since the last time the process was initialized in step <NUM>, the process has not successfully reached step <NUM> even once.

If, however, the value for "valid" in step <NUM> is "<NUM>", then the process advances to step <NUM> and proceeds to step <NUM> of <FIG>. This path represents an operating condition where one or more set load values were able to be calculated previously but the vehicle stopped accelerating during the current set before the minimum number or predetermined maximum number of individual load values could be collected.

If in step <NUM> the vehicle is determined to be still accelerating, then the process loops back through steps <NUM> to <NUM> to collect another individual load sample, i.e., to calculate another individual load value. As mentioned above, during the first time through the process of <FIG>, once the minimum number or predetermined maximum number of individual load values or samples is collected, the value of "valid" can be changed to "<NUM>" rather than "<NUM>" and an average of all the individual load values can be calculated from "count" and "sum" in order to calculate a current set load value, i.e., current set load value = sum divided by count. The process continues with step <NUM> where the "LDCount" value is incremented and the "LDSum" value is increased by the current set load value just calculated. The running average "LoadOut" value can be updated as well based on the new values for "LDCount" and "LDSum," i.e., LoadOut = LDSum divided by LDCount.

In step <NUM>, the vehicle (e.g., the VCM <NUM>) determines if the vehicle has stopped moving and stopped accelerating. For example, the process can determine whether the vehicle's speed is less than a second predefined value (e.g., <NUM>/s) and the vehicle is presently not accelerating, i.e., its acceleration is less than a first predefined value (<NUM>/s<NUM>). One of ordinary skill will recognize that other predefined values can be substituted, and also recognize that it would be functionally equivalent to determine that the speed is above a predefined threshold value and the vehicle is presently accelerating, in step <NUM> to conclude that the opposite vehicle condition is detected (e.g., the vehicle has not stopped moving and accelerating). If both of the conditions of step <NUM> are met, then the process advances to step <NUM> and proceeds to step <NUM> of <FIG>. In step <NUM>, if the process determines that the vehicle's speed is not less than the second predefined value (e.g., <NUM>/s) and/or determines that the vehicle is presently still accelerating, i.e., its acceleration is greater than or equal to the first predefined value (<NUM>/s<NUM>), then the process continues to monitor vehicle speed and acceleration and does not move to the next step <NUM> until it detects that the vehicle has stopped moving, i.e., both conditions of step <NUM> have been met. Hence, a current set load value is calculated rather quickly during initial vehicle acceleration and then no further individual load values are calculated until both conditions of step <NUM> are met and, as will be discussed in more detail below, the vehicle has at least traveled a distance greater than the predetermined distance (e.g., <NUM> meters) and accelerated to a value greater than the first predefined value (e.g., <NUM>/s<NUM>).

In step <NUM>, the value "dist" is once again initialized to be "<NUM>". In step <NUM>, the process determines if the speed of the vehicle <NUM>, <NUM>' remains less than the second predefined value (e.g., <NUM>/s). If the vehicle <NUM>, <NUM>' remains stopped, i.e., its speed is less than the second predefined value, for more than a predetermined time period (e.g., <NUM> seconds), then the process returns to step <NUM> of <FIG> and all the previous calculations to estimate the load being moved by the vehicle are discarded and the process begins afresh with all values re-initialized. This path is represented by step <NUM> which determines if the vehicle speed remains approximately equal to "<NUM>" (e.g., below a predetermined value such as the second predefined value) and step <NUM> which determines that the vehicle-stopped condition has lasted at least for the predetermined time period (e.g., <NUM> seconds). Thus, in step <NUM>, the process returns to step <NUM>. If, in step <NUM>, the process determines that the vehicle-stopped condition has lasted for less than the predetermined time period, then the process returns to step <NUM>.

If, in step <NUM>, the process determines that the speed of the vehicle <NUM>, <NUM>' is equal to or greater than the second predefined value, then the process progresses to step <NUM>. This occurs when the vehicle slows or stops for only a brief time, less than the predetermined time period, but then its speed increases above the second predefined value. Step <NUM> determines that the vehicle acceleration is greater than approximately zero (e.g., greater than a predetermined value such as the first predefined value) and then, in step <NUM> waits until the vehicle has traveled at least a minimum distance (e.g., <NUM> meters). Under these conditions, the "sum" and "count" values are set to "<NUM>" which essentially discards the individual load values that were a part of the current set load value and starts a new set by advancing to step <NUM> where the process returns to step <NUM> of <FIG>.

At any point in the process of <FIG> and <FIG>, there is a value "LoadOut" that is available to be used by other processes (e.g., the traction application <NUM>) to control a maximum allowable traction speed of the vehicle based on the load currently being moved by the vehicle. In this way, the speed of the vehicle is prevented from exceeding a speed that would not allow the vehicle to brake within preset guidelines or requirements. The VCM <NUM> may store a look up table in its memory component <NUM> which provides to the traction application <NUM> a maximum truck speed based on inputs of "LoadOut" and grade angle or percentage and sign, where a positive sign indicates the grade is an incline and a negative sign indicates the grade is a decline in the direction of movement.

As mentioned above, in step <NUM> of <FIG>, an individual load value is calculated. One possible method of doing so in accordance with the principles of the present invention is described below.

As described above, a current linear speed of the vehicle, v<NUM> or VSM (m/s), can be sensed or calculated by the VCM using the angular speed ω<NUM> of the traction motor <NUM>. This value can be used to help detect when the vehicle speed is essentially zero and also for deriving a linear acceleration of the vehicle, VAM (m/s<NUM>). The linear acceleration of the vehicle may also be derived using the angular speed of the traction motor <NUM>, as discussed above. In addition to the vehicle acceleration being measured/calculated by VCM <NUM> as derived from samples of VSM or using the angular speed of the traction motor <NUM>, the vehicle acceleration can, alternatively, be measured directly with a separate accelerometer.

Within the TCM <NUM> or the traction motor <NUM>, sensors can be present that monitor the speed of various components. For example, the rotational speed of the electric motor shaft, MSM (RPM), can be measured by an appropriately placed sensor. This motor speed can be converted by the processor <NUM> within the VCM <NUM> into a value representing the motor speed in rad/s, MSR (rads/s), according to the formula: <MAT>.

The processor <NUM> within the VCM <NUM> can sample the current value for MSR at a preset sample rate (e.g., dt = <NUM>), which allows the change, ΔMSR (rads/s), in electric motor rotational speed that occurred between the two most recent sampled values of MSR to be calculated according to: <MAT> and the angular acceleration of the motor shaft of the traction motor <NUM> during a sample period to be calculated according to: <MAT>.

As mentioned above, there is a predetermined constant value, a rotational inertia RI (kg m<NUM>), e.g., <NUM> kgm<NUM>, which is the rotational inertia of the rotational components in the drive train of the vehicle, such as the motor rotor, gears and the driven wheel <NUM>. Thus, an inertial torque, TIT (N m), which is the inertial torque needed to accelerate the RI can be calculated according to: <MAT>.

The VCM <NUM> calculates a torque command, Tc, equal to the traction torque setpoint τ<NUM>, that is provided to the TCM <NUM> for controlling the operation of the traction motor <NUM> and is intended to be representative of the total torque currently being provided by the shaft of the traction motor. However, because of the presence of the inertial torque, TIT, the effective torque, TE, provided by the traction motor <NUM> to the drivetrain, is calculated by subtracting the inertial torque, TIT, from the torque command, Tc, as follows: <MAT>.

The electric traction motor <NUM> can be mechanically coupled with the driven wheel <NUM> by one or more gears and one or more shafts. Thus, the torque applied to the driven wheel <NUM> is based on TE but is also dependent on the gearbox ratio and the gearbox efficiency of the gears between the electric traction motor <NUM> and the driven wheel <NUM>. An example gearbox ratio may be <NUM> and an example gearbox efficiency may be <NUM>, both constants. Thus, the torque applied to the driven wheel <NUM>, TT (N m), can be calculated or determined according to: <MAT>.

Assuming, that the driven wheel shaft passes through the center of the driven or traction wheel <NUM>, the moment arm associated with the torque TT would be the radius of the driven or traction wheel <NUM>. Accordingly, a force acting on the vehicle <NUM>, <NUM>' equivalent to torque TT can be calculated; in this case an equivalent linear force can be calculated according to: <MAT>.

As mentioned above, the acceleration of the vehicle is also affected by rolling resistance and the grade of the surface over which the vehicle is traveling. The rolling resistance value, R% (no units/<NUM>), is considered to be a predetermined constant value, but can be different for different vehicles and different surfaces. The grade, G% (no units/<NUM>) has a positive or negative sign and can be detected by a sensor of the vehicle such as an accelerometer and/or gyroscope.

If the grade of the surface is uphill in the direction of travel of the vehicle <NUM>, <NUM>', then the sign of G% is positive. If the grade of the surface is downhill in the direction of travel of the vehicle <NUM>, <NUM>', then the sign of G% is negative.

Thus, the equivalent force FA can be divided into three components to achieve three different tasks: <MAT> where:.

EQUATION <NUM> can be manipulated by dividing both sides by <NUM>/s<NUM> to solve for TVM (kg): <MAT> where VAg (no units) is the vehicle acceleration in g's and is equal to VAM / (<NUM>/s<NUM>).

Thus, the load being moved by the vehicle, which the process of <FIG> and <FIG> calculates as an individual load value in step <NUM> (which can be an estimate of the weight of the trailer(s) plus cargo on or in the trailer or the weight of a load (cargo) on the forks) is determined according to: <MAT> where the empty vehicle weight is a known empty weight value for a vehicle.

In the above-described example process for estimating the load a vehicle <NUM>, <NUM>' is moving, the torque applied to the driven wheel <NUM> was converted into an equivalent linear force applied by the wheel <NUM> to the floor. Such a conversion is not required and, as described in detail below, each of the individual load values can be calculated based on torque values. As mentioned, the torque command Tc results in an effective amount of torque, TE, being applied at the shaft of the electric motor and an inertial torque, TIT, being applied to overcome the rotational inertial RI, so that TC = TE + TIT. Which can be rearranged to give the equation for the effective torque: <MAT>.

As noted above, the torque applied to the driven wheel <NUM> is based on TE but is also dependent on the gearbox ratio and the gearbox efficiency of the gears between the electric traction motor <NUM> and the driven wheel <NUM>. An example gearbox ratio may be <NUM> and an example gearbox efficiency may be <NUM>, both constants. Thus, the torque applied to the driven wheel <NUM>, TT (N m), can be calculated according to: <MAT> where TT is the torque applied to the driven wheel <NUM>.

Using the above two equations allows TT to be calculated according to: <MAT>.

Assuming, that the driven wheel shaft passes through the center of the driven wheel, the moment arm associated with the torque TT would be the radius of the driven wheel. As described above, a formula for a force, FA, acting on the vehicle equivalent to torque TT can be determined; in this case the formula for the equivalent linear force would be: <MAT>.

Combining the above two equations allows the formula for the force FA to be rewritten as: <MAT>.

As mentioned above, the acceleration of the vehicle is also affected by rolling resistance and the grade of the surface over which the vehicle is traveling. The rolling resistance value, R% (no units/<NUM>), is considered to be a predetermined constant value, but can be different for different vehicles and different surfaces. Thus, the equivalent force FA can be divided into three components to achieve three different tasks: <MAT> where:.

Thus, just as above with EQUATION <NUM>: <MAT>.

Rearranging elements in the above equation provides: <MAT>.

Just like in the earlier example embodiment, dividing both the numerator and denominator of the right-hand side by <NUM> provides: <MAT> where VAg (no units) is the vehicle acceleration in g's and is equal to VAM / (<NUM>/s<NUM>).

Substituting the above-identified formula for the equivalent force FA into the immediately-above equation allows TVM to be calculated according to: <MAT>.

Thus, the load being moved by the vehicle, which the process of <FIG> and <FIG> calculates as an individual load value in step <NUM> (which can be an estimate of the weight of the trailer(s) plus cargo on or in the trailer or the weight of a load (cargo) on the forks) is determined according to: <MAT> where the empty vehicle weight is a known value for a vehicle.

A system and a processor-implemented method have been described above, for controlling a maximum vehicle speed for an industrial vehicle, that include determining a torque applied to a traction wheel of the industrial vehicle; determining an acceleration of the industrial vehicle while the torque is applied to the traction wheel; based at least in part on the acceleration and the torque, calculating a load being moved by the industrial vehicle; and controlling the maximum speed of the industrial vehicle based on the calculated load being moved by the industrial vehicle. In some instances, the torque may be converted to an equivalent force value wherein the calculated load value is calculated based at least in part on the equivalent force value.

As one example, the load may be one or more trailers, empty or not, being pulled by the industrial vehicle. As another example, the industrial vehicle can have a fork assembly, or some other type of lift platform, for carrying the load.

When the industrial vehicle first starts, there may a period of time before operating conditions allow for calculation of the load being moved. As a result, in the above-described systems and methods, an initial value for the calculated load can be set to be the maximum load the industrial vehicle is designed to move.

As shown in <FIG>, the acceleration of the industrial vehicle from a stopped state fluctuates greatly during the first few seconds after traveling begins. Thus, it may be beneficial to wait until the industrial vehicle has traveled a minimum, predetermined distance before calculating the load being moved by the industrial vehicle. Accordingly, the above-described systems and methods can include determining whether the industrial vehicle has traveled more than a predetermined distance when starting to travel after previously being stopped, wherein calculating the load being moved by the industrial vehicle is delayed until the industrial vehicle is determined to have traveled more than the predetermined distance.

However, in EQUATION <NUM>, the term that represents the force to accelerate the total vehicle and load mass is larger when the industrial vehicle is accelerating the most and is smaller as the industrial vehicle approaches a steady state speed. Furthermore, until a load value is estimated, the example process described above uses the maximum load the vehicle <NUM>, <NUM>' is designed to move as the estimated, or calculated, load. As mentioned above, a maximum speed limit for the vehicle <NUM>, <NUM>' can be imposed based on this calculated load. Thus, it is beneficial to calculate an initial load value using the above-described process before the vehicle <NUM>, <NUM>' is able to reach a speed equal to the maximum speed limit that corresponds with a load equal to the maximum load the vehicle <NUM>, <NUM>' is designed to move. For example, if the initial calculated load is less than the maximum load the vehicle <NUM>, <NUM>' is designed to move and the maximum speed limit for the initial calculated load (hereinafter the first maximum speed limit) is greater than the maximum speed limit (hereinafter the second maximum speed limit) for a load equal to the maximum load the vehicle <NUM>, <NUM>' is designed to move, then by calculating the initial calculated load prior to the vehicle reaching a speed equal to the second maximum speed limit, a situation where the vehicle slows down to the second maximum speed limit and then is allowed to increase its speed up to the first maximum speed limit is avoided.

For an industrial vehicle, its ability to successfully brake within predetermined guidelines is affected by the industrial vehicle's weight, the load it is moving, the grade angle and the industrial vehicle's speed. Thus, the above-described systems and methods can include determining a maximum speed limit using, for example, a look up table or equation based on the calculated load being moved by the industrial vehicle or the calculated load and grade; and limiting the maximum speed of the industrial vehicle based on the determined maximum speed limit. For example, the VCM <NUM> may store a look up table including, for example, the data of <FIG>, in its memory component <NUM> and use that look up table to determine and then provide to the traction application <NUM> a maximum truck speed limit based on inputs of "LoadOut" and grade angle or percentage and sign, where a positive sign indicates the grade is an incline and a negative sign indicates the grade is a decline in the direction of movement. In the illustrated embodiment, for all positive inclines, the grade % is considered to equal <NUM> % in <FIG>. For all grades that are declines, the corresponding grade % provided in <FIG> is used. However, it is contemplated that a separate look up table or equation could be provided for positive inclines.

Other forces also affect the ability of the industrial vehicle to accelerate. One example of such a force is the rolling resistance. Also, the force resulting from the grade over which the vehicle is traversing is another example of such a force. Thus, the above-described systems and methods can include a) determining a rolling resistance of the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the rolling resistance; and/or b) determining a grade of a path being traveled by the industrial vehicle while moving the load, wherein calculating the load being moved by the industrial vehicle is based at least in part on the grade.

Rather than calculating a single estimate for the load being moved by the industrial vehicle, multiple individual load values can be calculated and then averaged together as one way to improve the accuracy of the calculated load. Thus, there can be a set of individual load values such that their average is considered to be the set load value. Additionally, a set can be defined to include at least a minimum number or a predetermined maximum number of individual load values before being considered to be a valid set. Thus, the above-described systems and methods can include calculating a set comprising the predetermined number of individual load values of the load being moved by the industrial vehicle; and averaging the predetermined number of individual load values to determine a respective set load value for the set.

In addition to a set having a predetermined number of individual load values, the collecting of the individual load values can be limited to certain operating conditions of the industrial vehicle. As one example, described earlier, calculating the load can be delayed until the industrial vehicle has traveled at least some minimum distance. Another constraint may be to calculate the load only if the industrial vehicle's acceleration is above a first predefined value. Thus, the above-described systems and methods can include calculating a set comprising a predetermined number of individual load values of the load being moved by the industrial vehicle in response to the industrial vehicle accelerating above a first predefined value and traveling at least a predetermined distance; and averaging the predetermined number of individual values to determine a respective set load value for the set.

The estimate for the calculated load can be further refined by averaging a number of set load values. Thus, the above-described systems and methods can include collecting a plurality of the sets of individual load values of the load being moved by the vehicle; and averaging the respective values of the plurality of sets to determine the calculated load.

Because raising and lowering a lift mechanism (e.g., forks) of the industrial vehicle may indicate a change in the load being moved, the calculating of the load, in the manner described above, can be discontinued when movement of the lift mechanism is detected. Further still, there may be a period of time before calculation of the load, in the manner described above, can be resumed; so, when movement of the lift mechanism is detected, the value for the calculated load can be set to equal the maximum load the industrial vehicle is designed to move. Thus, the above-described systems and methods can include determining when a lift mechanism of the industrial vehicle is being raised or lowered, wherein calculating the load being moved by the industrial vehicle based on the acceleration and the torque is not performed while the lift mechanism is being raised or lowered. Also, the above-described systems and methods can include defining the calculated load to be the maximum load the industrial vehicle is designed to move, in response to determining the lift mechanism of the industrial vehicle is being raised or lowered.

The control inputs by an operator of the industrial vehicle may not always be smooth and precise. As such, there can be instances in which the industrial vehicle may briefly stop accelerating, briefly slow down, or even briefly stop although the operator's intent is to keep accelerating. In other instances, the operator's intent may be to stop the vehicle, which could allow for a change to the load being moved. Accordingly, determining which operating conditions correspond with a vehicle briefly slowing and which operating conditions correspond to a vehicle being stopped can be useful when calculating the load being moved by the vehicle.

As such, the above-described systems and methods can include collecting sets of individual load values and then detecting occurrence of a first operating condition and then occurrence of a subsequent, second operating condition. The first operating condition comprises: a) an acceleration of the industrial vehicle is less than a first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value. The subsequent second operating condition comprises the industrial vehicle, within a predefined time period after the first operating condition, a) begins accelerating again above the first predefined value, and b) has traveled a predetermined distance. These operating conditions likely correspond to an industrial vehicle that only briefly slowed down. Thus, in response to occurrence of the first operating condition and occurrence of the second operating condition, the above-described systems and methods can include collecting a further set of individual load values of the load being moved by the industrial vehicle; and averaging the respective values of the plurality of sets to calculate the calculated load.

Also, the above-described systems and methods can include collecting sets of individual load values and then detecting occurrence of a first operating condition and then occurrence of a subsequent, third operating condition. The first operating condition comprises: a) an acceleration of the industrial vehicle is less than a first predefined value, and b) a speed of the industrial vehicle is less than a second predefined value. The subsequent third operating condition comprises the speed of the industrial vehicle, within a predefined time period after the first operating condition, does not reach or exceed the second predefined value. These operating conditions likely correspond to an industrial vehicle that has been stopped. Thus, in response to occurrence of the first operating condition and occurrence of the third operating condition, the above-described systems and methods can include defining the calculated load to be the maximum load the industrial vehicle is designed to move.

The above-described systems and methods can include a particular way to calculate, or estimate, each of the individual load values discussed above. In particular the individual load values of the load being moved by the industrial vehicle is calculated according to one of at least two different equations: <MAT> or <MAT> where FA is the equivalent force value of a torque applied to the traction wheel <NUM>; Tc is a torque command; TIT is an inertial torque; R% is a rolling resistance value; G% is a present grade as a percentage of a surface on which the industrial vehicle is traveling; VAg is the acceleration of the industrial vehicle in g's; and the individual load value = TVM - (an empty weight of the industrial vehicle).

Claim 1:
A method for controlling a maximum vehicle speed for an industrial vehicle (<NUM>; <NUM>'), comprising:
determining, by a processor (<NUM>) of the industrial vehicle (<NUM>; <NUM>'), a torque applied to a traction wheel (<NUM>) of the industrial vehicle (<NUM>; <NUM>');
determining, by the processor (<NUM>) of the industrial vehicle (<NUM>; <NUM>'), an acceleration of the industrial vehicle (<NUM>; <NUM>') while the torque is applied to the traction wheel (<NUM>);
based at least in part on the acceleration and the torque applied to the traction wheel (<NUM>), calculating, by the processor (<NUM>) of the industrial vehicle (<NUM>; <NUM>'), a load being moved by the industrial vehicle (<NUM>; <NUM>'); and
controlling, by the processor (<NUM>) of the industrial vehicle (<NUM>; <NUM>'), the maximum speed of the industrial vehicle (<NUM>; <NUM>') based on the calculated load being moved by the industrial vehicle (<NUM>; <NUM>').