Dynamic route generation and charger discovery
Through machine learning models and filtering technology, dynamic updates of electric vehicles' driving routes are solved, solving the challenges of charging time and location selection in cross-routes, and achieving more accurate and efficient charging management.
Patent Information
- Application Number
- CN202410743391.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-12
- Filing Date
- 2024-06-11
- Publication Date
- 2024-12-13
AI Technical Summary
There are challenges in accurately and reliably determining the charging time and location when electric vehicles cross routes, especially due to various unforeseen factors and attribute changes, it is difficult for the prior art to update the route in real time to improve charging efficiency.
Using machine learning-trained models, based on real-time perceived data, such as driving behavior, weather, temperature and charger position information, dynamically update the vehicle's driving route through a Kalman filter or fitted to a polynomial curve to optimize charging Station selection and charging time.
It improves the accuracy and efficiency of the charging circuit line, ensures the accuracy and cost optimization of the vehicle during driving, and reduces the number of charging times.
Smart Images

Figure CN119124148A_ABST
Abstract
Description
[0001] introduction
[0002] The vehicle can travel from one location to another based on a trip plan. Summary of the invention
[0003] The present disclosure generally relates to dynamic route generation and charger discovery. Accurately and reliably determining when and where an electric vehicle charges during a trip can be a challenge due to various attributes or factors that may be present when traversing a route. The systems and methods of the technical solution can use a model trained with machine learning that can recalculate and calibrate the time and location of electric vehicle charging based on current sensed data that can capture the driving behavior of the vehicle. Factors can include: changes in driving patterns; unforeseen driving behavior; mass estimates or drag higher than previously determined values; battery preconditioning time longer than predicted due to changes in weather or temperature; improved route planning based on mass estimate changes (e.g., hauling or large loads in the truck bed) combined with driving patterns; or charger location information (e.g., layout and actual operating data of charging stations). The sensed data can be fed into a Kalman filter or fitted to a polynomial curve to increase the weight of newer data relative to older data. Examples of sensed data can include the speed of the vehicle and the power value output by the vehicle's battery.
[0004] At least one aspect relates to a system. The system may include a computing system including one or more processors coupled to a memory. The computing system may identify a driving route for a vehicle. The driving route may include a first charger located at a first location along the driving route, the first charger being configured to charge a battery of the vehicle. As the vehicle traverses the driving route, the computing system may receive an indication of a power value output by the battery of the vehicle and an indication of a speed of the vehicle. The computing system may receive the indication via a battery management system of the vehicle. The computing system may predict a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data. In response to the characteristic predicted via the model based on the power value and the speed, the computing system may update the driving route to include a second charger located at a second location to charge the battery of the vehicle.
[0005] At least one aspect relates to a method. The method may be performed by a computing system having one or more processors coupled to a memory. The method may include the computing system identifying a driving route for a vehicle. The driving route may include a first charger located at a first location along the driving route, the first charger being configured to charge a battery of the vehicle. The method may include the computing system receiving an indication of a power value output by the battery of the vehicle and an indication of a speed of the vehicle as the vehicle traverses the driving route. The method may include the computing system receiving the indication via a battery management system of the vehicle. The method may include the computing system predicting a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data. The method may include, in response to the characteristic predicted via the model based on the power value and the speed, the computing system updating the driving route to include a second charger located at a second location to charge the battery of the vehicle.
[0006] At least one aspect relates to an electric vehicle. The electric vehicle may include a computing system having one or more processors coupled to a memory. The electric vehicle may include a battery and a battery management system for controlling the performance of the battery. The computing system may identify a driving route for the vehicle, the driving route including a first charger located at a first location along the driving route, the first charger being configured to charge the battery of the vehicle. The computing system may receive, via the battery management system of the vehicle, an indication of a power value output by the battery of the vehicle and an indication of the speed of the vehicle as the vehicle traverses the driving route. The computing system may predict a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data. In response to the characteristic predicted via the model based on the power value and the speed, the computing system may update the driving route to include a second charger located at a second location to charge the battery of the vehicle.
[0007] These and other aspects and implementations are discussed in detail below. The foregoing 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 characteristics of the protected aspects and implementations. The accompanying drawings provide illustration and further understanding of various aspects and implementations, and are incorporated into and constitute a part of this specification. The foregoing information and the following detailed description and the accompanying drawings include illustrative examples and should not be considered limiting. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The drawings are not intended to be drawn to scale. Like reference numbers and names indicate similar elements in the various drawings. For clarity, not every component is labeled in every drawing. In the drawings:
[0009] Figure 1 An exemplary system for dynamic route generation and charger discovery is depicted.
[0010] Figure 2 An exemplary graphical user interface for dynamic route generation and charger discovery is depicted.
[0011] Figure 3 An exemplary graphical user interface for dynamic route generation and charger discovery is depicted.
[0012] Figure 4 Exemplary methods for dynamic route generation and charger discovery are depicted.
[0013] Figure 5 Exemplary methods for dynamic route generation and charger discovery are depicted.
[0014] Figure 6 An exemplary vehicle is depicted.
[0015] Figure 7 is a block diagram showing the architecture of a computer system that can be used to implement, for example, Figure 1 The system depicted in Figure 2 and Figure 3 The graphical user interface depicted in , and Figure 4 and Figure 5 Elements of the systems and methods described and illustrated herein of the methods depicted in the drawings. DETAILED DESCRIPTION
[0016] The following is a more detailed description of various concepts and implementations related to methods, apparatus, and systems for dynamic route generation and charger discovery.The various concepts introduced above and discussed in more detail below may be implemented in any of a variety of ways.
[0017] The present disclosure generally relates to dynamic route generation and charger discovery. Due to various attributes or factors that may occur when traversing a route, it can be a challenge to accurately and reliably determine when and where an electric vehicle is charged during a trip. The technical solution can take into account attributes, factors, or conditions that occur, are detected, or are determined after the vehicle begins a trip from a first destination to a second destination. For example, when setting an initial route to a destination, the system can determine initial attributes such as the weight or mass of the vehicle, the driving mode, the route attributes, the elevation, and the weather when the route is set. Using these initial attributes, the system can identify or select one or more charging stations along the route for the vehicle to charge during the route. The technical solution can collect additional data during the route to refresh or recalculate the route based on a time interval (e.g., every 2 minutes, 3 minutes, 3 minutes, 5 minutes, 10 minutes, or other time interval). By collecting additional data during the route to refresh, recalculate, or update the route, the technical solution can improve the accuracy of the route, for example, by making a more accurate distance estimate.
[0018] To dynamically update the route based on the sensed data, the technology solution can use a model trained by machine learning. The machine learning model can be developed and configured to update, recalculate, or otherwise recalibrate based on data collected or sensed during the traversal of the route, such as based on driving style. The system can perform this update in response to time intervals (e.g., every 2 minutes, 3 minutes, 3 minutes, 5 minutes, 10 minutes, or other time intervals), conditions, detection of changes in vehicle attributes, or detection of changes in expected vehicle efficiency and energy usage. For example, the technical solution can improve the accuracy of the route traversed by the vehicle and refresh the route through recalibration, which can take into account one or more of the following: changes in driving mode; unforeseen driving behavior (e.g., driving the vehicle at a speed greater than a threshold for a time period greater than a time interval, or accelerating the vehicle by an amount greater than a threshold for a time period greater than a time interval), mass estimates and drag higher than previously determined values; battery preconditioning time longer than expected due to changes in weather or temperature; improved route planning based on mass estimate changes (e.g., towing or a large load in the truck bed) and combined with driving mode; charger location information (e.g., charging station layout and actual operating data and known towing configurations).
[0019] Figure 1 An exemplary system 100 for dynamic route generation and charger discovery is depicted. System 100 may include a data processing system 102. Data processing system 102 may be referred to as or include a computing system or computer system (e.g., Figure 7100). The data processing system 102 may be located on or within the electric vehicle 130. The data processing system 102 may be hosted by the electric vehicle 130. One or more components or functions of the data processing system 102 may be hosted on or performed by the server system 140. For example, the filter 110 or the route generator 112 may be hosted on the server system 140 and communicate with the data processing system 102 hosted on the vehicle 130 to provide a driving route or an updated driving route. The data processing system 102 may communicate or interface with one or more sensors 132. The sensor 132 may be any type of sensor capable of collecting, measuring, detecting or otherwise identifying data or information that can facilitate dynamic route generation. The sensor 132 may include, for example, a wheel speed sensor, a global positioning system sensor, a temperature sensor, an accelerometer, a gyroscope, a rain sensor, an anemometer, an ambient light sensor, or a weight sensor. The vehicle 130 may include a wireless access point 134 designed, constructed and operable to transmit data via one or more wireless communication protocols. For example, wireless access point 134 may communicate data via short-range data transmission using radio waves, such as via Bluetooth. Wireless access point 134 may communicate via Wi-Fi. Wireless access point 134 may include an antenna located inside or outside vehicle 130. Wireless access point 134 or its antenna may be communicatively coupled to interface 104 of data processing system 102.
[0020] The data processing system 102 may include one or more of an interface 104, a data collector 106, a filter 110, a route generator 112, a battery management system 108, or a data repository 114. The data repository may include at least one of a map 116, attribute data 118, a model 120, a threshold 122, or a profile 124. The system 100 may include, interface with, access, or otherwise communicate with, a communication server system 140, a remote data source 144, or a charging station 146 via the network 101. The server system 140, the remote data source 144, or the charging station 146 may each communicate with the data repository 114.
[0021] The data repository 114 may be any memory, storage device, or cache for storing information or data structures that facilitate the data processing system 102 to perform dynamic route generation and charger discovery. The data repository 114 may contain any information about the system 100 and may allow the information to be accessed by any component of the data processing system 102. The map 116 may refer to or include a digital map that facilitates navigation from one location to another. The digital map 116 may include information about roads, highways, or paths that a vehicle may traverse. The digital map 116 may include real-time information, such as traffic or weather at a certain location. The digital map 116 may include information about speed limits. The map 116 may include altitude information. The digital map 116 may be obtained from a remote data source 144 or a server system 140 and stored in the data repository 114. The map 116 may be updated periodically or based on another time interval or condition. The map 116 may include information about chargers 146 located along or near the driving route. The map 116 may include information about the type of charger, the power delivery mechanism or the charger rate, or the layout of the location where the charger is located.
[0022] Attribute data 118 may refer to or include data that may be collected by one or more sensors 132 or from a remote data source 144. Attribute data may include a time series of data samples, such as the speed of the vehicle, the acceleration of the vehicle, mass, drag, power output by the battery of the vehicle, the state of charge of the battery, the state of health of the battery, or temperature. Model 120 may refer to or include a model trained using machine learning. Model 120 may be trained by a model generator 142 of server system 140 and provided to data processing system 102 for deployment. Threshold 122 data structure may include various thresholds used by data processing system 102 to perform dynamic route generation and charger discovery, such as speed threshold, acceleration threshold, drag threshold, power threshold, or temperature threshold. Threshold 122 may be fixed, absolute, dynamic, percentage, or function-based.
[0023] The profile 124 may include or refer to a profile associated with a driver or user of the vehicle. The data repository 114 may include or store one or more profiles 124. The profile 124 may be retrieved or obtained from the server system 140 and loaded or stored in the data repository 114. For example, the server system 140 may store or maintain the profile 124. The profile 124 may include information that can facilitate a certain aspect of the data processing system operating the vehicle 130. The profile 124 may include one or more configurations or preferences of a user or driver of the vehicle. The preferences may be established or provided by the driver or user. The preferences or configurations may be established by the manufacturer of the vehicle 130 or other operators of the vehicle 130. The preferences may be determined or learned based on driving behavior.
[0024] The profile 124 may include or indicate preferences that may facilitate selection of a charger for inclusion in a driving route. For example, a profile may include or indicate preferences or configurations for a charger type (e.g., a charging station port), a charger speed, a charger operator, or a charger layout. The charger type may refer to or include the configuration of a charger's plug or connector, or the voltage level allowed by the charger. The charger speed may refer to or indicate the maximum output power of the charger, such as in kilowatt-hours. The charger operator may refer to or indicate an entity, organization, or company that manufactures or operates the charger. The charger operator may refer to or indicate a charging network to which the charger belongs. The charger layout may refer to or indicate a layout of locations associated with the charger, or whether the orientation of the charger enables the vehicle of the towing object to couple or connect to the charger.
[0025] The information in the data repository 114 may be stored in any kind of memory, such as a cloud or a hard drive. The data repository 114 may include, for example, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), error correction code (ECC), read-only memory (ROM), programmable read-only memory (PROM), or electrically erasable read-only memory (EEPROM). The data repository 114 may be accessed by any component of the system 100 at any time.
[0026] The network 101 may include any kind of communication links, cables, transmitters, receivers, transceivers, logic circuits, communication chips, communication networks (e.g., local area networks (“LAN”), wide area networks (“WAN”) or internetworks (Internet), cellular networks (e.g., 3G, 4G, or 5G)) configured to allow or facilitate communication, transmission, reception, or connection with components of the system and with external systems. The network 101 may be a private network or a public network. The network 101 may allow communication with the data processing system 102, the charging station 146, the remote data source 144, or the server system 140, or communication between them.
[0027] System 100 may include, interface with, utilize, or otherwise communicate with server system 140. Server system 140 may include one or more components or functions of computing device 700, including, for example, one or more processors and memory. Server system 140 may refer to or include a cloud computing environment. Server system 140 may communicate with data processing system 102 via network 101. For example, server system 140 may receive data or send data to data processing system 102. Server system 140 may provide instructions, software, or commands to data processing system 102 to facilitate dynamic route generation and charger discovery. For example, server system 140 may include a model generator 142 designed, constructed, and operable to train, establish, or generate a model using one or more machine learning techniques. Model generator 142 may retrain, update, modify, calibrate, or otherwise maintain or improve the model.
[0028] To build the model, the data processing system 102 (e.g., the model generator 142) can train the model with historical battery consumption data. The data processing system 102 can use various functions or signal processing techniques to train the model. The data processing system 102 can use the model generator 142 to train the model using machine learning. Training data can be obtained. The training data may include historical data corresponding to the attribute data 118. For example, the training data may include or correspond to the attribute data 118, which includes historical battery consumption data of one or more vehicles (such as battery charge state or battery health state), and corresponding vehicle attributes (such as speed, acceleration, or range of use between charges). The training data can be aggregated from multiple vehicles. The training data can be simulated data. The training data can be a combination of measured or sensed data and simulated data using one or more sensors 132. The training data may include ground truth data and labels.
[0029] For example, the model generator 142 may collect data for training or validation purposes. The model generator 142 may collect, obtain, or receive data about the electric vehicle, such as battery capacity, charging speed, usage patterns, location, planned route, traffic information, elevation information along the route, power output by the vehicle's battery, vehicle speed, or battery health status. The model generator 142 may collect data about environmental conditions associated with the use of the electric vehicle, such as weather conditions, temperature, and time of day.
[0030] The model generator 142 can preprocess the collected data. The model generator 142 can preprocess the data by cleaning and formatting the data so that it can be used to train the machine learning model. Preprocessing can include removing outliers, converting the data into a suitable format, or normalizing the data. The model generator 142 can preprocess the data by binning or bucketing the data. For example, numerical speed data can be classified by converting the numerical value into a classification value. The model generator 142 can configure a set of predetermined boxes, such as boxes of 5 mile increments, 10 mile increments, 15 mile increments, or other classification values. By converting the numerical speed values into boxes, the model generator 142 can reduce the complexity of training the model 120, or the complexity of the model 120 itself. By reducing the complexity of the model 120, the model generator 142 can improve the efficiency with which the data processing system 102 can dynamically generate or update routes in real time using the model 120. When the data processing system 102 inputs the data into the model 120 for prediction, the data processing system 102 can process the data in real time during the trip to make accurate predictions or improve the accuracy of distance estimates.
[0031] The model generator 142 can train a model to determine, select, or predict the time and location to charge an electric vehicle during a trip so that the vehicle arrives at its destination with sufficient charge while minimizing charging time, cost, or number of charging stops. The model generator 142 can select a machine learning technique or function, or be configured with a machine learning technique or function, that is designed to generate a model that can dynamically generate or update routes and discover chargers. For example, the machine learning technique can include a decision tree. The model generator 142 can use a decision tree to build a model 120 that predicts the best time and location to charge an electric vehicle based on input features such as attribute data 118, which includes, for example, one or more of the battery charge of the vehicle, the distance to the destination, and the availability of charging stations along the route.
[0032] Model generator 142 may select or be configured with a machine learning technique including a random forest. A random forest may include a collection of decision trees that may improve the accuracy of a prediction or range estimate by combining multiple decision trees. Model generator 142 may use a random forest to construct a model 120 that predicts, determines, or selects a time and location to charge an electric vehicle based on a set of input features such as the power output by the vehicle's battery, vehicle speed, temperature, weather, acceleration, distance to a destination, driving behavior, or availability of charging stations along a route.
[0033] Model generator 142 may select or be configured with a machine learning technique including a support vector machine (SVM). SVM may refer to or include a supervised learning function that can classify and predict results based on input features. Model generator 142 may use SVM to determine, select, or predict the time and location to charge an electric vehicle based on input features such as the power output by the vehicle's battery, vehicle speed, temperature, weather, acceleration, distance to a destination, driving behavior, traffic data, or the availability of charging stations along a route.
[0034] Model generator 142 may select or be configured with a machine learning technique including a neural network. A neural network may include a machine learning technique that is designed, constructed, and operated to learn complex patterns in data. Model generator 142 may use a neural network to construct model 120 to select, determine, or predict the time and location to charge an electric vehicle based on input features such as the power output by the vehicle's battery, vehicle speed, temperature, weather, acceleration, distance to a destination, driving behavior, traffic data, or the availability of charging stations along a route.
[0035] Model generator 142 may select or be configured with machine learning techniques including Bayesian networks. A Bayesian network may refer to or include a probabilistic graphical model that may be used to represent and reason about uncertain knowledge. Model generator 142 may use a Bayesian network to construct a model 120 that determines, selects, or predicts the time and location to charge an electric vehicle based on input features such as power output by the vehicle's battery, vehicle speed, temperature, weather, acceleration, distance to a destination, driving behavior, traffic data, or the availability of charging stations along a route.
[0036] To train the model using the selected machine learning technique, the model generator 142 can feed the pre-processed data into the model and allow the model to learn from the decisions and results. For example, the vehicle can be simulated moving along the route, and the model can continuously evaluate different charging options and select the best charging option based on the learned strategy.
[0037] Model generator 142 may evaluate trained model 120 before deploying it to data processing system 102. Model generator 142 may evaluate the performance of model 120 by comparing predicted values to actual values and determining metrics such as mean squared error, mean absolute error, and R-squared value. In some cases, model generator 142 may evaluate the ability of model 120 to adapt to new situations and data that have not been seen before.
[0038] Model generator 142 (e.g., via server system 140) can deploy model 120 to data processing system 102 located on electric vehicle 130. In some cases, model 120 can be deployed on data processing system 102 located on a cloud server to provide real-time, dynamic route generation and charger discovery during a trip. In some cases, the model can be integrated with a mobile application executed on a client computing device that can provide updated route and charging recommendations to the driver.
[0039] Model generator 142 may monitor and refine model 120 based on feedback received from electric vehicle 130 or other data sources. Model generator 142 may update model 120 in response to receiving new data and parameters to improve the predictions of model 120 over time.
[0040] System 100 may include, interface with, communicate with, or otherwise utilize one or more remote data sources 144. Remote data source 144 may provide data or information such as weather data (e.g., current or predicted weather information), traffic information, charger information (e.g., charger location, charger site information, charger layout information), or map information. Remote data source 144 may receive a request for information via an application programming interface. Remote data source 144 may provide the requested information via network 101 in response to the request. In some cases, remote data source 144 may be configured to provide a feed or data stream of the requested information to data processing system 102 via network 101.
[0041] The system 100 may include, access, or otherwise utilize one or more chargers 146. A charger may refer to or include any type of charger that can charge a battery of an electric vehicle 130 or provide power to allow the electric vehicle 130 to travel along a route. The charger 146 may be electrically connected to an electric utility distribution network. The charger 146 may include a charging cable that can be connected to the electric vehicle 130. The charger 146 may be located at a charging station that includes multiple chargers 146. The charger 146 may be located at a physical or geographic site. The site may have a layout that includes one or more chargers 146. Depending on the layout of the site, it may be challenging for an electric vehicle 130 towing a trailer to enter the site to connect to the charger 146 to charge the electric vehicle 130.
[0042] System 100 may include or have access to, or otherwise communicate with, one or more chargers 148. Client devices 148 may include Figure 7, including, for example, at least one processor, memory, interface, or display device. Client device 148 may refer to or include a mobile computing device, such as a smartphone, a wireless telecommunications device, a tablet computer, or a wearable computing device (e.g., a smart watch or smart glasses). In some cases, client device 148 may refer to or include a smart card, such as a physical card including an embedded integrated chip.
[0043] Client device 148 may communicate with one or more components or systems of vehicle 130. For example, client device 148 may communicate with data processing system 102 via wireless access point 134. Client device 148 may communicate with one or more systems or components of system 100, including, for example, server system 140, remote data source 144, charger 146, or data processing system 102, via network 101. Wireless access point 134 may broadcast a signal that may be detected by client device 148 and cause client device 148 to establish a communication session with data processing system 102. For example, by broadcasting the signal, wireless access point 134 may cause client device 148 and data processing system 102 to initiate a handshake process to establish a communication session between client device 148 or its application and data processing system 102.
[0044] The client device 148 can host, execute or run the application. The client device 148 can launch or call the application. The application can be provided by the manufacturer of the vehicle 130. For example, the client device 148 can download the application via an online application store or market. The application can be developed or provided by the manufacturer of the vehicle 130. The manufacturer of the vehicle 130 can configure the application to communicate or interface with the vehicle 130 or the data processing system 102 of the vehicle 130. The client device 148 can execute the application so that the application communicates with the data processing system 102 via the wireless access point 134 of the vehicle 130. The client device 148 can establish, update or configure one or more preferences of the profile 124. For example, the profile 124 can indicate one or more preferences. The profile 124 can include or indicate a preference for at least one of a charger type, a charger speed, a charger operator, or a charger layout. The application executed on the client device 148 can load the profile 124 onto the data processing system 102. The client device 148 can send the profile 124 to the data processing system 102. Client device 148 may send the profile to server system 140. In some cases, client device 148 may instruct data processing system 102 to download profile 124 from server system 140.
[0045] The data processing system 102 may provide one or more functions or otherwise facilitate control of the vehicle 130. The data processing system 102 may include an interface 104 designed, constructed, and operable to communicate via the network 101. The interface 104 may provide a user interface. For example, the interface 104 may include or provide a graphical user interface, such as, for example, Figure 2 or Figure 3 Graphical user interface 200 or 300 is depicted. Interface 104 may receive input from a user or driver of vehicle 130. Interface 104 may output information in various modes, such as visual, audio, or tactile output.
[0046] The data processing system 102 may include a profile manager 126 that is designed, constructed, and operable to load, maintain, establish, or apply a profile to the vehicle 130. The profile manager 126 may detect a key fob or client device 148 associated with a driver or user of the vehicle 130. In response to detecting the key fob or client device 148, the profile manager 126 may load the profile 124 linked to the key fob or client device 148. The profile manager 126 may load the profile 124 or otherwise apply the one or more preferences of the profile 124 to one or more systems, components, or functions of the data processing system 102. By loading the profile 124, the profile manager 126 may cause a component of the data processing system 102 (e.g., the route generator 112) to generate or update a driving route based, at least in part, on the preferences of the profile 124. For example, the data processing system 102 may generate or update a driving route for the vehicle in accordance with, following, or based on the preferences of the profile 124. In some cases, the profile manager 126 may provide a graphical user interface via the dashboard of the vehicle 130 through which a user may select, adjust, configure, or establish one or more aspects of the profile 124. In some cases, the profile manager 126 may download the profile 124 from the server system 140. The profile manager 126 may download the profile 124 from the server system 140 via the network 101 in response to detecting a key fob or client device 148 linked to the profile 124.
[0047] The data processing system 102 may include a battery management system 108 designed, constructed, and operable to manage or control the performance of the battery of the vehicle 130. The battery management system 108 may measure, detect, or determine a power value output by the battery of the vehicle 130. The battery of the vehicle may be a high voltage battery that provides power to the electric motor of the vehicle 130 to enable the vehicle to travel along a route. The battery management system 108 may determine, measure, or otherwise detect a total power value output by the battery of the vehicle 130. The battery management system 108 may list a time series of data samples indicating the power output by the battery at a timestamp. The unit of power may be watts or kilowatts.
[0048] The data processing system 102 may include a data collector 106 that is designed, constructed, and operable to receive, detect, obtain, or otherwise identify data that the data processing system 102 uses to dynamically generate or update a route. The data collector 106 may receive data from one or more sensors 132. The data collector 106 may receive data from a battery management system 108. The data collector 106 may receive data from one or more remote data sources 144. The data collector 106 may request data from the sensor 132, or receive a data feed or data stream from the sensor 132. The data collector 106 may receive data corresponding to at least one of the mass of the vehicle 130, the driving mode of the vehicle (e.g., comfort mode, off-road mode, or sport mode), the elevation of the driving route, or the weather along the driving route.
[0049] The data processing system 102 may include a filter 110 designed, constructed, and operable to process or preprocess the data obtained by the data collector 106. The filter 110 may filter, modify, clean, fill, aggregate, or otherwise process the data before providing it to the route generator 112 for input to the model 120. The filter 110 may filter the data samples of the time series. The data samples of the time series may include power values of the time series or speed values of the time series. The filter 110 may process the data samples of the time series to adjust the impact of one or more samples of the data samples of the time series on the predictions or determinations made by the route generator 112. For example, the filter 110 may process the data of the time series so that the most recent samples in the time series are weighted more heavily than older samples in the time series. The filter 110 may process the data samples of the time series to reduce the impact of older samples in the data samples of the time series on the predictions or determinations made by the route generator 112 relative to newer samples in the data samples of the time series.
[0050] Filter 110 may include or be configured to apply a Kalman filter to the time series data. In some cases, filter 110 may fit the time series data samples to a cubic polynomial curve to adjust the impact of one or more of the time series data samples on the prediction or determination made by route generator 112.
[0051] The filter 110 can bucket or bin the data samples. The filter 110 can reduce the granularity or resolution of the values of the data samples by assigning the values of the data samples to predetermined boxes or buckets. Boxes or buckets can refer to categories, labels, or values assigned to numerical ranges. The filter 110 can convert numerical features into categorical features by using a set of thresholds to reduce the complexity of the model 120 and handle skewed data distributions. For example, a label or category of "fast" can be assigned to digital speed values above 55 miles per hour; a label of "medium" can be assigned to digital speed values between 35 and 55 miles per hour; and a label of "slow" can be assigned to digital speed values less than 35 miles per hour. The filter 110 can bucket the data samples with digital labels, such as assigning a numerical value of 35 miles per hour to speed values falling within the range of 30 to 40 miles per hour. The bucket labels can be used as speed features. Therefore, the filter 110 can bucket or bin the data samples to generate speed features, which can be input to the model 120 or otherwise used by the route generator 112. The filter 110 may bucket data samples of a speed time series or a power time series received by the data collector 106 , or any other type of data samples that may be fed to the model 120 or otherwise used by the route generator 112 to facilitate dynamic route generation and charger discovery.
[0052] The data processing system 102 may include a route generator 112 that is designed, constructed, and operable to generate or update a driving route. The route generator 112 may identify a driving route for the vehicle 130. The driving route may include a first location, such as a current location or a starting point. The driving route may include another location, such as a destination, an end location, a final location, an intermediate location, or a waypoint. The driving route may include a path traversing from a first location to a second location. The driving route may include one or more chargers located along the driving route. The charger 146 may be configured to charge the battery of the vehicle 130. The driving route may indicate the time or duration of charging the vehicle at the charger. The driving route may indicate the charge state or range estimate of the battery at various points throughout the driving route.
[0053] The driving route initially identified by route generator 112 may be a driving route that is generated or established before the vehicle begins a trip. For example, the initial driving route may be generated while the vehicle is still at a first or starting location. In some cases, the identified driving route may be a driving route that is dynamically generated during the trip. In some cases, the performance of a single trip may include dynamically generating multiple different driving routes throughout the trip based on the changing characteristics of the vehicle predicted or determined by data processing system 102.
[0054] As the vehicle traverses the travel route, the route generator 112 may receive data samples or filtered data corresponding to an indication of a power value output by a battery of the vehicle and an indication of a speed of the vehicle. The route generator 112 may determine or predict a characteristic of the vehicle 130 based on the power value and the speed value and via a model 120 trained using machine learning. For example, the route generator 112 may determine or predict the characteristic using data samples of a time series adjusted based on the application of the filter 110. The route generator 112 determines or predicts the characteristic using data samples of a time series fitted to a cubic polynomial curve via the model 120. In some cases, the route generator 112 may input bucketed speed features or power features into the model to determine the characteristic.
[0055] A characteristic of the vehicle 130 determined or predicted by the route generator 112 may indicate whether to update the driving route previously identified by the data processing system 102. The characteristic may refer to, include, or indicate one or more of: a change in driving pattern, unforeseen driving behavior, a mass estimate or drag higher than previously determined, a longer than predicted battery preconditioning time due to a change in weather or temperature, or a prediction that an improved route may be determined based on a change in mass estimate (e.g., towing or a large load in the truck bed) in conjunction with driving pattern.
[0056] In response to the characteristics determined or predicted via the model 120 based on the power value and the speed, the route generator 112 can update the driving route to include a second charger located at a second location to charge the battery of the vehicle. The second location can be different from the first location of the first charger, which was initially identified as part of the driving route. Updating the driving route can refer to or include modifying the driving route to change at least one aspect of the driving route. In some cases, updating the driving route can refer to or include creating a second driving route that is different from the previously identified driving route. For example, the data processing system 102 can discard the previously identified driving route when creating the second driving route to reduce the use of memory or storage devices.
[0057] In some cases, the route generator 112 may update the driving route by replacing a first charger in the driving route with a second charger. The updated driving route may include a single charger, such as the second charger. For example, the second location of the second charger may be closer to the vehicle 130 relative to the first location of the first charger located in the previously identified driving route. The route generator 112 may determine to select a closer charger due to vehicle characteristics predicted or determined via the model 120. For example, the route generator 112 may detect that vehicle drag is increased due to towing a trailer, which may not have been accounted for when establishing the initial driving route. The route generator 112 may provide a digital map for display via a user interface of the vehicle 130, the digital map including the driving route updated with the second charger located at the second location, such as Figure 2 or Figure 3 In some cases, the route generator 112 may add the second charger to the driving route so that the driving route includes both the first charger and the second charger.
[0058] The data processing system 102 may determine that the vehicle is coupled to a trailer towed behind the vehicle 130 based on characteristics indicating increased drag or mass due to towing. The data processing system 102 may select a second charger located at the second location via a functional compatibility technique applied to the layout located at the second location and determining that the vehicle is coupled to the trailer. For example, the data processing system 102 may access a site map of the charger location to determine whether the vehicle towing the trailer can enter or approach the charger so that the charging cable of the charger can be coupled to the vehicle 130. Some charging stations may have restrictions, whereby trailers or vehicles towing trailers are not allowed to be accessible. Therefore, the data processing system 102 of the present technical solution may determine that the vehicle is towing a trailer and then update the driving route using functional compatibility techniques. Functional compatibility techniques may refer to determining that the layout or geometry of a charging site or charger is compatible, or allowing an object with certain dynamics to travel to the charger and park close enough to the charger so that the charging port on the vehicle can receive the charging plug of the cable connected to the charger.
[0059] The data processing system 102 may update the driving route in response to the expiration of the time interval or the characteristic. The data processing system 102 may update the driving route in response to an operating condition of the vehicle satisfying a threshold. For example, the condition may include at least one of the speed of the vehicle, acceleration, elevation, vehicle mass, drag of the vehicle, or temperature. For example, if the vehicle travels at a speed of more than 65 miles per hour for more than 5 minutes, the data processing system 102 may determine to update the driving route. The data processing system 102 may update the driving route to include time to precondition the battery before the vehicle arrives at a second charger located at a second location.
[0060] The route generator 112 can identify the profile 124 loaded onto the vehicle. The data processing system 102 can load the profile based on the user or driver of the vehicle. The data processing system 102 can detect the key fob of the driver of the vehicle. The key fob can be linked to the profile stored in the data repository 114 of the vehicle or the server system 140. The data processing system 102 can load the profile 124 corresponding to the key fob or linked to the key fob. In some cases, the driver or user of the vehicle 130 can select the profile via a graphical user interface or a vehicle dashboard. In some cases, the data processing system 102 can automatically load the profile 124 in response to the user or driver unlocking the door of the vehicle 130 via the key fob, entering the vehicle 130, starting the vehicle 130, or driving the vehicle 130.
[0061] The profile 124 may indicate one or more preferences. The profile 124 may include or indicate a preference for at least one of a charger type, a charger speed, a charger operator, or a charger layout. The route generator 112 may generate an initial driving route based on the profile 124. The route generator 112 may update the driving route based on the profile 124. The route generator 112 may select a second charger based at least in part on the one or more preferences indicated in the profile 124 loaded onto the vehicle 130. For example, the route generator 112 may identify a plurality of candidate chargers based on the predicted characteristics of the vehicle 130. The route generator 112 may select a second charger from the plurality of candidate chargers that matches the maximum number of preferences of the profile 124. For example, the candidate chargers may include a second charger of a first type and a third charger of a second type. The second charger and the third charger may each be a feasible candidate charger, included in the driving route. However, the profile 124 may include a preference for a first type of charger. Therefore, the route generator 112 may preferentially select a first type of second charger based on a profile 124 indicating a preference for a first type of charger.
[0062] In another example, the candidate chargers may include a second charger that is part of a first charging network and a third charger that is part of a second charging network. The second charger and the third charger may each be viable candidate chargers to include in the driving route. However, the profile 124 may include a preference for chargers that are part of the first charging network. Therefore, the route generator 112 may preferentially select the second charger that is part of the first charging network based on the profile 124 indicating a preference for chargers in the first charging network.
[0063] In another example, the candidate chargers may include a second charger located in a charging station with Level 2 charging and a third charger located in a charging station with Level 3 charging. The second charger and the third charger may each be a viable candidate charger for inclusion in the driving route. However, the profile 124 may include a preference for chargers that are part of a Level 2 charging station. Therefore, the route generator 112 may preferentially select the second charger that is part of a Level 2 charging station based on the profile 124 indicating a preference for Level 2 chargers. For example, Level 1 charging may refer to a 110 volt charger, Level 2 charging may refer to a 240 volt charging, and Level 3 may refer to a 480 volt charging.
[0064] The route generator 112 may utilize different application programming interfaces (“APIs”) to refer to different charging networks in addition to the charging networks owned and operated by the manufacturer of the vehicle 130. The route generator 112 may select or route the vehicle 130 to a charging station or charger 146 based on the available charging station ports (e.g., North American Charging Standard “NACS”, Combined Charging System “CCS”) at a particular charging station and the ports equipped on the vehicle 130. The route generator 112 may route the vehicle 130 based on preferences or configurations in the profile 124 and the available charging station ports.
[0065] Figure 2An exemplary graphical user interface (GUI) 200 for dynamic route generation and charger discovery is depicted. The graphical user interface (GUI) 200 may be provided by the data processing system 102 (e.g., via the interface 104). The GUI 200 may display a driving route 205. The driving route 205 may be an initial driving route or a driving route established before the vehicle begins a trip (e.g., before the vehicle leaves or drives away from the first location 210 to the destination 220). The driving route 205 may include a first location 210, which may be a starting location. The driving route 205 may include a first charger located at the first location, such as charger A 215. The driving route 205 may include a destination 220. The driving route 205 may indicate an amount of time or a charging duration 230 at charger A 215, such as 30 minutes. The driving route 205 may indicate the driving time between various segments of the driving route, such as from the first location 210 to charger A 215, and from charger A 215 to the destination 220. GUI 200 may provide trip details 225, such as charger information, coffee shop or other restaurant or fast food or retail information, accommodation information, and overall trip duration or mileage information. Charger 215 may refer to or include one or more components or functions of charger 146. Charger 215 may be located at a station, stop, or location along the driving route. GUI 200 may indicate that the distance of the driving route is 285 miles (235), the duration of the driving route is 4 hours and 46 minutes (240), and the estimated time of arrival at the destination is 4:10 pm (245).
[0066] Figure 3 An exemplary graphical user interface for dynamic route generation and charger discovery is depicted. GUI 300 may include Figure 2 The graphical user interface 300 may be provided by the data processing system 102 (e.g., via the interface 104). The GUI 300 may indicate a second driving route 305. The second driving route 305 may refer to or include a driving route dynamically generated or updated by the data processing system 102 based on the characteristics of the vehicle determined via a model trained using machine learning. The second driving route 305 may include information related to the vehicle. Figure 2 200 of the GUI 200. However, the second travel route may include different or additional chargers at different locations, namely, charger B 310 and charger C 315. In some cases, the second travel route 305 may include the same first charger as the initial travel route, namely, charger A 215. In some cases, the second travel route 305 may replace the first charger A 215 with a different charger at a different location.
[0067] The driving route 305 may indicate the amount of time to charge at each charger 215, 310, and 315. The driving route 305 may indicate the duration of travel between different locations. The GUI 300 may include information about coffee shops 320, charger information 325, or other trip details. In some cases, the updated driving route 305 may include a notification 330 or instruction that the driving route avoids highways, tolls, and ferries. The notification 330 may include a pop-up window or alert. The notification 330 may be based on a configuration, preference, or profile established by the user of the vehicle.
[0068] Figure 4 An exemplary method 400 for dynamic route generation and charger discovery is depicted. The method 400 may be performed by Figure 1 or Figure 7 , including, for example, a data processing system. At action 402, the data processing system may identify a driving route for the vehicle. The driving route may be a driving route initially generated for the vehicle from a starting location to a destination. The driving route may be a driving route generated when the vehicle travels along the driving route. The driving route may be a driving route previously generated for the vehicle, but after the vehicle leaves the starting location and before the vehicle arrives at the destination. The data processing system may retrieve the driving route from a memory or data repository of the data processing system. The data processing system may receive the driving route from a remote server or a cloud server via a network. The data processing system may receive the driving route from a mobile computing device such as a mobile smart phone, a laptop, or other computing device. In some cases, the data processing system may generate the driving route. For example, a user of the vehicle may enter a destination via a graphical user interface or a dashboard provided by the data processing system of the vehicle. The data processing system may determine a current location of the vehicle and set a first location as the current location. The data processing system may determine the driving route based on the first location and the destination. The data processing system may determine that the user of the vehicle intends to execute the driving route while generating the driving route.
[0069] The data processing system may generate a driving route at action 402 based on current conditions associated with the vehicle or the environment at the starting point or first location. The data processing system may generate a driving route at action 402 based on predicted conditions (e.g., traffic or weather) along the driving route. The data processing system may generate a driving route at action 402 based on a prediction of conditions along the driving route, wherein the prediction is obtained at a timestamp corresponding to the time when the driving route is generated. In some cases, a user may enter a departure time or an expected arrival time of the driving route when generating the driving route. The data processing system may use the departure time or the expected arrival time to generate the driving route. The data processing system may use the expected arrival time to determine the departure time of the vehicle. The data processing system may predict the conditions of the departure or arrival time of the candidate driving routes and select the driving route based on the predicted conditions. The data processing system may consider attributes associated with the vehicle to generate the driving route, such as the health status of the battery, the charge status of the battery, the quality of the vehicle, or other attributes that may affect the vehicle's driving distance and charging the vehicle.
[0070] At action 404, the data processing system may detect a condition, such as the expiration of a time interval (e.g., a 5 minute counter to refresh the travel route) or exceeding a speed or acceleration threshold. A condition may refer to or include a condition, event, or trigger that causes or instructs the vehicle to refresh, update, modify, reevaluate, or regenerate the travel route identified at action 402. For example, the condition may include a change in one or more of the following: battery charge state, battery health, weather, traffic, or vehicle driving mode. The condition may include the speed or acceleration of the vehicle being greater than a threshold value within a time interval. The condition may include a change in the mass of the vehicle or the drag of the vehicle. For example, a condition may include detecting that the vehicle is towing a trailer, which may affect the drag of the vehicle.
[0071] In some cases, the data processing system may detect a condition in response to a change in a driving mode of the vehicle. Driving modes may include, for example, comfort mode, economy mode, sport mode, snow mode, off-road, or other driving modes. The data processing system may detect a change in driving mode in response to a user or driver of the vehicle changing the driving mode via a graphical user interface of the vehicle. In some cases, the data processing system may automatically change the driving mode in response to detecting a change in a surface or environmental attribute traversed by the vehicle (e.g., from driving on a sidewalk to driving on a muddy trail or other off-road surface, or a change in driving behavior). Therefore, the data processing system may determine to perform a dynamic routing update process at decision block 406 in response to a change in driving mode.
[0072] At decision block 406, the data processing system may determine whether to perform a dynamic route update process based on the conditions detected at 404. For example, if the condition is that a refresh timer or a speed or acceleration threshold is satisfied, the data processing system may continue to action 408 to perform a dynamic route update process. If the condition includes determining that the drag change of the vehicle is greater than a drag threshold, the data processing system may determine to perform a dynamic route update process to determine whether to generate and call a new travel route for the vehicle.
[0073] In some cases, at decision block 406, if the route is close to completion (e.g., 95% complete), the data processing system may determine not to perform the dynamic route refresh process and continue to maintain the route at action 418 to reduce or save computing processor or energy usage. However, if the data processing system determines at decision block 406 to perform the dynamic route update process, the data processing system may continue to action 408 to collect data samples. The data sample may include time series data. A time series may include or refer to a sequence of data points or values collected at consecutive time intervals. A time series may represent a change or change in a particular variable over time. In a time series, data samples may be measured, sensed, or recorded and ordered in chronological order, with each observation associated with a specific timestamp or time period. Time series data may be collected periodically, such as every second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 30 seconds, 60 seconds, 5 minutes, 10 minutes, 15 minutes, 30 minutes, every hour, every 6 hours, or every day. For example, the data processing system may collect time series data samples from one or more sensors of the vehicle or a remote data source at action 408. For example, the data processing system may collect information about the amount of power used by the vehicle to travel along the driving route, the speed of the vehicle, the acceleration of the vehicle, the altitude of the vehicle, the mass of the vehicle drive (e.g., including the vehicle itself), or the amount of drag on the vehicle as the vehicle travels. The data processing system may collect weather or traffic information. The data processing system may request the user to input additional information, such as via a graphical user interface.
[0074] The data processing system may proceed to action 410 to filter the collected data samples. The data processing system may apply a filter to the time series data samples to adjust the impact of one or more samples in the time series data samples on the prediction of characteristics that may affect the travel route. For example, the data processing system may bucket or bin the time series data samples of one or more types. For example, the data processing system may fit the time series data samples to a cubic polynomial curve, or apply a Kalman filter.
[0075] The data processing system may proceed to action 412 to predict the characteristics of the vehicle based on the filtered or collected data samples. For example, the data processing system may feed the filtered data samples into a model trained using machine learning to determine the characteristics of the vehicle.
[0076] For example, the data processing system may determine or predict the characteristic using a time series of data samples. The data processing system may determine or predict the characteristic using a time series of data samples via a model trained using historical battery consumption data. The data processing system may determine or predict a characteristic that indicates whether to update a driving route previously identified by the data processing system. The characteristic may refer to, include, or indicate one or more of the following: a change in driving pattern, unforeseen driving behavior, a mass estimate or drag higher than a previously determined value, a battery pre-conditioning time longer than predicted due to changes in weather or temperature, or a prediction of an improved route may be determined based on a change in mass estimate (e.g., a large load in a towing or truck bed) in combination with a driving pattern.
[0077] At decision block 416, the data processing system may determine whether to select a new charger based on the characteristic predicted or determined at 412. If the characteristic indicates that the vehicle's driving range has decreased such that the vehicle does not have sufficient driving distance between segments of the driving route to travel from one charger to another, the data processing system may determine to select a new charger. In another example, the data processing system may determine to charge more frequently at one or more fast chargers, but reduce charging time, based on the characteristic. In another example, the data processing system may determine that the site layout of the selected charger is incompatible with the characteristic indicating that the vehicle is towing a trailer, which may block or confuse access to the charger or charging plug.
[0078] If the data processing system determines to select a new charger (e.g., if driving behavior indicates a decrease in efficiency, or the vehicle is predicted to tow a trailer that does not fit in a previously selected charging station), the data processing system may proceed to action 414 to update the driving route with the new charger. However, if the data processing system determines at decision block 416 not to change the driving route, the data processing system may proceed to action 418 to maintain the driving route.
[0079] At 414, the data processing system may update the driving route with the second charger. The data processing system may select the second charger to include in the driving route. The data processing system may include the second charger in addition to the first charger. The data processing system may remove the first charger and generate an updated driving route that includes only the second charger. The data processing system may remove the first charger and generate an updated driving route that includes the second charger and one or more additional chargers that are different from the first charger. Thus, based at least in part on improved driving distance estimates from data collected in real time during the driving route, the data processing system may generate an updated, more accurate driving route that is input into a model trained using historical battery consumption data.
[0080] The data processing system may select a second charger based on a profile loaded onto the vehicle. The profile may include a charger preference. The data processing system may identify the profile loaded onto the vehicle. In response to a driver or user of the vehicle unlocking a door of the vehicle using a key fob or the driver or user selecting a profile from a vehicle user interface, the data processing system may identify or detect the profile. In some cases, the profile may be a default profile for the vehicle. The profile indicates a preference for at least one of a charger type, a charger speed, a charger operator, or a charger layout. The data processing system may identify a plurality of candidate chargers based on the characteristic, and then select a second charger from the candidate chargers based at least in part on the one or more preferences indicated in the profile loaded onto the vehicle.
[0081] In some cases, the data processing system may filter out, block, remove, or prevent some chargers from becoming candidate chargers based on the preferences of the chargers. For example, the profile may indicate not to charge at any charger in a certain charging network, a certain charging type, or a certain layout. For example, if the vehicle is towing a trailer, the profile may include a preference to prevent the selection of a charger at a station or orientation that is not configured or is incompatible with the vehicle towing the trailer.
[0082] Figure 5 An exemplary method 500 for dynamic route generation and charger discovery is depicted. The method 500 may be performed by Figure 1 or Figure 7 , including, for example, a data processing system. At action 502, the data processing system may identify a driving route for the vehicle. The data processing system may retrieve a previously generated driving route, or generate a driving route, at action 502. The data processing system may obtain an initial driving route generated before the vehicle begins traveling along the driving route. The data processing system may retrieve a driving route that is itself a refreshed or updated driving route generated when the vehicle travels along the previously generated driving route.
[0083] At action 504, the data processing system receives an indication of a power value output by a battery of the vehicle. The indication of the power value output by the battery may include a time series of data samples or measurements of the power output by the battery. The battery may refer to the entire battery used to power the electric vehicle, including the drive motor. The data processing system may receive a measurement or a time series of measurements from a battery management system of the vehicle. The data processing system may receive an indication of the vehicle speed as a time series of data samples.
[0084] At action 506, the data processing system may predict a characteristic of the vehicle. The data processing system may input the time series of data samples into a model trained with historical battery consumption data to determine or predict the characteristic. The model may be trained using machine learning. The characteristic may indicate that the drag of the vehicle is greater than a threshold. The threshold may be determined based on previous drags used to generate previous travel routes. The characteristic may include the mass of the vehicle or indicate that the vehicle is coupled to a trailer towed behind the vehicle.
[0085] At action 508, the data processing system may update the driving route. The data processing system may update the driving route during traversal of the initial driving route to provide a more accurate driving route. The data processing system may generate a new driving route or modify a previously generated driving route, or update a driving route that is currently being executed. The data processing system may use this feature to generate a new driving route. The new driving route may include one or more additional chargers relative to the previously generated driving route, may include at least one different charger, or may include at least one different charging duration (e.g., a longer charging duration or a shorter charging duration at a particular charger along the driving route).
[0086] Figure 6An exemplary vehicle 130 is depicted. The vehicle 130 may include a data processing system 102 and a sensor 132. The vehicle 130 may be equipped with at least one battery pack 610. The vehicle 130 may be an electric vehicle. The electric vehicle 130 may include an electric truck, an electric sport utility vehicle (SUV), an electric van, an electric car, an electric car, an electric motorcycle, an electric scooter, an electric passenger car, an electric passenger or commercial truck, a hybrid vehicle or other vehicle, such as a sea or air vehicle, an airplane, a helicopter, a submarine, a ship, or a drone, among other possibilities. The battery pack 610 may also be used as an energy storage system to power a building such as a residential or commercial building. The electric vehicle 130 may be fully electric or partially electric (e.g., a plug-in hybrid), and further, the electric vehicle 130 may be fully autonomous, partially autonomous, or unmanned. The electric vehicle 130 may also be manually operated or non-autonomous. The electric vehicle 130 (such as an electric truck or car) may include an onboard battery pack 610, a battery 615 or a battery module 615, or a battery cell 620 to power the electric vehicle. The electric vehicle 130 may include a chassis 625 (e.g., a frame, an internal frame, or a support structure). The chassis 625 may support various components of the electric vehicle 130. The chassis 625 may span a front portion 630 (e.g., a hood or lid portion), a body portion 635, and a rear portion 640 (e.g., a luggage compartment, a payload, or a trunk portion) of the electric vehicle 130. The battery pack 610 may be mounted or placed within the electric vehicle 130. For example, the battery pack 610 may be mounted within one or more of the front portion 630, the body portion 635, or the rear portion 640 on the chassis 625 of the electric vehicle 130. The battery pack 610 may include or be connected to at least one bus bar, such as a collector element. For example, the first busbar 645 and the second busbar 650 may include conductive materials to connect or otherwise electrically couple the battery 615 , battery module 615 , or battery cell 620 to other electrical components of the electric vehicle 130 to provide power to various systems or components of the electric vehicle 130 .
[0087] For example, the battery cell 620 may include at least one lithium-ion battery cell. In a lithium-ion battery cell, lithium ions may be transferred between a positive electrode and a negative electrode during charging and discharging of the battery cell. For example, the battery cell anode may include lithium or graphite, and the battery cell cathode may include a lithium-based oxide material. An electrolyte material may be provided in the battery cell 620 to separate the anode and cathode from each other and facilitate the transfer of lithium ions between the anode and the cathode. It should be noted that the battery cell 620 may also take the form of a solid-state battery cell developed using a solid electrode and a solid electrolyte.
[0088] In some cases, the vehicle 130 may tow a trailer 652. The trailer 652 may be coupled to the rear portion 640 of the vehicle via a towing hook. The trailer 652 may have a length and a width. The trailer 652 may carry or transport an object or material. The trailer 652 may be powered or may lack power. The trailer 652 may or may not be electrically coupled to the vehicle 130.
[0089] Figure 7 An exemplary block diagram of an example computer system 700 is depicted. The computer system or computing device 700 may include or may be used to implement a data processing system or components thereof. The computing system 700 includes: at least one bus 705 or other communication component for communicating information; and at least one processor 710 or processing circuit coupled to the bus 705 for processing information. The computing system 700 may also include one or more processors 710 or processing circuits coupled to the bus for processing information. The computing system 700 also includes at least one main memory 715 (such as a random access memory (RAM) or other dynamic storage device) coupled to the bus 705 for storing information and instructions to be executed by the processor 710. The main memory 715 may be used to store information during execution of instructions by the processor 710. The computing system 700 may further include at least one read-only memory (ROM) 720 or other static storage device coupled to the bus 705 for storing static information and instructions for the processor 710. A storage device 725 , such as a solid-state device, magnetic disk, or optical disk, may be coupled to bus 705 for persistent storage of information and instructions.
[0090] The computing system 700 may be coupled to a display 735 (e.g., a liquid crystal display or an active matrix display) via the bus 705 for displaying information to a user (e.g., a driver of the electric vehicle 130 or other end user). An input device 730 (such as a keyboard or voice interface) may be coupled to the bus 705 for communicating information and commands to the 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 directional information and command selections to the processor 710 and for controlling cursor movement on the display 735.
[0091] The processes, systems, and methods described herein may be implemented by the computing system 700 in response to the processor 710 executing an instruction arrangement contained in the main memory 715. Such instructions may be read into the main memory 715 from another computer-readable medium, such as the storage device 725. The execution of the instruction arrangement contained in the main memory 715 causes the computing system 700 to perform the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be used to execute the instructions contained in the main memory 715. Hard-wired circuitry may be used in place of or in combination with software instructions and the systems and methods described herein. The systems and methods described herein are not limited to any specific combination of hardware circuitry and software.
[0092] Although already Figure 7 An exemplary computing system is described in the specification, but the subject matter including the operations described in this specification may be implemented in other types of digital electronic circuits, or in computer software, firmware, or hardware (including the structures disclosed in this specification and their structural equivalents), or in a combination of one or more of them.
[0093] Some descriptions herein emphasize the structural independence of aspects of system components or the grouping of operations and responsibilities of these system components. Other groupings that perform similar overall operations are also within the scope of this application. Modules can be implemented in hardware or as computer instructions on non-transient computer-readable storage media, and modules can be distributed across various hardware or computer-based components.
[0094] The system described above can provide any one of these components or multiple components of each component, and these components can be provided on a stand-alone system, or on multiple instances in a distributed system. In addition, the system and method described above can be provided as one or more computer-readable programs or executable instructions, which are included in one or more products or products. The product can be a cloud storage, a hard disk, a CD-ROM, a flash memory card, a PROM, a RAM, a ROM, or a tape. In general, a computer-readable program can be implemented in any programming language (such as LISP, PERL, C, C++, C#, PROLOG), or implemented in any byte code language (such as JAVA). The software program or executable instruction can be stored as an object code on or in one or more products.
[0095] Example and non-limiting module implementation elements include sensors that provide any value identified herein, sensors that provide any value that is a predecessor of a value identified herein, data link or network hardware including a communication chip, an oscillator crystal, a communication link, a cable, a twisted pair, a coaxial line, a shielded line, a transmitter, a receiver or a transceiver, a logic circuit, a hard-wired logic circuit, a reconfigurable logic circuit in a specific non-transient state configured according to the module specification, any actuator including at least an electric actuator, a hydraulic actuator or a pneumatic actuator, a solenoid, an operational amplifier, an analog control element (spring, filter, integrator, adder, divider, gain element) or a digital control element.
[0096] The subject matter and operations described in this specification may be implemented in digital electronic circuits, or in computer software, firmware or hardware, including the structures disclosed in this specification and their structural equivalents, or in a combination of one or more of them. The subject matter described in this specification may be implemented as one or more computer programs (e.g., one or more computer program instruction circuits), which are encoded on one or more computer storage media for execution by a data processing device or for controlling the operation of a data processing device. Alternatively or additionally, program instructions may be encoded on an artificially generated propagation signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device to be executed 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 of them. Although a computer storage medium is not a propagation signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagation signal. The computer storage medium may also be or be included in one or more separate components or media (e.g., multiple CDs, disks, or other storage devices including cloud storage). The operations described in this specification may be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
[0097] The terms "computing device," "component," or "data processing apparatus," etc., encompass various apparatuses, devices, and machines for processing data, including, for example, a programmable processor, a computer, a system on a chip, or multiple or a combination of the foregoing. The apparatus may include dedicated logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform operating environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0098] A computer program (also referred to as a program, software, software application, application, script, or code) may be written in any form of programming language, including compiled or interpreted, declarative or procedural, and may be deployed 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 that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files storing one or more modules, subroutines, or code portions). A computer program may be deployed to execute on one or more computers located in one location or distributed in multiple locations and interconnected by a communications network.
[0099] 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 operating on input data and generating output. The processes and logic flows may also be performed by special purpose logic circuits, and the apparatus may also be implemented as special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits). Devices suitable for storing computer program instructions and data may include non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and memory may be supplemented by or incorporated into special purpose logic circuits.
[0100] The subject matter described herein can be implemented in a computing system that includes a back-end component, such as a data server, or includes a middleware component, such as an application server, or includes a front-end component, such as a client computer with a graphical user interface or a web browser, through which a user can interact with a specific implementation of the subject matter described in this specification, or includes a combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by digital data communication (e.g., a communication network) in any form or medium. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internets (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0101] Although operations are depicted in a particular order in the drawings, these operations need not be performed in the particular order shown or in sequential order, and not all of the operations shown need be performed. The actions described herein may be performed in a different order.
[0102] Now that some exemplary implementations have been described, it is apparent that the foregoing is illustrative rather than restrictive and has been presented by way of example. Specifically, although many of the examples presented herein relate to specific combinations of method actions or system elements, these actions and these elements may be combined in other ways to achieve the same purpose. The actions, elements, and features discussed in conjunction with one implementation are not intended to be excluded from similar roles in other implementations.
[0103] The words and terms used herein are for descriptive purposes and should not be construed as limiting. The use of "including," "comprising," "having," "containing," "involving," "characterized by," and variations thereof herein is intended to encompass the items listed thereafter, their equivalents and additional items, and alternative implementations consisting solely of the items listed thereafter. In one implementation, the systems and methods described herein consist of one, each combination of more than one, or all of the elements, acts, or components described.
[0104] Any reference to an implementation or element or action of the systems and methods mentioned herein in the singular may also include implementations that include a plurality of these elements, and any reference to any implementation or element or action in the plural may also include implementations that include only a single element. References in the singular or plural are not intended to limit the currently disclosed systems or methods, their parts, actions, or elements to a single or multiple configurations. References to any action or element based on any information, action, or element may include implementations in which the action or element is based, at least in part, on any information, action, or element.
[0105] Any implementation disclosed herein may be combined with any other implementation or embodiment, and references to "implementation," "some implementations," "one implementation," etc. are not necessarily mutually exclusive, but are intended to indicate that a particular feature, structure, or characteristic described in conjunction with an implementation may be included in at least one implementation or embodiment. Such terms as used herein do not necessarily all refer to the same implementation. Any implementation may be combined, inclusively or exclusively, with any other implementation in any manner consistent with the aspects and implementations disclosed herein.
[0106] References to "or" may be interpreted as inclusive, such that any term described using "or" may indicate any of a single, more than one, and all of the terms. References to at least one of a concatenated list of terms may be interpreted as an inclusive "or" to indicate any of a single, more than one, and all of the terms. For example, a reference to "at least one of 'A' and 'B'" may include only "A," only "B," and both "A" and "B." Such references used in conjunction with "including" or other open-ended terms may include additional items.
[0107] Where a technical feature in the drawings, detailed description or any claims is followed by a reference numeral, the reference numeral is included to enhance the intelligibility of the drawings, detailed description and claims. Therefore, the presence or absence of a reference numeral has no limiting effect on the scope of any claim element.
[0108] Without departing substantially from the teachings and advantages of the subject matter disclosed herein, modifications may be made to the elements and actions, such as changes in size, dimensions, structure, shape and proportion, parameter values, mounting arrangements, use of materials, color, orientation of the various elements. For example, an element shown as being integrally formed may be composed of multiple parts or elements, the position of elements may be reversed or otherwise changed, and the nature or number or position of discrete elements may be changed or varied. Other substitutions, modifications, changes and omissions may also be made in the design, operating conditions and arrangement of the disclosed elements and operations without departing from the scope of the present disclosure.
[0109] Further relative parallel, perpendicular, vertical or other positioning or orientation descriptions include variations within + / -10% or + / -10 degrees of pure vertical, parallel or perpendicular positioning. Unless otherwise expressly stated, references to "about," "substantially," or other degree terms include variations of + / -10% from a given measurement, unit, or range. The coupled elements may be electrically, mechanically, or physically coupled to each other directly or through intervening elements. Accordingly, the scope of the systems and methods described herein is indicated by the appended claims rather than the foregoing description, and variations that come within the meaning and range of equivalents of the claims are included therein.
Claims
1. A system, comprising: A computing system comprising one or more processors coupled to a memory to: identifying a travel route for a vehicle, the travel route including a first charger located at a first location along the travel route, the first charger configured to charge a battery of the vehicle; receiving, via a battery management system of the vehicle, an indication of an amount of power output by the battery of the vehicle and an indication of a speed of the vehicle as the vehicle traverses the travel route; predicting a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data; as well as In response to the characteristic predicted via the model based on the power value and the speed, the travel route is updated to include a second charger located at a second location to charge the battery of the vehicle.
2. The system according to claim 1, comprising the computing system, wherein the computing system is configured to: replacing the first charger in the driving route with the second charger, wherein the second charger is closer to the vehicle than the first charger; and A digital map is provided for display via a user interface of the vehicle, the digital map including the driving route updated using the second charger located at the second location.
3. The system of claim 1 , wherein the indication of the power value comprises a time series of data samples, the system comprising the computing system, the computing system being configured to: applying a filter to the time series of data samples to adjust the effect of one or more of the time series of data samples on the prediction of the characteristic; and The characteristic is predicted via the model using data samples of the time series adjusted based on application of the filter.
4. The system of claim 1 , wherein the indication of the power value comprises a time series of data samples, the system comprising the computing system, the computing system being configured to: fitting the time series of data samples to a cubic polynomial curve to adjust for an effect of one or more of the time series of data samples on the prediction of the characteristic; and The characteristic is predicted via the model using data samples of the time series fitted to the cubic polynomial curve.
5. The system of claim 1 , wherein the indication of the speed comprises a time series of data samples, the system comprising the computing system, the computing system being operable to: applying a filter to the time series of data samples to reduce the effect of older samples in the time series of data samples on the prediction of the characteristic relative to newer samples in the time series of data samples; and The characteristic is predicted via the model using data samples of the time series adjusted based on application of the filter.
6. The system according to claim 1, comprising the computing system, wherein the computing system is configured to: bucketing the indication of the velocity to generate a velocity feature; and The velocity characteristics are input into the model to determine the properties.
7. The system according to claim 1, comprising the computing system, wherein the computing system is configured to: identifying a profile loaded onto the vehicle, the profile indicating one or more preferences for at least one of charger type, charger speed, charger operator, or charger layout; and The second charger is selected based at least in part on the one or more preferences indicated in the profile loaded onto the vehicle.
8. The system according to claim 1, comprising: The computing system updates the driving route in response to an operating condition of the vehicle satisfying a threshold, the condition comprising at least one of a speed, acceleration, elevation, mass, drag, or temperature of the vehicle.
9. The system according to claim 1, comprising: The computing system updates the driving route to include time to precondition the battery before the vehicle arrives at the second charger at the second location.
10. The system of claim 1, comprising the computing system, wherein the computing system is configured to: based on the characteristic, determining that the vehicle is coupled to a trailer towed behind the vehicle; and The second charger located at the second location is selected via a functional compatibility technique applied to the layout located at the second location and determining that the vehicle is coupled to the trailer.
11. The system according to claim 1, comprising the computing system, wherein the computing system is configured to: receiving data corresponding to at least one of a mass of the vehicle, a driving pattern of the vehicle, an elevation of the driving route, or weather along the driving route; and The characteristic is determined via the model based on the data.
12. A method comprising: identifying, by a computing system including one or more processors coupled to a memory, a travel route for a vehicle, the travel route including a first charger located at a first location along the travel route, the first charger configured to charge a battery of the vehicle; receiving, by the computing system via a battery management system of the vehicle, an indication of an amount of power output by the battery of the vehicle and an indication of a speed of the vehicle as the vehicle traverses the travel route; predicting, by the computing system, a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data; as well as The driving route is updated, by the computing system, to include a second charger at a second location to charge the battery of the vehicle in response to the characteristic predicted via the model based on the power value and the speed.
13. The method according to claim 12, comprising: replacing, by the computing system, the first charger in the driving route with a second charger, wherein the second charger is closer to the vehicle than the first charger; A digital map is provided by the computing system for display via a user interface of the vehicle, the digital map including the driving route updated using the second charger located at the second location.
14. The method of claim 12, wherein the indication of the power value comprises a time series of data samples, the method comprising: applying, by the computing system, a filter to the time series of data samples to adjust an effect of one or more of the time series of data samples on the prediction of the characteristic; as well as The characteristic is predicted by the computing system via the model using data samples of the time series adjusted based on application of the filter.
15. The method of claim 12, wherein the indication of the power value comprises a time series of data samples, the method comprising: fitting, by the computing system, the data samples of the time series to a cubic polynomial curve to adjust for an effect of one or more of the data samples of the time series on the prediction of the characteristic; as well as The characteristic is predicted by the computing system via the model using data samples of the time series fitted to the cubic polynomial curve.
16. The method of claim 12, wherein the indication of the speed comprises a time series of data samples, the method comprising: applying, by the computing system, a filter to the data samples of the time series to reduce the effect of older samples of the data samples of the time series on the prediction of the characteristic relative to newer samples of the data samples of the time series; as well as The characteristic is predicted by the computing system via the model using data samples of the time series adjusted based on application of the filter.
17. The method according to claim 12, comprising: binning, by the computing system, the indication of the velocity to generate a velocity signature; as well as The velocity signature is input into the model by the computing system to determine the characteristic.
18. The method according to claim 12, comprising: The driving route is updated by the computing system in response to an operating condition of the vehicle satisfying a threshold, the condition comprising at least one of a speed, acceleration, elevation, mass, drag, or temperature of the vehicle.
19. An electric vehicle, comprising: Battery; A battery management system, the battery management system is used to control the performance of the battery; and A computing system comprising one or more processors and a memory, wherein the one or more processors and the memory are configured to: identifying a travel route for a vehicle, the travel route including a first charger located at a first location along the travel route, the first charger configured to charge a battery of the vehicle; receiving, via a battery management system of the vehicle, an indication of an amount of power output by the battery of the vehicle and an indication of a speed of the vehicle as the vehicle traverses the travel route; predicting a characteristic of the vehicle based on the power value and the speed via a model trained using historical battery consumption data; as well as In response to the characteristic predicted via the model based on the power value and the speed, the travel route is updated to include a second charger located at a second location to charge the battery of the vehicle.
20. The electric vehicle according to claim 19, comprising: The computing system updates the driving route in response to an operating condition of the vehicle satisfying a threshold, the condition comprising at least one of a speed, acceleration, elevation, mass, drag, or temperature of the vehicle.
