Camless reciprocating engine control system
By using optical sensors and machine learning models in cam-free reciprocating engines, the operation of engine components is solved in real time, and the problem of finding the best intake and exhaust timing in the prior art is improved, and engine efficiency and adaptability are improved.
Patent Information
- Application Number
- CN202280096781.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-05-05
- Publication Date
- 2025-05-02
AI Technical Summary
Existing reciprocating engines have difficulty finding the best intake and exhaust timing between high and low loads, resulting in inefficiency of the engine.
The cam-free reciprocating engine is adopted to generate sensor data through optical sensors, and the operation of engine components is optimized in real time using neural networks and machine learning models, and dynamically manage components such as intake valves, exhaust valves, fuel injectors, etc.
Real-time optimization of engine operation is achieved, engine efficiency is improved, and adaptability to various environmental conditions is enhanced.
Smart Images

Figure FT_1 
Figure FT_2 
Figure FT_3
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to reciprocating engines, and more particularly to real-time adaptive any-fuel engines using sensor feedback. Background Art
[0002] Reciprocating engines use engine function parameters such as timing, duration and phasing of various engine components. In conventional reciprocating engines using mechanical camshafts, the parameters are fixed and result in a compromise of optimal intake and exhaust timing between high and low engine loads. Camless engines are characterized by the removal of the mechanical camshaft, thereby achieving variable valve timing (VVT) by controlling electromagnetic or hydraulic actuation of the intake and exhaust valves. Summary of the invention
[0003] In some aspects, the technology described herein relates to a camless reciprocating engine, the camless reciprocating engine comprising: a cylinder, the cylinder housing a reciprocating piston; an engine component, the engine component associated with the cylinder, wherein the engine component is selected from the group consisting of: an intake valve, an exhaust valve, a spark plug, a fuel injector, and a variable compression mechanism; an actuator, the actuator coupled to the engine component, wherein the actuator is configured to control operation of the engine component; an optical sensor, the optical sensor configured to generate sensor data regarding cylinder operating attributes; and a controller, the controller coupled to the optical sensor and the actuator, wherein the controller is configured to: receive the sensor data from the optical sensor; process the sensor data using a neural network, the neural network being trained to generate actuator command data associated with a desired engine operation optimization; and initiate braking of the actuator based at least in part on the actuator command data.
[0004] In some aspects, the technology described herein relates to a system comprising: a computer-readable memory storing executable instructions; and one or more computer processors communicating with the computer-readable memory and being programmed by the executable instructions to at least: obtain training data comprising a plurality of training data input vectors and a plurality of reference data output vectors, wherein a training data input vector in the plurality of training data input vectors represents sensor data regarding operating properties of a camless engine, and wherein a reference data output vector in the plurality of reference data output vectors represents actuator command data to be generated by a machine learning model from the training data input vectors; train the machine learning model using the training data and an objective function, wherein the objective function is associated with optimization of engine functionality; and provide the trained machine learning model to one or more camless engines. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Embodiments of various inventive features will now be described with reference to the following drawings. Throughout the drawings, reference numerals may be reused to indicate the corresponding relationship between reference elements. The drawings are provided to illustrate the example embodiments described herein and are not intended to limit the scope of the present disclosure.
[0006] 1 is a diagram of a single cylinder cross section of a camless engine with sensors and a control system according to some embodiments.
[0007] 2 is a diagram illustrating a training environment in which a machine learning model used by a camless engine controller may be trained, according to some embodiments.
[0008] 3 is a diagram illustrating the use of a machine learning model to generate engine component actuator commands based on evaluation of sensor data regarding engine operation, according to some embodiments.
[0009] 4 is a flow chart of an illustrative process for training a machine learning model using sensor data regarding engine operation, according to some embodiments.
[0010] 5 is a diagram of reinforcement learning for generating engine component actuator commands based on evaluation of sensor data related to engine operation, according to some embodiments.
[0011] 6 is a flow chart of an illustrative process for performing reinforcement learning using sensor data regarding engine operation, according to some embodiments.
[0012] 7 is a block diagram of an illustrative computing system configured to implement aspects of the present disclosure, in accordance with some embodiments. DETAILED DESCRIPTION
[0013] The present disclosure relates to a camless reciprocating engine control system that uses a laser absorption spectroscopy (LAS) sensor and artificial intelligence / machine learning to optimize engine operation. The control system evaluates LAS sensor data in real time or substantially real time to optimize the operation of the engine by dynamically managing camless engine components such as intake valves, exhaust valves, fuel injectors, spark plugs, and variable compression mechanisms. Advantageously, in some embodiments, the real-time or substantially real-time evaluation and optimization can be based on up to millisecond-level LAS sensor data about the engine state, and can make it possible to change the operation of the engine component within a few milliseconds or microseconds of the LAS sensor data evaluation. Therefore, the control system can implement changes to the operation of the engine component within a single engine cycle or within a single stroke of the engine cycle (e.g., within a single stroke of a two-stroke or four-stroke engine cycle).
[0014] Some conventional reciprocating engines use fixed parameters for various features and components (e.g., timing, duration, phase, etc.). Fixed parameters can be implemented using a mechanical camshaft, which typically has only one lobe per valve. Therefore, conventional valve actuation involves fixed duration, lift, and overall profile over time and from cycle to cycle. Such fixed parameters may be the result of a compromise, such as a compromise in optimal intake and exhaust timing between high and low engine loads or between extremes of expected environmental conditions. In some cases, fixed parameters may be the result of or may be the cause of predetermined limitations on the engine, such as use of a specific fuel or use within a limited period of use, during which performance variations of engine components are not expected to change.
[0015] A camless engine can address any or all of the above issues, among others, by dynamically adjusting operating parameters. More specifically, because a camless engine does not rely on a mechanical camshaft, a camless engine can dynamically control engine components over time and / or from cycle to cycle. For example, a camless engine can implement variable valve timing (VVT) by controlling electromagnetic or hydraulic actuation of the intake and exhaust poppet valves.
[0016] Camless engines can use optical sensors (such as LAS sensors) positioned at various locations in the engine (e.g., in the cylinder, upstream of the intake port of the cylinder, and / or downstream of the exhaust port) to measure the properties of the fuel, engine operation, etc. (e.g., temperature during combustion, species concentration, etc.). These sensors can quickly generate sensor data, in some cases, many times faster than the speed at which the operating parameters of the engine components may be modified. For example, the LAS sensor can provide sensor data dozens of times per cycle (e.g., fuel composition and energy content data received from the intake port, NOx, CO, UHC, CO2 data received from the exhaust port, or temperature, CO, H2O, UHC, CO2 data received from the cylinder). A control system configured to process such amount and / or frequency of sensor data and detect patterns in the data can be used to actively manage the rapid actuation of electronically controlled mechanical devices (e.g., intake valves, exhaust valves, spark plugs, fuel injectors, and variable compression mechanisms) and achieve optimal or expected goals.
[0017] Advantageously, by using artificial intelligence / machine learning (AI / ML), the camless engine control system can be configured to optimize engine operation in real time or substantially real time based on operational LAS sensor data. In addition, the control system can be configured to provide optimization under various conditions (such as under various combinations of fuel, speed, load, temperature, etc.). Without combining the dynamic control provided by the camless engine, the real-time or substantially real-time sensor data provided by the LAS sensors, and the data-driven insights learned through the application of AI / ML, optimizing the engine operation and other features described herein may be difficult, impractical, or impossible.
[0018] Some aspects of the present disclosure achieve various optimizations and features by training and using machine learning models to generate commands for engine component actuators. In some embodiments, LAS sensor data (e.g., fuel composition and energy content data received from the intake port; temperature, NOx, CO, UHC, CO2 data received from the exhaust port; temperature, CO, H2O, UHC, CO2 data received from the cylinder; or some combination thereof) can be marked with corresponding actuator commands to be implemented to achieve specific optimization goals or other features. The machine learning model can be trained to generate or adjust actuator commands based on LAS sensor data received during engine operation. Examples of machine learning models that can be used in various aspects of the present disclosure include artificial neural networks (including deep neural networks, recurrent neural networks, convolutional neural networks, etc.), linear regression models, logistic regression models, decision trees, random forests, support vector machines, naive or non-naive Bayesian networks, k-means clustering, other models or algorithms, or any collection thereof.
[0019] Additional aspects of the present disclosure relate to using reinforcement learning to train a machine learning model to generate commands for engine component actuators. In some embodiments, a reward structure can be implemented to drive the training of the machine learning model to a particular strategy. For example, if the strategy is to achieve minimization of certain emissions, then a reward unit can be provided when the sensor readings of these emissions are below a predetermined or dynamically determined number of such sensor readings. Examples of reinforcement learning methods that can be used for various aspects of the present disclosure include Q-learning, state-action-reward-state-action (SARSA), and temporal difference (TD).
[0020] The disclosed one or more engine control systems may be used with various types of engines, but are particularly suitable for use with internal combustion engines. For example and without limitation, some or all of the disclosed engine control systems may be used with 2-stroke engines, 4-stroke engines, rotary engines, and variations thereof, regardless of the type of fuel used by such engines. Additionally, the engine control system may be used with any internal combustion engine that includes at least one of the following: one or more valves for controlling intake and / or exhaust flow, one or more fuel injectors, or one or more fuel igniters (e.g., spark plugs or glow plugs).
[0021] Various aspects of the present disclosure will now be described with respect to certain examples and embodiments, which are intended to illustrate rather than limit the present disclosure. Although the examples and embodiments described herein will focus on specific engines, engine components, calculations and algorithms for illustrative purposes, it will be understood by those skilled in the art that the examples are illustrative only and are not intended to be limiting. In addition, any feature, process, device or component of any embodiment described and / or illustrated in this specification may be used alone, or used together with or in place of any other feature, process, device or component of any other embodiment described and / or illustrated in this specification.
[0022] Example Camless Reciprocating Engine Although the control system and related features described herein are not limited to a specific camless engine, an example of a camless engine that can be used with the control system and related features is described in PCT International Publication No. WO 2019 / 152886 published on August 8, 2019, which is incorporated herein by reference and constitutes a part of the present disclosure.
[0023] FIG. 1 depicts an embodiment of a camless engine 10 as described in PCT International Publication No. WO 2019 / 152886. As shown, the engine 10 includes a cylinder 62 that houses a reciprocating piston 32 and includes electronically controllable actuators in the form of one or more valves 22 and 28 that manage functions including intake / exhaust valve timing, compression ratio, spark ignition, and fuel injection, a spark ignition device 24 (e.g., a spark plug), and a fuel injection device 26. One or more sensors are provided, such as LAS sensors 34, 36, and 38 located at various locations in the engine. For example, the intake LAS sensor 34 (also referred to as LAS1), the in-cylinder LAS sensor 36 (also referred to as LAS2), and the exhaust LAS sensor 38 (also referred to as LAS3) measure various attributes associated with the operation of the engine 10.
[0024] The control system 12 may include a processor 14, a memory 16, and software 18. The control system 12 (also referred to as the controller 12) may process sensor input data (e.g., fuel composition and energy content data 52 received from the intake port 40 and LAS1 34, NOx, CO, UHC, CO2 data 54 received from the exhaust port 42 and LAS3 38, or temperature, CO, H2O, UHC, CO2 data 56 received from the cylinder 62 and LAS2 36) to actively manage rapid actuation of engine components (e.g., intake port, exhaust port, spark plug, fuel injector, variable compression mechanism). As described in more detail below, the software 18 may be configured to utilize AI / ML to optimize the engine 10 in real time for a range of engine loads and fuels or fuel mixtures by using models and / or algorithms. In some embodiments, the controller 12 or other modules or components of the engine 10 may include a network interface (not shown), such as a network interface card (NIC) with an integrated Wi-Fi antenna, a Bluetooth® antenna, or a cellular / mobile phone network antenna. The network interface may facilitate communication with a computing system external to the network. For example, sensor data and / or actuator command data may be transmitted to the computing system via the network interface. As another example, a machine learning model or executable code may be received via the network interface and may supplement or replace a machine learning model and / or code previously provided to controller 12.
[0025] In the embodiment shown in FIG. 1 , one or more lasers (LAS1, LAS2, or LAS3) can be used to collect specific types of gas property data (e.g., temperature, species concentration, etc. during combustion) through spectral techniques (e.g., absorption) and send the information to the adaptive controller 12. This information is used to modify and provide one or more functions 50, such as the timing, phase, and duration of operation of specific electronically controlled mechanical devices (e.g., intake valve 22, exhaust valve 28, spark plug 24, and fuel injector 26). In addition, various control parameters 58 can be used to control the gearbox for piston compression (e.g., through a variable compression mechanism 30). The control parameters can include one or more time characteristics of these devices (e.g., timing, duration, sequencing, or depth).
[0026] Finally, the laser spectroscopy sensors LAS1, LAS2 and LAS3 can then read the effects of this modification and provide rapid feedback to the controller 12 to continually adapt to changes in engine output, fuel input, emissions and engine load. The entire process can be completed in microseconds to milliseconds.
[0027] Laser spectroscopy sensors LAS1, LAS2 and LAS3 are specifically implemented to measure in harsh combustion environments and resolve time scales (milliseconds to microseconds) of chemical reactions and other flow field dynamics. These LAS optical measurements are made in situ through a small window 60 mounted in the engine wall (e.g., flush mounted with the inner wall at the sensor location) so as not to interfere with the combustion mechanism of the engine 10.
[0028] In some embodiments, LAS1, LAS2, and LAS3 include semiconductor lasers 10 located in the mid-infrared wavelength region to reduce cost and size, thereby achieving a deployable modality. It should be understood that the specific positions of sensors LAS1, LAS2, and LAS3 shown in FIG. 1 are for illustrative purposes only, and any number of positions, sensors, and sensor types may be employed. Illustratively, the three general target engine positions of these optical sensors can be positioned as follows to provide information for control and actuation: 1) positioned upstream to provide fuel composition; 2) positioned in the cylinder to provide temperature and main species; and 3) positioned downstream of the exhaust port to provide trace emissions sensing. The fuel composition measured upstream (e.g., using LAS1) can be used to optimize the fuel-air ratio before combustion to prevent over-rich or over-lean conditions. Temperature and species measurements in the cylinder (e.g., using LAS2) can be used to optimize compression ratios and exhaust gas recirculation to prevent NOx formation. Exhaust flow measurements (eg, using LAS3) can be used to identify key emissions such as carbon monoxide, unburned hydrocarbons, and NOx, and can be used to fine-tune other valve timing on the fly.
[0029] In some embodiments, the current state of engine 10 may be described by the current stroke of each cylinder (e.g., intake stroke, compression stroke, power stroke, exhaust stroke), the current revolutions per minute (RPM) applied by engine 10 to the crankshaft, the torque applied by engine 10 to the crankshaft, and LAS sensor data generated by each LAS sensor of engine 10. The state of each cylinder at a given point in time may depend on the current stroke of the engine cycle of each cylinder.
[0030] For the intake stroke, the state can be described by whether the intake valve is open, whether the exhaust port is closed, and / or the amount of air and / or fuel entering the cylinder. In some embodiments, a sensor (LAS1) located at or near the intake valve can generate 50+ measurements (at 3.2K rpm) of fuel composition, energy content (e.g., BTU), etc.
[0031] For the compression stroke, the state can be described by whether the intake valve is closed, whether the exhaust valve is closed, whether the fuel injector port is open, the uniformity of the air / fuel mixture, the compression ratio of the cylinder, and / or the ignition mode. In some embodiments, a sensor (LAS2) located at or near the cylinder can generate 50+ measurements (at 3.2K rpm) of temperature, NOx, CO, UHC, etc.
[0032] For the power stroke, the state may be described by whether the intake valve is closed and / or whether the exhaust valve is closed. In some embodiments, sensors (LAS2) located at or near the cylinder may generate 50+ measurements (at 3.2K rpm) of temperature, NOx, CO, UHC, etc.
[0033] For the exhaust stroke, the state can be described by whether the intake valve is closed, whether the exhaust valve is open, and / or whether exhaust gas recirculation (EGR) is used. In some embodiments, a sensor (LAS3) located at or near the exhaust valve can generate 50+ measurements (at 3.2K rpm) of temperature, NOx, CO, UHC, etc.
[0034] In some embodiments, the engine component parameters that can be dynamically managed by the controller 10 may include any, all, or a subset of the following: intake valve actuation speed, timing, lift, phasing period, and / or frequency; exhaust valve actuation speed, timing, duration, lift, phasing, and / or frequency; air / fuel ratio; spark ignition (SI) fuel injection timing and / or duration; spark ignition timing, intensity, duration, and / or frequency; fuel injection timing, quantity, and / or frequency; and / or compression ratio variable valve timing. The controller 10 may generate actuator command data for setting, modifying, or implementing engine component parameters. The example engine component parameters described herein are illustrative only and are not intended to be limiting, necessary, or exhaustive. In some embodiments, the controller 10 may generate actuator command data for setting, modifying, or implementing additional, fewer, and / or alternative engine component parameters.
[0035] While the embodiment illustrated in FIG. 1 relates to a camless engine configuration, it should be understood that one or more LAS sensors may also be implemented at various locations within a camshaft engine to provide feedback and control one or more actuators (e.g., spark ignition, fuel injection, variable compression, etc.).
[0036] Example of an AI / ML-based camless engine optimization system FIG2 illustrates an example of an AI / ML-based camless engine optimization system 100, which for brevity is also referred to in the following description as the AI / ML system 100. In some embodiments, the AI / ML system 100 may be implemented using one or more computing systems, such as the computing system 1000 illustrated in FIG7 and described in more detail below.
[0037] The AI / ML system 100 can be configured to predict the likelihood that a given camless engine state exhibits an actuator command pattern that will produce optimal performance for a camless engine such as engine 10. In some scenarios, the use of AI / ML to implement the controller 12 of the camless engine 10 may provide significant technical improvements over conventional pre-programmed and rule-based control systems. For example, the AI / ML system 100 is capable of generating a model that, when used by the controller, generates actuator commands that provide more efficient engine performance (e.g., fewer false positives, fewer false negatives) than commands provided by conventional controllers. In addition, the AI / ML system 100 can generate models that are capable of achieving specific optimizations based on up to millisecond sensor data, which may be difficult, impractical, or impossible to achieve in the absence of AI / ML training, the fast sensor data provided by the LAS sensors, and the dynamic actuation provided by the camless engine.
[0038] By way of reference to the illustrative examples, it is anticipated that fixed and non-fixed engine deployments will generate a wide variety of environmental conditions that will have a direct impact on the performance of the engine 10. With pre-configured and manually formulated actuator commands, adaptation to the various environmental factors cannot be optimized in real time and would require extensive programming effort, while still subject to the high false positive and false negative rates discussed above.
[0039] In contrast, the AI / ML training mechanism provides a powerful capability to quickly and efficiently adjust to a variety of engine conditions without extensive recoding of the system. By retraining as new training data becomes available, the system of the present invention is highly scalable to adapt to previously unseen patterns of engine states and sensor readings, which may result from a combination of internal and external factors, including but not limited to ongoing engine workloads and environmental conditions.
[0040] The AI / ML system 100 may iteratively process the training data 102 to compute a trained classification model 120 for use by an actuation system, such as the controller 12 of the camless engine 10. The actuation system processes the engine LAS sensor data to classify actuator commands based on the trained classification model 120 to formulate a classification indicating the likelihood that the actuator command represents optimal engine performance.
[0041] The upper boxes in FIG. 2 are used for illustrative purposes to describe various components and machine learning techniques, which in some embodiments may rely on generating valuable artificial features through the use of statistical analysis and visualization techniques, and then using these features in machine learning classification or regression models. In contrast, the lower boxes in FIG. 2 are used for illustrative purposes to describe a neural network classifier 162, which is generally capable of deriving patterns, correlations, and connections from data without explicit artificial features. However, this feature description of the elements of the AI / ML system 100 shown in FIG. 2 is not limiting or necessary. For example, in some embodiments, the neural network classifier 162 may use features generated by the feature engineering subsystem 110 and the feature generation subsystem 112 or otherwise stored in the feature storage device 114.
[0042] It should be understood that the AI / ML system 100 and the execution system can be deployed on one or more computing machines. Thus, in an example embodiment, a first processor (or a group of processors) can execute code to act as the AI / ML system 100, while a second processor (or a group of processors) can execute code to act as the controller 12. These processors can be deployed in computer systems that communicate with each other over a network, wherein the AI / ML system 100 transmits data structures representing the trained classification models 120, 164 to the execution system over the network. Further, these networked computer systems can be operated by different entities. Thus, the AI / ML system 100 can be operated by a first party that acts as a "master" or "expert" in developing a well-tuned classification model, while one or more execution systems operated by different camless engines can access the classification model when testing the optimal engine performance derived from actuator commands. However, it should also be understood that in another example embodiment, the same processor (or a group of processors) can execute code for both the AI / ML system 100 and the execution system.
[0043] In some embodiments, the engine state data 104 and / or the engine state data 154 may represent a series of engine cycles associated with one or more engines in a stationary or non-stationary deployment under various external conditions. In the following description, it is assumed that the engine state data 104, 154 contains data related to a series of engine cycles in a stationary or non-stationary use case under various environmental conditions during its active life.
[0044] The engine state data 104 and / or the engine state data 154 may be derived from a series of engine cycles deployed between various engines, where the engines may transmit these readings to a sensor log. The engine state data 104, 154 may also be derived from a real-time engine cycle stream generated when the engine is operating in a fixed or non-fixed scenario.
[0045] The engine status data 104 and / or the engine status data 154 may include sensor data 106 representing one or more of: fuel composition and energy content data received from one or more sensors positioned at or near the intake port; NOx, CO, UHC, CO2 data received from one or more sensors positioned at or near the exhaust port; and / or temperature, CO, H2O, UHC, CO2 data received from one or more sensors positioned at or near the cylinder.
[0046] Such instances of sensor data 106 and / or sensor data 156 generated by an engine cycle and actuator command data 108 and / or sequences of actuator command data 158 regarding currently operating actuator commands may be positively flagged as producing more efficient engine performance and used by the AI / ML system 100 to train the model 120 .
[0047] In some embodiments, the model 120 may be trained using negatively labeled training data 102, in which case the AI / ML system 100 may employ a supervised learning process in which the model 120 is trained based on positive examples of actuator commands and negative examples of actuator commands.
[0048] However, negative examples of actuator commands may not be widely available. Therefore, in another example embodiment, the AI / ML system 100 can employ a semi-supervised learning process in which the model 120 is trained based on both: (1) sequences of the sensor data 106 and command data 108 that are positively labeled as producing efficient engine performance; and (2) sequences of the sensor data 106 and command data 108 that are not labeled as producing improved and efficient engine performance.
[0049] Furthermore, when new training data 102 becomes available, the AI / ML system 100 can use this new training data 102 to further train the model 120 to improve its discriminative capabilities.
[0050] Thus, over time, the model generated by the AI / ML system 100 is expected to improve in its ability to appropriately classify sensor data to produce optimal actuator commands, thereby improving the performance of the camless engine.
[0051] The AI / ML system 100 may pre-process the training data 102 and 152 to normalize the data to a common format, regardless of the source of such data. Different sensors on the engine 10 may produce sensor data in different formats, and pre-processing operations (not shown in FIG. 1 ) may be used to convert such data to a common format. For example, temperature values from a LAS sensor in an exhaust port may be expressed in degrees Celsius, while temperature values from a LAS sensor in a cylinder may be expressed in degrees Fahrenheit. Similarly, various readings expressed by sensors from different manufacturers may be expressed in different formats and units of measurement.
[0052] In order for the AI / ML system 100 to perform “homogeneous” processing, normalization pre-processing may be employed to ensure that the sensor data 106 , 156 and the training data 102 , 152 exhibit a common format, regardless of the source of such data.
[0053] In some embodiments, a feature engineering subsystem 110 and / or a feature generation subsystem 112 may be employed. Advantageously, these subsystems may be combined to populate a feature store 114 that may be effectively used for a variety of supervised and unsupervised machine learning techniques.
[0054] The feature engineering subsystem 110 can be used to automatically or interactively (e.g., under the control of a data scientist) perform various statistical techniques to find valuable signals in the data that relate sensor data to command data. For example, a data scientist, a camless engine expert, other practitioners, or some combination thereof can identify preliminary patterns in the data that may be valuable. Such analysis will typically produce additional valuable features beyond the initial engine sensor data.
[0055] For example, during analysis, the data scientist may run various correlation coefficients on the engine LAS sensor data and discover that there is a strong relationship between spark ignition timing and compression ratio and certain time intervals, which will form a new composite feature. This feature and the corresponding sensor data will be stored in the feature storage device 114 for use in downstream classification tasks (such as those performed by the model 120 and / or the model 164) to generate command data 122 and / or command data 166, respectively.
[0056] In addition, the feature storage device 114 can be used multiple times for additional feature engineering and value exploration to continuously generate stronger statistical signals. These new features can reduce the dimensionality of the data, thereby improving the accuracy of classification.
[0057] In some embodiments, the AI / ML system 100 may cluster the training data in the feature store 114 via the clustering engine 116. For example, the sensor data may be grouped into clusters based on any number of criteria.
[0058] In some embodiments, clustering can be used to partition engine cycles into subsets of engine state data to evaluate potential engine performance optimization resulting from specific actuator commands. By partitioning the evaluation of engine state data by engine cycle, large data sets can be divided into analyzable work units that can be independently evaluated for patterns of actuator commands and distributed across multiple processors as needed. These subsets can be referred to as engine cycle clusters, and they represent a group of engine state data that are considered contextually relevant and collectively relevant when examined together to evaluate potential engine performance improvements resulting from optimal actuator commands.
[0059] A cluster may be considered a "group of cycles" in that each cluster may include a group of engine cycles that together exhibit an ideal combination of actuator commands that produces optimal engine performance over a period of time, and are necessarily individual engine cycles.
[0060] The desired optimization may be short-lived, such as a single engine cycle, or it may involve a more complex strategy, such as incrementally analyzing engine sensor readings over a period of time while engine performance fluctuates based on changes in the environment, internal engine states, and associated actuator commands.
[0061] A variety of clustering techniques can be used to generate these engine cycle clusters, such as K-means clustering, Density-based Spatial Clustering of Applications with Noise (DBSCAN), etc.
[0062] As described above, the AI / ML system 100 can use machine learning to process the training data set 102 to train the classification model 120 to distinguish between engine performance optimization and engine performance degradation. The training data 102 can be in the form of a sensor data sequence, and the training system can use any of a variety of machine learning techniques to train the classification model 120 based on this training data 102.
[0063] For example, the AI / ML system 100 may employ supervised, unsupervised, or semi-supervised machine learning. In a supervised or semi-supervised machine learning process, the training data 102 is labeled according to whether such training data 102 is deemed eligible to improve engine performance derived from a set of actuator commands.
[0064] The training data 102 may come from a variety of environments. For example, an engine may be deployed in a fixed position with a consistent workload where the best actuator commands produce durability. Another example may be an engine deployed in a continuously moving motor vehicle with very large workload fluctuations under various environmental conditions and actuator commands based on instant engine performance improvements.
[0065] The clustering engine 116 can group the collected sensor data into clusters according to the time proximity based on the engine cycle interval parameter. In some embodiments, the engine cycle interval parameter can be used to define how many consecutive engine cycles must be in order to be divided into different clusters. Therefore, in the case where the count between consecutive engine cycles is less than the engine cycle interval, these engine sensor readings are grouped into the same cluster. Whenever two consecutive sensor data items (e.g., sensor data outputs of the same sensor or a group of sensors at two consecutive time points) exceed the engine cycle interval, a new cluster is started, in which case the latest of the two consecutive sensor data items will become the first sensor data item in the new cluster.
[0066] The engine cycle interval parameter value may be determined based on desired criteria. Typically, an engine cycle interval parameter value that is too small may result in the formation of clusters that do not capture enough data, which may degrade detection performance. Similarly, an engine cycle interval parameter value that is too high may result in the formation of clusters that capture too much data, which may also degrade detection performance.
[0067] In an example embodiment, the engine cycle interval parameter can be a static value predetermined based on a statistical analysis of engine sensor data and its linear combination. In another example embodiment, the engine cycle interval parameter can be a dynamic value based on changes in indicators such as a number of engine cycles and / or sensor data anomalies. For example, as the number of engine cycles increases, the engine cycle count can be reduced to optimally segment shorter engine cycle activities. On the other hand, as the engine workload decreases, the engine cycle count can be increased to optimally segment consistent engine cycle workloads. The determination of the engine cycle interval value can be performed daily, or based on some other interval.
[0068] The AI / ML system 100 can utilize the clusters as input to one or more supervised machine learning classification processes performed by the machine learning classification subsystem 118 to produce an accurate classification model 120 capable of predicting optimal command data 122 (e.g., actuator commands, changes in actuator commands, or data from which actuator commands may otherwise be derived) for improving engine performance given a set of sensor readings.
[0069] In an example embodiment, the clusters are encoded as training inputs to a distributed gradient boosting machine (e.g., XGBoost) to train accurate models 120 for future unseen and out-of-distribution sensor data. The model 120 can then be deployed to the controller 12 of the engine 10 to provide real-time instructions for actuator commands to achieve optimal engine performance.
[0070] In some cases, due to the large amount of engine LAS sensor data, a human practitioner may not be able to analyze and accurately identify the ideal sensor data values or engine cycle intervals that will produce the best actuator commands. In such cases, the AI / ML system 100 may utilize a multi-layer perceptron or feed-forward neural network classifier 162 to produce classifications without explicit feature engineering (as described above with respect to the feature engineering subsystem 110).
[0071] The neural network classifier 162 can advantageously utilize the feature storage device 114 in addition to the entire sensor data log, without the explicit need for additional clustering or feature engineering. In an example embodiment, the training data 152 is encoded by an embedding layer (such as a feature embedding engine 160). The embedding layer can transform the sensor data into a value-oriented vectorized representation that relates individual sensor data items to engine cycles and corresponding contributions over time or engine cycles. The embedding layer can form part of a neural network architecture (such as a transformer) that can effectively model the impact of individual sensor data items between a series of engine cycles over a long period of time. The neural network classifier 162 can then identify the cycle times that indicate the best engine performance and eliminate irrelevant sensor data.
[0072] Example of a camless engine control system based on a neural network 3 is a diagram of an illustrative machine learning model 200 configured to process data from LAS sensors (eg, LAS1 34 , LAS2 36 , LAS3 38 ) and generate actuator commands 206 to optimize one or more aspects of engine functionality, or otherwise implement one or more features.
[0073] In some embodiments, as shown, the model 200 is implemented as a neural network, which is also referred to herein as a neural network (NN) for simplicity. In general, NNs including deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), other NNs, and combinations thereof have multiple layers of nodes, also referred to as "neurons". Illustratively, the NN may include an input layer, an output layer, and any number of intermediate layers, internal layers, or "hidden" layers between the input layer and the output layer. Each layer may include any number of individual nodes. Nodes of adjacent layers may be logically connected to each other, and each logical connection between the nodes of adjacent layers may be associated with a corresponding weight. Conceptually, a node may be viewed as a computational unit that may calculate an output value based on a plurality of different input values. When the input value of a function associated with a current node includes the output value of a function associated with a node in the previous layer multiplied by the weight associated with each "connection" between the current node and the node in the previous layer, the node may be considered to be "connected". When a NN is used to process input data in the form of an input vector or a matrix of input vectors (e.g., sensor data, such as the value of individual sensor readings at a certain point in a time series of time points), the NN can perform a "forward pass" to generate an output vector or a matrix of output vectors, respectively. The input vectors can each include n The corresponding nodes n separate data elements or "dimensions" (wheren is a positive integer, such as LAS sensors 34, 36 and 38 at time t 204). Each data element may be a value in the sensor data 202, such as a floating point number or an integer (e.g., a temperature measurement, a CO2 measurement, etc.). In some embodiments, the sensor data 202 may be evaluated by a preprocessor 210 to generate an input vector 204. For example, the preprocessor 210 may extract or otherwise derive features from the sensor data 202 to be processed by the model 200.
[0074] The forward pass typically involves multiplying the input vector by a matrix representing the weights associated with the connections between the nodes of the input layer and the nodes of the next layer, applying a bias term, and applying an activation function to the result. In some embodiments, nonlinearities are applied to activate neurons so that the network parameters converge to a minimum. The process is then repeated for each subsequent NN layer. Some NNs have hundreds of thousands or millions of nodes, and millions of connection weights between nodes of all adjacent layers.
[0075] FIG4 is a flow chart of an illustrative routine 300 that can be performed to train the machine learning model 200 to generate actuator commands based on the sensor data 202. The routine 300 begins at box 302. The routine 300 can be started in response to an event (such as when the training system begins operation), or in response to other events or triggers. When the routine 300 is started, a set of executable program instructions stored on one or more non-transitory computer-readable media (e.g., hard disk, flash memory, removable media, etc.) can be loaded into a memory (e.g., random access memory or RAM) of a computing system (such as the computing system 1000 shown in FIG7 and described in more detail below). In some embodiments, the routine 300 or portions thereof can be implemented in series or in parallel on multiple processors.
[0076] At box 304, computing system 1000 can obtain sensor data for generating training data therefrom. Illustratively, engine 10 can operate under one or more groups of conditions. During the operation process, LAS sensors 34, 36 and / or 38 can generate sensor data 202 for training models. In some embodiments, additional sensor data 222 can be obtained from one or more other sources for training models. For example, in addition to LAS sensors 34, 36 and / or 38, engine 10 can also include sensor 220, such as other LAS sensors and / or sensors used in conventional engines (e.g., for detecting crankshaft angle and / or rotational speed, oxygen, etc.).
[0077] In some embodiments, sensor data 202 (and optionally sensor data 222) can be preprocessed (e.g., by preprocessor 210) prior to or as part of the process of generating training data based on which a machine learning model is trained. For example, sensor data 202 can be processed to extract features from data points of individual sensors, merge data from multiple sensors into features, filter out data from some sensors, apply transformations to data from some or all sensors, perform other operations, or any combination thereof. The output of the preprocessing can be a set of input vectors 204 for model 200.
[0078] At box 306, computing system 1000 may label sensor data 202, a portion of sensor data 222, and / or data derived therefrom. In some embodiments, the computing system may provide a user interface for an engineer or other expert. The user interface may be a graphical user interface delivered in the form of a web page, a mobile application interface, a desktop application interface, or delivered via some other delivery mechanism. A user may use the interface to view sensor data 202, sensor data 222, and / or data derived therefrom (e.g., input vector 204), and indicate one or more engine actuator commands to be implemented based on the data. The labeled training data items may be stored by the computing system for use in training the model.
[0079] At box 308, the computing system 1000 can select training data to be used during the current instance of the routine 300 to train the machine learning model 200. In some embodiments, the computing system can separate the labeled training data inputs into a training set and a test set. As described in more detail below, the training set can be used to train the machine learning model 200. The test set can be used to test the trained machine learning model 200. Advantageously, using a separate test set of labeled inputs to test the performance of the machine learning model 200 can help determine whether the trained machine learning model 200 can generalize the training to new sensor data that was not presented to the machine learning model during training (or during testing iterations).
[0080] At box 310, the computing system 1000 can initialize the parameters of the machine learning model 200 to be trained. In some embodiments, the machine learning model can be implemented as a NN. The trainable parameters of the NN include the weights (and bias terms in some embodiments) of each layer applied during the forward pass. In some embodiments, to initialize the parameters of the machine learning model, the computing system can use a pseudo-random number generator to assign pseudo-random values to the parameters. In some embodiments, other methods can be used to initialize the parameters. For example, a machine learning model 200 previously trained using routine 300 or some other process can serve as the starting point for the current iteration of routine 300.
[0081] At block 312, the computing system 1000 may analyze the training data input using the model 200 to generate a training data output. Illustratively, the training data output may correspond to a vector of actuator commands, adjustments to actuator commands, or data from which the actuator commands or adjustments thereto may be derived. For simplicity, the output will be referred to herein as the actuator commands 206. In subsequent blocks of the routine 300, the training data output is used to evaluate the performance of the model 200 and to apply updates to the trainable parameters.
[0082] At box 314, the computing system 1000 can evaluate the results of processing one or more training data inputs using the model 200. The training data from which the training inputs are derived can also include reference data output vectors. Each reference data output vector can correspond to a vector of actuator commands, adjustments to actuator commands, or data from which actuator commands or adjustments thereto can be derived. For example, the reference data output vector can include data representing adjustments to the operation of intake values, exhaust values, spark plugs, fuel injectors, other engine components, or some combination thereof. The goal of the training can be to minimize the difference between the actuator commands 206 output by the model 200 and the corresponding reference data output vectors.
[0083] In some embodiments, computing system 1000 can evaluate results using an objective function associated with a particular desired optimization of an engine property, operation, or function. An objective function may also be referred to as a loss function. In some embodiments, the loss function may be a binary cross entropy loss function, a weighted cross entropy loss function, a squared error loss function, a softmax loss function, some other loss function, or a combination of loss functions. The loss function can evaluate the degree of difference between the training data output vector generated using model 200 and the desired output (e.g., a reference data output vector) of the corresponding training data input.
[0084] At box 316, the computing system 1000 can update the parameters of the model 200 based on the evaluation of the results of processing one or more trainings using the model 200. The parameters can be updated so that when the same training data input is processed again, the output generated by the model 200 will be closer to the desired output represented by the reference data output vector corresponding to the training data input. In some embodiments, the computing system 1000 can calculate the gradient based on the difference between the training data output vector and the reference data output vector. For example, the gradient (e.g., derivative) of the loss function can be calculated. The gradient can be used to determine the direction in which the various parameters of the model 200 are to be adjusted in order to improve the model output (e.g., to produce an output closer to the correct or desired output for a given input). The degree of adjustment of the various parameters can be predetermined or dynamically determined (e.g., based on gradients and / or hyperparameters). For example, hyperparameters such as learning rates can specify or be used to determine the magnitude of the adjustment to be applied to the various parameters of the model 200.
[0085] In some embodiments, the computing system 1000 may calculate the gradient for a subset of the training data, rather than the entire training data set. Thus, the gradient may be referred to as a "partial gradient" because it is not based on the entire training data set. Instead, it is based on the difference between the training data output vector and the reference data output vector when only a specific subset of the training data is processed.
[0086] By referring to the illustrative embodiment, the computing system 1000 can use a gradient descent method using back propagation to update some or all parameters of the machine learning model 200 (e.g., the weights of the model). In back propagation, a loss function (e.g., as described above) is used to determine the training error. The training error can be used to update various parameters of the model 200 to reduce the training error. For example, the gradient of the loss function can be calculated to determine how to adjust the weights in the weight matrix to reduce the error. The adjustment can be propagated back through the model 200 layer by layer.
[0087] At decision block 318, computing system 1000 may, in some embodiments, determine whether one or more stopping criteria are met. For example, the stopping criteria may be based on the accuracy of machine learning model 200 as determined using a loss function, a test set, or both. As another example, the stopping criteria may be based on the number of iterations of training that have been performed (e.g., "duration"), the elapsed training time, etc. If one or more stopping criteria are met, routine 300 may proceed to block 320; otherwise, routine 300 may return to block 312 or some other previous block of routine 300.
[0088] At block 320 , the computing system 1000 may store and / or distribute the trained model 200 . The trained model 200 may be distributed to one or more engines 10 for use in managing and optimizing operations. The routine 300 may terminate at block 322 .
[0089] Example Reinforcement Learning for a Camless Engine Control System FIG5 is a schematic diagram of an illustrative controller 12 learning a policy 400 via reinforcement learning. In general, reinforcement learning differs from supervised learning in that it does not require labeled training data. Instead, reinforcement learning focuses on occasionally exploring the effects of different actions given a particular current state, even if the current “best available” action for the current state is known. Exploration can help discover potential best actions for the current state. Thus, reinforcement learning can be used to learn an optimal or substantially optimal policy for selecting actions given a particular state. The optimal policy is learned by maximizing the “reward” accumulated by taking various actions, where each action (or some subset thereof) in each state is associated with a specific reward value.
[0090] In some embodiments, as shown, the controller 12 is configured to implement a policy 400. The controller 12 may generate the actuator command 206, or data from which the actuator command 206 may be derived, based on applying the policy 400 to the current state of the engine. After each action of the controller 12 (e.g., generating the actuator command 206) or a subset thereof, the controller 12 may determine or obtain a reward value 402. In a reinforcement learning process, the controller 12 may update the policy 400 so that the policy 400 converges to an optimal policy based on the reward value 402 that the controller 12 receives or determines to apply.
[0091] In some embodiments, the reward can be formally defined based on the optimal policy, denoted as = argmax E(R|π), where E(R|π) is the expected sum E of rewards R from a given policy π. A policy can be a mapping or a function, and a set of possible policies may be available. Therefore, the optimal policy is the argmax (which selects the maximum) of the set of possible policies as a function of their expected reward. In some embodiments, a value function such as a Q function can be used to determine the reward value of taking an action at a given engine state. For example, Qπ: (s|a) → E(R|a,s,π): Qπ is the state s and Action a The pair (s, a) is mapped to the state s Next Action aThe goal of reinforcement learning is to train a model that produces accurate estimates of the expected reward for taking an action in a given state.
[0092] 6 is a flow chart of an illustrative routine 500 for implementing reinforcement learning. Routine 500 begins at block 502. Routine 500 may begin in response to an event (such as when controller 12 begins operation, receives an instruction to perform reinforcement learning), or in response to other events or triggers.
[0093] At block 504, controller 12 may obtain data for the current state of engine 12. In some embodiments, the current engine state may be represented by a recently generated LAS sensor data set 202, other sensor data, a current set of actuator commands, other data, or some combination thereof.
[0094] At decision box 506, the controller 12 can determine whether the action selected for the current state is selected by exploration or exploitation. When exploiting, the best available action is selected for the current engine state based on the current strategy 400. When exploring, a random or pseudo-random selection method can be used to select actions, such as by using a pseudo-random number generator (PRNG). By randomly or pseudo-randomly selecting actions, actions that may be better than the current best available action in terms of desired optimization can be found. In some embodiments, the exploration / exploitation decision can be based on predetermined or dynamically determined exploration and exploitation action percentages. For example, the controller 12 can be configured to randomly or pseudo-randomly select a specific percentage (e.g., 10%) of the time to explore. If the controller 12 chooses to exploit, the routine 500 can proceed to box 508. Otherwise, if the controller 12 chooses to explore, the routine 500 can proceed to box 510.
[0095] At box 508, for utilization, the controller 12 can select the current best available action for the current engine state. In some embodiments, the strategy 400 can indicate the current best available action for each engine state or a subset thereof. For example, if the routine 500 is a reinforcement routine based on Q learning, the strategy 400 may include a table that assigns "Q values" to the training engine states and available actions. A higher Q value can represent a more desirable action than a lower Q value (e.g., if a specific action is taken based on the current engine state, the desirability is related to the expected subsequent engine state). Therefore, the controller 12 can determine the action with the highest Q value for the current engine state.
[0096] At block 510 , for exploration, the controller 12 may use a random or pseudo-random selection method to select an action, such as by using a PRNG to select from all available actions given the current engine state.
[0097] At block 512, the controller may evaluate the results of the selected action. In some embodiments, the evaluation of the results of the selected action is based on feedback data, such as engine state data indicating the state of the engine 10 after performing the selected action.
[0098] At block 514, the controller may apply a reward value 402 based on the results of applying the selected action. In some embodiments, a reward value 402 may be generated if the temperature determined by a particular LAS sensor remains within a particular range (1,800°K to 2,200°K) for a particular number of measurements or time period (e.g., during a stroke, cycle, or set of cycles). In some embodiments, a reward value 402 may be generated if a fluid parameter (e.g., a measurement of NOx and / or CO) remains below a threshold for a particular number of measurements or time period (e.g., during a stroke, cycle, or set of cycles). In some embodiments, a reward value 402 may be generated based on achieving and / or maintaining a certain level of performance (e.g., electrical efficiency with NOx, CO emissions below a set threshold).
[0099] In some embodiments, the reward value 402 is determined using an action value function. The reward value 402 for any given iteration of block 514 may be positive or negative. The goal of the reinforcement learning routine is to maximize the total reward value 402 over a period of time. The controller 12 determines the reward value 402 based on the engine state. s ( t ) a ( t ) to receive a specific reward value 402, thereby generating a new engine state s ( t + 1). Illustratively, a ( t ) can be based on the controller 12 at time t The actuator command data generated when the actuator command is started, the engine status s ( t ) can be represented by the latest LAS sensor data 202 generated at or before time t, and the engine state s ( t + 1) Can be used in time t + 1 or earlier. The reward value 402 may be based on the latest LAS sensor data 202 generated at or before 1. s ( t )arrive s ( t + 1) and the desired optimization of the reinforcement learning routine. For example, the reward value 402 can be based on the observed s ( t )arrive s ( t+ 1) Reduction of emissions, s ( t )arrive s ( t + 1) Temperature maintenance, from s ( t )arrive s ( t + 1) Increased energy output, etc.
[0100] By way of illustrative non-limiting example, a desired optimization or goal may be to maintain the temperature measured at the cylinder within the range of 1,800°K to 2,200°K. The LAS sensor 36 (LAS2) may be t , LAS sensor data representing a measured temperature of 2,400°K is generated. a ( t ) after which the LAS sensor 36 can t + 1 generates LAS sensor data indicating a measured temperature of 2,300°K. In this case, reward value 402 may be a positive number to reward movement toward the desired range. In contrast, if time t If the LAS sensor data at +1 indicates that the measured temperature is 2,500°K, then the reward value 402 may be negative to penalize movement outside the desired range.
[0101] In some embodiments, the reward value 402 can be used in a calculation to determine an updated Q-value for the selected action and the previous engine state. For example, the Q-value can be updated by calculating an intermediate value using the reward value, an estimate of the best future value (e.g., based on the expected reward for applying the best action to the future engine state), and a discount factor. Illustratively, the discount factor can be between 0.0 and 1.0 (inclusive) and can be used to weight reward values received earlier in a sequence of future actions, which are greater than reward values received later in the sequence. A learning rate can be applied to the intermediate value, and the resulting product can be added to the existing Q-value for the engine state and the selected action to derive the updated Q-value. Illustratively, the learning rate can be between 0.0 and 1.0 (inclusive) and can be used to control the degree of change in the Q-value from update to update.
[0102] At block 516, the controller 12 may update the Q table with the revised Q value for the selected action. The updated Q value may then be used in subsequent utilization determinations.
[0103] At decision block 518, the controller 12 may, in some embodiments, determine whether one or more stopping criteria are met. For example, the stopping criteria may be based on the number of actions performed, the rewards received, the time elapsed, etc. As another example, the stopping criteria may be based on the degree of Q-value updates (e.g., the updates are below a threshold magnitude). If one or more stopping criteria are met, the routine 500 may proceed to block 520; otherwise, the routine 500 may return to block 504 or some other previous block of the routine 500.
[0104] At block 520 , the controller 12 may store and / or distribute the learned strategy 400 . The strategy 400 may be distributed to one or more engines 10 for use in managing and optimizing operation. The routine 500 may terminate at block 522 .
[0105] Example computing system FIG7 illustrates an example computing system 1000 that can be used to perform routines and implement the above features in some embodiments. In some embodiments, the computing system 1000 may include: one or more computer processors 1002, such as a physical central processing unit (CPU) or a graphics processing unit (GPU); one or more network interfaces 1004, such as a network interface card (NIC); one or more computer-readable media drives 1006, such as a high-density disk (HDD), a solid-state drive (SSD), a flash drive, and / or other permanent non-transitory computer-readable media; and one or more computer-readable memories 1010, such as random access memory (RAM) and / or other volatile non-transitory computer-readable media. The network interface 1004 can provide a connection to one or more networks or computing devices. The computer processor 1002 can receive information and instructions from other computing devices or services through the network interface 1004. The network interface 1004 can also store data directly to the computer-readable memory 1010. The computer processor 1002 can communicate back and forth with the computer-readable memory 1010, execute instructions, and process data in the computer-readable memory 1010, etc.
[0106] The computer readable memory 1010 may include computer program instructions that are executed by the computer processor 1002 to implement one or more embodiments. The computer readable memory 1010 may store an operating system 1012 that provides computer program instructions for use by the computer processor 1002 in general management and operation of the computing system 1000. The computer readable memory 1010 may also include machine learning model training instructions 1014 and training data 1016 for implementing training of a machine learning model.
[0107] the term Depending on the embodiment, certain actions, events, or functions of any process or algorithm described herein may be performed in a different order, may be added, combined, or omitted entirely (e.g., not all described operations or events are necessary for the practice of the algorithm). In addition, in some embodiments, operations or events may be performed simultaneously, such as through multithreading, interrupt handling, or multiple processors or processor cores, or on other parallel architectures, rather than sequentially.
[0108] The various illustrative logic blocks, modules, routines, and algorithmic steps described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, or a combination of electronic hardware and computer software. In order to clearly illustrate this interchangeability, various illustrative components, blocks, modules, and steps have been generally described above in terms of functionality. Whether such functionality is implemented as hardware or software running on hardware depends on the specific application and the design constraints imposed on the entire system. The described functionality can be implemented in different ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0109] In addition, the various illustrative logic blocks and modules described in conjunction with the embodiments disclosed herein may be implemented or executed by a machine designed to perform the functions described herein, such as a processor device, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof. The processor device may be a microprocessor, but in an alternative, the processor device may be a controller, a microcontroller or a state machine, a combination thereof, or the like. The processor device may include a circuit system configured to process computer executable instructions. In another embodiment, the processor device includes an FPGA or other programmable device that performs logical operations without processing computer executable instructions. The processor device may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in combination with a DSP core, or any other such configuration. Although this article is primarily described with respect to digital technology, the processor device may also primarily include analog components. For example, some or all of the algorithms described herein may be implemented in an analog circuit system or a mixed analog and digital circuit system. The computing environment may include any type of computer system including, but not limited to, a microprocessor-based computer system, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computing engine within an appliance, to name a few.
[0110] The elements of the methods, processes, routines or algorithms described in conjunction with the embodiments disclosed herein may be directly embodied in hardware, software modules executed by a processor device, or a combination of the two. The software module may be present in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM, or any other form of non-temporary computer-readable storage medium. An exemplary storage medium may be coupled to a processor device so that the processor device can read information from the storage medium and write information to the storage medium. In an alternative, the storage medium may be integrated with the processor device. The processor device and the storage medium may be present in an ASIC. The ASIC may be present in a user terminal. In an alternative, the processor device and the storage medium may be present in a user terminal as discrete components.
[0111] Unless otherwise expressly stated or understood in the context of use, conditional language used herein such as "may," "can," "might," "could," "for example," and the like is generally intended to convey that certain embodiments include certain features, elements, and / or steps, while other embodiments do not. Thus, such conditional language is generally not intended to imply that features, elements, and / or steps are in any way necessary for one or more embodiments, or that one or more embodiments must include logic for deciding whether such features, elements, and / or steps are included or performed in any particular embodiment with or without other input or prompting. The terms "comprise," "include," "have," and the like are synonymous, are used inclusively in an open-ended manner, and do not exclude additional elements, features, behaviors, operations, and the like. Similarly, the term "or" is used in its inclusive sense (and not in its exclusive sense), so that, for example, when used to connect a list of elements, the term "or" means one, some, or all of the elements in the list.
[0112] Unless expressly stated otherwise, disjunctive language such as the phrase "at least one of X, Y, and Z" is to be understood in light of the context in which it is generally used to present an item, term, etc. that may be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Thus, such disjunctive language is generally not intended to, and should not, imply that certain embodiments require that at least one of X, at least one of Y, or at least one of Z each be present.
[0113] Unless expressly stated otherwise, articles such as "a" or "an" should generally be interpreted as including one or more of the described items. Thus, phrases such as "a device configured to..." are intended to include one or more of the listed devices. Such one or more listed devices may also be configured together to perform the stated enumeration. For example, "a processor configured to perform enumeration A, B, and C" may include a first processor configured to perform enumeration A working in conjunction with a second processor configured to perform enumeration B and C.
[0114] Although the above detailed description has shown, described and pointed out the novel features applied to various embodiments, it is understood that various omissions, substitutions and changes may be made to the form and details of the described devices or algorithms without departing from the spirit of the present disclosure. As can be appreciated, since some features can be used or practiced separately from other features, certain embodiments described herein may be embodied in a form that does not provide all the features and benefits set forth herein. The scope of certain embodiments disclosed herein is indicated by the appended claims rather than by the foregoing description. All changes that fall within the equivalent meaning and scope of the claims should be included within their scope.
Claims
1. A camless reciprocating engine comprising: a cylinder accommodating a reciprocating piston; an engine component associated with the cylinder, wherein the engine component is selected from the group consisting of: an intake valve, an exhaust valve, a spark plug, a fuel injector, and a variable compression mechanism; an actuator coupled to the engine assembly, wherein the actuator is configured to control operation of the engine assembly; an optical sensor configured to generate sensor data regarding an operating property of the cylinder; as well as a controller coupled to the optical sensor and the actuator, wherein the controller is configured to: receiving the sensor data from the optical sensor; processing the sensor data using a neural network trained to generate actuator command data associated with a desired optimization of engine operation; and Actuation of the actuator is initiated based at least in part on the actuator command data.
2. The camless reciprocating engine of claim 1, wherein the sensor data is generated during a particular cycle of the cylinder, and wherein activation of the actuator occurs during the particular cycle of the cylinder.
3. The camless reciprocating engine of claim 1 , wherein the sensor data is generated during a particular stroke in a particular four-stroke cycle of the cylinder, and wherein activation of the actuator occurs during the particular stroke in the particular four-stroke cycle of the cylinder.
4. The camless reciprocating engine of claim 1, wherein the optical sensor is a laser absorption spectroscopy sensor.
5. The camless reciprocating engine of claim 4, wherein the sensor data comprises laser absorption spectroscopy data, and wherein the attribute represented by the sensor data is selected from the group consisting of: fuel composition, energy content, temperature, NOx content, UHC content, CO content, CO2 content, and H2O content.
6. The camless reciprocating engine of claim 1 , further comprising a plurality of optical sensors including the optical sensor, wherein the plurality of optical sensors comprises: a first optical sensor positioned at a location within an air intake of the cylinder to measure one or more fluid parameters within the air intake; a second optical sensor positioned to measure one or more fluid parameters at a location within the cylinder; as well as A third optical sensor is positioned at a location within the exhaust port of the cylinder to measure one or more fluid parameters within the exhaust port.
7. The camless reciprocating engine of claim 1, further comprising a network interface configured to transmit the sensor data to a computing system over a network.
8. The camless reciprocating engine of claim 7, wherein the network interface is further configured to receive a second neural network from the computing system over the network, and wherein the controller is further configured to replace the neural network with the second neural network in a memory of the controller.
9. The camless reciprocating engine of claim 1 , wherein to process the sensor data using the neural network, the controller is configured to: applying a transformation to the sensor data to generate transformed sensor data, wherein the transformed sensor data is representative of a state of the camless reciprocating engine at a point in time; generating an input vector using the transformed sensor data; and A forward pass is performed on the input vector using the neural network to generate an output vector, wherein the output vector includes the actuator command data.
10. The camless reciprocating engine of claim 1, wherein the controller is further configured to: determining a change to a parameter of the engine component based on the actuator command data; wherein the change to the parameter is selected from the group consisting of: timing, phase and duration of operation, and Wherein initiating actuation of the actuator is based on the parameter of the engine component.
11. The camless reciprocating engine of claim 1 , wherein the controller is further configured to: receiving second sensor data from the optical sensor, wherein the second sensor data is generated by the optical sensor after the controller initiates actuation of the actuator based at least in part on the actuator command data; determining a reward value based on the second sensor data; and Parameters of the neural network are modified based on the reward value.
12. A system comprising: a computer-readable memory storing executable instructions; and one or more computer processors in communication with the computer readable memory and programmed with the executable instructions to at least: obtaining training data comprising a plurality of training data input vectors and a plurality of reference data output vectors, wherein a training data input vector in the plurality of training data input vectors represents sensor data regarding operating properties of a camless engine, and wherein a reference data output vector in the plurality of reference data output vectors represents actuator command data to be generated by a machine learning model from the training data input vectors; training the machine learning model using the training data and an objective function, wherein the objective function is associated with optimization of engine functionality; and The trained machine learning model is provided to one or more camless engines.
13. The system of claim 12, wherein the optimization of engine function is selected from the group consisting of: a measure of minimizing emissions, a measure of maximizing output, and a measure of maintaining temperature.
14. The system of claim 12, wherein the sensor data comprises laser absorption spectroscopy sensor data, and wherein the attribute represented by the sensor data is selected from the group consisting of: fuel composition, energy content, temperature, NOx content, UHC content, CO content, CO2 content, and H2O content.
15. The system of claim 12, wherein the machine learning model comprises a neural network.
16. The system of claim 12, further comprising the camless engine, wherein the camless engine comprises: a cylinder accommodating a reciprocating piston; an engine component associated with the cylinder, wherein the engine component is selected from the group consisting of: an intake valve, an exhaust valve, a spark plug, a fuel injector, and a variable compression mechanism; an actuator coupled to the engine assembly, wherein the actuator is configured to control operation of the engine assembly; an optical sensor configured to generate sensor data regarding an operating property of the cylinder; as well as a controller coupled to the optical sensor and the actuator, wherein the controller is configured to: receiving the sensor data from the optical sensor; processing the sensor data using a neural network trained to generate actuator command data associated with a desired optimization of engine operation; and Actuation of the actuator is initiated based at least in part on the actuator command data.
17. The system of claim 16, wherein the sensor data is generated during a particular cycle of the cylinder, and wherein activation of the actuator occurs during the particular cycle of the cylinder.
18. The system of claim 16, wherein the sensor data is generated during a particular stroke in a particular four-stroke cycle of the cylinder, and wherein activation of the actuator occurs during the particular stroke in the particular four-stroke cycle of the cylinder.
19. The system of claim 16, wherein the camless engine further comprises a network interface configured to transmit the sensor data to a computing system over a network.
20. The system of claim 19, wherein the network interface is further configured to receive a second neural network from the computing system over the network, and wherein the controller is further configured to replace the neural network with the second neural network in a memory of the controller.
Citation Information
Patent Citations
Adaptive any-fuel camless reciprocating engine
WO2019152886A2