Patent Description:
It is advantageous to provide a speed control system to a vehicle to control the speed of each wheel based on an accelerator pedal input. In some embodiments, a speed control system is a system that operates with all wheels at the same wheel speed. In some embodiments, the speed control system correlates an accelerator pedal input to a target wheel speed. For example, a single accelerator pedal input may provide an appropriate torque to each wheel to achieve the target wheel speed. The torque provided to each wheel may vary based on uneven, variable, and different friction surfaces, such as, for example, driving on an uneven surface or an icy road to achieve the target wheel speed.

According to the invention, there is provided a method of speed control of vehicle wheels according to claim <NUM>, a system according to claim <NUM>, and a vehicle according to claim <NUM>. Preferred features are set out in the dependent claims.

The present invention, in accordance with one or more various embodiments, is described in detail with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict typical or example embodiments. These drawings are provided to facilitate an understanding of the concepts disclosed herein and should not be considered limiting of the breadth, scope, or applicability of these concepts. It should be noted that for clarity and ease of illustration, these drawings are not necessarily made to scale.

The present invention is directed to operating a vehicle in a speed control mode. In speed control mode, the vehicle's wheels are operated at a target wheel speed for better control of the vehicle on uneven and different friction surfaces when using two or more motors. In some embodiments, the vehicle includes a normal turning mode where the vehicle is steered by changing the angle of the front wheels relative to a vertical axis (e.g., each relative to a respective vertical <NUM> of <FIG>) as well as a vehicle yaw mode where the electric vehicle is rotated about a point under the chassis of the vehicle, enabling the vehicle to pivot in a circle with a zero or minimal turning radius. Each of these modes may benefit from additional control over each wheel for improved operation. In some embodiments, the vehicle is configured to operate one or more modes in the vehicle at the same time. The vehicle yaw mode allows a vehicle to pivot around a point under the chassis of the vehicle. Yet, it should be noted that one or more vehicles may pivot under the chassis without the one or more modes of operation described herein. In some instances, the vehicles may perform one or more pivots without any modes selected or engaged. Yet, for purposes of illustration and describing examples without limiting the scope of the invention, the vehicle capabilities described to pivot around a point, turn with a reduced or minimal turning radius, initiate forward torque to one or more wheels while initiating backwards torque to one or more other wheels, among other examples, may be performed in a normal driving mode, a vehicle yaw mode, speed control mode while operating an closed-loop, an open-loop, and/or a combination of the modes, among other vehicle modes. Yet, these vehicles may perform these operations under multiple modes simultaneously, sequentially, and/or any combination thereof.

In some embodiments, the present invention employs, in reference to <FIG>, a control system <NUM> that receives input variables <NUM>-<NUM> and transmits output variables <NUM>-<NUM>. The control systems <NUM> includes a communication interface <NUM>, a processing circuitry <NUM>, sensors <NUM>-<NUM>, and motor and brake controller <NUM>. The illustrative processing circuitry <NUM> includes processor <NUM> and memory <NUM>. In an illustrative example, the control system <NUM> may be used for speed control of wheels of the vehicle (e.g., for better control on uneven, variable, and different friction surfaces when using two or more motors). The system and its components will be described in more detail below.

In some embodiments, in reference to <FIG>, the torque of each wheel <NUM>, <NUM>, <NUM>, <NUM> of the vehicle <NUM> may be independently controlled. In some embodiments, the torque of each wheel of the vehicle may be provided in proportion to the accelerator pedal input (e.g., proportionally to how far the user has pressed the accelerator pedal <NUM>, the accelerator pedal is pressed to its maximum extent, the accelerated pedal is pressed to the floor board, among other possibilities contemplated herein) and the surface friction at each wheel <NUM>, <NUM>, <NUM>, <NUM>. In some embodiments, the vehicle <NUM> may be configured, when certain conditions are met (e.g., when the speed of the vehicle is low enough and/or when the front wheels are aligned parallel to the direction of the vehicle), to operate in the speed control mode. In some embodiments, the vehicle <NUM> is configured to receive inputs from the user via a graphical user interface to engage a speed control mode. In some embodiments, the vehicle is configured to receive additional inputs, for example, type of road (e.g., pavement, sand, ice, wet, gravel) and the maximum wheel speed while operating in the speed control mode. For example, the maximum wheel speed for each wheel may be set to <NUM> mph, <NUM> mph, <NUM> mph, or any value that is listed in a lookup table for the type of surface the vehicle is on. In some embodiments, while operating in the speed control mode, the system receives an accelerator pedal input. In some embodiments, the vehicle's processing circuitry <NUM> determines, based on the accelerator pedal input, a target wheel speed for the wheels of the vehicle. For example, the target wheel speed for each wheel may be <NUM> mph, <NUM> mph, or <NUM> mph. In some embodiments, the processing circuitry may monitor the wheel speed for each wheel. In some embodiments, the processing circuitry may determine a difference based on the monitored wheel speed and the target wheel speed. In some embodiments, the processing circuitry may provide torque to each of the plurality of wheels based on the respective difference to modify the monitored wheel speed.

As referred to herein, the term "speed control mode" refers to any kind of mode, a mode triggered/entered automatically without user input, or technique for operating a vehicle such that torque provided to each of the wheels achieves a target wheel speed as determined from an accelerator pedal input. In some embodiments, the target wheel speed may be proportional to the accelerator pedal input. For example, the accelerator pedal input of <NUM>% percent corresponds to a target wheel speed of <NUM> mph when a maximum wheel speed is <NUM> mph. In some embodiments, the maximum wheel speed in the speed control mode may be adjusted. Based on the accelerator pedal being pressed <NUM>% percent, each wheel receives torque to achieve the <NUM>-mph target wheel speed. For example, a wheel that is on a slippery ground (e.g., wet surface, icy surface) may reach <NUM> mph with very little torque applied. On the other hand, a wheel that is on higher friction ground (e.g., gravel surface, pavement) may require higher torque to achieve <NUM> mph. In another embodiment, the target wheel speed may be based on different user inputs. For example, the user may input the target wheel speed with a button, a turn lever, a paddle shifter or via voice command using voice control or any other method or a combination thereof.

As referred to herein, the term "vehicle yaw mode" refers to any kind of mode, a mode triggered automatically without user input, or technique for operating a vehicle such that outer and inner wheels of the vehicle are provided with torques in opposite directions. The term "outer" refers to the wheels on the side of the vehicle that are provided with forward torque and the term "inner" refers to the wheels on the side of the vehicle on which the wheels are provided with backward torque. Accordingly, which wheels of the vehicle are considered the outer and inner wheels will depend on the direction of yaw. In some embodiments, the vehicle yaw mode includes independent torque control of each wheel which is correlated to a wheel speed at each wheel. For example, the outer wheels of the vehicle are operated with forward torques and the inner wheels of the vehicle are operated with backward torque. In some embodiments, as a vehicle moves between surfaces that change in friction, the processing circuitry <NUM> adjusts the torque to each wheel based on the monitored wheel speed and the target wheel speed. In some embodiments, the vehicle yaw mode includes independently controlling each wheel to induce a yawing of the vehicle. For example, the outer front wheel of the vehicle is operated with a first forward torque, the outer rear wheel is operated with a second forward torque, the inner front wheel of the vehicle is operated with a first backward torque and the inner rear wheel is operated with a second backward torque. In some embodiments, the inner wheel is referred to as the first side, and the outer wheel is referred to as the second side.

<FIG> shows a top-down cross-sectional view of an illustrative vehicle <NUM> in accordance with some embodiments of the present invention. In some embodiments, vehicle <NUM> may be a coupe, a sedan, a truck, a sport utility vehicle, a delivery van, a bus, or any other type of vehicle.

In some embodiments, vehicle <NUM> may include a front left wheel <NUM>, front right wheel <NUM>, rear left wheel <NUM>, and rear right wheel <NUM>. In some embodiments, vehicle <NUM> may include a motor <NUM>. Motor <NUM> may be connected to front left wheel <NUM> (e.g., via a belt, chains, gears, or any other connection device). Vehicle <NUM> may also include motors <NUM>, <NUM>, <NUM>, which are similarly connected to wheels <NUM>, <NUM>, <NUM>, respectively. In some embodiments, motors <NUM>, <NUM>, <NUM>, and <NUM> may be configured to provide forward torque or backward torque to their respective wheels <NUM>, <NUM>, <NUM>, and <NUM>. In some embodiments, vehicle <NUM> may include an accelerator pedal <NUM> configured to provide an accelerator pedal input to a vehicle dynamic controller <NUM> configured to convert the accelerator pedal input to a target wheel speed. In some embodiments, vehicle <NUM> may include a resolver <NUM> attached at motor <NUM> and configured to monitor and send a signal from the resolver <NUM> to the vehicle dynamic controller <NUM>. Further, the vehicle dynamic controller <NUM> communicates with each resolver <NUM>, <NUM>, <NUM>, <NUM> coupled at each motor (<NUM>, <NUM>, <NUM>, <NUM>) via the respective communications lines (<NUM>, <NUM>, <NUM>, <NUM>).

In some embodiments, motors <NUM>, <NUM>, <NUM>, and <NUM> may be any kind of motors capable of generating power (e.g., gas motors, gas-electric hybrids motors, electric motors, battery-powered electric motors, hydrogen fuel cell motors). In some embodiments, motors <NUM>, <NUM>, <NUM>, and <NUM> may be battery-powered electric motors configured for vehicle drive, propulsion, by utilizing a plurality of battery cells packaged together to create one or more battery modules or assemblies to store energy and release the energy upon request. In some embodiments, motors <NUM>, <NUM>, <NUM>, and <NUM> may be devices connected to a primary single motor (not shown) and configured to independently transfer power from a single motor to wheels <NUM>, <NUM>, <NUM>, and <NUM>, respectively. For example, motors <NUM>, <NUM>, <NUM>, and <NUM> may independently transfer power to wheels <NUM>, <NUM>, <NUM>, and <NUM>, respectively, such that wheels <NUM> and <NUM> spin in one direction (e.g., forward direction) and wheels <NUM> and <NUM> spin in an opposite direction (e.g., backward direction), thereby enabling vehicle <NUM> to establish a zero-degree turning radius (i.e., vehicle yawing via vehicle yaw mode). In some embodiments, a vehicle yaw mode includes independently controlling each wheel to induce a yawing of the vehicle. For example, in a vehicle yaw mode, motors <NUM> and <NUM> may be configured to provide forward torque to their wheels <NUM> and <NUM>, respectively and motors <NUM> and <NUM> may be configured to provide backward torque to their wheels <NUM> and <NUM>. In some embodiments, wheels <NUM> and <NUM> may spin with a <NUM> rpm in a one direction/clockwise (e.g., forward direction) and wheels <NUM> and <NUM> spin in the opposite direction/counterclockwise direction (e.g., backward direction), thereby enabling vehicle <NUM> to perform a smooth turn.

In some embodiments, vehicle <NUM> may include processing circuitry <NUM>. In some embodiments, the processing circuitry may include an on-board vehicle computer that is capable of controlling multiple features or capabilities of the vehicles. In some embodiments, processing circuitry may be communicatively connected with user inputs (e.g., graphical user interface) of the vehicle <NUM>, sensors of the vehicle, and transitory or non-transitory memory (e.g., memory that stores instructions for operating the vehicle).

In some embodiments, vehicle <NUM> may include a plurality of sensors. For example, some of the plurality of sensors may include sensors for determining the speed of vehicle <NUM>, the degree to which the front wheels <NUM>, <NUM> of vehicle <NUM> are turned, vehicle rotation sensor to determine the rotation of the vehicle in a vehicle yaw mode, wheel rotation sensors (e.g., resolvers <NUM>, <NUM>, <NUM>, <NUM>) to determine the wheel speed of each of the wheels <NUM>, <NUM>, <NUM>, and <NUM> of vehicle <NUM>, and accelerometer sensor.

In some embodiments, the processing circuitry of vehicle <NUM> may be capable of directly controlling features of vehicle <NUM> with or without user input. In one example, processing circuitry may be able to actuate motor <NUM> to provide a specified amount of backward or forward torque to front left wheel <NUM> to achieve a target wheel speed. Similarly, processing circuitry may be able to actuate any of motors <NUM>, <NUM>, <NUM> to provide a specified amount of backward or forward torque to wheels <NUM>, <NUM>, <NUM>, respectively, to achieve a target wheel speed.

In some embodiments, front left wheel <NUM> and front right wheel <NUM> may be connected via a drive shaft (not shown). As shown in <FIG>, the illustrated vehicle is positioned with each of the wheels on a different ground having different surface friction. For example, ground <NUM> is under the front left wheel <NUM>, ground <NUM> is under the front right wheel <NUM>, ground <NUM> is under the rear left wheel <NUM>, and ground <NUM> is under the rear right wheel <NUM>. As shown, ground <NUM>, <NUM>, <NUM>, and <NUM> may be varying and/or different ground surfaces including but not limited to road surfaces with or without gravel, rocks, boulders, rain, and snow, among other possibilities contemplated herein. <FIG> depicts a vehicle <NUM> performing a vehicle yaw with the left wheels <NUM> and <NUM> receiving backward torque and the right wheels <NUM> and <NUM> receiving forward torque. However, those skilled in the art will recognize that similar techniques can be used to perform any turn or motion including all wheels receiving torque in the same direction.

In some embodiments, when making a left yaw, vehicle <NUM> may provide backward torques (TR1 and TR2), based on the friction on the ground to achieve the target wheel speed, to the left wheels (e.g., front left wheel <NUM> and rear left wheel <NUM>). In some embodiments, the vehicle may provide forward torques (TF1 and TF2) based on the friction on the ground to achieve the target wheel speed (e.g., target wheel speed is proportional to the accelerator pedal input) to the right wheels (e.g., front right wheel <NUM> and rear right wheel <NUM>). For example, the vehicle <NUM> may provide forward torque TF1 to the front right wheel <NUM> and may further provide forward torque TF2 to the rear right wheel <NUM>. In some embodiments, the vehicle <NUM> may provide backward torques (TR1 and TR2) based on the friction on the ground to achieve the target wheel speed (i.e., target wheel speed is proportional to the accelerator pedal input) to the left wheels (e.g., front left wheel <NUM> and rear left wheel <NUM>). For example, vehicle <NUM> may provide backward torque TR1 to the front left wheel <NUM> and may further provide backward torque TR2 to the rear left wheel <NUM>. Each of the forward torques TF1 and TF2, backward torques TR1 and TR2 are independent torques and are a function of the respective wheel speed. For example, a front right wheel <NUM> is on high friction ground <NUM> (e.g., pavement, gravel) and, as a result, requires higher torque TF1 than torque TF2 for the rear right wheel <NUM>, which is on low friction ground <NUM> (e.g., icy road, sand, wet road).

In some embodiments, on a relatively consistent ground surface, the torque applied to each wheel <NUM>, <NUM>, <NUM>, and <NUM> to achieve the target wheel speed should be substantially similar, approximately the same, substantially the same, among other possibilities contemplated herein. In another embodiment, on a relatively consistent ground surface, vehicle <NUM> may consider the payload in vehicle <NUM> to provide the torque to the wheels <NUM>, <NUM>, <NUM>, and <NUM>. For example, if vehicle <NUM> is carrying heavy material in the rear of vehicle <NUM>, the torque applied to each wheel <NUM>, <NUM>, <NUM>, and <NUM> to achieve the target wheel speed will vary based on the payload. In some embodiments, sensors <NUM>-<NUM> on the vehicle <NUM> suspension may transmit a signal to the vehicle dynamic control regarding the weight at each wheel. Based on the weight at each wheel <NUM>, <NUM>, <NUM>, and <NUM>, the processing circuitry <NUM> may adjust the torque to each wheel <NUM>, <NUM>, <NUM>, and <NUM> to achieve the target wheel speed. Specifically, the torque to the rear wheels <NUM> and <NUM> may be higher to overcome the extra payload.

In some embodiments, the speed control mode can be used in any vehicle <NUM> capable of distributing torque, which can include braking, and monitoring wheel speed of each wheel <NUM>, <NUM>, <NUM>, and <NUM>. For example, the vehicle <NUM> may provide for independent distribution of torque to the right wheels <NUM> and <NUM> and the left wheels <NUM> and <NUM>. According to another example, vehicle <NUM> may provide for the independent distribution of torque and braking to the left wheels <NUM> and <NUM> and the right wheels <NUM> and <NUM>. According to another example, vehicle <NUM> may provide for the independent distribution of torque and braking to the left front wheel <NUM>, the rear left wheel <NUM>, the front right wheel <NUM> and the rear right wheel <NUM>. The foregoing enables a driver to have accurate control of the center of rotation (e.g., zero-radius turn) while also performing the rotation smoothly.

The foregoing <FIG> is merely illustrative and various modifications may be made by those skilled in the art without departing from the scope of the invention. The above-described embodiments are presented for purposes of illustration and not of limitation. For example, any combination of motors <NUM>, <NUM>, <NUM>, and <NUM> and drivetrains may be used in vehicle <NUM> in accordance with the present disclosure. In some examples, the rear motors <NUM> and <NUM> of <FIG> may be used in combination with a single front motor <NUM>. According to such a configuration, vehicle <NUM> includes three motors (one front motor and two rear motors). In another example, a single rear motor <NUM> may be used in combination with the two front motors <NUM> and <NUM> of <FIG>. According to such a configuration, vehicle <NUM> includes three motors (two front motors and one rear motor).

In some embodiments, a method for controlling a vehicle <NUM> may include determining a target wheel speed for each of one or more wheels of the vehicle <NUM>. In some embodiments, vehicle <NUM> has two wheels or three wheels or four wheels. Based on the number of wheels a vehicle <NUM> has, the method determines a wheel speed target for each wheel based on an accelerator pedal input. For example, the processing circuitry <NUM> detects an actual wheel speed for each of the one or more wheels <NUM>, <NUM>, <NUM>, <NUM> which are controlled by one or more independent motors <NUM>, <NUM>, <NUM>, <NUM> respectively. In some embodiments, the processing circuitry may determine one or more target torques for each of the one or more wheels based at least on the actual wheel speed and the target wheel speed for each of the wheel. For such an example, each of the target wheel speeds is configured with a target torque. The target torques may be adjusted by one or more independent motors <NUM>, <NUM>, <NUM>, <NUM> to achieve one or more target torques.

<FIG> shows a side view of an illustrative vehicle <NUM> on an uneven surface <NUM> (e.g., incline, decline, bank, or a combination thereof) with varying surface friction in accordance with some embodiments of the present invention. In some embodiments, vehicle <NUM> may be a coupe, a sedan, a truck, a sport utility vehicle, a delivery van, a full-size van, a minivan, a bus, or any other type of vehicle.

In some embodiments, the processing circuitry <NUM> may further monitor an incline of the vehicle based on a tilt sensor. For example, the vehicle may be in an incline position, a banked position, or a combination thereof. In some embodiments, the inclined position includes front wheels of the vehicle being in a higher position than rear wheels or the rear wheels of the vehicle being in the higher position than the front wheels. For example, the vehicle being on a hill with a front of the vehicle being higher than a rear of the vehicle. Alternatively, the vehicle may be on the incline, with the rear of the vehicle being higher than the front of the vehicle. In some embodiments, the banked position includes outer wheels (e.g., first side) of the vehicle being in the higher position than the inner wheels (e.g., second side) or the inner wheels (e.g., second side) of the vehicle being in the higher position than the outer wheel (e.g., first side). For example, the vehicle being on a hill sideways, with an inner side of the vehicle being higher than the outer side of the vehicle. Alternatively, with an outer side of the vehicle being higher that the inner side of the vehicle. In some embodiments, the processing circuitry may compare the incline of the vehicle against a vehicle incline threshold (e.g., <NUM>% incline grade, <NUM>% incline grade, etc.). The processing circuitry, in response to determining that the vehicle incline is below the vehicle incline threshold, may initiate a vehicle yaw mode or a speed control mode.

In some embodiments, vehicle <NUM> may include front left wheel <NUM>, front right wheel (not shown), rear left wheel <NUM> and rear right wheel (not shown). In some embodiments, the vehicle may be on an uneven surface <NUM>. In some embodiments, the vehicle may be on an uneven surface <NUM> with different friction surfaces (<NUM> and <NUM>) on the ground. In some embodiments, the different friction surfaces may include a lower friction surface <NUM> and a higher friction surface <NUM>. In some embodiments, based on the different friction surfaces (<NUM> and <NUM>) and the uneven surface <NUM> the vehicle is positioned on, the vehicle may provide individual torque to each of the wheels (<NUM> and <NUM>) as well as rear right wheel (not shown) and front right wheel (not shown) for the wheels to achieve the target wheel speed. For example, as the vehicle is positioned on uneven surface <NUM> (e.g., incline), the torque <NUM> applied to each of the front left wheel <NUM> and front right wheel (not shown) is lower to account for the incline than the torque <NUM> applied to the rear left wheel <NUM> and rear right wheel (not shown). Specifically, as the vehicle's front is raised because of the uneven surface <NUM> (e.g., incline), the vehicle's weight is redistributed over the wheels <NUM> and <NUM>, with more weight placed on the rear left wheel <NUM> and rear right wheel (not shown) because of the incline. In some embodiments, as a result of the uneven surface <NUM> (e.g., incline), the torque applied to each of the rear wheel <NUM> and rear right wheel (not shown) is greater than the torque applied to the front wheels <NUM> and front right wheel (not shown). For illustrative purposes, the size of the arrow <NUM> and <NUM> is indicative of the amount of torque applied (i.e., a larger arrow indicates higher torque, and a smaller arrow indicates a lower torque).

<FIG> shows a side view of an illustrative vehicle <NUM> with varying surface frictions in accordance with some embodiments of the present invention. In some embodiments, vehicle <NUM> may be a coupe, a sedan, a truck, a sport utility vehicle, a delivery van, a bus, or any other type of vehicle, such as vehicle <NUM> described above for <FIG> and vehicle <NUM> described above for <FIG>.

In some embodiments, vehicle <NUM> may include front left wheel <NUM>, front right wheel (not shown), rear left wheel <NUM> and rear right wheel (not shown). In some embodiments, the vehicle <NUM> is on an even surface <NUM> (e.g., flat or approximately flat, substantially flat) with different friction surfaces on the ground. In some embodiments, the different friction surfaces include a lower friction surface <NUM> and a higher friction surface <NUM>. In some embodiments, based on the different friction surfaces <NUM> and <NUM> on the ground, the vehicle <NUM> may provide torques <NUM> and <NUM> to each of the wheels, front left wheel <NUM>, front right wheel (not shown), rear left wheel <NUM> and rear right wheel (not shown), for the wheels to achieve the target wheel speed. In some embodiments, vehicle <NUM> may provide independent torque to each wheel <NUM> and <NUM> on vehicle <NUM>. For example, as vehicle <NUM> is positioned on even surface303 with different surface frictions <NUM> and <NUM>, the torques <NUM> and <NUM> applied to each of the front left wheel <NUM>, front right wheel (not shown), rear left wheel <NUM> and rear right wheel (not shown), is proportional to the friction surface. Specifically, as friction under each wheel <NUM>, <NUM> increases (e.g., the wheel moves from wet pavement to dry pavement), the amount of torque required for wheels <NUM>, <NUM> to maintain the target wheel speed may increase. Similarly, as friction under each wheel <NUM>, <NUM> decreases (e.g., the wheel moves from wet pavement to ice), the amount of torque required for wheels <NUM>, <NUM> to maintain the target wheel speed may decrease. In some embodiments, when the wheel speed for wheel <NUM> is higher than the target wheel speed, vehicle <NUM> may apply a brake to wheel <NUM> or provide torque in the opposite direction or may reduce power to wheel <NUM>, among other possibilities contemplated herein. Similarly, when the wheel speed for wheel <NUM> is higher than the target wheel speed, vehicle <NUM> may apply a brake to wheel <NUM> or provide torque in the opposite direction or may reduce power to the wheel, among other possibilities contemplated herein. In some embodiments, as a result of the different friction surfaces <NUM> and <NUM>, the torque applied to the rear left wheel <NUM> may be less than the torque applied to the front left wheel <NUM>. For illustrative purposes, the size of the arrow <NUM> and <NUM> is indicative of the amount of torque applied (i.e., a larger arrow <NUM> indicates higher torque, and a smaller arrow <NUM> indicates a lower torque).

<FIG> is a detailed view of a dual electric motor axel <NUM>, in accordance with some embodiments of the present invention. The illustrated dual-electric motor axel <NUM> may be positioned in the front of one or more vehicles <NUM>, <NUM>, and/or <NUM> and provide torque to front wheels <NUM> and <NUM>, may be positioned in the rear of one or more vehicles <NUM>, <NUM>, and/or <NUM> and provide torque to rear wheels <NUM> and <NUM>, or the dual-electric motor axel <NUM> may be positioned in both the front and the rear of one or more vehicles <NUM>, <NUM>, and/or <NUM> and provide torque to front wheels <NUM> and <NUM> and rear wheels <NUM> and <NUM>. The dual-electric motor axel <NUM> includes two electric motors <NUM> and <NUM>, gearboxes <NUM> and <NUM>, axels <NUM> and <NUM>, and resolvers <NUM> and <NUM>. For example, in one configuration, with the dual-electric motor axel <NUM> positioned in the front of the vehicle <NUM>, electric motor <NUM> may be coupled to a gearbox <NUM> and drive the front left wheel <NUM> (<FIG>) through the axel <NUM> with the resolver <NUM> monitoring the wheel speed. However, this is only an example, and a single electric motor may drive multiple wheels.

<FIG> depicts a flowchart of an illustrative process implementing speed control of wheels of a vehicle, in accordance with some embodiments of the present invention. In some embodiments, process <NUM> may be executed by processing circuitry <NUM> of system <NUM> (<FIG>). It should be noted that process <NUM> or any step thereof could be performed on, or provided by, the system of <FIG>.

Process <NUM> begins at <NUM>, where the processing circuitry may receive input to engage speed control mode. For example, the processing circuitry may engage the speed control mode after the user issues a command requesting such mode (e.g., by pressing an appropriate button, a paddle shifter, via an input on a graphical user interface, or any other input). Yet, referring back to <FIG>, one or more vehicles <NUM>, <NUM>, and/or <NUM> may automatically engage in speed control mode based on sensor readings described herein, without any user inputs. The processing circuitry may determine whether one or more speed control mode initialization criteria are met. For example, whether a turn amount of the front wheels <NUM> and <NUM> of the vehicle <NUM> is satisfied. In some embodiments, the processing circuitry may use a sensor connected to a steering column to determine the turn angle of the wheels <NUM> and <NUM>. In another example, obstacle avoidance sensors may monitor for any obstacles around vehicle <NUM> or in the vehicle's path. In some embodiments, the processing circuitry may engage the speed control mode after determining vehicle <NUM> is on an uneven surface <NUM> (e.g., climbing rocks, incline or decline) based on sensors in vehicle <NUM>. For example, as vehicle <NUM> is climbing a rock and one of the wheels <NUM> becomes airborne, speed control mode is able to control the speed at which the wheel rotates.

In some embodiments, the processing circuitry may determine a gap between one or more wheels of the plurality of wheels and one or more ground surfaces (e.g., based on a pressure sensor or a calculated surface friction). For example, as vehicle <NUM> is traversing an uneven surface <NUM>, the front left wheel <NUM> (<FIG>) becomes airborne with a gap between front left wheel <NUM> and the uneven ground <NUM>. In some embodiments, in response to determining a gap between front left wheel <NUM> and the uneven ground <NUM>, the processing circuitry automatically engages a speed control mode without any user inputs.

Process <NUM> continues at <NUM>, where the processing circuitry <NUM> may proceed depending on the outcome of step <NUM>. For example, if the number of engagement criteria is satisfied, the processing circuitry may proceed to step <NUM>. At <NUM>, the processing circuitry may receive an accelerator pedal input from accelerator pedal <NUM>. For example, the user may have pressed the accelerator pedal input <NUM>%. The user may press the accelerator pedal input from a range of "<NUM>" zero (i.e., no accelerator pedal input) to <NUM>% (i.e., pedal to the floor board). In some embodiments, the accelerator pedal input may be preprogramed and automatically provided a preset pedal input to the each of the motors.

In some embodiments, step <NUM> starts ramping up torque in an open-loop mode (i.e., without adjusting the torque based on monitoring any sensor data). For example, in the open-loop mode, the torque applied to each wheel ramps up regardless of the accelerator pedal input. Referring back to <FIG>, for example, consider one or more motors <NUM>, <NUM>, <NUM>, and <NUM> configured to provide and/or generate torque to one or more of the wheels <NUM>, <NUM>, <NUM>, and <NUM>, respectively. In this example, motors <NUM> and <NUM> may generate open-loop forward torque to wheels <NUM> and <NUM>, respectively. Further, motors <NUM> and <NUM> may generate open-loop backward torque to wheels <NUM> and <NUM>, respectively. In some embodiments, the left side of the vehicle including the front left wheel <NUM> and the rear left wheel <NUM> is a first side <NUM> of the vehicle <NUM> and the right side of the vehicle <NUM> including the front right wheel <NUM> and the rear right wheel <NUM> is a second side <NUM> of the vehicle <NUM>. In some embodiments, the processing circuitry may provide the torque to each of the plurality of wheels to achieve the target wheel speed by providing an open-loop forward torque to wheels <NUM> and <NUM> on a first side <NUM> of the vehicle <NUM> and by providing an open-loop backward torque to wheels <NUM> and <NUM> on a second side <NUM> of the vehicle <NUM>. For example, the processing circuitry may concurrently provide forward torque to wheels <NUM> and <NUM> on the first side <NUM> of the vehicle <NUM> and provide backward torque to wheels <NUM> and <NUM> on the second side <NUM> of the vehicle <NUM> (e.g., to perform vehicle yaw). In some embodiments, the second side <NUM> is opposite to the first side <NUM>. For example, to perform smooth vehicle yaw, the vehicle <NUM> provides forward torque to wheels <NUM> and <NUM> on first side <NUM> of the vehicle <NUM> and backward torque to wheels <NUM> and <NUM> on the second side <NUM> of the vehicle <NUM>.

In some embodiments, the processing circuitry <NUM> may provide the open loop torque to each of the plurality of wheels to achieve the wheel slippage. For example, providing an open-loop forward torque to wheels <NUM> and <NUM> on a first side <NUM> of the vehicle <NUM> by providing an open-loop backward torque to wheels <NUM> and <NUM> on a second side <NUM> of the vehicle <NUM>. Upon a wheel slipping, the processing circuitry may engage a closed-loop mode, where the processing circuitry monitors the wheel speed. The torque is increased or decreased until the monitored wheel speed corresponds to the target wheel speed. In some embodiments, step <NUM> starts ramping up torque in a closed-loop mode where the amount of torque provided to the wheels is based on the amount the accelerator pedal is pressed. For example, in the closed-loop mode, the torque applied to each wheel is based on sensors monitoring vehicle outputs, e.g., wheel speed, regardless of the accelerator pedal input. For example, consider one or more motors <NUM>, <NUM>, <NUM>, and <NUM> configured to provide and/or generate torque to one or more of the wheels <NUM>, <NUM>, <NUM>, and <NUM>, respectively based on the monitored wheel speed at each wheel. In this example, motors <NUM> and <NUM> may generate closed-loop forward torque to wheels <NUM> and <NUM>, respectively. Further, motors <NUM> and <NUM> may generate closed-loop backward torque to wheels <NUM> and <NUM>, respectively. For example, the amount of torque may be proportional to the amount the accelerator pedal is pressed or may be determined using a lookup table. In another example, the amount of torque may be based on a difference between the monitored wheel speed and the target wheel speed.

Process <NUM> continues at <NUM>, where the processing circuitry may proceed depending on the outcome of step <NUM>. For example, if the accelerator pedal input is received, the processing circuitry may proceed to step <NUM>. At <NUM>, the processing circuitry may determine a target wheel speed based on the accelerator pedal input. For example, in response to receiving an accelerator pedal input, the processing circuitry determines a target wheel speed based on how far the user pressed the accelerator pedal. In one embodiment, the target wheel speed is proportional to how far the user has pressed the accelerator pedal. For example, an accelerator pedal input of <NUM>% is proportional to <NUM>% of the maximum target speed. The range that the wheel may spin can be adjusted. In some embodiments, the range is set for a speed of <NUM>-<NUM> mph with the maximum target speed of <NUM> mph. In this example, an accelerator pedal input of <NUM>% is proportional to <NUM> mph. In another example, an accelerator pedal input of <NUM>% is proportional to <NUM> mph. In another embodiment, the target wheel speed is a user issued command requesting such target wheel speed (e.g., by pressing an appropriate button, a paddle shifter, via an input on a graphical user interface, or any other input). In an aspect of this embodiment, the target wheel speed may be adjusted with the appropriate button, a paddle shifter, or via an input on a graphical user interface. In this configuration, the amount the user has pressed the accelerator pedal does not correlate to the wheel speed.

At <NUM>, the processing circuitry may monitor the wheel speed of each of a plurality of wheels of the vehicle. In some embodiments, the wheel speed is determined by one or more vehicle sensors (e.g., resolvers) configured to measure the rotation of the vehicle motors (e.g., at the motor shaft). The vehicle's sensors monitor the sensor signal of the motors to determine the wheel speed for each wheel and transmit this information to control circuitry. In another embodiment, the wheel speed is determined by one or more vehicle sensors configured to measure actual wheel speed (e.g., a sensor coupled to the axle). In some embodiments, the control circuitry may be communicatively connected to one or more sensors that provide data indicative of the wheel speed for each wheel of the vehicle. For example, sensors <NUM> of <FIG> may provide data indicative of wheel speed for each wheel <NUM>, <NUM>, <NUM>, <NUM> of vehicle <NUM>.

In some embodiments, process <NUM> continues at <NUM>, where the processing circuitry <NUM> may determine, for each wheel, a difference based on the monitored wheel speed and the target wheel speed. In some embodiments, the processing circuitry may determine that monitored wheel speed is less than the target wheel speed, monitored wheel speed is approximately equal to the target wheel speed, or monitored wheel speed is greater than the target wheel speed. In some embodiments, process <NUM> continues at <NUM>, where processing circuitry performs a decision tree. Specifically, based on monitored wheel speed (M) and target wheel speed (T), processing circuitry determines whether differences exists and provides torque to each wheel based on the respective differences.

In some embodiments, if the differences are zero ("<NUM>") (i.e., M=T) or if the differences are within a small number (e.g.,± <NUM> mph), the process <NUM> continues at <NUM>, by maintaining the torque applied to each wheel and going back to step <NUM>, to receive the current accelerator pedal input from the user. For example, the accelerator pedal input may vary over time as the operator of the vehicle adjusts the pedal position.

In some embodiments, if the monitored wheel speed (M) is less than the target wheel speed (T) for a wheel at <NUM> (i.e., M<T), the process <NUM> continues at <NUM>, to provide increased torque to the wheel based on the difference to achieve the target wheel speed. In some embodiments, the processing circuitry <NUM> may actuate any one of motors <NUM>, <NUM>, <NUM>, and <NUM> to provide increased torque to corresponding wheel <NUM>, <NUM>, <NUM>, or <NUM>.

In some embodiments, if the monitored wheel speed (M) is greater than the target wheel speed (T) for a wheel at <NUM> (i.e., M>T), the process <NUM> continues at <NUM> to provide reduced or opposite torque to the wheel based on the difference to achieve the target wheel speed. In some embodiments, the processing circuitry <NUM> may actuate any one of motors <NUM>, <NUM>, <NUM>, and <NUM> to provide reduced or opposite (i.e., opposite of the direction of the monitored wheel speed) torque to any one of wheels <NUM>, <NUM>, <NUM>, and <NUM>. In some embodiments, the processing circuitry applies mechanical braking to provide opposite torque to a wheel exceeding (e.g., greatly exceeding) the target wheel speed.

In some embodiments, the torque applied to each of the plurality of wheels based on the respective difference (irrespective of the difference being greater than or less than the target wheel speed), to achieve the target wheel speed, may be performed by a proportional-integral-derivative controller (PID controller). In some embodiments, the processing circuitry implements the PID controller and may continuously calculate a respective difference between the monitored wheel speed (M) and the target wheel speed (T) and apply torque based on proportional, integral, and derivative terms (denoted P, I, and D, respectively). For example, if only a small difference between the monitored wheel speed and target wheel speed is observed, change in the torque applied is proportionally small.

In some embodiments, the torque applied to each of the plurality of wheels based on the respective difference may be based on a threshold. In some embodiments, the processing circuitry <NUM> may determine a difference between the monitored wheel speed (M) and the target wheel speed (T) of greater than a first threshold (e.g., ±<NUM> mph of target wheel speed), and in response, may provide a first torque (e.g., <NUM>% torque) to each wheel with the difference to achieve the target speed. In some embodiments, the processing circuitry may determine a difference of greater than a second threshold (e.g., ±<NUM> mph of target wheel speed). In response, the processing circuitry may provide a second torque (e.g., maximum torque) to each wheel with the difference to achieve the target speed.

It will be understood that process <NUM> is merely illustrative and various modifications can be made within the scope of the invention.

<FIG> shows a graph of an example of accelerator pedal input and target wheel speed for a speed control mode in accordance with some embodiments of the present invention. In some embodiments, the graph data of <FIG> may be used by step <NUM> of <FIG> to determine a target wheel speed from the accelerator pedal input. In some embodiments, the range for the target wheel speed is adjusted based on the ground the vehicle is on. As shown in <FIG>, the accelerator pedal input correlates proportionally to the target wheel speed. While the range for the target wheel speed may be adjusted, this example illustrates a range of <NUM>-<NUM> mph. Target wheel speed <NUM> shows the target wheel speed (e.g., in MPH) allowed based on accelerator pedal input, which is represented as a percentage along the x-axis of graph <NUM>. For example, when an accelerator pedal input increases to <NUM>%, target wheel speed increases to <NUM> mph, and the processing circuitry can adjust the torque to each wheel and/or apply braking to achieve the target wheel speed <NUM>. Table <NUM> reproduced below, shows data represented on the graph. It should be noted that each of Table <NUM> and <FIG> is provided for example purposes and should not be interpreted as limiting the present disclosure, as various other relationships between the target wheel speed and the accelerator pedal input may be implemented, such as other linear, non-linear, and/or exponential relationships, among other variations contemplated herein.

<FIG> depicts a system diagram of an illustrative system <NUM> including control systems <NUM>, input variables <NUM>-<NUM> and output variables <NUM>-<NUM>, in accordance with several embodiments of the invention. As shown, the control systems <NUM> includes a communication interface <NUM>, a processing circuitry <NUM>, sensors <NUM>-<NUM> and motor and brake controller <NUM>. The illustrative processing circuitry <NUM> includes processor <NUM> and memory <NUM>. In an illustrative example, the control system <NUM> may be used for speed control of wheels of the vehicle (e.g., for better control on uneven and different friction surfaces when using two or more motors). In some embodiments, system <NUM> is incorporated into vehicle <NUM> of <FIG> to control the speed of wheels <NUM>, <NUM>, <NUM>, and <NUM>.

Processing circuitry <NUM> may include hardware, software, or both, implemented on one or more modules configured to provide control of front wheels <NUM> and <NUM> and rear wheels <NUM> and <NUM> of a vehicle. In some embodiments, processor <NUM> includes one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or any suitable combination thereof. In some embodiments, processor <NUM> is distributed across more than one processor or processing units. In some embodiments, processing circuitry <NUM> executes instructions stored in memory for managing a quad motor vehicle <NUM>, or a triple motor vehicle (not shown) or a dual motor vehicle (not shown). In some embodiments, memory <NUM> is an electronic storage device that is part of processing circuitry <NUM>. For example, memory <NUM> may be configured to store electronic data, computer instructions, applications, firmware, or any other suitable information. In some embodiments, memory <NUM> includes random-access memory, read-only memory, hard drives, optical drives, solid-state devices, or any other suitable memory storage devices, or any combination thereof. For example, memory may be used to launch a start-up routine. The communication interface <NUM> may include electrical terminals, level shifters, a communications module, connectors, cables, antennas, any other suitable components for transmitting and receiving information, or any combination thereof. For example, the communications interface <NUM> may include an Ethernet interface, a Wi-Fi interface, an optical interface, a sensor interface (e.g., for interacting with one or more sensors <NUM>-<NUM>), any other suitable wired or wireless interface, or any combination thereof. To illustrate, the communication interface <NUM> may include a sensor interface having a power supply, analog-to-digital converter, digital-to-analog converter, signal processing equipment, signal conditioning equipment, connectors, electrical terminals, any other suitable components for managing signals to and from a sensor, or any combination thereof. To illustrate further, a sensor interface may be configured to communicate with the resolvers <NUM> (e.g., a rotary encoder coupled to the motor shaft or gear shaft), vehicle yaw sensor <NUM>, orientation sensor <NUM>, speed sensor <NUM>, accelerometer sensor <NUM> (e.g., a vibration sensor), steering wheel angle sensor <NUM>, any other suitable sensor or any combination thereof. In some embodiments, communications interface <NUM> is configured to transmit a control signal indicative of a motor command to each wheel <NUM>, <NUM>, <NUM>, <NUM> of vehicle <NUM>. In some embodiments, communication interface <NUM> is incorporated into processing circuitry <NUM>, motor/brake controller <NUM>, or both.

In some embodiments, the system may include resolvers <NUM>, vehicle yaw sensor <NUM>, orientation sensor <NUM>, speed sensor <NUM>, accelerometer sensor <NUM> and steering wheel angle sensor <NUM>. In some embodiments, the control circuitry may be communicatively connected to resolvers <NUM> (e.g., a sensor) which may be coupled to a motor shaft of the motor (e.g., motor <NUM>, <NUM>, <NUM>, <NUM> from <FIG>). In some embodiments, the resolvers <NUM> may be a type of transformer/electromagnetic transducer that measures the degrees of rotation of the motor shaft <NUM>. In some embodiments, resolvers <NUM> correspond to resolvers <NUM> and <NUM> of <FIG>. For example, the resolvers <NUM> may be a type of rotary transformer including a cylindrical rotor and stator. Although a resolver is shown, any suitable sensor configured to measure the rotation of the motor shaft <NUM> (or other any other mechanically connected shaft or axle) may be used. In some embodiments, the control circuitry may be communicatively connected to one or more resolvers <NUM> that provide data indicative of the wheel rotation of each of front wheels <NUM> and <NUM> and rear wheels <NUM> and <NUM>. In some embodiments, front wheels <NUM> and <NUM> and rear wheels <NUM> and <NUM> correspond to wheels <NUM>, <NUM>, <NUM>, and <NUM> of the vehicle of <FIG>. In some embodiments, based on the data provided by the resolvers, the control circuitry may determine if a wheel is slipping and monitor the wheel speed while in the speed control mode. In some embodiments, the control circuitry may be communicatively connected to one or more vehicle yaw sensors <NUM> that provide data indicative of the rotation of the vehicle. In some embodiments, the control circuitry may be communicatively connected to one or more orientation sensors <NUM> that provide data indicative of the orientation of vehicle <NUM> in 3D space. For example, orientation sensors <NUM> may provide data indicative of a pitch angle of vehicle <NUM>, yaw angle of vehicle <NUM>, and roll angle of vehicle <NUM>. In some embodiments, the control circuitry may be communicatively connected to a speed sensor <NUM> that provides the current speed of vehicle <NUM>. In some embodiments, the control circuitry may be communicatively connected to an accelerometer sensor <NUM> that provides the current acceleration of vehicle <NUM>. In some embodiments, the control circuitry may be communicatively connected to a steering wheel angle sensor <NUM> that determines the wheel angle of the steerable wheels (e.g., <NUM> and <NUM>) of vehicle <NUM>. In some embodiments, in response to determining the wheel angle of the steering wheels with the steering wheel angle sensor <NUM>, the control circuitry may turn the steerable wheels to reduce the wheel angle before initiating another driving mode. Examples of other driving modes include a vehicle yaw mode and a speed control mode. In some embodiments, the determined steering angles may be compared to a threshold angle (e.g., <NUM> degrees) before engaging vehicle yaw mode. In some embodiments, before engaging the vehicle yaw mode and in response to the determined wheel angle exceeds the threshold angle, the control circuitry may turn the steering wheel to reduce the wheel angle. In some embodiments, in response to engaging the vehicle yaw mode, the vehicle <NUM> may cause the wheels <NUM> and <NUM> of the vehicle to automatically straighten relative to a vertical axis <NUM> of the vehicle <NUM>. In some embodiments, before engaging speed control mode, the control circuitry may determine whether the vehicle <NUM> is stopped or moving below a maximum vehicle speed (e.g., <NUM>, <NUM>, or <NUM> MPH).

Illustrative system <NUM> of <FIG> may be used to perform any or all of the illustrative steps of process <NUM> of <FIG>. Illustrative system <NUM> of <FIG> may be used to control any of the wheel/motor configurations shown in <FIG>, in accordance with the present disclosure. In some embodiments, not all components shown in <FIG> need to be included in system <NUM>.

It will be apparent to those of ordinary skill in the art that methods involved in the present disclosure may be embodied in a computer program product that includes a computer-usable and/or readable medium. For example, such a computer-usable medium may consist of a read-only memory device, such as a CD-ROM disk or conventional ROM device, or a random access memory, such as a hard drive device or a computer diskette, having a computer-readable program code stored thereon. It should also be understood that methods, techniques, and processes involved in the present disclosure may be executed using processing circuitry. The processing circuitry, for instance, may be a general-purpose processor, a customized integrated circuit (e.g., an ASIC), or a field-programmable gate array (FPGA) within any vehicle <NUM>.

Claim 1:
A method for speed control of wheels (<NUM>, <NUM>, <NUM>, <NUM>) of a vehicle (<NUM>), the method comprising:
determining a gap between one or more wheels of a plurality of wheels of a vehicle and one or more ground surfaces;
automatically engaging a speed control mode in response to determining the gap; and
in the speed control mode:
determining a target wheel speed for each of the plurality of wheels of the vehicle based on an accelerator pedal input (<NUM>);
monitoring wheel speed of each of the plurality of wheels (<NUM>, <NUM>, <NUM>, <NUM>) of the vehicle (<NUM>);
determining, for each of the plurality of wheels, a difference based on the monitored wheel speed and the target wheel speed (<NUM>); and
adjusting a torque to each of the plurality of wheels based on the respective difference to achieve the target wheel speed, wherein each of the plurality of wheels is connected to a respective motor (<NUM>, <NUM>, <NUM>, <NUM>) configured to provide the respective torque (<NUM>, <NUM>).