Automated device tuning

A method, apparatus, and system for controlling a device. A device control system comprises a computer system and a controller in the computer system. The controller receives internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within the device that relate to an operation of the device and receive external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the device that relate to the operation of the device. The controller sends the internal sensor data and the external sensor data for an analysis with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results. The controller controls the operation of the device based on the results of the analysis.

CROSS-REFERENCE TO RELATED APPLICATION

This application is related to the following patent application: entitled “Automated Deep Brain Stimulation System Tuning”, application Ser. No. 16/827,511, filed even date herewith, assigned to the same assignee, and incorporated herein by reference.

BACKGROUND INFORMATION

The present disclosure relates generally to an improved data processing system and, in particular, to a method, apparatus, system, and computer program product for automatically tuning a system to cause the system to operate within desired parameters.

Devices are used to perform operations in many different situations. For example, a plasma etcher is a device used to remove silicon dioxide from substrates in the production of semiconductor devices. Accuracy of an etch rate of the plasma etcher can depend on etching gases used and processing conditions. When the process conditions change, the etch rate can be adjusted by an amount of activated neutral molecules. This tuning of the etch rate can be tedious and time-consuming for a human operator to make.

In manufacturing of composite materials, a laser cutter is a device that uses a laser beam to vaporize, melt, or otherwise gradually remove material. This device includes optics, an assist gas, and a guidance system to direct and focus the laser beam onto a composite workpiece. The accuracy of the laser cutter can drift over time. Adjustments to the guidance system can be made to ensure a desired amount of accuracy is present.

In another example, a deep brain stimulation system is a device that can operate to treat conditions such as Essential Tremors and Parkinson's Disease through the generation and sending of electrical currents through electrodes implanted in the brain of a patient. These electrical impulses can be directed to specific targets in the brain for the treatment of these and other conditions. Over time, the targets and level of stimulation may need to be adjusted to obtain desired results in the patient. This tuning of the deep brain stimulation system is often made by a doctor or other operator seeing whether changes such as fewer spasmodic musculoskeletal movements or increased motor skills are present. These visual observations are useful but granularity in the level of feedback for making adjustments may be coarser than desired.

As a result, controlling the operation of devices to obtain desired operation of the devices can be more challenging than desired. Therefore, it would be desirable to have a method and apparatus that take into account at least some of the issues discussed above, as well as other possible issues. For example, it would be desirable to have a method and apparatus that overcome a technical problem with making adjustments to a device to obtain desired operation of the device.

SUMMARY

An example of the present disclosure provides a device control system comprising a computer system and a controller in the computer system. The controller is configured to receive internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within a device that relate to an operation of the device and to receive external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the device that relate to the operation of the device. The controller is configured to send the internal sensor data and the external sensor data for an analysis with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results. The controller is configured to control the operation of the device based on the results of the analysis.

Another example of the present disclosure provides a device control system comprising a computer system that is configured to receive internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within a device that relate to an operation of the device. The computer system is configured to receive external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the device that relate to the operation of the device. The computer system is configured to analyze the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to form generate results. The computer system is configured to control the operation of the device based on the results.

Yet another example of the present disclosure provides a method for controlling a device. Internal sensor data is received for a group of internal parameters that relate to an operation of the device. The internal sensor data is generated by an internal sensor system. External sensor data is received for a group of external parameters for an environment around the device. The external sensor data is generated by an external sensor system. The internal sensor data and the external sensor data are analyzed with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results. An operation of the device is controlled based on the results.

The features and functions can be achieved independently in various examples of the present disclosure or may be combined in yet other examples in which further details can be seen with reference to the following description and drawings.

DETAILED DESCRIPTION

The illustrative examples recognize and take into account one or more different considerations. For example, the illustrative examples recognize and take into account that many factors may need to be considered when tuning a device to operate as desired. The illustrative examples recognize and take into account that this tuning can involve making adjustments to settings for the device to obtain the desired operation of the device. The illustrative examples recognize and take into account that identifying settings to tune a device to operate as desired can be made by taking into account parameters that are both internal and external to the device. The illustrative examples recognize and take into account that difficulty can be present in understanding what data for these parameters indicate about the operation or effectivity of devices. The illustrative examples recognize and take into account that modifications in the operation of the device can be achieved by changing the settings based on the analysis of the data and observing the operation of the device to determine if the changes to the settings provide the desired operation of the device. The illustrative examples recognize and take into account that this type of tuning of settings may not account for things that may be causing a sub-optimization in the operation of the device and which are either unknown to or exacerbated by an operator's choice of setting modifications.

Thus, the illustrative examples provide a method, apparatus, system, and computer program product for controlling a device. In one illustrative example, internal sensor data for a group of internal parameters that relate to the operation of the device is received. The internal sensor data is generated by an internal sensor system. External sensor data for the group of external parameters for an environment around the device is received. The external sensor data is generated by an external sensor system. The internal sensor data and the external sensor data are analyzed with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to form an analysis. The operation of the device is controlled based on the analysis.

As used herein, “a group of,” when used with reference to items, means one or more items. For example, “a group of internal parameters” is one or more internal parameters.

With reference now to the figures and, in particular, with reference toFIG.1, a pictorial representation of a network of data processing systems is depicted in which illustrative examples may be implemented. Network data processing system100is a network of computers in which the illustrative examples may be implemented. Network data processing system100contains network102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system100. Network102may include connections, such as wire, wireless communication links, or fiber optic cables.

In the depicted example, server computer104and server computer106connect to network102along with storage repository108. In addition, client devices110connect to network102. As depicted, client devices110include client computer112, client computer114, and client computer116. Client devices110can be, for example, computers, workstations, or network computers. In the depicted example, server computer104provides information, such as boot files, operating system images, and applications to client devices110. Further, client devices110can also include other types of client devices such as plasma etcher118, robotic arm120, and deep brain stimulation (DBS) system122. These other types of client devices can include other functionalities in addition to processing information. For example, plasma etcher118can receive instructions and settings to etch semiconductor wafers. Robotic arm120can process information to perform assembly operations on workpieces such as a wing box or a fuselage for an aircraft. Deep brain stimulation (DBS) system122can process information to generate electrical currents to treat symptoms of a human patient.

In this illustrative example, server computer104, server computer106, storage repository108, and client devices110are network devices that connect to network102in which network102is the communications media for these network devices. Some or all of client devices110may form an Internet-of-things (IoT) in which these physical devices can connect to network102and exchange information with each other over network102.

Client devices110are clients to server computer104in this example. Network data processing system100may include additional server computers, client computers, and other devices not shown. Client devices110connect to network102utilizing at least one of wired, optical fiber, or wireless connections.

Program code located in network data processing system100can be stored on a computer-recordable storage medium and downloaded to a data processing system or other device for use. For example, settings, program code, and other information can be stored on a computer-recordable storage medium on server computer104and downloaded to client devices110over network102for use on client devices110.

In this illustrative example, controller130is located in server computer104. As depicted, controller130receives sensor data in the form of internal sensor data132and external sensor data134from client devices110selected from at least one of plasma etcher118, robotic arm120, deep brain stimulation (DBS) system122, or other suitable client devices in client devices110.

As depicted, internal sensor data132is for a group of internal parameters generated by an internal sensor system within a device in client devices110. In this illustrative example, external sensor data134is for a group of external parameters in the environment around the device in client devices110.

In this illustrative example, this data can be received from at least one of plasma etcher118, robotic arm120, or deep brain stimulation system (DBS)122in client devices110. This data can be sent over network102in data packets using any suitable protocol. In this illustrative example, Transmission Control Protocol/Internet Protocol (TCP/IP) is the protocol used to send data, such as a message containing data, over network102.

This sensor data can be analyzed by controller130to determine settings136for using and controlling the operation of at least one of plasma etcher118, robotic arm120, or deep brain stimulation system122in client devices110. In determining settings136, controller130can analyze internal sensor data132and external sensor data134with aggregated internal sensor data138and aggregated external sensor data140stored in storage repository108. In this example, aggregated internal sensor data228and aggregated external sensor data230are aggregations of sensor data from devices of the same class as those in client devices110.

As depicted, internal sensor data132and external sensor data134can also be aggregated and stored in storage repository108. In other words, internal sensor data132and external sensor data134can be aggregated with aggregated internal sensor data138and aggregated external sensor data140.

Controller130can send settings136to at least one of plasma etcher118, robotic arm120, and deep brain stimulation system (DBS)122to control the operation of these devices.

As depicted, controller130can control the operation of at least one of plasma etcher118, robotic arm120, or deep brain stimulation (DBS) system122in client devices110to operate with a desired level or means for moving towards operating at a desired level of performance. In the illustrative example, this tuning is performed using the current status of a client device as determined based on internal sensor data132and external sensor data134.

As a client device changes over time or the environment around the client device changes over time, the parameters measured to obtain internal sensor data132and external sensor data134can change. This change can result in different settings being identified from analyzing sensor data.

The parameters for internal sensor data and external sensor data can take a number of different forms. For example, the parameters for internal sensor data can be selected from at least one a temperature, a light intensity, a frequency, a fluid flow, a pressure, a speed, revolutions, a wavelength, an oxygen level, a fluid viscosity level, an amount of heat at a component, vibrations, a resonant frequency, a magnetic field level, or other suitable parameters. As another example, the parameters for external sensor data can be selected from at least one of a temperature, a light intensity, a fluid flow, a pressure, an altitude, an oxygen level, a precipitation level, a humidity, or other suitable parameters. The particular parameters selected for external sensor data and internal sensor data can be based on the particular device and desired operation of the device.

Thus, the illustrative example takes into account the internal and external conditions by measuring internal parameters and external parameters for client devices110. This tuning can be performed automatically to adjust client devices110to maintain, reach, or move towards desired levels of performance for client devices110.

Further, the illustrative example uses aggregated sensor data from other client devices in analyzing the sensor data from client devices that are being tuned. In this manner, values for external and internal parameters that may not have been encountered by a client device can be taken into account through the use of aggregated sensor devices from other client devices.

In this illustrative example, a tuning of a client device means that adjustments are made to the device that affects the manner in which the client device operates. The tuning is performed to optimize the performance of the device. This optimization can be performed to maintain, reach, or move towards a desired level of performance for the client device. This adjustment can be made by changing settings, modifying program code, changing configurations, or other suitable changes that change the operation of a client device in a desired manner. In the illustrative examples, the adjustment can be made automatically, manually, or some combination thereof.

The turning performed in the illustrative examples may be based on the standard but does not necessarily need to be based on standard. In the illustrative examples, the tuning in the illustrative examples can address emerging issues or problems with respect to the operation of the devices which may not be understood or even previously known. In the illustrative examples, tuning may be address two issues identified by finding a correlation from all available data, such as aggregated data.

In the illustrative example, the different operations performed to tune client devices110take advantage of connectivity to network102and the ability to transfer and communicate information to controller130using data packets following protocols implemented by network102. The use of network102can enable tuning of client devices110in a location where desired connectivity to network102is available for client devices110.

FIG.1is intended as an example, and not as an architectural limitation for the different illustrative examples. For example, other client devices can be present in addition to or in place of client devices110depicted inFIG.1. For example, client devices110can also include a laser cutter, a computer numeric control lathe, an unmanned aerial vehicle, an unmanned ground vehicle, a five-axis drilling crawler robot, a satellite, or other suitable devices that include processing resources and can communicate over a network. As another example, client device110can include 500 or 1,000 deep brain stimulation systems in addition to deep brain stimulation system (DBS)122.

With reference now toFIG.2, an illustration of a block diagram of a tuning environment is depicted in accordance with an illustrative example. In this illustrative example, tuning environment200includes components that can be implemented in hardware such as the hardware shown in network data processing system100inFIG.1.

In this illustrative example, device control system202in tuning environment200can be used to control the operation of device204. In this illustrative example, device204can be any hardware device, object, or system. For example, device204can be selected from one of a deep brain stimulation (DBS) system, an infusion pump, a drug pump, a pacemaker, a defibrillator, an exoskeleton, a drone, a manufacturing tool, a maintenance tool, a robotic arm, a robot, a vehicle, an aircraft, a spacecraft, a satellite, a surface control system for an aircraft, or some other suitable device. In the illustrative examples, an infusion pump or a drug pump can be, for example, an insulin pump, an enteral pump, am analgesic pump, a kidney dialysis pump, or other similar types of pumps.

As depicted, device control system202comprises computer system206and controller208. Controller208is located in computer system206. Controller208can control the operation of device204. In controlling the operation of device204, controller208is configured to perform a number of different operations.

For example, controller208is configured to receive internal sensor data214for a group of internal parameters216generated by internal sensor system218that senses the group of internal parameters216within device204that relates to the operation of device204. In this illustrative example, the group of internal parameters216can take a number of different forms. For example, internal parameters216can be at least one of a temperature, a light intensity, a frequency, a fluid flow, a pressure, a speed, revolutions, a wavelength, an oxygen level, a fluid viscosity level, an amount of heat at a component, vibrations, a resonant frequency, a magnetic field level, or other suitable parameters.

In this illustrative example, internal sensor system218senses the group of internal parameters216within or on device204. Internal sensor system218comprises one or more sensors. Internal sensor system218also may include circuits for preprocessing or, otherwise, processing of sensor data to form internal sensor data214. The sensors can be located at least one of inside or outside of device204. In one illustrative example, internal sensor system218comprises a group of internal Internet-of-things sensors. In other words, Internet-of-things sensors can generate sensor data from measuring a physical property and can communicate the sensor data over the Internet.

Further, controller208is configured to receive external sensor data220for a group of external parameters222generated by external sensor system224that senses the group of external parameters222in environment226around device204that relates to the operation of device204. In this example, a group of external parameters222is for environment226. In this illustrative example, the group of external parameters222can take a number of different forms. For example, external parameters222can be at least one of a temperature, a light intensity, a fluid flow, a pressure, an altitude, an oxygen level, a precipitation level, a humidity, or other suitable parameters.

In this illustrative example, external sensor system224senses the group of external parameters222within or on device204. External sensor system224comprises one or more sensors. In this example, the sensors are located outside of device204. The sensors are selected and configured to detect external parameters222for environment226around device204. External sensor system224can also include circuits for preprocessing or, otherwise, processing sensor data to form external sensor data220. For example, external sensor system224can comprise a group of external Internet-of-things sensors.

In the illustrative example, the sensor systems can be in a number of different locations. For example, at least one of internal sensor system218or external sensor system224can be connected to device204. When one component is “connected” to another component, the connection is a physical association. For example, a first component, external sensor system224, can be considered to be physically connected to a second component, device204, by at least one of being secured to the second component, bonded to the second component, mounted to the second component, welded to the second component, fastened to the second component, or connected to the second component in some other suitable manner. The first component also can be connected to the second component using a third component. The first component can also be considered to be physically connected to the second component by being formed as part of the second component, an extension of the second component, or both.

In other illustrative examples, external sensor system224and internal sensor system218may not be connected to device204. In yet other illustrative examples, some sensors in the systems may be connected to device204while other sensors in these sensor systems are not connected to device204.

In this illustrative example, controller208is configured to send internal sensor data214and external sensor data220for analysis236with aggregated internal sensor data228and aggregated external sensor data230for devices232of same class234as device204to generate results238.

In this example, a device is same class234as device204when the device has characteristics that are sufficiently close to device204such that sensor data from the device can be analyzed with a desired level of accuracy. For example, a newer model of a defibrillator having the same features as a prior model of the defibrillator can be considered to be in the same class as the prior model of the defibrillator.

In the illustrative example, devices232of same class234are devices having the same characteristics. These characteristics can relate to the functionality of a device. A device having a match in between these characteristics would be of same class234.

For example, with a device in the form of a pump, characteristics for the pumps of a same class can be selected from at least one of a pressure, cycles, materials forming the pump, a volume of fluid moved, a runtime of the pump, a size, an operating temperature, a type of fluid transported, a displacement mechanism, or other suitable characteristics. One or more of these characteristics may be the characteristics based on the use of the device such as a runtime. The runtime of a device may not be a maximum amount of time but can be the actual period of time that a pump is typically run for a particular use.

In this illustrative example, internal sensor data214and external sensor data220can be used to determine current status239for device204. In this illustrative example, current status239is the status of device204at the time that internal sensor data214and external sensor data220are generated. Current status239can be the current state or condition of device204based on internal sensor data214and external sensor data220generated for device204.

In this illustrative example, aggregated internal sensor data228and aggregated external sensor data230are stored in a data storage system such as storage repository237. Storage repository237is a hardware system that stores data. Storage repository237can also include software for accessing and organizing data. The hardware can take the form of one or more hardware nodes that provide data processing resources to store and access data in storage repository237. These different nodes can be at the same physical location or distributed in different physical locations. Further, storage repository237can be a cloud storage accessed over a connection to a network such as the Internet.

As depicted, controller208can send internal sensor data214and external sensor data220to analyzer240for analysis236. Analyzer240is configured to analyze internal sensor data214and external sensor data220with aggregated internal sensor data228and aggregated external sensor data230for devices232of same class234as device204to generate results238of analysis236. As depicted, controller208can control the operation of device204based on results238automatically without requiring user input252from human operator254.

In the illustrative example, analyzer240can include a number of different components. As depicted in this illustrative example, analyzer240comprises artificial intelligence system241. Artificial intelligence system241can include one or more artificial intelligence models such as machine learning models.

In another illustrative example, user input252can be received from human operator254through human machine interface256to control the operation of device204. For example, human machine interface256can be configured to send a set of commands258in user input252to controller208. In turn, controller208processes the set of commands258to control the operation of device204. The set of commands258can, for example, adjust or change settings210.

As used herein, a “set of,” when used with reference to items, means one or more items. For example, a set of commands258is one or more of commands258.

In this illustrative example, analysis236can be performed by analyzer240using machine learning model242. Machine learning model242can be a part of analyzer240or can be accessed by analyzer240to perform analysis236. Analyzer240and machine learning model242can be located in at least one of device204, controller208, a group of data processing systems in computer system206in a group of locations remote to device204, or some other suitable location.

Machine learning model242can be trained to perform the analysis of data to generate analysis236with results238in a number of different ways. For example, machine learning algorithms can be used to train machine learning model242.

These machine learning algorithms include supervised learning, unsupervised learning, and reinforcement learning. Supervised learning comprises providing the machine with training data and the correct output value of the data. During supervised learning, the values for the output are provided along with the training data (labeled dataset) for the model building process. The algorithm, through trial and error, deciphers the patterns that exist between the input training data and the known output values to create a model that can reproduce the same underlying rules with new data. Examples of supervised learning algorithms include regression analysis, decision trees, k-nearest neighbors, neural networks, and support vector machines.

If unsupervised learning is used, not all of the variables and data patterns are labeled, forcing the machine learning model to discover hidden patterns and create labels on its own through the use of unsupervised learning algorithms. Unsupervised learning has the advantage of discovering patterns in the data without using any labeled datasets. Examples of algorithms used in unsupervised machine learning include k-means clustering, association analysis, and descending clustering.

Supervised learning and unsupervised learning learn from a dataset, while reinforcement learning methods learn from interactions with an environment. Machine learning algorithms such as Q-learning are used to train the predictive model through interacting with the environment using measurable performance criteria.

In this illustrative example, machine learning model242can be trained using aggregated internal sensor data228and aggregated external sensor data230for devices232of same class234as device204.

In performing analysis236in this particular example, analyzer240is configured to compare performance level244of device204to performance levels246for devices232of same class234using internal sensor data214and external sensor data220with aggregated internal sensor data228and aggregated external sensor data230for devices232of same class234as device204to form comparison248in analysis236. Analyzer240is also configured to determine whether the status of device204is within desired level of performance250based on comparison248. In this illustrative example, comparison248can form a part or all of results238of analysis236.

For example, aggregated data, such as aggregated internal sensor data228and aggregated external sensor data230, can be stored in a format that include context. The context can be used to search and retrieved aggregated data. Metadata can be used to associated context with the sensor data for searching and analyzing the sensor data. The context indicates what a piece of data means beyond data itself in isolation. Metadata can be formed using extensible mark language (XML). Extensible mark language can be used to tag sections to later use. The tags can then be used for retrieval of the data.

In this example, desired level of performance250can be for device204. In another illustrative example, desired level of performance250can be across all of devices232in same class234within some statistical variation.

As depicted, controller208is configured to control the operation of device204based on results238of analysis236. Controller208can control the operation of device204by changing at least one of settings210, program code212, or other features of device204.

In controlling operation of device204by adjusting settings210for device204, controller208can send settings210to device204to control the operation of device204. As depicted, a setting in settings210can be a value for a parameter or variable in device204that can be adjusted to control the operation of device204. Settings210can take a number of different forms. For example, settings210can include at least one of an amplitude of a current, a voltage, a pulse width, a frequency, a temperature, a speed, an acceleration, a pressure, a direction, an orientation, or other suitable settings, or combinations thereof.

Depending on results238, controller208can control device204by sending program code212to device204. Program code212can be a patch, an update, or a replacement for current program code run by device204. Program code212can provide at least one of a new feature, a new function, a new algorithm, or modify at least one of an existing feature, an existing function, or any existing algorithm in device204.

As depicted, in controlling the operation of device204based on results238of analysis236, controller208can make adjustments to the operation of device204using results238to obtain desired level of performance250for device204. In illustrative example, these adjustments are not merely a simple comparison in response such as whether the operation is in or out of optimum performance. In the illustrative examples, the adjustments made to the operation of device204overcome the limitations of currently employed blind adjustments such as whether the devices in or out of optimal performance.

Thus, in controlling operation of device204, controller208tunes device204such that device204performs with desired level of performance250or at a level that moves towards desired level of performance250. The process of collecting internal sensor data214and external sensor data220, analyzing sensor data, and controlling operation of device204based on the sensor data can be performed repeatedly.

In this manner, the process forms a feedback loop that can be used to automatically control device204to perform at desired level of performance250. This tuning can be performed in response to an event. The event can be at least one of a periodic event or a non-periodic event.

For example, sensor data can be collected and analyzed periodically. For example, data can be collected and analyzed after a period of time, such as a millisecond, five seconds, ten seconds, two minutes, three hours, or some other suitable period of time.

In the illustrative example, a non-periodic event can be, for example, receiving a user input to initiate analysis236and controlling of device204based on results238. Another non-periodic event can be when a parameter measured for device204exceeds a threshold. For example, if an external parameter such as temperature exceeds a threshold temperature, then the process of collecting and sending sensor data, analyzing sensor data, and controlling the operation of device204based on results238of analysis236can be performed.

In this manner, device control system202can continuously tune device204to optimize the operation of device204. This tuning can be performed such that the operation of device204at least one of maintains, reaches, or moves toward desired level of performance250.

With reference next toFIG.3, an illustration of a block diagram showing aggregation of sensor data is depicted in accordance with an illustrative example. In the illustrative examples, the same reference numeral may be used in more than one figure. This reuse of a reference numeral in different figures represents the same element in the different figures.

As depicted in this illustrative example, storage repository237stores aggregated internal sensor data228and aggregated external sensor data230. As depicted, storage repository237can be used to implement storage repository108inFIG.1. In this illustrative example, storage repository237includes hardware and can also include software for storing data. For example, storage repository237can include more nodes such as computers or processing units which contain storage devices for storing data.

Storage repository237can be implemented in a number of different forms. For example, storage repository237can be implemented using one or more architectures such as at least one of data lake300or data warehouse301.

As data lake300, storage repository237can store raw data in its native format. Raw data in a native format is data in a form as received from a sensor or other source of the raw data. For example, the data can be sensor data received from a sensor without the formatting or processing for a particular use. The native data can also include, for example, unstructured data such as email messages, documents. The native data can also include binary data such as images, audio, video data, and other similar types of binary data.

This this approach differs from a traditional data warehouse in which data is transformed and processed at the time it is received. In other words, the data in data lake300can be stored without first having to structure the data or run any analytics on the data. Further, data lake300can also structure data from relational databases, semi-structured data, and binary data.

As data warehouse301, storage repository237can store data in files, folders, or other constructs in a hierarchical fashion. Further, storage repository237can be located in a cloud environment in which data is accessed over the Internet.

In this illustrative example, storage repository237stores aggregated internal sensor data228and aggregated external sensor data230as aggregated sensor data302. Aggregated sensor data302is received from multiple sources, such a group of sensor systems303monitoring devices232and environment304around devices232.

As depicted, storage repository237can leverage internal sensor data132inFIG.1and external data312received from sensor systems303for many devices, such as devices232.

This data can include data for situations and environments that may not have been encountered by device204inFIG.2. As a result, the use of aggregated sensor data302generated from internal data308and external data312can be used to more accurately perform analysis236and generate results238that can be used to control the operation of device204such that device204operates to at least one of maintain, reach, or move towards desired level of performance250, as depicted inFIG.2.

In this illustrative example, storage repository237can be used or managed by artificial intelligence system306. Artificial intelligence system306is a system that has intelligent behavior and can be based on the function of a human brain. As depicted, artificial intelligence system306comprises at least one of an artificial neural network, a cognitive system, a Bayesian network, a fuzzy logic, an expert system, a natural language system, or some other suitable system. Machine learning is used to train the artificial intelligence system306. Machine learning involves inputting data to the process and allowing the process to adjust and improve the function of the artificial intelligence system306. A cognitive system is a computing system that mimics the function of the human brain. The training can be performed on artificial intelligence models such as machine learning models in artificial intelligence system306.

As depicted, artificial intelligence system306is configured to aggregate internal data308for a group of internal parameters310and external data312for the group of external parameters314received from a group of sensor systems303. Artificial intelligence system306can be trained to identify features for sensor data of interest for particular situations or environments. Artificial intelligence system306can aggregate internal data308and external data312in a manner that enables a more accurate comparison of aggregated sensor data302with internal sensor data214and external sensor data220received from device204inFIG.2.

In the illustrative example, aggregated data302comprises at least one of internal data308for internal parameters310or external data312for external parameters314that are combined. In this illustrative example, the data is aggregated over time for a particular device.

In other illustrative examples, the data can be aggregated for groupings of devices232. For example, devices232may be grouped based on factors such as device type, location, environment, or other suitable factors. In one illustrative example, data for devices232can be aggregated based on device type.

In one illustrative example, data for parameters such as blood oxygen levels, stress over time, and blood pressure can be combined into a data set for aggregated sensor data302. This data can also include parameters for the measurement of the performance level of the device.

For example, with an infusion or drug pump such as an insulin pump for example, a blood sugar level and external parameters314can be measured and compared with other parameters in aggregated sensor data302to determine how the insulin performs in different environments. The different examples can be different people for which the insulin pump is used as well as the environment around the different people. Parameters for sensor data302in environment around people can take a number of different forms. For example, these parameters can be at least one of an altitude, a latitude, a longitude, a humidity, a temperature, an ultraviolet radiation level, and oxygen level, a pressure, a wind level, a carbon dioxide level, a carbon monoxide level, or other parameters about the environment around a person. The aggregation of aggregated sensor data302can also be grouped based on external parameters314describing the people who use the insulin pumps.

Further, different groupings of aggregated sensor data302can be created for devices232when different classes316of devices232are present in devices232. A grouping of aggregated sensor data302be created for each class.

In the illustrative example, artificial intelligence system306can operate to aggregate data for devices232. Artificial intelligence system306can aggregate data into the same grouping of aggregated sensor data302for devices232of same class234.

In yet another illustrative example, the source of internal data308and external data312can be from devices232in the form of device models318. These device models can be models of actual physical devices such as devices232. These device models can operate to provide data from many different situations including hypothetical situations that are aggregated by artificial intelligence system306as aggregated sensor data302.

In one illustrative example, one or more technical solutions are present that overcome a technical problem with making adjustments to a device to obtain desired operation of the device. As a result, one or more technical solutions can provide a technical effect of improving the performance of the device. One or more technical solutions can provide a vital technical effect in which the device can be tuned such that the operation of the device maintains a desired level of performance, reaches a desired level of performance, or moves towards a desired level of performance.

Computer system206can be configured to perform at least one of the steps, operations, or actions described in the different illustrative examples using software, hardware, firmware, or a combination thereof. As a result, computer system206operates as a special purpose computer system in which at least one of controller208or analyzer240in computer system206enables controlling the operation of device204in a desired manner that at least one of maintains, reaches, or moves towards desired level of performance250. In particular, at least one of controller208or analyzer240can transform computer system206into a special purpose computer system as compared to currently available general computer systems that do not have at least one of controller208or analyzer240.

In the illustrative example, the use of at least one of controller208or analyzer240in computer system206integrates processes into a practical application for controlling a group of devices that increases the performance of the group of devices. In other words, at least one of controller208or analyzer240in computer system206is directed to a practical application of processes integrated into at least one of controller208or analyzer240in computer system206that receives internal sensor data for a group of internal parameters that relate to the operation of the device, wherein the internal sensor data is generated by an internal sensor system. At least one of these components in the computer receive external sensor data for the group of external parameters for an environment around the device, wherein the external sensor data is generated by an external sensor system. The computer system with at least one of these components analyzes the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results and control the operation of the device based on the results.

In this manner, at least one of controller208or analyzer240in computer system206provides a practical application for controlling a device such that the functioning of a group of devices is improved.

Further, these components also improve the operation of computer system206. For example, at least one of controller208or analyzer240enable making adjustments or changes to settings for a device such that the device is able to obtain a desired level of performance more quickly or perform more closely to the desired level of performance as compared to using current techniques that do not aggregate internal sensor data and external sensor data from devices in which the aggregated sensor data is used to determine settings for the device.

For example, one or more devices in addition to device204can be controlled by controller208. A plurality of devices can be present in tuning environment200, wherein device204is part of the plurality of devices. For example, controller208can receive the internal sensor data for the group of internal parameters that relate to the operation of a set of devices in addition to device204, wherein the internal sensor data is generated by the internal sensor systems. The internal sensor system for device204also include the sensors in the set of devices. Controller208can receive the external sensor data for the group of external parameters for the environment around the set of devices, wherein the external sensor data is generated by a set of external sensor systems. Depending on the implementation and location of device204. In this example, the external sensor system is all of the sensors that detect the parameters for all of the devices.

Controller208can analyze the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for devices of the same class as the set of devices to generate an additional result in addition to the result for device204. Controller208can control the operation of set of devices based the additional result. As result, controller208can control device204and the set of devices. For example, device204can be a deep brain stimulation system and the set of devices can include at least one of a pacemaker, a defibrillator, or a drug pump. In another example, the device204can be a robotic arm and the set of devices can include at least one of a tool or an inspection system.

As another example, controller208can receive the internal sensor data for the group of internal parameters that relate to the operation from a set of devices in addition to device204. The set of devices and devices204is a plurality of devices. The internal sensor data is generated by the internal sensor systems for the plurality of devices. Controller208can also receive the external sensor data for the group of external parameters for the environment around the plurality of devices. The external sensor data is generated by the external sensor systems. Controller208can analyze the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for devices of the same class as the plurality of devices to generate the result. Controller208can control the operation of the plurality of devices based on the result.

In this example, controller208is configured to send the internal sensor data for the plurality of devices and the external sensor data for the plurality of devices for the analysis with the aggregated internal sensor data and the aggregated external sensor data for the devices of the same class as the plurality of devices to form the analysis. Controlling the operation of device204based on results238of analysis236can also include controlling the operation of the plurality of devices based on the results of the analysis for the devices. Each device in the plurality of devices may have a different result. The different result can cause a different adjustment to be made in settings for each device.

As described in the illustrative example, storage repository237can be implemented using data lake300, data warehouse301, or a combination of these two storage architectures. Further, storage repository237can also include other data architectures such as at least one of a data mart, a global file system, or other suitable architectures for storing data. The particular architecture or architectures used can depend on at least one of environment, data type, analysis algorithms, or other factors.

As another example, analyzer240can include other components in addition to or in place artificial intelligence system241. For example, analyzer240can also include at least one of an expert system, a knowledge-based system, an intelligent agent system, or a rule-based system.

Turning now toFIG.4, an illustration of a block diagram of a device control system for a device is depicted in accordance with an illustrative example. Device control system400is an example of an implementation for device control system202inFIG.2.

As depicted, device control system400is configured to control operation of device402. For example, device control system400can control the operation of device402to at least one of maintain, reach, or move towards a desired level of performance. This control can be referred to as tuning of device402. In this illustrative example, device control system400can automatically tune the operation of device402. This automatic tuning is also referred to as an “autotune” for device402.

In this illustrative example, device402can take a number of different forms. For example, device402can be selected from one of a deep brain stimulation (DBS) system, an infusion or drug pump (e.g., an insulin pump, an enteral pump, an analgesic pump, a kidney dialysis pump, etc.), a pacemaker, a defibrillator, an exoskeleton, a drone, a manufacturing tool, a maintenance tool, a robotic arm, a robot, a vehicle, an aircraft, a spacecraft, a satellite, a surface control system for an aircraft, or some other suitable type of device.

Device control system400includes a number of different components. As depicted, device control system400comprises controller404, environmental sensors406, sensors408, cloud artificial intelligence aggregator410, data lake412, and human machine interface414.

Environmental sensors406are examples of sensors that can be used in external sensor system224inFIG.2. Sensors408are examples of sensors that can be used in internal sensor system218inFIG.2. Data lake412is an example of an implementation for storage repository237inFIG.2. Cloud artificial intelligence aggregator410is an example of an implementation for artificial intelligence system306inFIG.3.

As depicted, controller404receives environmental sensor data416from environmental sensors406and sensor data418from sensors408. The sensors can be Internet-of-things sensors that are connected to a network such as the Internet.

In this illustrative example, environmental sensor data416is an example of external sensor data220for external parameters222inFIG.2. Environmental sensor data416can be data from measurements of external parameters417made by environmental sensors406. External parameters417can be selected from at least one of a temperature, a humidity, a pressure, a barometric pressure, a contaminant, an air contaminant, a radioactive contaminant, heat, a noise, a chemical, a location of device402, an altitude of device402, or other suitable external parameters for the environment around device402.

Sensor data418is an example of internal sensor data214for internal parameters216inFIG.2. Sensor data418is data from measurements of internal parameters419made by sensors408of device402. For example, internal parameters419in sensor data418are selected from at least one a temperature, a pressure, a hydraulic pressure, a pressurization time, a force applied, revolutions per minute for a device component, a current level, a speed, an acceleration, a heartbeat rate, an oxygen level, a blood pressure, an electrical current flow, a voltage, an amount of data stored, a battery level, or other suitable data-generated parameters of interest for device402.

In this illustrative example, sensor data418can be received automatically by controller404from these sensors. In other examples, sensor data418can be received by controller404in response to queries or requests made to sensors408by controller404.

Controller404can send environmental sensor data416and sensor data418to cloud artificial intelligence aggregator410. In this illustrative example, cloud artificial intelligence aggregator410operates to manage data lake412. This management of data lake412includes receiving, processing, and storing environmental sensor data416and sensor data418from different devices as aggregated sensor data422in data lake412. Additionally, cloud artificial intelligence aggregator410provides access to aggregated sensor data422. In another illustrative example, controller404can upload environmental sensor data416and sensor data418directly to data lake412for processing by cloud artificial intelligence aggregator410.

Initially, environmental sensor data416and sensor data418can be processed by cloud artificial intelligence aggregator410to create baseline428for device402. As depicted, baseline428can be stored in data lake412. Additionally, settings430for device402can be saved in data lake412. Settings430can be associated with or saved as part of baseline428for device402.

In this illustrative example, not all of sensor data418and environmental sensor data416needs to be saved in data lake422as part of baseline428. For example, parameters can be one or more of internal parameters and external parameters measured for device402. These parameters can be selected from data that affects the performance of device402. In other words, these parameters can be selected as parameters that can change and can be analyzed to determine changes to settings430to improve or reach a desired level of performance in device402.

In this illustrative example, the processing of environmental sensor data416and sensor data418can be performed to determine how different parameters relate to each other. In the illustrative example, this processing can be performed by artificial intelligence system420in controller404. Further, metadata427can be included in baseline428. Metadata427can include at least one of a manufacturer, a model, a serial number, a device identifier, a user identifier, or other suitable information.

In this illustrative example, settings430can be initially determined for device402by comparing baseline428to baselines434. The comparison can be used to identify similar environments for devices of the same class as device402. Based on identifying similar environments in baselines434, historical settings426for those identified baselines can be used to determine an initial set of settings430for device402.

In this illustrative example, patterns424can be used to identify particular environments in baselines434and identify historical settings426used for those particular environments that provide a desired level performance. Patterns424can be patterns in values for a set of parameters for at least one of internal sensor data or external sensor data. The patterns in these parameters can also be used to infer patterns of activity or operation for device402. The patterns in these parameters can also be used to infer patterns of activity for a person associated with device402.

In the illustrative example, a pattern in patterns424can be determined using one parameter, two parameters, seven parameters, 19 parameters, or some other number of parameters for aggregated sensor data422stored in data lake412. The parameters in a pattern can be from internal sensor data, external sensor data, or some combination thereof.

Those system settings can then be used to adjust settings430or form the initial set of settings430. In other words, artificial intelligence system420can determine which ones of patterns424are present for a desired level of performance for device402. Identification of those patterns in patterns424can be used to identify historical settings426corresponding to those patterns. The identified settings in historical settings426can be used to adjust settings430in device402.

For example, with an infusion or drug pump such as an insulin pump for example, patterns for parameters in baselines434corresponding to different activity levels of a human user can be used to determine settings430for device402. For example, the parameters for users engaged in scuba diving can be identified. Patterns424can be patterns of parameters such as a breathing rate, an oxygen level, a blood pressure, a temperature, and other suitable parameters for a user that corresponds to scuba diving as an activity. Further, the patterns can be identified for the users who have similar characteristics as a user for which the settings are needed. These characteristics can include parameters for weight, age, body fat percentage, or other suitable characteristics.

The identification of these patterns can be used to identify historical settings426that result in a desired level of performance such as a desired blood sugar level.

As another example, if a user desires to increase focus for performing a task, settings430in device402in the form of a deep brain stimulation (DBS) system can be adjusted to increase the focus of the user. In this illustrative example, parameters such as alpha brain waves, cortisol levels, oxygen levels, respiration rate, and other suitable parameters can be measured and compared to at least one of baseline428for baselines434. The use of baseline428can be used to determine whether patterns for increased focus are present along with historical settings for the user in baseline428. Otherwise, patterns424can be identified in baselines434to identify storable settings that improve the focus of a user. These patterns can also be identified in baselines434based on a match or similarity between age, muscle tone, resting heart rate, blood pressure, and other suitable parameters that can be used to identify patterns424in baselines434. Baseline428can change with time as additional sensor data is received from device402. In the illustrative examples, devices can wear, external environments can change, or both can occur. For example, devices over time change due to age and wear. As another illustrative example, an external environment such as a body weight, a season, or a geographic location can change. These types of environmental changes can change various parameters for baseline428. Further, baseline428can also be analyzed to determine trends. These trends can also be analyzed to predict changes to settings430for device402.

In this illustrative example, controller404can include artificial intelligence system420. Artificial intelligence system420can be trained and configured to provide functions in controller404such as analyzing environmental sensor data416and sensor data418. Further, artificial intelligence system420can also provide controller404an ability to determine how to control the operation of device402as part of tuning device402to improve or maintain performance of device402.

In performing this analysis, artificial intelligence system420can use aggregated sensor data422in data lake412to determine how to tune device402. As depicted, controller404obtains aggregated sensor data422from cloud artificial intelligence aggregator410. As depicted, controller404makes request432for aggregated sensor data422. In this example, request432can identify a class of devices such that aggregated sensor data422of the same class as device402is located by cloud artificial intelligence aggregator410. Further, request432can also specify particular values or ranges of values for internal parameters in a device or external parameters in the environment. For example, request432can specify that baselines434having sensor data matching the values or ranges for particular parameters should be returned.

In response to request432, cloud artificial intelligence aggregator410returns response436. Response436includes aggregated sensor data422that is responsive to request432.

As depicted, controller404can analyze aggregated sensor data422in response436to determine patterns424in this data. In this illustrative example, the analysis is made with aggregated sensor data422for devices of the same class as device402.

These patterns can be compared to environmental sensor data416and sensor data418to determine whether a match is present. Further, historical settings426can also be present for aggregated sensor data422. As a result, when a pattern is found, historical settings426in baselines434can be examined to determine what settings should be made for device402.

The results of this analysis can be used to determine changes to device402that are intended to increase the performance of device402. In this manner, device control system400provides a feedback loop using at least one of sensor data418for device402or environmental sensor data418for the environment around device402. With the feedback received, controller404can continually tune device402to increase or maintain the performance of device402. The tuning can include at least one of setting changes, program code changes, or other types of changes to device402.

For example, a first pattern can have a first set of parameters that have first values that correlate to a second pattern for a second set of parameters that have second values. The correlation can be, for example, the same increase or decrease, a proportional increase or decrease, or some other increase or decrease that is correlated.

In this illustrative example, a correlation in hypothetical correlations454is present between the first set of parameters in the first pattern and a second set of parameters in the second pattern when the statistical relationship is present between these two sets of parameters. The presence of a statistical relationship can be determined in a number of different ways. In this example, the presence of a statistical relationship can be determined using a correlation coefficient for the first set of variables in the second set of variables. This correlation coefficient can take a number of different forms selected from at least one of a Pearson product-moment correlation coefficient, an intraclass correlation (ICC), a rank correlation, a polychoric correlation coefficient, or some other suitable type of correlation coefficient.

A threshold can be used to determine when the correlation coefficient is sufficient such that the first pattern and the second pattern are considered to have a hypothetical correlation in hypothetical correlations454. In other words, hypothetical correlations454are correlations that are great enough to be considered statistically significant based on the selection of a threshold.

The threshold can be a preselected value. In another example, the threshold can be determined by artificial intelligence system420during training or use of artificial intelligence system420.

In this illustrative example, correlations are correlations that have been determined to be present based on analysis of patterns424. Hypothetical correlations454are correlations based on hypotheses or determinations that have not been tested to determine whether the correlations are actually present between patterns424for which hypothetical correlations454have been identified.

In this illustrative example, hypothetical correlations can be used to select settings430. For example, the first pattern can be a performance parameter that measures a performance level of device402. The second pattern can be for a temperature for device402. The correlation between the first pattern and the second pattern may indicate that increasing the temperature was to improve performance level of device402. In this example, a temperature setting in settings430can be set to increase the temperature of device402to meet a desired performance level. This temperature setting is tested in device402to determine whether an increase the temperature caused by the change in temperature setting results in increased performance of device402.

The result of settings430with a temperature setting that increases the temperature of device402can be received in at least one of environmental sensor data416for sensor data418that includes a parameter is used to measure performance for device402. The data received from device402can determine whether the hypothetical correlation is an actual correlation.

If the hypothetical correlation is the actual correlation, that correlation is stored in actual correlations456. Actual correlations456or correlations between patterns424that have been tested and in which at least one of environmental sensor data416or sensor data418indicates that a correlation is present between the parameters for the two sets of patterns424. In other words, hypothetical correlations454are correlations between patterns424identified by artificial intelligence system420analyzing aggregated sensor data422.

Settings430can be selected based on one or more hypothetical correlations in hypothetical correlations454. Settings430can be used by device402. In response to using settings430based on the one or more hypothetical correlations in device402, at least one of environmental sensor data416or sensor data418is received in this illustrative example. This sensor data can be analyzed by artificial intelligence system420to determine whether the one or more of the hypothetical correlations is actually present when used in device402. When a correlation has been confirmed for a hypothetical correlation in the one or more hypothetical correlations in hypothetical correlations454, that hypothetical correlation becomes an actual correlation in actual correlations456. These actual correlations can then be used to select settings for device402or other similar devices of the same class as device402with greater certainty that the correlations can cause the desired performance of at least one of device402and other devices of the same class.

As a result, controller404using artificial intelligence system420can create new information from aggregated sensor data422. In other words, artificial intelligence system420can perform a transformation of information such as aggregated sensor data424into other information such as patterns422, hypothetical correlations454, actual correlations456, or some combination thereof.

For example, artificial intelligence system420can identify new information such as at least one of patterns424, hypothetical correlations454, or actual correlations456. For example, artificial intelligence system420can identify patterns424in aggregated sensor data422. Patterns424can in turn be analyzed by artificial intelligence system422to determine hypothetical correlations454between patterns424. These hypothetical correlations can be correlations that have not been previously recognized or identified. The use of hypothetical correlations454in settings430can be used to determine whether these correlations are actually present in controlling the operation of device402.

When a hypothetical correlation is determined to be an actual correlation through actual use in device402, artificial intelligence system420adds that correlation to actual correlations456. Further, the use of settings430in device402can be performed using simulations without actually needing to implement settings430in device402. In some situations, this type of simulation is more desirable as part of confirming whether a hypothetical correlation is an actual correlation.

This information created by artificial intelligence system420from aggregated sensor data422is stored in data lake412in this depicted example. This information can be used to control the operation of devices such as device402based on selecting settings430for device402.

As depicted, device control system400also includes human machine interface414. Human machine interface414can be operated by a human operator to generate user input438. In this example, user input438includes commands to programming adjustments, setting changes, or other suitable changes to device402.

The illustration of device control system400is shown for purposes of illustrating one manner in which a device can be controlled, and this illustration is not meant to limit the manner in which other device control systems can be implemented. For example, one or more devices in addition to or in place of device402can be controlled by controller404. In other words, controller404can operate to tune the operation of additional devices. These devices can be of the same class or a different class from device402.

As another example, multiple cloud artificial intelligence aggregators can be present in addition to or in place of cloud artificial intelligence aggregator410to manage data lake412. In other illustrative examples, other data lakes may be present in addition to or in place of data lake412for storing aggregated sensor data422.

Deep brain stimulation is a technique that has been proven to be successful for providing relief and restoring a great degree of motor function for individuals on which this technique is used. This technique has been used to treat disorders and diseases such as Essential Tremors and Parkinson's disease.

With this technique, a deep brain stimulation system comprises a neurostimulator and electrodes that are implanted in the brain of a human patient. The neurostimulator is a controller that sends electrical impulses through implanted electrodes to specific targets in the brain. The electrodes in the deep brain stimulation system can output low-level electrical pulses that effectively buffer and normalize neurological misfiring in the brain.

The illustrative examples recognize and take into account that, currently, a high degree of manual effort is needed to set up the deep brain stimulation system. Further, the illustrative examples recognize and take into account that the deep brain stimulation requires maintenance on a continual basis to ensure that the desired results can be maintained. Further, the illustrative examples also recognize and take into account that problems that patients have can be sporadic in nature and difficult to express when visiting a doctor.

The illustrative examples can employ a device control system to obtain sensor data, analyze the sensor data, and control the operation of the deep brain stimulation system based on the results of the analysis. This process can be formed continually with sensor data being received from measurements of the deep brain stimulation system and the environment around the deep brain stimulation system being used as feedback in a feedback loop.

The illustrative examples employ a device control system as an autotune mechanism for continuous optimization of the operation of the deep brain stimulation system. This process can reduce or avoid the need for manual adjustments or set up by human operators.

The illustrative examples can employ Internet-of-things technology and artificial intelligence systems to continuously monitor and gather sensor data from a deep brain stimulation system and from the environment around the deep brain stimulation system and the patient. The illustrative examples also can leverage use of collecting sensor data in a data lake in analyzing that sensor data with artificial intelligence systems.

Turning toFIG.5, an illustration of a block diagram of a device control system for a deep brain stimulation system is depicted in accordance with an illustrative example. Device control system500is an example of an implementation for device control system202inFIG.2. As depicted, device control system500is configured to control the operation of deep brain stimulation system502. For example, device control system500can control the operation of deep brain stimulation system502to at least one of maintain, reach, or move towards a desired level of operation. In this illustrative example, device control system500can automatically tune the operation of deep brain stimulation system502.

In this illustrative example, the tuning of deep brain stimulation system502is performed to achieve results such as enhanced cognitive abilities, enhanced musculoskeletal coordination control, reduced tremors, increased concentration, or other desired effects.

Device control system500includes a number of different components. As depicted, device control system500comprises controller504, environmental sensors506, sensors508, cloud artificial intelligence aggregator510, data lake512, and human machine interface514.

In this illustrative example, the flow of information is performed using encryption and other suitable security measures to protect the privacy of patients' personal information. As depicted, health information can be collected from devices for users only when the users have provided consent for the collection and sharing of health information. In this illustrative example, the consent is obtained ahead of time with the proper disclosure and consent forms for privacy rules and regulations, such as the Health Insurance Portability and Accountability Act of 1996. In the illustrative example, health information is not collected or shared unless a user has opted in to share the health information. Further, any other personal information about the patient is not collected or shared without the patient opting in by providing consent to the collection and use of the personal information. For example, audio recordings or video recordings of a patient are not collected or shared without the patient consenting to the collection of sharing of this type of information.

Environmental sensors506are examples of sensors that can be used in external sensor system224inFIG.2. Environmental sensors506can be Internet-of-things sensors that are connected to a network such as the Internet. The sensors can be, for example, external sensors selected from at least one of an Internet-of-things sensor, a blood pressure sensor, an infusion or drug pump (e.g., an insulin pump, an enteral pump, an analgesic pump, a kidney dialysis pump, etc.), a pacemaker, a defibrillator, a wearable activity tracker, a temperature sensor, a biosensor, a hygrometer, a barometric sensor, a global positioning system unit, a wearable sensor, a bio-sensor, a smartwatch, or other suitable sensors.

In this illustrative example, sensors508are examples of sensors that can be used in internal sensor system218inFIG.2. Sensors508can be Internet-of-things sensors. Sensors508can include at least one of a current sensor, an optical fiber, a voltage detector, a temperature sensor, or other suitable sensors that can take measurements of deep brain stimulation system502.

In the illustrative example, a biosensor is a device used to the detection of chemical substance. A biosensor can combine a biological sensor element and a transducer element.

The biological sensor element can be an element that is at least one of biologically derived material or a biomimetic component. This element is selected as one that at least one interacts with, binds with, or recognizes a substance that is to be detected. The biological sensor element can be for example, at least one of a tissue, a microorganism, an organelle, a cell receptor, an enzyme, an antibody, a nucleic acid, or other suitable components.

In this example, the transducer element is a component that transforms the signal generated by the biological sensor element into a signal that can be used to generated data about the substance that is detected. In this example, the transducer element converts a biochemical signal to an electronic or optical signal.

Data lake512is an example of an implementation for storage repository237inFIG.2. Cloud artificial intelligence aggregator510is an example of an implementation for artificial intelligence system306inFIG.3.

In this illustrative example, the tuning process can be initiated by a doctor or other health professional using human machine interface514. Human machine interface514includes a display and an input system. Human machine interface514can be implemented using at least one of a computer, a tablet computer, a laptop computer, a mobile phone, or some other suitable device. Human machine interface514can generate user input520, which can include a command or instruction to initiate setting up operation of deep brain stimulation system502in brain522of patient518.

As depicted, controller504receives environmental sensor data524from environmental sensors506and system sensor data526from sensors508. In this illustrative example, environmental sensor data516is an example of external sensor data220inFIG.2. Environmental sensor data524can be data from measurements of, for example, at least one of a temperature, a humidity, a pressure, a barometric pressure, a contaminant, an air contaminant, a radioactive contaminant, heat, a noise, a chemical, a location, an altitude, a heart rate, a body temperature, a blood pressure, a blood sugar level, a level of exertion, a respiratory rate, or other suitable external parameters for the environment around deep brain stimulation system502. In this example, the environment includes at least one of patient518and the environment around patient518.

Controller504also receives system sensor data526which is an example of internal sensor data214inFIG.2. System sensor data526is data generated from measurements of deep brain stimulation system502. In other words, this sensor data is data based on measurements of at least one of deep brain stimulation system502and the environment around deep brain stimulation system502.

For example, system sensor data526can include at least one a temperature, a pressure, a hydraulic pressure, a pressurization time, a force applied, revolutions per minute for device component, a current level, a speed, an acceleration, a heartbeat rate, an oxygen level, a blood pressure, an electrical current flow, a voltage, an amount of data stored, a battery level, or other suitable data-generated parameters of interest for deep brain stimulation system502.

In this illustrative example, the sensor data can be received automatically by controller504from these sensors. In other examples, the sensor data received by controller504can be received in response to queries or requests made to the sensors by controller504.

In this illustrative example, environmental sensor data524, system sensor data526, and settings528for deep brain stimulation system502form baseline530for deep brain stimulation system502in brain522of patient518. In this illustrative example, settings528can include settings for the characteristics of currents emitted by deep brain stimulation system502. The settings can be selected to direct the current flow to one or more regions in brain522of patient518with various characteristics.

The settings can include settings for at least one of an electrical current, an amplitude, a voltage, an electrode current flow, a direct current flow, an alternating current flow, a pattern in current flow, a shape of the electrical current flow from electrodes in deep brain stimulation system502, or a target location of the current flow within a medium when the electrodes in deep brain stimulation system502are located in the medium. The pattern of current flow can be the current flow between electrodes in deep brain stimulation system502, and the current flow can include a pattern of values including pulse length, width, amplitude, and other parameters.

As depicted, controller504can send baseline530directly to data lake512. In other illustrative examples, baseline530can be sent by controller504to cloud artificial intelligence aggregator510, which saves baseline530to data lake512.

In this illustrative example, data lake512provides an ability to store large amounts of datasets for various patients based on a set of defined parameters that are monitored by sensor systems. The amount of data in data lake512can enable identifying similar patients based on analyzing aggregated sensor data532stored in data lake512. This identification of matches can be performed using an artificial intelligence system implemented with controller504.

In the illustrative example, the identification of similar patients is based on identifying groups of data for patients and not actually the actual identity of patients. In other words, the storage and processing data does not specifically track particular patients. Instead, the data is used to track data in groups associate with patients without actually identifying or being able to identify the patients themselves. In other words, in the illustrative example, the data is gathered and stored in a manner that provides the privacy and confidentiality of patients or people from which the sensor data is obtained.

In the illustrative example, health information can be collected from devices for users only when the users have provided consent for the collection and sharing of health information. In this illustrative example, the consent is obtained ahead of time with the proper disclosure and consent forms for privacy rules and regulations, such as the Health Insurance Portability and Accountability Act of 1996. In the illustrative example, health information is not collected or shared unless a user has opted in to share the health information. Further, any other personal information about the user is not collected or shared without the user opting in by providing consent to the collection and use of the personal information. Further, the data is also anonymized to prevent the identification of particular patients in these illustrative examples

In this illustrative example, the operation of deep brain stimulation system502can be optimized using aggregated sensor data532stored in data lake512. Aggregated sensor data532can be baselines534for other deep brain stimulation systems used in other patients. As depicted, aggregated sensor data532can include environmental sensor data536, system sensor data538, settings540for different deep brain stimulation systems, and patient profiles542for other patients. In this illustrative example, a patient profile in patient profiles542contains health information about a particular patient. The patient profile can include information selected from at least one of age, sex, height, weight, blood pressure, family medical history, allergies, illnesses, hospitalizations, medications and dosing, surgeries, vaccinations, chronic diseases, adverse drug reactions, activity level, and other suitable information that is relevant for a patient.

In some illustrative examples, baselines534can also include data generated by models of deep brain stimulation systems implanted in human brains. This type of sensor data from models can be used in addition to or in place of actual patient information.

In this illustrative example, controller504can send request544for baselines530for using various criteria. The criteria can specify that baselines530should be ones that are for deep brain stimulation systems with the same specifications or class and for patients with similar patient profiles in patient profiles542to patient profile546for patient518. In response to request544, cloud artificial intelligence aggregator510sends response548with baselines534and other information responsive to request544.

With baselines534responsive to request544, controller504can analyze environmental sensor data524and system sensor data526in baseline530using corresponding data in baselines534. Further, the analysis can also compare patient profile546for patient518with patient profiles542returned in response548. The analysis can be used to compare baselines of populations in a manner that can be used to determine whether changes to settings528for deep brain stimulation system502should be made to tune deep brain stimulation system502to operate in an optimized fashion. The optimization can be for one or both of optimization of the operation of deep brain stimulation system502for the individual patient and the expected operation for the population from which patient profiles542are present. With the population, changes in setting can improved the performance for the population as a whole.

The operations are optimized when deep brain stimulation system502operates at a desired level of performance, operates to maintain the desired level of performance, or operates in a manner that increases the performance towards the desired level. The optimization to meet a desired level of performance can be for the individual, the expected operation for the population from which patient profiles542are present, or both the individual and the population based on improvements from baseline data for the individual and baseline data for the population. Different individuals can have different setting changes to reach the desired level of performance. The desired level of performance can change over time based on changes in at least one of patient profile546for patient518, changes in the environment around patient518, or changes in deep brain stimulation system502.

With device control system500, deep brain stimulation system502can be adjusted to provide various improvements in patient518or maintain characteristics of patient518such as enhanced cognitive ability, enhanced muscular skeletal coordination control, enhanced agility, focused concentration, reduced tremors, or other improvements or characteristics.

As depicted, tuning performed by device control system500can be performed continually or as needed based on different non-periodic events using a feedback loop with environmental sensors506and system sensors508providing sensor data to controller504, which in turn can send setting changes to deep brain stimulation system502. Effects of the setting changes can then be detected by environmental sensors506and sensors508which generate new sensor data which is used as feedback by controller504to determine whether additional setting changes should be made.

The tuning with this feedback loop can be made continually or periodically. For example, tuning can be performed once every millisecond, three seconds, seven minutes, two hours, three days, a week, or at some other period of time. This periodic tuning can be in addition to or in place of tuning based on events that are non-periodic.

In this illustrative example, tuning can also be performed when some parameters measured by environmental sensors change beyond a selected threshold. For example, the tuning can be performed if a particular pollutant, pesticide, solid, or other toxin detected by environmental sensors506exceeds a threshold level.

Another event that can result in initiating tuning of deep brain stimulation system502by device control system500is a change in activity level that exceeds a threshold. The activity level can be, for example, an amount of daily or weekly exercise. This exercise can be determined based on environmental sensor data such as a heartrate, an oxygen level, a respiration rate, a temperature, and other sensor data that can be used to determine the activity level of patient518.

Another non-periodic event that can result in initiating tuning of deep brain stimulation system502is an improvement in settings540for deep brain stimulation systems for patient profiles542that correspond or sufficiently match patient profile546for patient518. A change in the settings for a population similar to patient518can be used to initiate analysis and changes in settings528for deep brain stimulation system502to control the operation of this device as part of a tuning process.

Thus, device control system500enables identifying patient profiles542that are the same or sufficiently close to patient profile546to be considered a match. For example, patient profile546can be considered sufficiently close to another patient profile in patient profiles542if the value of a parameter in both patient profiles fall within the same range of values designated for the parameter. For example, with deep brain stimulation system502, parameters can be compared to find patient profiles542that are exact matches or sufficiently close that affect neurological functions. The range of values for these parameters can be based on current standards in which the neurological function is expected to the same for that range of values for a particular parameter.

For example, with a parameter form of a blood oxygen level, altitude levels can change the blood oxygen level. A change in the blood oxygen level can change oxygen supply to the brain, which can affect neurological functions. As a result, ranges of blood oxygen levels can be selected in which each range of the blood oxygen level can be expected to have the same level of neurological function.

As another example, age can be divided into ranges and used to determine when patient profile546is set efficiently close to one or more of patient profiles542. Two patient profiles can be sufficiently close to each other when the age for those profiles are within the same age range. The age range can be selected based on when changes occur in neurological functions in the brain.

As another illustrative example, a body mass index (BMI) is a parameter that can have a range in which the neurological function is expected to be the same within the range selected for the body mass index. Other parameters for which ranges can be used for identifying similar patient profiles include, for example, without limitation, geographic region, ancestry, and other parameters describing patients and patient profiles542.

Further, patient profiles can be considered to be sufficiently close when a selected number of parameters all have values falling within the same ranges for those parameters. The selection parameters for this type of matching can be based on which parameters affect levels of neurological functions.

This identification of similar patient profiles can be performed with the ability to store very large amounts of data in data lake512and analyze the data using an artificial intelligence system implemented in controller504to perform the analysis. As a result, similar patients that can be identified may not be easy to locate using current techniques and available data. With the identification of patient profiles and settings for the patient profiles, adjustments can be made to the operation of deep brain stimulation system502that are more effective as compared to adjustments made using current techniques in which the analysis is performed by a human operator such as a doctor, a researcher, or a technician.

The illustration of device control system500used for tuning the operation of deep brain stimulation system502inFIG.5is provided for purposes of illustrating one manner in which device control system500can control devices. This illustration is not meant to limit the manner in which other illustrative examples can be implemented. For example, device control system500can be used to control the operation of other devices that may be used by the same patient. For example, device control system500can be used to tune the operation of other medical devices such as at least one of an infusion or drug pump (e.g., an insulin pump, an enteral pump, an analgesic pump, a kidney dialysis pump, etc.), a pacemaker, a defibrillator, a drug delivery unit, or some other medical device.

In another example, device control system500can operate to control the operation of one or more deep brain stimulation systems in addition to or in place of deep brain stimulation system502.

Further, the illustrative example enables individual programming for a particular patient that can be continuously optimized to provide a desired level of stimulation for electrical current by deep brain stimulation system502for a patient that can take into account various variables such as patient health, an exertion level, a stress level, a blood sugar level, a heart rate, a blood oxygen level, a body temperature, a serum level for a hormone, a respiratory rate, a respiratory volume, a blood pressure, or other suitable parameters relating to the patient that may be relevant for controlling operation of deep brain stimulation system502.

With reference toFIG.6, an illustration of a flowchart of a process for controlling a device is depicted in accordance with an illustrative example. The process inFIG.6can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one or more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in controller208in computer system206inFIG.2.

The process begins by receiving internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within a device that relates to an operation of the device (operation600). The process receives external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the device that relates to the operation of the device (operation602).

The process sends the internal sensor data and the external sensor data for analysis with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results (operation604).

The process controls the operation of the device based on the results of the analysis (operation606). The process terminates thereafter. In operation606, the process can send settings to the device based on the results. For example, the results may include settings suggested for the device. The settings can change the operation or configuration of the device to reach a desired level of performance. In other illustrative examples, the process can update or send program code to the device.

This process can be repeated any number of times dynamically during operation of the device to operate as a control loop. In this manner, the device can be tuned based on an event that is periodic or non-periodic. The periodic event can be performing the process every five seconds, one minute, ten minutes, two hours, or some other time period. As another example, the process can be initiated by the controller when a parameter of being monitored exceeds a threshold.

Turning next toFIG.7, an illustration of a flowchart of a process for controlling a device is depicted in accordance with an illustrative example. The process inFIG.7can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one or more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in analyzer240in computer system206inFIG.2.

The process begins by receiving internal sensor data for a group of internal parameters that relate to an operation of a device (operation700). The internal sensor data received in operation700is generated by an internal sensor system.

The process receives external sensor data for a group of external parameters for an environment around the device (operation702). In this operation, the external sensor data is generated by an external sensor system.

The process analyzes the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results (operation704). The process controls the operation of the device based on the results (operation706). The process terminates thereafter. In operation706, the results can include suggested settings, commands, configurations, or other information that can be used by a controller to tune the operation of the device to reach a desired level of performance.

With reference toFIG.8, an illustration of a flowchart of a process for identifying hypothetical correlations in patterns in aggregated sensor data is depicted in accordance with an illustrative example. The process inFIG.8can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one or more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in controller208in computer system206inFIG.2and in analyzer240inFIG.4. As a more specific illustrative example, these processes can be implemented in artificial intelligence system241inFIG.2and artificial intelligence system420inFIG.4.

The process begins by identifying a repository of aggregated sensor data for analysis (operation800). The repository can be, for example, a data lake such as data lake412inFIG.4or data lake512inFIG.5. In other examples, the repository can take other forms or combinations of forms in addition to or in place of the data lake including at least one of a data mart, a data warehouse, a global file system, or some other suitable architecture for storing data.

The process determines patterns in the aggregated sensor data (operation802). A pattern can be for data for one or more parameters. These parameters can be at least one of an internal parameter for a device or an external parameter for the environment around the device. When the device is a deep brain stimulation system or some other implantable device that can be implanted in a human being, the environment can be for parameters in the body. Further, the environment can also can be for parameters measured in the environment around the body. In other words, the parameters can include both the human being and the environment around the human being.

Additionally, one pattern may be a pattern of data for one parameter while another parameter can be a pattern of data for three parameters, seven parameters, or some other number of parameters. In other words, different patterns may be patterns of data for different numbers of parameters.

The process determines correlation coefficients between the patterns identified from the aggregated sensor data (operation804). For example, a hypothetical correlation can be present between the parameters in a first pattern and a parameter in a second pattern when a statistical relationship is present between these two parameters. In this illustrative example, the statistical relationship can be determined using a correlation coefficient calculated between the first parameter and a second parameter. This correlation coefficient can take a number of different forms selected from at least one of a Pearson product-moment correlation coefficient, an intraclass correlation (ICC), a rank correlation, a polychoric correlation coefficient, or some other suitable type of correlation coefficient.

The process then identifies hypothetical correlations between the patterns based on a threshold selected for the correlation coefficients (operation806). In operation806, a threshold be selected to indicate when the correlation coefficient is sufficient such that the first pattern and the second pattern considered have a hypothetical correlation with each other.

The process stores the hypothetical correlations in a repository (operation808). The process terminates thereafter. The repository in operation808can be the same repository that stores the aggregated sensor data.

Turning toFIG.9, an illustration of a flowchart of a process for selecting settings for a device from correlations is depicted in accordance with an illustrative example. The process inFIG.9can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one or more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in controller208in computer system206inFIG.2and in analyzer240inFIG.4. As a more specific illustrative example, these processes can be implemented in artificial intelligence system241inFIG.2and artificial intelligence system420inFIG.4.

The process begins by identifying a desired performance for a device (step900). This desired performance can be, for example, to operate a tool to perform manufacturing operations at a selected rate, to operate a deep brain stimulation system to reduce tremors to a desired amount, to operate a drug pump, to obtain a desired effect such as pain reduction or reducing a glucose level, or some other type of desired performance.

The process identifies a set of performance parameters for the desired performance of the device (operation902). The set of performance parameters is one or more parameters that measure the performance of the device. For example, a performance parameter can be a hole drilling rate for a tool performing a manufacturing operation. Performance parameters can be a glucose level for a drug pump that pumps insulin.

The process identifies a set of operational parameters that can be used to adjust settings for the device (step904). The set of operational parameters are parameters that can be measured from the device and can be used to select settings for the device. For example, the set of operational parameters can be a drug delivery rate for a drug such as insulin. As another example, the set of operational parameters can be a drug delivery rate for a pain reliever.

The process identifies patterns between the set of performance parameters and the set of operational parameters that have correlations (operation906). In operation906, these correlations can be hypothetical correlations or actual correlations.

The process then identifies values for the set of performance parameters in the patterns having the correlations in which the set of parameters indicate a desired level of performance for the device (operation908). The process then identifies the values for the set of operational parameters that correspond to the values for the set of performance parameters (operation910). The process then selects settings for the device to cause the set of operational parameters to reach the values identified for the set of operational parameters (operation912). The process then sends the settings to the device to control operation of the device (operation914).

InFIG.10, an illustration of flowchart of a process for determining actual correlations between patterns in aggregated sensor data is depicted in accordance with an illustrative example. The process inFIG.10can be implemented in hardware, software, or both. When implemented in software, the process can take the form of program code that is run by one or more processor units located in one or more hardware devices in one or more computer systems. For example, the process can be implemented in controller208in computer system206inFIG.2and in analyzer240inFIG.4. As a more specific illustrative example, these processes can be implemented in artificial intelligence system241inFIG.2and artificial intelligence system420inFIG.4.

The process begins by selecting settings for a device using hypothetical correlations (operation1000). The selection of settings using the hypothetical correlations can be performed using the process illustrated inFIG.10. In this illustrative example, settings can be based on values of operational parameters that can be measured for the device and values of the performance parameters that can be measured to determine the performance of the device.

The process sends the settings selected using the hypothetical correlations to the device for use in operating the device (operation1002). The process receives sensor data from the device while the device is operating using the settings selected using the hypothetical correlations (operation1004). The sensor data can be at least one of internal sensor data or external sensor data for the device.

The process identifies patterns in the sensor data received from the device (operation1006). The process determines whether the settings resulted in a change in the values for a set of operational parameters in the sensor data that resulted in a corresponding or desired change in the values for a set of performance parameters in which the change in values for the set of performance parameters indicates that the desired level of performance was obtained (operation1008). The determination can be made in operation1008by calculating correlation coefficients between the patterns identified in the sensor data. In the illustrative example, the patterns are between patterns that were determined to be hypothetically correlated between the patterns for operational parameters and the patterns for the performance parameters.

In this illustrative example, the data for the set of performance parameters may not be a single data point for a performance parameter but may be a range of data points that indicate that a desired level of performance has been reached.

If the settings resulted in the change in the values for the set of operational parameters in the sensor data that resulted in the corresponding or desired change in the values for set performance parameters values, the hypothetical correlation in which the settings were generated is saved as an actual correlation (operation1010). The process terminates thereafter.

Otherwise, the hypothetical correlation is removed from the hypothetical correlations (operation1012). The process terminates thereafter.

As a result, the feedback loop is present in which hypothetical correlations can be identified from patterns. Settings can be selected based on those patterns and sent to the device for use in operating the device. Sensor data received from the device using the settings are received and analyzed. The analysis can determine whether the settings resulted in the desired operation to confirm whether the hypothetical correlation is an actual correlation.

This process can be performed continuously to identify new correlations that may not have been previously identified as new sensor data is added to the aggregated sensor data. As a result, the illustrative examples using components such as an artificial intelligence system can identify correlations that may not have been previously known or possible to identify as new sensor data is received. In this manner, the artificial intelligence system can provide insights as to settings that can be used for the particular device to optimize the performance to reach the desired result. The identification of the correlations can be used in selecting the settings from other devices of the same class.

Turning now toFIG.11, an illustration of a block diagram of a data processing system is depicted in accordance with an illustrative example. Data processing system1100can be used to implement server computer104, server computer106, storage repository108, and client devices110inFIG.1. Data processing system1100can also be used to implement computer system206inFIG.2, device204inFIG.2, devices232inFIG.2, and device402inFIG.4. In this illustrative example, data processing system1100includes communications framework1102, which provides communications between processor unit1104, memory1106, persistent storage1108, communications unit1110, input/output (I/O) unit1112, and display1114. In this example, communications framework1102takes the form of a bus system.

Processor unit1104serves to execute instructions for software that can be loaded into memory1106. Processor unit1104includes one or more processors. For example, processor unit1104can be selected from at least one of a multicore processor, a central processing unit (CPU), a graphics processing unit (GPU), a physics processing unit (PPU), a digital signal processor (DSP), a network processor, or some other suitable type of processor.

Memory1106and persistent storage1108are examples of storage devices1116. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, at least one of data, program code in functional form, or other suitable information either on a temporary basis, a permanent basis, or both on a temporary basis and a permanent basis. Storage devices1116may also be referred to as computer-readable storage devices in these illustrative examples. Memory1106, in these examples, can be, for example, a random-access memory or any other suitable volatile or non-volatile storage device. Persistent storage1108can take various forms, depending on the particular implementation.

For example, persistent storage1108may contain one or more components or devices. For example, persistent storage1108can be a hard drive, a solid-state drive (SSD), a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage1108also can be removable. For example, a removable hard drive can be used for persistent storage1108.

Communications unit1110, in these illustrative examples, provides for communications with other data processing systems or devices. In these illustrative examples, communications unit1110is a network interface card.

Input/output (I/O) unit1112allows for input and output of data with other devices that can be connected to data processing system1100. For example, input/output (I/O) unit1112can provide a connection for user input through at least one of a keyboard, a mouse, or some other suitable input device. Further, input/output (I/O) unit1112can send output to a printer. Display1114provides a mechanism to display information to a user.

Instructions for at least one of the operating system, applications, or programs can be located in storage devices1116, which are in communication with processor unit1104through communications framework1102. The processes of the different examples can be performed by processor unit1104using computer-implemented instructions, which can be located in a memory, such as memory1106.

These instructions are referred to as program code, computer usable program code, or computer-readable program code that can be read and executed by a processor in processor unit1104. The program code in the different examples can be embodied on different physical or computer-readable storage medium, such as memory1106or persistent storage1108.

Program code1118is located in a functional form on computer-readable media1120that is selectively removable and can be loaded onto or transferred to data processing system1100for execution by processor unit1104. Program code1118and computer-readable media1120form computer program product1122in these illustrative examples. In the illustrative example, computer-readable media1120is computer-readable storage medium1124.

In these illustrative examples, computer-readable storage medium1124is a physical or tangible storage device used to store program code1118rather than a medium that propagates or transmits program code1118. Computer readable storage medium1124, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Alternatively, program code1118can be transferred to data processing system1100using a computer-readable signal media. The computer-readable signal media can be, for example, a propagated data signal containing program code1118. For example, the computer-readable signal media can be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals can be transmitted over connections, such as wireless connections, optical fiber cable, coaxial cable, a wire, or any other suitable type of connection.

Further, as used herein, “computer-readable media1120” can be singular or plural. For example, program code1118can be located in computer-readable media1120in the form of a single storage device or system. In another example, program code1118can be located in computer-readable media1120that is distributed in multiple data processing systems. In other words, some instructions in program code1118can be located in one data processing system while other instructions in in program code1118can be located in one data processing system. For example, a portion of program code1118can be located in computer-readable media1120in a server computer while another portion of program code1118can be located in computer-readable media1120located in a set of client computers.

The different components illustrated for data processing system1100are not meant to provide architectural limitations to the manner in which different examples can be implemented. In some illustrative examples, one or more of the components may be incorporated in or otherwise form a portion of, another component. For example, memory1106, or portions thereof, can be incorporated in processor unit1104in some illustrative examples. The different illustrative examples can be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system1100. Other components shown inFIG.11can be varied from the illustrative examples shown. The different examples can be implemented using any hardware device or system capable of running program code1118.

Thus, the illustrative examples provide a method, apparatus, system, and computer program product for controlling a device. One or more technical solutions are present that overcome a technical problem with making adjustments to a device to obtain desired operation of the device. As a result, one or more technical solutions can provide a technical effect of improving the performance of the device. One or more technical solutions can provide a technical effect in which a device can be controlled such that the operation of the device maintains a desired level of performance, reaches a desired level of performance, moves towards a desired level of performance, or some combination thereof.

A device control system comprises a computer system and a controller in the computer system. The controller receives internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within the device that relate to an operation of the device and receive external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the device that relate to the operation of the device. The controller sends the internal sensor data and the external sensor data for an analysis with aggregated internal sensor data and aggregated external sensor data for devices of a same class as the device to generate results. The controller controls the operation of the device based on the results of the analysis.

One or more features of the illustrative examples are described in the following clauses. These clauses are examples of features not intended to limit other illustrative examples.

A device control system comprising:a computer system; andan artificial intelligence system in the computer system that is configured to:receive internal sensor data for a group of internal parameters generated by an internal sensor system that senses the group of internal parameters within a group of devices in a same class;receive external sensor data for a group of external parameters generated by an external sensor system that senses the group of external parameters in an environment around the group of devices in the same class;aggregate the internal data for the group of internal parameters and the external data for the group of external parameters received from the devices of the same class as the device in a data storage system;compare a performance level of a device to performance levels for the devices of the same class using the internal sensor data and the external sensor data with aggregated internal sensor data and aggregated external sensor data for the devices of the same class as the device to form a comparison;determine whether a current status of the device is within a desired range based on the comparison; andsend modifications to an operation of the device based on the comparison.

The device control system of clause 1, wherein the data storage system comprises from at least one of a storage repository, a data lake, or a data warehouse.

Many modifications and variations will be apparent to those of ordinary skill in the art. Further, different illustrative examples may provide different features as compared to other desirable examples. The example or examples selected are chosen and described in order to best explain the principles of the examples, the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various examples with various modifications as are suited to the particular use contemplated.