Resistance measurement by electrical parameters
Patent Information
- Application Number
- DE102024116546
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-28
- Filing Date
- 2024-06-12
- Publication Date
- 2025-01-02
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
INTRODUCTIONElectric vehicles may include monitoring systems. Such systems may detect problems indicative of a potential condition of the electric vehicle or a sensor thereof. Moreover, efficient control of drive and motor torque when driving on certain surface types may help reduce energy loss and improve battery performance of electric vehicles.SUMMARYThis technical solution is generally directed to resistance sensing systems, methods, and devices. Vehicles may include mode selection for a driving mode. Vehicle operations such as wheel spin, torque ramps, or torque vectoring may be controlled via mode selection. For example, vehicle operation may vary between asphalt and gravel lines, mud, sand, and wet grass. A user selection may be inadvertently entered or be skipped upon the vehicle being changed between surfaces. For example, the user of a vehicle traveling through sand may select a slip set point to allow a significantly higher wheel speed than the vehicle speed, but may then travel on an asphalt road without deselecting this option. This may result in wheel spin, which may negatively impact vehicle dynamics and tire wear, and increased energy consumption from a battery, which may force battery charging earlier and thus result in increased emissions of, for example, carbon dioxide. With this technical solution, an operating mode of a vehicle can be detected and adjusted, whereby the engine torque can be controlled. By efficiently controlling the engine torque, battery performance can be maintained while improving travel on any terrain. In this way, greenhouse gas emissions associated with power generation are reduced.At least one aspect is directed to a system. The system may include one or more processors of a computer system coupled to a memory.The one or more processors may determine the rolling resistance of a vehicle based on the power input to one or more engines of the vehicle and a speed of the vehicle. The one or more processors may select a slip set point for the vehicle based on the rolling resistance and a friction level associated with a surface on which the vehicle is travelling. The one or more processors may communicate the slip set point to a drive control system of the vehicle to control the one or more motors.At least one aspect is directed to a method. The method may be performed by one or more processors coupled to the memory of a computer system. The method may include determining rolling resistance of a vehicle based on the energy input to one or more engines of the vehicle and a speed of the vehicle. The method may include selecting a slip set point for the vehicle. The slip set point may be based on the rolling resistance and a friction level associated with a surface on which the vehicle is travelling. The method may include communicating the slip set point to a drive control system of the vehicle to control one or more motors.At least one aspect is directed to an electric vehicle. The electric vehicle may include a plurality of electric motors. The vehicle may include a computer system including one or more processors coupled to the memory. The one or more processors may detect a problem of an engine of the electric vehicle. The one or more processors may determine the rolling resistance of the electric vehicle based on the energy input to the plurality of electric motors of the electric vehicle and a speed of the electric vehicle. The one or more processors may select a slip set point for the electric vehicle based on the rolling resistance and a friction level associated with a surface on which the electric vehicle is travelling. The one or more processors may communicate the slip set point to a propulsion control system of the electric vehicle to control the plurality of electric motors.These and other aspects and implementations are discussed in detail below. The above information and the following detailed description include illustrative examples of various aspects and implementations, and provide an overview or framework for understanding the nature and character of the claimed aspects and implementations. The drawings provide an illustrative representation and further understanding of the various aspects and implementations, and are part of this specification. The above information and the following detailed descriptions and drawings include illustrative examples and should not be considered as limiting.BRIEF DESCRIPTION OF THE DRAWINGSThe accompanying drawings are not to scale. Like numerals and labels in the various drawings identify like elements. For clarity, not every component needs to be labeled in each drawing. In the drawings, the following applies: FIG. 1 illustrates an example block diagram of an example resistance sensing system. FIG. 2 illustrates an example electric vehicle. FIG. 3 illustrates a multi-dimensional data structure including partitions corresponding to the operating parameters of the electric vehicle. FIG. 4 illustrates a multi-dimensional data structure including partitions corresponding to the operating parameters of the electric vehicle. FIG. 5 illustrates an example data flow diagram for a resistance sensing system, such as the resistance sensing system of FIG. 1. FIG. 6 illustrates an example method for resistance sensing. FIG. 7 is a block diagram illustrating an architecture for a computer system that may be employed to implement elements of the systems and methods described and illustrated herein.DETAILED DESCRIPTIONThe following is a more detailed description of various concepts related to and implementations of methods, apparatus, and systems for resistance sensing. The concepts introduced above and discussed in detail below may be implemented in numerous ways.This disclosure relates generally to adjusting vehicle operation based on a sensed rolling resistance level associated with a driving surface. Rolling resistance may include or refer to a force that counteracts a wheel rolling over a roadway, such as a deformation of the surface, a deformation of the tire, hysteresis losses due to heat, or a surface roughness over which the tire travels up and down as the roadway crosses. Rolling resistance may vary depending on temperature, humidity, tire design, or other environmental or vehicle variables. Vehicles may function differently under various conditions, such as on snow, mud, or asphalt. A first portion of the drive energy of the vehicle can generate drive forces for transporting the vehicle. A second portion of the propulsion energy of the vehicle may be transferred to a travel surface (e.g., through rolling resistance; displacement or heating of mud, snow, etc.). A vehicle may include user-selectable options for various driving modes that correspond to various surface parameters, such as rolling resistance, friction, temperature, or humidity. However, the detection of a surface type may vary with time and distance (e.g., transitions from earth to sludge), may not be intuitive, or may not be selected by the user. It may be a challenge to detect the condition of a surface so that one can adapt to changing terrain.With this technical solution, the rolling resistance can be determined by comparing the energy supplied to a drive system with a change in speed or height of a vehicle. This technical solution may compare the detected resistance to a current operating mode. The comparison may include a comparison with a partition in (or a distance from) a multi-dimensional data structure, the data structure including dimensions corresponding to roll or drag, friction, or other surface parameters. This technical solution may adjust a selected mode based on the comparison, for example, by selecting a different partition of the multi-dimensional data structure corresponding to the sensed rolling resistance.FIG. 1 illustrates an example system 100 for resistance sensing. The system 100 may include, be connected to, or otherwise communicate with a computer system 102 of an electric vehicle. The system 100 may use a network 101 to exchange information with a propulsion control system 150 of the electric vehicle. The computer system 102 may be part of, reside within, or otherwise be integrated with a component of the electric vehicle. The computer system 102 may include, be connected to, or otherwise communicate with the propulsion control system 150 via the network 101. The network 101 may include computer networks such as Ethernet networks, controller area network 101 (CAN), local interconnect networks 101 (LIN), peripheral component interconnect express (PCIe), the Internet, local, wide area, metro or other area networks 101, intranets, cellular networks 101, satellite networks 101, and other communication networks 101 such as Bluetooth or mobile data telephone networks. The network 101 may be public or private. The various elements of the system 100 may communicate over the network 101.The computer system 102 may include or be part of the vehicle. The computer system 102 may include or be connected to at least one electric motor 104. The computer system 102 may include or be connected to at least one mode selector vehicle sensor 106. The computer system 102 may include or be connected to at least one terrain energy engine 108. The electric vehicle system 102 may include at least one user interface 110. The computer system 102 may include at least one mode selector 112. The computer system 102 may include at least one data repository 120. The electric motor 104, the vehicle sensor 106, the terrain energy engine 108, the user interface 110, or the characteristic selectors 112 may each include at least one processing unit or other logic device, such as a programmable logic array engine, or a module configured to communicate with the vehicle data repository 120 or database. The electric motor 104, the vehicle sensor 106, the terrain energy engine 108, the user interface 110, or the characteristic selectors 112 may be separate components, a single component, or part of the computer system 102. The computer system 102 may include hardware elements such as one or more processors, logic devices, or circuits. For example, computer system 102 may include one or more components or structures having the functionality of computing devices shown in FIG. 7.The data repository 120 may include one or more local or distributed databases and may include a database management system. The data repository 120 may include computer data storage or memory and may store one or more data structures, such as a powertrain parameter 122, a performance characteristic 124, or operating parameter 126.A powertrain parameter 122 may refer to or be associated with one or more data points of a powertrain. For example, a powertrain parameter 122 may include an efficiency or loss associated with a powertrain component or powertrain. Efficiency may vary depending on operating mode (e.g., front or rear engines), vehicle load, such as the weight of the occupants (e.g., indicated by the number of occupants), or weight of the load or presence of a trailer. The efficiency may vary depending on ambient conditions such as temperature or humidity. The efficiency may vary depending on the battery voltage (e.g., correspondingly higher currents may increase the resistance losses). The efficiency may vary depending on the mode, torque bias, or the like. For example, a mode with a slip set point, torque limit, or torque vectoring parameter that is not tuned to a surface may result in the vehicle applying more or less wheel spin than an adjusted mode, which may increase the overall energy consumption of the vehicle. A powertrain parameter 122 may vary depending on the selected wheel or condition of a vehicle. A powertrain parameter 122 may include a moment of inertia I for rotating components such as wheel assemblies, axles, or electric motors 104.A performance characteristic 124 may refer to or include a data structure including a slip set point, an accelerator pedal characteristic, a steering characteristic, a torque vectoring characteristic, or another characteristic with various operating parameters 126 for a vehicle. A performance characteristic 124 may correspond to a user selected or automatically detected mode of operation. The performance characteristic 124 may correspond to a partition of a multi-dimensional data structure, such as the structure of FIG. 3 or FIG. 4 For example, detection of a smooth trip or low drive driving surface may be an indication of selection of an eco or snow mode. Each mode may correspond to a performance characteristic 124, such that a user input or an input of an autonomy system may cause a different output. For example, a performance characteristic 124 corresponding to a snow mode may include operating parameters 126 such that steering inputs may be attenuated, torque and swing range limited to a maximum value, and a slip set point may be selected that allows moderate wheel spin. In a performance characteristic 124 corresponding to an eco mode, operating parameters 126, such as steering inputs, may be unattenuated, the torque may be limited to a second value, and a slip set point may be selected that allows for easy wheel spin. Selection of an operating parameter 126 may be based on a selected performance characteristic 124, or an operating parameter 126 may be selected separately (e.g., windshield wipers may be turned on in response to rain sensing without selection of a performance characteristic 124).An operating parameter 126 may include any component of the performance characteristic 124, or a separately controlled setting. For example, the operating parameter 126 may include a left-to-right or front-to-rear torque bias, a slip set point, or a setting for automatic headlights or windshield wipers. A slip set point may refer to a target difference between the wheel speed and the vehicle speed, such as a fixed offset (e.g., miles per hour) or a percentage difference (e.g., 20%). The propulsion control system 150 may limit the torque of one or more electric motors 104 to reduce wheel slip above a slip set point. By torque preload may be meant sharing of torque between the motors, for example, based on desired driving characteristics (e.g., crossing or under steer), based on available wheel grip (e.g., reducing power to a wheel on a low grip surface relative to tires on a high grip surface, such as submerged rear wheels when launching a boat or wheels located on a soft shoulder of a road), or to simulate a mechanical differential, for example, to allow or, in the case of torque vectoring, cause a vehicle to turn to navigate an apex.References to operating parameters 126 may include, or separately relate to, operating parameters 126. For example, one or more operating parameters 126 may be selected separately from a performance characteristic 124, such as according to manual user input. Some operating parameters 126 may be shared between the performance characteristics 124, such that an operating parameter 126 may not indicate a selection between such performance characteristics 124. Some modes may not correspond to one or more operating parameters 126. For example, a power output threshold may not be associated with a power characteristic 124 for a towed vehicle.The computer system 102 may include or interface with one or more electric motors 104 of an electric vehicle. The electric motor 104 may be electrically coupled to a battery and an inverter. An electric vehicle may include more than one electric motor 104. For example, a vehicle may include one motor 104 per axle (e.g., it may include a front motor 104 and a rear motor 104) or one motor 104 per wheel. Electric motors 104 may couple to a plurality of wheels or axles through a differential. Each electric motor 104 may be coupled to a battery via a separate inverter. An inverter may be connected to the electric motor 104 via an output terminal, such as via a switching component of the inverter. The inverter may invert the DC battery power into an AC signal having any number of phases. For example, an inverter may include one or three phases for a single phase or three phase AC motor 104.Energy input to the electric motor 104 may relate to or include current or voltage sensing at the electric motor 104 such that the electric motor 104 applies more or less torque or force. The power may be provided via a controller for the electric motor 104, via an inverter, or a battery. For example, the energy provided to an electric motor 104 may be determined based on a battery voltage and an inverter current. The amount of energy may refer to a requested, sensed, or other amount of energy. The amount of energy supplied to the electric motors 104 may be detected from the electric parameters of the motors. For example, a known voltage, current, temperature-current relationship, or efficiency may be used to determine the amount of energy provided to the electric motor 104. For example, sensors 106 may sense an amount of current and a voltage provided to the motor such that computer system 102 may determine an energy contribution. The voltage or current may be measured at the inverter, battery, electric motor 104, or other component.As indicated above, different vehicles may include different engines. For example, a first electric vehicle may include four wheels and four corresponding electric motors 104. The electric motors 104 may be referred to as a front right motor (MFR), front left motor (MFL), rear right motor (MRR), or rear left motor (MRL). MFR and MFL may collectively be referred to as front wheel engines; MRR and MLR may collectively be referred to as rear wheel engines. The energy, rolling resistance or other sensing may be performed on a vehicle, axle or engine basis.The computer system 102 may include or be connected to one or more vehicle sensors 106 configured to acquire information related to operation of a vehicle or an environment interacting therewith. The vehicle sensors 106 may determine a voltage or current to detect the state of the motor. The vehicle sensors 106 may include shunt resistors, Hall effect sensors 106, thermistors, or current transformers. Each sensor 106 may monitor one or more batteries, inverters, electric motors 104, or the like.The sensors 106 may detect signs of vehicle operation. The sensors 106 may be part of or in communication with the drive control system 150. For example, the propulsion control system 150 and the computer system 102 may include the same or different instances of the sensors 106 described herein. The sensors 106 may detect a height or grade using an accelerometer, a global navigation satellite system (GNSS), a wheel speed difference, or a predefined grade or grade associated with a characteristic curve accessible to the electric vehicle. The sensors 106 may include wheel speed or spin sensors 106, or interface sensors 106, such as throttle position sensors 106, or steering angle sensors 106, corresponding to a user interface 110 or an autonomy system. The sensors 106 may include occupant sensors 106 that indicate a number of occupants, or other sensors 106 that may generate data indicative of the load or weight of the vehicle (e.g., current or voltage sensors 106 that sense acceleration on a planar portion of an asphalt road, or strain sensors 106 for the bed of a truck or suspension component).The sensors 106 may sense environmental conditions. For example, rain sensors 106 may detect the presence of rain from a change in reflectivity of a wet or dry windshield or a conductivity of sensor 106 changing from a dry to a wet state. Temperature sensors 106 may sense a temperature of the surrounding environment, which may be an indication of a surface temperature of a driving surface with which the vehicle comes in contact, or another portion of an environment that the vehicle is traversing. For example, the temperature sensor 106 may include a thermistor, a thermocouple connected to one or more vehicle components, or an integrated circuit. The ambient temperature can be determined on the basis of a measurement of the ambient temperature or a component of the electric vehicle with a known offset in this respect. For example, an ambient temperature may be detected from a temperature difference between two points in a liquid circuit for battery coolant.The computer system 102 may include or be connected to one or more terrain energy engines 108. The terrain energy engine 108 may determine rolling resistance or other characteristics of a driving surface, such as friction degrees. For example, the terrain energy engine 108 may determine the resistance based on various sensor data and their derivatives, including energy input to one or more engines of the vehicle and a speed of the vehicle. The computer system 102 may determine the rolling resistance based on a comparison of the power supply to the one or more electric motors 104 and the operation of the vehicle. Operation of the vehicle may include, or vary depending on, powertrain efficiency, speed, altitude, traction, speed of the vehicle, wheel slip, vehicle load, or accumulation of material (e.g., mud or ice) on the wheels.The terrain energy engine 108 may determine the amount of energy supplied to an engine. The amount of energy provided to the motor may be based on sensor data from sensors 106 of the electric motor 104, the inverter, the battery, or other components of the electric vehicle.The terrain energy engine 108 may determine an overall vehicle loss. The total vehicle loss may include, for example, drag and parasitic loss of various electrical circuits (e.g., radios, headlights, or power supplied to computer system 102). The total vehicle loss determined by the terrain energy engine 108 may include powertrain losses according to powertrain parameters 122 and various sensor data. Powertrain parameters 122 may include efficiencies of electric motors 104, inverters, bearings, or spin losses of differentials or wheels. Losses may be linear or non-linear depending on speed and may also have temperature dependencies, air pressure dependencies, voltage dependencies, etc. The terrain energy engine 108 may use all information of the sensors 106 based on such dependencies (e.g., adjusting an efficiency to a temperature or motor efficiency to a battery voltage). Some powertrain parameters 122 may vary depending on road surface or vehicle equipment. For example, a wheel weight powertrain parameter 122 may vary based on wheel size, mass, or moment of inertia. The powertrain parameter 122 may include corresponding losses for one or more wheel types or conditions. For example, a wheel that travels through or has recently traveled through mud or snow may have higher losses due to accumulated material than a clean and dry wheel that may be used on attached surfaces.The terrain energy engine 108 may determine an accumulated amount of kinetic and potential energy. For example, the terrain energy engine 108 may determine the kinetic energy of a vehicle based on an indication of its mass, such as the number of occupants or the amount of charge, or based on a predefined weight of the vehicle. The kinetic energy may also be determined based on a vehicle speed indication, which may be received from, for example, a vision or radar system of the vehicle, or determined based on powertrain operation by the propulsion control system 150. For example, the computer system 102 may receive a vehicle speed indication from the propulsion control system 150 and determine the vehicle kinetic energy based thereon.The terrain energy engine 108 may determine the energy transferred to driving surfaces (e.g., rolling resistance) by subtracting other energy (e.g., total vehicle loss and accumulated kinetic and potential energy) from the energy provided to the electric motors 104. Such an energy transfer can be an indication of a driving dynamic surface. The terrain energy engine 108 may provide the rolling resistance to the characteristic selector 112 to control various portions of vehicle operation. The controller, in turn, may affect the operation of the terrain energy engine 108 (e.g., by increasing or decreasing wheel slip, or by selecting another driving surface based on which the terrain energy engine 108 may detect another drag). That is, the terrain energy engine 108 and the characteristic selector 112 may iteratively determine a rolling resistance value and characteristic selections to control the electric vehicle.The computer system 102 may include or be connected to one or more user interfaces 110. The user interface 110 may be designed, constructed, or operable to communicate with a user, such as an occupant of an electric vehicle. The user interface 110 may be integrated with the vehicle or include or be implemented by a mobile device such as a mobile phone. The user interface 110 may receive a selection of a driving mode of the vehicle. The driving mode may correspond to various operating parameters 126 of the vehicle, such as a slip set point, a torque bias, or various other operating parameters 126 of a steering characteristic 124. The driving mode may include (e.g., correspond to) a slip set point, which may be the same slip set point corresponding to, or may be different from, the resistance detected by the terrain energy engine 108. For example, the user interface 110 may receive a user selection of a driving mode and then detect an interface that does not correspond to the selected driving mode. The differences in the driving mode may vary depending on the temperature, friction, humidity, speed, or other dimensions of a multi-dimensional data structure.The user interface 110 may provide a notification to a user that includes a prompt, such as an indication of a selected rolling resistance or road surface. The request input may indicate a selection of a difference between a previously selected road surface and a detected road condition. The request input may include an indication of the energy savings associated with the change in operating mode. The user interface 110 may receive a response to the request input, such as confirmation or rejection of an operation change to the detected driving surface. The user interface 110 may provide an indication of the detection of a selected mode without a request to reject the change or omit an indication of a change of a selected mode. The user interface 110 may include a selection or display of a manual driving mode selection. The user interface 110 may include a "car" mode in which the vehicle automatically selects a mode based on sensing rolling resistance or other indicators. The user interface 110 may include one or more manual modes. The one or more manual modes may include a lock, override, or other function (e.g., an option field, checkbox, or flag bit) to indicate that the selected mode is not to be disabled, or a variable selection (e.g., a scroll bar for the options "low", "medium", and "high") to select an allowable threshold difference between a selected mode and a detected range before the selected mode is disabled.A number or type of driving modes displayed by the user interface 110 may be different from a number or type of driving modes that are automatically selectable. For example, the multi-dimensional data structure may include hundreds or thousands of partitions or gradient functions, and a display may include, for example, four, eight, or twelve selectable options.The computer system 102 may include or be connected to one or more characteristic selectors 112. The characteristic selectors 112 may select a portion of a multi-dimensional data structure based on the resistance. For example, one dimension of the multi-dimensional data structure may be the rolling resistance of the vehicle; various dimensions may include, or otherwise be based on, the rolling resistance of the front engine or the rolling resistance of the rear engine. A dimension of the multi-dimensional data structure may include or be based on a friction level of the travel surface that the characteristic selector 112 may receive from the propulsion control system 150 or another element of the computer system 102. A dimension of the multi-dimensional data structure may include or be based on a temperature received from the sensors 106, a wheel type from the powertrain parameters 122, or other indications of an operating mode of the electric vehicle. A three-dimensional data structure can contain, for example, the axes resistance, friction and temperature. The characteristic selector 112 may select a multi-dimensional data structure (e.g., a two-dimensional plane of the three-dimensional data structure) based on the temperature. The characteristic selectors 112 may thereafter select a slip set point or other vehicle operating parameter 126 based on a two-dimensional plane search selected based on temperature (e.g., based on a location corresponding to a partition associated with a slip set point). In other words, the characteristic selector 112 may select a target slip value for the vehicle based on the rolling resistance and a friction level associated with a surface on which the vehicle is traveling.The characteristic selector 112 may provide a slip set point to a drive control system 150 of the vehicle to control the one or more motors. Providing the slip set point may include communicating a slip set point including a slip speed or percentage, or selecting a driving mode based on a partition. For example, the characteristic selector 112 may select the slip target value based on a search in the multi-dimensional data structure that includes different partitions corresponding to different types of driving surfaces (e.g., based on a driving mode corresponding to the driving surface).The characteristic selector 112 may compare one or more sensed driving modes, slip targets, or other control parameters associated therewith to a user-selected driving mode. A threshold difference between the surfaces may vary based on a metric distance, such as a Euclidean distance, the Manhattan difference, the Tschebyscheff distance, the cosine similarity, or the Minkowski difference. A metric distance may meet a tolerance if it is less than a predefined threshold, and may not meet the tolerance if the metric distance exceeds the predefined threshold. Some selections or tolerance fills may be based on other operating conditions of a vehicle (e.g., the characteristic selector 112 may determine that a vehicle traveling at 75 miles per hour does not climb on a rock wall or that a vehicle having slip angles less than one percent does not cross sand cones).The characteristic selector 112 may determine that a user-selected operating mode, partition, or corresponding operating parameter 126 (e.g., drive mode slip setpoint) does not meet a tolerance based on the search in the multi-dimensional data structure having rolling resistance and friction level, and may override the user-selected slip setpoint with a drive mode slip setpoint, torque bias, or other parameter, drive mode, or partition detected by the computer system 102 based on the determination. The characteristic selector 112 may override or omit an override based on a selection based on a lock, override, up-to-date of the input, or other function input in the user input.Satisfaction may refer to the position of a data value with respect to a threshold (e.g., less than or greater than a one-dimensional threshold or within the metric distance of a multi-dimensional data structure such as a detection range, a tolerance threshold, or a partition position). Satisfaction may include a temporal component, such as a minimum time to recognize terrain prior to adjusting an operating parameter 126, or a minimum time between receiving a user input and overwriting the user input. The characteristic selector 112 may determine satisfaction of a threshold value by a slip target value other than a selected slip target value for a rolling resistance and a friction level of a surface crossing the vehicle based on a search in a multi-dimensional data structure having the rolling resistance and the friction level. For example, the other slip set point may be a slip set point corresponding to a selected driving mode. The characteristic selector 112 may determine whether a difference between the slip targets or one of the slip targets satisfies a tolerance threshold from a search in a multi-dimensional data structure having the rolling resistance and the friction level. For example, one of the slip set points associated with the selected driving mode or the slip set point based on the driving surface may satisfy the threshold value, but the other may not. The characteristic selector 112 may replace a slip target value that does not satisfy the threshold value with a slip target value that satisfies the threshold value. For example, the characteristic selector 112 may replace a selected or sensed slip set point with another slip set point and provide the replaced slip set point to the drive control system 150 based on satisfaction of the tolerance threshold.The system 102 may include, be associated with, or otherwise communicate with one or more propulsion control systems 150. The drive control system 150 may control a motor or a combination of motors to control power supply to various motors and braking of the associated wheels. For example, the drive control system 150 may maintain vehicle stability according to a detected steering angle, a throttle position on the road, etc. The propulsion control system 150 may operate based on one or more operating parameters 126 or performance characteristics 124 displayed or communicated by the computer system 102.In some cases, the computer system 102 may improve, adjust, or otherwise modify aerodynamic characteristics of the vehicle 205. The computer system 102 may improve aerodynamics of the vehicle 205 to reduce drag or friction. For example, the computer system 102 may activate a wing of the vehicle 205, close one or more windows of the vehicle 205, close a bed cover of the vehicle 205, or activate or actuate other components, flaps, or covers of the vehicle 205 that may reduce drag or otherwise improve aerodynamics of the vehicle 205.The computer system 102 may use information determined by the terrain energy engine 108 or the characteristic selector 112 to control the aerodynamics of the vehicle 205. The computer system 102 may proactively adjust vehicle aerodynamic features (e.g., an active wing, window openings, or a bed cover) to further improve the efficiency of the vehicle 205.To do so, the computer system 102 may determine, based on the chassis input data, how a change in the surface or terrain (e.g., as determined via one or more components of the computer system 102) will affect the overall energy consumption of the vehicle during travel. The terrain energy engine 108 may determine the amount of energy consumed or lost by aerodynamic friction or drag by subtracting the amount of energy lost by terrain or surface drag from total consumption. In response to determining that the amount of aerodynamic friction is greater than or equal to a threshold, the computer system 102 may activate or actuate a component of the vehicle 205 that may reduce the amount of aerodynamic friction while the vehicle 205 is in motion. For example, in response to determining that the amount of aerodynamic friction is greater than or equal to a threshold, the computer system 102 may activate or actuate one or more wings, window, or bed cover, wherein the amount of aerodynamic friction may be determined via the output of the terrain energy engine 108. The computer system 102 may automatically activate or actuate the component to reduce aerodynamic friction and increase the range of the vehicle. The computer system 102 may provide a notification, alert, or prompt to a user or driver of the vehicle 205 via a display device of the vehicle 205 with a suggestion or prompt to activate or actuate the component of the vehicle 205 to reduce aerodynamic friction and thus increase the range of the vehicle 205. The computer system 102 may inform the user or rider of the vehicle 205 how conditions (e.g., loading during camping flight, open windows, or rear seat bicycles) may affect a predicted range of the vehicle 205.FIG. 2 illustrates an example cross-sectional view of an electric vehicle 205 in which at least one battery pack 210 is installed. Electric vehicles 205 may include, but are not limited to, electric trucks, sport utility vehicles (SUVs), electric vans, electric automobiles, electric cars, electric bicycles, electric scooters, electric cars, electric cars or commercial vehicles, hybrid vehicles or other vehicles such as marine or air transport vehicles, aircrafts, helicopters, submarines, boats, or drones. The battery pack 210 may also be used as an energy storage system for supplying power to a building such as a residential building or business buildings. The electric vehicles 205 may be fully electric or partially electric (e.g., plug-in hybrid), and further, the electric vehicles 205 may be fully autonomous, partially autonomous, or unmanned. For example, electric vehicles 205 may include autonomous controllers to launch, couple, decouple, or exit a charging station. The electric vehicles 205 may also be human-operated or non-autonomous. Electric vehicles 205, such as electric trucks or automobiles, may include on-board battery packs 210, batteries or battery modules 215, or battery cells 220 for powering the electric vehicles. The electric vehicle 205 may include a chassis 225 (e.g., a frame, an interior frame, or a support structure). The chassis 225 may support various components of the electric vehicle 205. The chassis 225 may extend over a front portion 230 (e.g., a hood portion), a body portion 235, and a rear portion 240 (e.g., a trunk, payload, or luggage compartment portion) of the electric vehicle 205. The di wasBattery pack 210 may be installed or disposed in electric vehicle 205. For example, the battery pack 210 may be installed on the chassis 225 of the electric vehicle 205 in one or more of the front portion 230, the body portion 235, and the rear portion 240. The battery pack 210 may include or be connected to at least one bus bar, e.g., a current collecting element. For example, the first bus bar 245 and the second bus bar 250 may include electrically conductive material to connect or otherwise electrically couple the battery, battery modules 215, or battery cells 220 to other electrical components of the electric vehicle 205 to provide electrical power to various systems or components of the electric vehicle 205.Both a front wheel set 255 and a rear wheel set 260 may include a tire for contacting a driving surface. A tire transfers energy to the driving surface in the form of heating, surface deformation, or displacement of materials of the driving surface, collectively referred to as rolling resistance. The front wheel set 255 may include a front wheel motor 265 configured to receive power from the battery pack 210 to drive a tire of the front wheel set 255. The rear wheel set 260 may include a rear wheel motor 270 configured to receive power from the battery pack 210 to propel a tire of the rear wheel set 260. Both the front motor 265 and the rear motor 270 may communicate with the computer system 102 and the drive control system 150 via the network. The electric motors 265, 270 may include a controller in network communication with the computer system 102 or an inverter or controller electrically connected to the electric motors 265, 270, which in turn are connected to the network 101 of FIG. 1.FIG. 3 shows a multi-dimensional data structure 300 including partitions corresponding to operating parameters 126 of electric vehicle 205. The illustrated data structure 300 includes two dimensions, a wheel drag axis 302 and a friction axis 304, for ease of illustration. Various data structures may include any number of dimensions, such as temperature, speed, drag, humidity, or the number of engines. Dimensions may be discrete or continuous and include partitions. Partitions may refer to a contiguous or non-contiguous portion of the multi-dimensional data structure 300 associated with a driving mode that includes operating parameters 126 such as a slip set point, a torque bias, a torque limit, a speed limit, or a torque vectoring parameter. Some operating parameters 126 may be included in a performance characteristic 124. A partition may include the same set of operating parameters 126, or one or more sub-sections, gradients, etc. For example, the illustrated sand partition 306 may correspond to a sand travel mode with predefined operating parameters 126, include one or more sub-partitions, each including a set of predefined operating parameters 126, or include a gradient of different operating parameters 126 (e.g., corresponding to an amount of rolling resistance or an amount of friction that may vary depending on particle size or moisture content).The partitions may vary depending on the dimensions of the data structure 300. For example, the grass partition 310 and the mud partition 308 may have overlapping levels of friction with the sand partition 306, but may vary depending on rolling resistance (e.g., the grass or moisture may hold the ground together to prevent deformation, which may reduce energy loss). Gravel partition 312 may have a similar rolling resistance to grass partition 310, but the degree of friction may vary. By selecting a suitable partition, excessive wheel spin or "spin away" of the road surface can be avoided. This reduces energy consumption for propelling the vehicle, extends battery life and range, and reduces emissions associated with charging the vehicle.A rock crawler partition 314 corresponds to high friction compared to the other illustrated modes. The rock crawler partition 314 may correspond to a user-selected driving mode (e.g., a "rock crawler" mode). According to the systems and methods described herein, the terrain energy engine 108 may determine an amount or range of rolling resistance, and the terrain energy engine 108 (or another component of the system 100 of FIG. 1 ) may determine an amount or range of friction level. A corresponding detection range is referred to as detection range 316. The sensing area 316 may include a central point or portion based on a sensed range and a distance therefrom based on a tolerance 320. For example, in the illustrated data structure 300, the sensing area 316 does not overlap with the selected rock-crawler partition 314, but the selected rock-crawler partition 314 is within a tolerance threshold 320 (e.g., distance metric). Some detection areas 316 may be a point or a line. Some tolerances 320 may be no greater than a sensing range 316 or point. Some tolerances 320 may extend in different dimensions over different amounts, or selectively apply to one or more partitions, or depend on user input to the user interface 110.FIG. 4 shows another multi-dimensional data structure 400 that includes partitions corresponding to the operating parameters 126 of the electric vehicle 205. As shown, another detection region 402 does not overlap with the selected rock-crawler partition 314. Furthermore, no tolerance threshold extends between the sensing region 402 and the selected rock-crawler partition 314. Depending on the non-satisfaction of the threshold (e.g., the threshold zero), the computer system 102 may select a partition that does not correspond to the selected rock-crawler mode. For example, the computer system 102 may select the grass partition 310 based on the overlap portion with the sensing area 316 or the mud / snow partition 308 based on a lesser distance (e.g., a greater similarity) to the selected rock crawler partition 314 relative to the grass partition 310.FIG. 5 shows an example of a dataflow diagram 500 for a resistance sensing system, such as the system 100 of FIG. 1. a terrain energy engine 108 determines the energy transferred to the terrain. For example, the terrain energy engine 108 may receive an indication of the input energy 502 provided to an electric motor 104, which may specify the torque generated by the electric motor 104, such that the terrain energy engine 108 may determine a rolling resistance more quickly than some systems that detect a torque output of a wheel or electric motor 104. To determine the energy transferred to the travel solutions, the terrain energy engine 108 may predict the magnitude of the powertrain losses 504, such as the efficiency of the inverter or motor, as well as heat losses through bearings, heating of suspension components, or other powertrain elements. Some driveline losses that are recovered or largely recovered (e.g., spring movement or tire deformation) may be omitted or subtracted to omit the entire recovered energy fraction.The terrain energy engine 108 may determine the energy accumulated as kinetic energy based on the vehicle speed 506 and an indication of vehicle mass for the vehicle, such as by determining the translation kinetic (1⁄2 mv 2) and rotation (.5I ω 2)- energy for the wheel speed 508 and other rotating components, wherein a moment of inertia I may be retrieved from the powertrain parameters 122, or the powertrain parameters 122 may include a search for the total energy based on the vehicle speed 506. The terrain energy engine 108 may determine the accumulated potential energy according to a distance and a detected slope 510, a pressure, a location in combination with a GNSS system or map, a height 512, or other data. The terrain energy engine 108 may determine aerodynamic drag losses based on vehicle speed and various environmental sensors 106 (e.g., humidity, pressure, or temperature). The terrain energy engine 108 may communicate a determined rolling resistance to a characteristic selector 112.The characteristic selector 112 may select a power characteristic 124. The selection of a characteristic curve can relate to an adjustment, calibration or other change in relation to another reference value or another characteristic curve. For example, the characteristic selector 112 may select various performance characteristics 124 based on rolling resistance, friction, temperature, or other dimensions of a multi-dimensional data structure. The characteristic selector 112 may select a slip set point 514 for one or more wheel assemblies or electric motors 104. The characteristic selector 112 may select an accelerator pedal input characteristic 516 to correlate pedal position with torque, acceleration sensitivity, or acceleration response rate. For example, attenuated acceleration sensitivity may increase efficiency of a vehicle, increase range, and decrease charge-related emissions. The characteristic selector 112 may select a torque vectoring characteristic 518. For example, the degree of vehicle rotation may vary between asphalt, snow, or sand. By detecting a mismatch of a torque vectoring characteristic 518, a vehicle using a driving surface oriented torque vectoring characteristic 518 can be prevented from getting stuck in the sand when traversing sand vapours by maintaining the non-translational kinetic energy. Conversely, by detecting a mismatch of a torque vectoring characteristic curve, it is possible to prevent the tires from wearing prematurely or the energy efficiency from decreasing when driving on a freeway in a vehicle which uses a characteristic curve oriented toward sand. The characteristic selector 112 may select a steering characteristic 520 to correlate a detection position of a steering angle sensor 106 with a movement of a steering lever or a tie rod. For example, the steering characteristic 520 may depend on the vehicle speed, the steering angle, the vehicle dynamics received from the drive control system 150, or the selected driving mode. The characteristic selector 112 may receive various information about the vehicle, such as humidity, temperature, or other environmental data 522 to select a characteristic. For example, a data structure indicative of a performance characteristic 124 or operating parameter 126 may include a dimension of an environmental condition such that the selection is based on the temperature or other environmental data 522.The characteristic selector 112 may select the various characteristics for provision to the drive control system 150. For example, the characteristic selector 112 may combine, adjust, or otherwise select one or more values from a selected characteristic that applies to the drive control system 150.FIG. 6 illustrates an example method 600 for resistance sensing. The method 600 may be performed by one or more of the systems or components shown in FIGS. 1, 2, including a computer system 102 or an electric vehicle 205. For example, the method 600 may be performed by one or more processors of an electric vehicle 205 and a memory communicatively coupled thereto. At ACT 602, a terrain energy engine 108 detects the rolling resistance of a vehicle. The terrain energy engine 108 may detect rolling resistance based on the energy input to one or more engines of the vehicle. The terrain energy engine 108 may determine rolling resistance by comparing the energy input to the energy usage. The terrain energy engine 108 may determine the energy consumption based on the vehicle speed, powertrain losses, or altitude.At ACT 604, the computer system 102 selects a slip set point for the vehicle. The computer system 102 may select the slip set point based on a multi-dimensional data structure including data that varies depending on rolling resistance and friction level (e.g., may include an axis organizing the data structure according to a resistance level axis and a friction level axis, or may include various portions of a data structure corresponding to rolling resistance or friction level). The computer system 102 may select a driving mode, partition, or other portion of the data structure based on the rolling resistance, whereupon the computer system 102 may select a slip set point, torque bias, or other associated operating parameters 126.At ACT 606, the computer system 102 provides the slip set point 514 to a vehicle propulsion control system 150 to control the one or more motors. The computer system 102 may provide the slip setpoint 514 itself or an indication of the slip setpoint 514, such as a reference identifier of a performance characteristic 124. The computer system 102 may communicate the performance characteristic 124 to the drive control system 150 via file transfer or via the indication of a selection of a performance characteristic 124, the performance characteristic 124 being accessible to the drive control system 150. The computer system 102 may transmit the slip set point 514 to the drive control system 150 via an offset. The computer system 102 may further detect rolling resistance to determine slip targets, torque biases, and other operating parameters 126 as the vehicle traverses various terrain types.FIG. 7 is a block diagram illustrating an architecture for a computer system that may be employed to implement elements of the systems and methods described and illustrated herein, including, for example, the systems illustrated in FIGS. 1 and 2 and the method illustrated in FIG. 6. The computer system 700 includes at least one bus 705 or other communication device for communicating information and at least one processor 710 or processing circuitry coupled to the bus 705 for processing information. Computer system 700 may also include one or more processors 710 coupled to the bus or processing circuitry for processing information. Computer system 700 also includes at least one main memory 715, such as random access memory (RAM) or other dynamic storage device coupled to bus 705 for storing information, and instructions to be executed by processor 710. Main memory 715 may be used to store information during execution of instructions by processor 710. Computer system 700 may further include at least one read-only memory (ROM) 720, or other static storage device coupled to bus 705 for storing static information and instructions for processor 710. A storage device 725, such as a solid state device, magnetic disk, or optical disk, may be coupled to bus 705 to persistently store information and instructions.The computer system 700 may be coupled via the bus 705 to a display 735, such as a liquid crystal display or an active matrix display, to display information to a user, such as a driver of the electric vehicle 205, or another end user. An input device 730, such as a keyboard or voice interface, may be coupled to bus 705 to communicate information and commands to processor 710. The input device 730 may include a touch screen display 735. The input device 730 may also include a cursor control, such as a mouse, trackball, or cursor direction keys, for communicating direction information and selected commands to the processor 710 and for controlling cursor movement on the display 735.The processes, systems, and methods described herein may be implemented by the computer system 700 in response to the processor 710 executing an array of instructions contained in the main memory 715. These instructions may be read into main memory 715 from another computer readable medium, such as storage device 725. Execution of the array of instructions contained in main memory 715 causes computer system 700 to execute the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory 715. Hardwired circuitry may be used in place of or in combination with software instructions along with the systems and methods described herein. The systems and methods described herein are not limited to any particular combination of hardware circuitry and software.A portion of the description herein emphasize the structural independence of the aspects of the components of the system or the groupings of operations and responsibilities of those components of the system. Other groupings that perform similar operational operations are within the scope of the present application. Modules may be implemented in hardware or as computer instructions on a non-transitory computer readable storage medium, and modules may be distributed over various hardware or computer based components.The systems described above may provide multiple ones of any or each of these components, and these components may be provided on either a stand-alone system or on multiple instantiations in a distributed system. Moreover, the systems and methods described above may be provided as one or more computer readable programs or executable instructions embodied on or in one or more manufactured products. The product of manufacture may be cloud storage, hard disk, CD-ROM, flash memory card, PROM, RAM, ROM, or magnetic tape. In general, the computer readable programs may be implemented in any programming language such as LISP, PERL, C, C++, C#, PROLOG, or in any bytecode language such as JAVA. The software programs or executable instructions may be stored on or in one or more manufactured products as object code.Examples and non-limiting module implementing elements include sensors 106 providing a value determined herein, sensors 106 providing a value that is a precursor of a value determined herein, data connections or network hardware including communication chips, crystal, communication connections, cable, twisted pair cable, coaxial cable, shielded cable, transmitter, receiver or transceiver, logic circuits, hardwired logic circuits, reconfigurable logic circuits in a particular non-volatile state configured according to the module specification, an actuator including at least one electrical, hydraulic or pneumatic actuator, a solenoid, an operational amplifier, analog control elements (springs, filters, integrators, adders, dividers, gain elements), or digital control elements.The subject matter and acts described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more thereof. The subject matter described in this specification may be implemented as one or more computer programs, e.g., one or more circuits of computer program instructions encoded on one or more computer storage media, for execution by or to control the operation of data processing devices. Alternatively or additionally, the program instructions may be encoded on an artificially generated propagated signal, e.g., a machine generated electrical, optical, or electromagnetic signal generated to encode information for transmission to a suitable receiver device for execution by a data processing device. A computer storage medium may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Although a computer storage medium is not a propagated signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage medium may also be or be included in one or more separate components or media (e.g., multiple CDs, hard drives, or other storage devices include cloud storage). The operations described in this specification may be implemented as operations performed by a computing device for data stored on one or more computer readable storage devices or received from other sources.The terms "computing device", "component", or "computing device", or the like, encompass various devices, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, a system-on-a-chip, or multiple or combinations of the foregoing. The device may include special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The apparatus may also include, in addition to hardware, code that creates an execution environment for the subject computer program, e.g., code representing processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these. The device and execution environment may implement a wide variety of computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.A computer program (also known as a program, software, software application, app, script, or code) may be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and may be implemented in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may correspond to a file in a file system. A computer program may be stored in a portion of a file containing other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple coordinated files (e.g., files in which one or more modules, subroutines, or code portions are stored). A computer program may be implemented to run on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform actions by processing input data and generating output. The processes and logic flows may also be performed by dedicated logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit), and devices may also be implemented as such. Suitable devices for storing computer program instructions and data may include non-volatile memory, media, and storage devices, including, by way of example, semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROMs and DVD-ROMs. The processor and memory may be supplemented by or incorporated into special purpose logic circuitry.The subject matter described herein may be implemented in a computer system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a frontend component, e.g., a client computer having a graphical user interface 110 or a web browser through which a user may interact with an implementation of the subject matter described in this specification, or a combination of one or more such backend, middleware, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad-hoc peer-to-peer networks).Although the operations are depicted in the drawings in a particular order, it is not necessary for these operations to be performed in the order shown, and not all illustrated operations need to be performed. The actions described herein may be performed in a different order.Having now described some illustrative implementations, it will be apparent that the foregoing is illustrative and not restrictive, as it has been presented by way of example. Although many of the examples presented herein include specific combinations of methods or system elements, these operations and elements may be combined in other ways to achieve the same goals. Acts, elements, and features discussed in connection with an implementation are not intended to be excluded from a similar role in other implementations or implementations.The terminology used herein is for the purpose of description and should not be considered as limiting. The use of "including", "comprising", "having", "containing", "including", "characterized by", "characterized in that", and variations thereof herein is intended to include the items listed below, their equivalents, and additional items, as well as alternative implementations consisting solely of the items listed below. In one implementation, the systems and methods described herein consist of any combination of more than one or all of the described elements, acts, or components.Any reference to implementations or elements or acts of the systems and methods referred to herein in the singular may also include implementations including a plurality of these elements, and any reference to an implementation or element or act herein in the plural may also include implementations including only a single element. References in the singular or plural are not intended to limit the presently disclosed systems or methods, their components, operations, or elements to single or multiple configurations. References to an operation or element being based on information, operation, or element may include implementations where the operation or element is based at least in part on information, operation, or element.Each implementation disclosed herein may be combined with any other implementation or embodiment, and references to "one implementation", "some implementations", "one implementation", or the like are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the implementation may be included in at least one implementation or embodiment. The terms used herein do not necessarily all refer to the same implementation. Each implementation may be combined with any other implementation, including or excluding, in any manner consistent with the aspects and implementations disclosed herein.References to "or" may be understood to be inclusive, such that any term described with "or" may refer to a single, more than one, or all of the described terms. References to at least one term from a conjunctival list of terms may be construed as an inclusive OR to refer to a single, more than one, or all of the terms described. For example, a reference to "at least one of "A" and "B"" may include both only "A", only "B", and both "A" and "B". Such references used in connection with "comprising" or other open terminology may include other items.Where technical features in the drawings, the detailed description, or a claim are followed by reference numerals, the reference numerals have been included to enhance the intelligibility of the drawings, the detailed description, and the claims. Therefore, neither the reference numerals nor their lack have a limiting effect on the scope of the individual claim elements.Modifications to the described elements and operations, such as variations in sizes, dimensions, structures, shapes, and proportions of the various elements, values of parameters, arrangements for mounting, use of materials, colors, orientations, may occur without materially compromising the teachings and advantages of the subject matter disclosed herein. For example, elements shown as integral may be comprised of multiple parts or elements, the position of elements may be reversed or otherwise varied, and the type or number of individual elements or positions may be varied or varied. Other substitutions, modifications, changes, and omissions may also be made in the design, operating states, and arrangement of the disclosed elements and operations without departing from the scope of the present disclosure.Other relative parallel, perpendicular, vertical, or other positioning or orientation descriptions include variations within + / -10% or + / -10 degrees of pure vertical, parallel, or perpendicular positioning. References to "approximate," "substantially," or other terms include + / -10% variations from the stated measurement, unit, or range, unless expressly stated otherwise. Coupled elements may be electrically, mechanically, or physically coupled together, directly, or with intervening elements. The scope of the systems and methods described herein will therefore be apparent from the appended claims rather than from the foregoing description, and changes which come within the meaning and range of equivalence of the claims are intended to be embraced therein.
Claims
A system, comprising: a computing system comprising one or more processors coupled to a memory to: determine, for a vehicle, rolling resistance based on power input to one or more engines of the vehicle and a speed of the vehicle. selecting a slip command for the vehicle based on the rolling resistance and a friction level associated with a surface on which the vehicle is traveling; and providing the slip command to a propulsion control system of the vehicle to control one or more motors.The system of claim 1, comprising: the computer system is configured to determine the energy input for the one or more motors based on electrical parameters of the one or more motors.The system of claim 1, comprising: the computer system is configured to determine the power supply to the one or more motors based on an amount of current and an amount of voltage supplied to the one or more motors.The system of claim 1, comprising: the computer system configured to determine the rolling resistance based on a comparison of the power supply to the one or more motors and the speed of the vehicle.The system of claim 1, comprising: the computer system is configured to select the slip setpoint based on a search in a multi-dimensional data structure comprising a plurality of partitions corresponding to a plurality of types of driving surfaces.The system of claim 1, comprising the computer system to: determine a temperature associated with an environment through which the vehicle is travelling; select a multi-dimensional data structure based on the temperature; and select the slip set point from a search in the multi-dimensional data structure selected based on the temperature.The system of claim 1, comprising the computer system to: receive, via a user interface of the vehicle, a selection of a driving mode of the vehicle that includes a second slip set point that is different than the slip set point; determine, from a search in a multi-dimensional data structure having the rolling resistance and the friction level, that the second slip set point of the driving mode does not meet a tolerance; and override, based on the determination that the second slip set point does not meet the tolerance indicated from the search in the multi-dimensional data structure, the second slip set point with the slip set point.The system of claim 1, comprising the computer system to: receive, via a user interface of the vehicle, a selection of a driving mode of the vehicle that includes a second slip set point that is different than the slip set point; determine, from a search in a multi-dimensional data structure having the rolling resistance and the friction level, that a difference between the second slip set point and the slip set point satisfies a tolerance threshold; and override, based on the satisfaction of the tolerance threshold, the slip set point with the second slip set point to provide the second slip set point to the propulsion control system of the vehicle to control the one or more motors.The system of claim 1, wherein the one or more motors comprise a front wheel motor and a rear wheel motor, comprising: the computer system being configured to select, based on the rolling resistance and the friction level, a torque bias for the slip set point between the front wheel motor and the rear wheel motor.The system of claim 1, wherein the one or more motors comprise a front wheel motor and a rear wheel motor, comprising: the computer system being configured to select a torque bias for the slip set point between the front wheel motor and the rear wheel motor based on the rolling resistance, the friction level, and a temperature.A method, comprising: determining, by a computer system comprising one or more processors coupled to a memory, rolling resistance for a vehicle based on power delivery to the one or more motors of the vehicle and a speed of the vehicle; selecting, by the computer system, a slip set point for the vehicle based on the rolling resistance and a friction level associated with a surface on which the vehicle is travelling; and providing, by the computer system, the slip set point to a propulsion control system of the vehicle for controlling the one or more motors.The method of claim 11, comprising: determining, by the computer system, the energy input for the one or more motors based on electrical parameters of the one or more motors.The method of claim 11, comprising: determining, by the computer system, the energy input for the one or more motors based on an amount of current and an amount of voltage provided to the one or more motors.The method of claim 11, comprising: determining, by the computer system, rolling resistance based on a comparison of the power supply to the one or more motors and the speed of the vehicle.The method of claim 11, comprising: selecting, by the computer system, the slip set point based on a search in a multi-dimensional data structure comprising a plurality of partitions corresponding to a plurality of types of driving surfaces.The method of claim 11, comprising: determining, by the computer system, a temperature associated with an environment through which the vehicle travels; selecting, by the computer system, a multi-dimensional data structure based on the temperature; and selecting, by the computer system, the slip set point based on a search in the multi-dimensional data structure selected based on the temperature.The method of claim 11, comprising: receiving, by the computer system via a user interface of the vehicle, a driving mode of the vehicle that includes a second slip set point that is different than the slip set point; determining, by the computer system, based on a search in a multi-dimensional data structure having the rolling resistance and the friction level, that the second slip set point of the driving mode does not meet a tolerance; and overwriting, by the computer system, the second slip set point with the slip set point based on the determination that the second slip set point does not meet the tolerance indicated via the search in the multi-dimensional data structure.The method of claim 11, comprising: receiving, by the computer system via a user interface of the vehicle, a driving mode of the vehicle that includes a second slip set point that is different than the slip set point; determining, by the computer system, based on a search in a multi-dimensional data structure having the rolling resistance and the friction level, that a difference between the second slip set point and the slip set point satisfies a tolerance threshold; and overwriting, by the computer system, the slip set point based on the satisfaction of the tolerance threshold by the second slip set point to provide the drive control system of the vehicle with the second slip set point for controlling the one or more motors.An electric vehicle, comprising: a plurality of electric motors; and a computing system comprising one or more processors coupled to a memory to: determine rolling resistance for the electric vehicle based on energy input to the plurality of electric motors of the electric vehicle and a speed of the electric vehicle; select a slip set point for the electric vehicle based on the rolling resistance and a friction level associated with a surface on which the electric vehicle is traveling; and provide the slip set point to a propulsion control system of the electric vehicle to control the plurality of electric motors.The electric vehicle of claim 19, comprising: the computer system to determine the energy input for the plurality of electric motors based on electrical parameters of the plurality of electric motors.
