The present disclosure relates to systems and methods using analytics to predict weld quality and, more specifically, to systems and methods using machine learning, including regression, classification, and/or artificial intelligence models and algorithms, to evaluate and predict the quality of welds.
This section provides background information related to the present disclosure which is not necessarily prior art.
Welding devices are used to weld two or more work pieces or parts together. Metal work pieces can be welded together, for example, using an ultrasonic metal welder. Plastic work pieces can be welded together, for example, using an ultrasonic plastic welder, a laser welder, a vibration/friction welder, an infrared welder, a spin welder, a hot plate welder, and/or by using vibration welding with an infrared (IR) preheat, also referred to as clean vibration technology, hot gas welding, radio-frequency welding, or thermal staking.
Traditionally, to determine weld quality, a number of work pieces are sampled and tested from a group of welded work pieces at a predetermined sample rate, which could be up to 100% of the welded work pieces. Some types of testing, such as peel strength testing and pull (tensile) strength testing, traditionally utilize a testing procedure that is destructive to the tested parts, resulting in good parts being destroyed during the test process. Depending on the volume of parts being welded and the sample rate, the costs due to destructive testing can be substantial. For example, if a factory runs at a production volume of 30,000 welded pieces per day per production line, and a test sample rate of 1 destructive test per every 1,000 pieces, then 30 pieces per day would be destroyed per production line per day. If the cost of each piece is $30, then the cost due to the destroyed parts would be $900 per production line per day. If the factory includes 8 production lines, then the cost per day due to destroyed parts would be $7,200, and the resulting annual cost due to the parts destroyed during destructive testing would be $2.6 million. As this example shows, the costs due to destructive testing can be significant.
This section provides a general summary of the disclosure and is not a comprehensive disclosure of its full scope or all of its features.
A system is provided and includes a computer having a processor and memory configured to receive weld parameter data generated during a welding process by a welder to join at least two parts with a weld, input the received weld parameter data to a data analytics model to generate at least one predicted weld quality parameter, compare the predicted weld quality parameter with a weld quality parameter threshold, generate output indicating at least one of: the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
A method is also provided and includes receiving, with a computer having a processor and memory, weld parameter data generated during a welding process by a welder to join at least two parts with a weld, inputting, with the computer, the received weld parameter data to a data analytics model to generate at least one predicted weld quality parameter, comparing, with the computer, the at least one predicted weld quality parameter with a weld quality parameter threshold, and generating, with the computer, output indicating at least one of the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
Another system is provided and includes a computer having a processor and memory configured to receive weld parameter data generated during a welding process by a welder to join at least two parts with a weld, filter the weld parameter data by removing anomalies in the weld parameter data based on comparing the weld parameter data with at least one threshold, for any anomalies in the weld parameter data, generate output indicating that the weld parameter data was rejected, input the filtered weld parameter data to a data analytics model to generate at least one predicted weld quality parameter, compare the predicted weld quality parameter with a weld quality parameter threshold, and generate output indicating at least one of: the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
Another system is provided and includes a computer having a processor and memory configured to receive weld parameter data generated during a welding process by a welder to join at least two parts with a weld, filter the weld parameter data by removing first anomalies in the weld parameter data based on comparing the weld parameter data with a high threshold and a low threshold, filter the weld parameter data by removing second anomalies in the weld parameter data based on a statistical process control algorithm, for the first and second anomalies in the weld parameter data, generate output indicating that the weld parameter data was rejected, input the filtered weld parameter data to at least one data analytics model to generate at least one predicted weld quality parameter, compare the predicted weld quality parameter with a weld quality parameter threshold, and generate output indicating at least one of: the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
Another system is provided and includes a computer having a processor and memory configured to: receive weld parameter training data that includes weld parameters and weld quality data associated with the weld parameters; input the received weld parameter training data to a plurality of data analytics models to generate a plurality of corresponding predicted weld quality parameters; compare each of the predicted weld quality parameters with the known weld quality data; select a particular data analytics model from the plurality of data analytics models based on the comparison; receive actual weld parameter data generated during a welding process by a welder to join at least two parts with a weld; input the actual weld parameter data to the particular data analytics model to generate at least one predicted weld quality parameter; compare the predicted weld quality parameter with a weld quality parameter threshold; and generate output indicating at least one of: the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
Another method is provided and includes: receiving, with a computer having a processor and memory, weld parameter training data that includes weld parameters and weld quality data associated with the weld parameters; inputting, with the computer, the received weld parameter training data to a plurality of data analytics models to generate a plurality of corresponding predicted weld quality parameters; comparing, with the computer, each of the predicted weld quality parameters with the known weld quality data; selecting, with the computer, a particular data analytics model from the plurality of data analytics models based on the comparison; receiving, with the computer, actual weld parameter data generated during a welding process by a welder to join at least two parts with a weld; inputting, with the computer, the actual weld parameter data to the particular data analytics model to generate at least one predicted weld quality parameter; comparing, with the computer, the predicted weld quality parameter with a weld quality parameter threshold; and generating, with the computer, output indicating at least one of: the at least one predicted weld quality parameter and a result of the comparison between the at least one predicted weld quality parameter and the weld quality parameter threshold.
Further areas of applicability will become apparent from the description provided herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure.
Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings.
Example embodiments will now be described more fully with reference to the accompanying drawings.
The present disclosure provides systems and methods of using analytics to predict weld quality. For example, the present disclosure includes systems and methods that use data analytics and machine learning, including regression, classification, and/or artificial intelligence (AI) models and algorithms to evaluate and predict the quality of metal welds, plastic welds, and/or multi-material welds based on weld parameters that are monitored or sensed during the weld process. While the present disclosure provides welding examples, the present disclosure is equally applicable to other mechanical joining processes, such as thermal staking, riveting, and/or any other mechanical joining process whereby the quality of the joining process can be evaluated and predicted in accordance with the present disclosure. In this way, the systems and methods of the present disclosure can accurately and efficiently predict one or more metrics of weld quality of particular work pieces based on the monitored or sensed weld parameters using data analytics and machine learning and potentially reduce or eliminate destructive testing and scrapped production lots of the resulting welded work pieces. As such, the costs of destructive testing or scrapped lots can be mitigated or avoided by the use of the accurate and efficient testing procedures described herein.
The systems and methods of the present disclosure can utilize data analytics and machine learning algorithms or models categorized as supervised learning algorithms or models, such as regression and classification algorithms or models. Additionally or alternatively, the systems and methods of the present disclosure can utilize data analytics and machine learning algorithms or models categorized as unsupervised learning algorithms or models, such as AI neural network algorithms or models. For example, the data analytics and machine learning algorithms or models utilized by the system and methods of the present disclosure can include decision tree algorithms or models, random forest algorithms or models, K nearest neighbor (KNN) algorithms or models, Naïve Bayes algorithms or models, support vector machine algorithms or models, and/or AI neural network algorithms or models, as discussed in further detail below.
The present disclosure includes quality monitoring systems and methods that monitor and receive data from the welder. For example, the monitored and received weld parameter data and/or graphs can include data with respect to electrical current, voltage, power, frequency, time, distance/depth, force, velocity, and/or other data parameters generated or used by the welder during the welding process. The weld graph data, for example, can include series data from the welding process, such as time vs. power, time vs. weld depth, and/or any other applicable data from the welding process mapped over time to create weld graph data. Additionally or alternatively, the quality monitoring system can receive weld parameter data from sensors that are external to the welding process, such as temperature data from temperature sensors, laser vibrometer position measurements, stress/strain data, image data of the resulting weld from a camera, vibration data from an impact sensor indicating the vibration of an ultrasonic stack, etc. The quality monitoring systems and methods receive the weld parameter data as input, process the weld parameter data using data analytics and machine learning, as discussed above and below, and generate an output indicating and/or corresponding to the quality of the resulting weld. For example, the quality monitoring systems and methods can process the various inputs and generate and output a predicted value indicating the quality of the weld strength, such as peel strength, pull/tensile strength, burst pressure, appearance, etc. The predicted value can then be compared to a predetermined threshold to determine whether the welded part has a sufficient weld strength/quality. Additionally or alternatively, the quality monitoring system can generate an output based on the comparison of the predicted value with the predetermined threshold to indicate whether the predicted weld quality metric or measurement is sufficient, based on whether the particular weld followed the expected process and/or achieved some measurement of quality characteristic above or below the predetermined threshold.
With reference to
The mechanical vibration that results on a tip of the horn 16 is the motion that performs the task of welding the parts 20, 30 together. The horn tip can be made of titanium or another high strength, hard material. The parts 20, 30 to be welded together are placed adjacent to the horn tip, such as being placed together on an anvil. The horn tip is moved and brought into contact with a top part of the parts 20, 30 to be welded together by an actuator 22. The ultrasonic horn 16 oscillates in a manner to impart oscillations in the parts 20, 30 to be welded. That is, the ultrasonic horn 16 causes oscillatory compression/decompression of the parts 20, 30 with respect to each other causing surfaces of the parts 20, 30 abutting each other at a weld interface to be heated, eventually melting together and forming the weld 40.
While
As shown in
The quality monitoring system 50, the power supply 18, the actuator 22, and/or the sensors 42, if any, each include sufficient communication interfaces for communicating such data via wired or wireless communication connections with the quality monitoring system 50.
In some embodiments, the quality monitoring system 50 may include a quality monitoring computer located at the same location as the ultrasonic welder systems 10, 11. In such case, the ultrasonic power supply 18, the actuator 22, and/or the sensors 42, if any, can communicate the various weld parameters and data to the quality monitoring computer for processing, in accordance with the present disclosure, and the quality monitoring computer can be connected to an output device, such as a computer monitor and/or a display or touchscreen device to provide output to a user of the quality monitoring computer. In other embodiments, the quality monitoring computer can be integrated with the welder. For example, the quality monitoring computer can be embedded within the ultrasonic power supply 18 and connected to an output device for providing output to the user. In other embodiments, the quality monitoring system can be integrated with the end-user's manufacturing enterprise system (MES). In other embodiments, the quality monitoring system 50 may include a quality monitoring client computer located at the same location as the ultrasonic welder systems 10, 11 and a quality monitoring server computer located remotely at a different location from the ultrasonic welder systems 10, 11. In such case, the quality monitoring client computer can receive the various weld parameters and data from the ultrasonic power supply 18, the actuator 22, and/or the sensors 42, if any, and communicate the various weld parameters and data to the quality monitoring server for processing, in accordance with the present disclosure. For example, the quality monitoring computer may be implemented in a cloud environment, remote from the location or facility of the ultrasonic welder systems 10,11, such as in a cloud environment utilizing Microsoft Azure cloud services, Amazon Web Services, or Google cloud computing services. For further example, the quality monitoring computer/system can be implemented using the Plantweb™ digital ecosystem available from Emerson Electric Co.
With reference to
The quality monitoring computer/server 300 can include a central processing unit (CPU) 302, memory 304, a network interface 306, volatile storage 308, and input/output interfaces 310. The memory 304 stores executable code for applications 312 and for the operating system (OS) 314 of the quality monitoring computer/server 300. The memory 304 also stores executable quality monitoring code 316 for a quality monitoring module, training code 318 for a training module, data analytics code 320 for a data analytics module, and quality prediction code 322 for a quality prediction module, which are discussed in further detail below. The OS 314 handles coordinating the input/output of the hardware resources and executing the quality monitoring computer/server's 300 binary executable files, including the quality monitoring code 316, training code 318, data analytics code 320, and quality prediction code 322. The quality monitoring computer/server 300 can be a physical device with dedicated hardware, a device integrated with and/or embedded within the welder. Alternatively, the quality monitoring computer/server 300 can be implemented as a virtual machine that shares a part of dedicated hardware resources.
With reference to
In the example of
With reference to
With reference to
With reference to
In the quality monitoring mode, the quality monitoring module 500 can utilize a fixed algorithm whereby the data analytics module 504 and data analytics model 404 are fixed at the time the training process ends and are not further updated, adjusted, modified, and/or tuned during live operation in the quality monitoring mode. Alternatively, the quality monitoring module 500 can utilize an active learning algorithm whereby actual welds are tested in the field and the testing data is used to compare an actual weld quality parameter with predicted weld quality parameter outputted by the quality monitoring module 500. In such case, the quality monitoring module can then update, adjust, modify, and/or tune the data analytics model 404 based on the results of the comparison so that the accuracy of the data analytics module 504 and quality prediction module 506 can be improved during live operation and adapt to actual operation and welding conditions in the field at the facility.
With reference to
Data Analytics Algorithms
The quality monitoring systems and methods of the present disclosure utilize data analytics and machine learning, including regression, classification, and/or AI models and algorithms to predict or estimate the weld quality for a given weld based on weld parameters that are determined, generated, and/or sensed during the weld process. As discussed above, the systems and methods of the present disclosure can utilize supervised learning algorithms or models, such as regression and classification algorithms or models, and/or unsupervised learning algorithms or models, such as AI neural network algorithms or models. For example, the data analytics and machine learning algorithms or models utilized by the system and methods of the present disclosure can include decision tree algorithms or models, random forest algorithms or models, K nearest neighbor (KNN) algorithms or models, Naïve Bayes algorithms or models, support vector machine algorithms or models, and/or AI neural network algorithms or models. In some embodiments, the quality monitoring systems and methods of the present disclosure can include a gradient boosting regression algorithm for decision trees, such as the gradient boosting regression algorithm for decision trees referred to as CatBoost and/or SGBoost. The CatBoost gradient boosting regression algorithm, for example, includes features of ordered boosting to overcome over fitting, native handling for categorical features, and using oblivious trees or symmetric trees for faster execution. The XGBoost gradient boosting regression algorithm, for example, includes features of clever penalization of trees, a proportional shrinking of leaf nodes, Newton Boosting, extra randomization parameter, and implementation on single, distributed systems and out-of-core computation. In some embodiments, the quality monitoring systems and methods of the present disclosure can include a random forest regression algorithm, also referred to as random decision forest, which is an ensemble machine learning algorithm. The random forest regression algorithm includes an ensemble learning method that operates by constructing a multitude of decision trees during the training process and outputting the class that is the mode of the classes or mean/average prediction of the individual trees.
In other embodiments, the quality monitoring systems and methods of the present disclosure can include the use of artificial neural networks to predict or estimate the weld quality for a given weld based on weld parameters that are determined, generated, and/or sensed during the weld process.
While specific data analytics algorithms are discussed above, any other machine learning (supervised/structured or unstructured/unsupervised) algorithm that includes functionality to predict or estimate a parameter, such as weld quality, based on inputted parameters that are determined, generated, and/or sensed during a process, such as a weld process, can be used in accordance with the present disclosure.
In addition, a matrix profiling anomalies method can be used to search weld graph data for anomalies, as discussed in further detail below.
Weld Quality Parameters
The quality monitoring systems and methods of the present disclosure predict or estimate the weld quality of a weld based on inputted weld parameters that are determined, generated, and/or sensed during the weld process. As noted in the examples discussed above, the quality monitoring system of the present disclosure can generate a predicted value indicating the quality of the weld strength, such as peel strength and/or pull/tensile strength. While specific weld quality parameters are discussed in the examples above, any methodology for weld quality assessment can be used. For example, the quality monitoring systems and methods of the present disclosure can predict or estimate weld quality by predicting or estimating any of the following weld quality parameters:
Closed-Loop Corrections
As discussed in detail above, the quality monitoring systems and methods of the present disclosure utilize data analytics and machine learning algorithms and models to predict or estimate the weld quality for a given weld based on weld parameters that are determined, generated, and/or sensed during the weld process. In addition to predicting or estimating weld quality, the quality monitoring systems and methods of the present disclosure can include systems and methods for making closed-loop corrections to the weld process to adjust operational characteristics of the weld process for subsequent welds. For example, to adjust and increase weld quality, the quality monitoring systems and methods of the present disclosure can include closed-loop corrections to make adjustments to the electrical energy supplied by the power supply 18 to the ultrasonic converter 12, to make adjustments to the movements of, and force applied by, the horn 16, and/or to adjust any other controllable aspects of the weld process.
Case Study #1
A data set was generated from 200 welds on a Branson GSX-E1 welder run in energy mode with a set recipe on plastic i-beam parts. Measured variables included max force, weld collapse, weld time, peak power, etc. Tensile strength after welding was performed and recorded, as shown in
The results were as follows:
Case Study #2
Another data set was generated from 500 welds from a Branson GMX-W1 wire splicer. The following models were executed on the data to predict and estimate weld quality: Random Forest, Decision Trees, Support Vector Regression (SVM), XGBoost, Catboost, and Neural Network. The results were as follows:
These case studies have conclusively determined that the methodology of using machine learning on conventional power supply data can develop algorithms that accurately predict both metal welding and plastic joining products. This conclusion is contrary to the traditional thinking in the current state-of-the-art in academia, as summarized in the paper: Balz, I., Abi Raad, E, Rosenthal E., et. Al. Process monitoring of ultrasonic metal welding battery tabs using external sensor data. Journal of Advanced Joining Processes Vol 1 (March 2020).
Case Study #3: Matrix Profiling Anomalies
In accordance with the present disclosure, matrix profiling anomalies method can be used to search weld graph data for anomalies, as discussed in further detail below.
A method referred to as Matrix Profiling Anomalies was used to search weld graph data for weld anomalies. A visual representation is shown in
With reference to
While the quality monitoring system 50 utilizing a single data analytics and machine learning algorithm or model, shown at 904 in
For this reason, in another embodiment shown with reference to
In this way, the accuracy of the quality monitoring system 50′ can be improved by the use of multiple algorithms, including an SPC algorithm 910 to analyze the weld parameter input data and remove gross anomalies before the weld parameter data is input to the regression and classification algorithms or models/AI neural network algorithms or models 904. In this way, the weld parameter data is pre-processed or filtered to remove gross anomalies before processing by to the regression and classification algorithms or models/AI neural network algorithms or models 904. As examples, welds that generate weld parameter input data having gross anomalies can be the result of: an excess number of layers of metal foil, too few layers of metal foil, material samples that have oil on them thereby decreasing friction, use of the wrong metal, welds without the proper end pieces or covers, welds in the wrong area, a single sample twice, material with oxidation, the horn tip is not well aligned with the fixture, the wrong horn or anvil is used, and/or any other issue that generates gross anomalies in the weld parameter input data.
While
While three algorithms are shown in
In this way, the use of multiple layers of data processing algorithms can more effectively remove gross anomalies in the weld parameter input data and more accurately predict weld quality. As such, the use of multiple layers of data processing algorithms renders the system more robust and less subject to noise and anomalous data.
As with the above embodiments, the HMI display 908 can display an output indicating the predicted weld quality parameters and/or the results of a comparison of the predicted weld quality parameter with a predetermined threshold. The HMI display 908 can also display an output indicated that a particular weld was rejected as suspect based on a particular processing algorithm, such as an upper and lower limits algorithm 914 or the SPC algorithm 910.
Case Study #4: End-to-End Example
In accordance with the present disclosure, another set of approximately 1,000 records of process data were generated in a lab and used for training a model. In this case study, ultrasonic process coming out of the welding machine was highly non-linear in nature, had negative correlation among fields, and had very few failure cases. Training data was preprocessed for missing attributes, attribute values, noise or outliers and duplicate before modelling.
Additionally, Synthetic Minority Oversampling Technique (SMOTE) was applied to overcome the data imbalance. SMOTE is described in “SMOTE: Synthetic Minority Over-sampling Technique,” Journal of Artificial Intelligence Research 16 (2002) 321-357, published 06/02.
The training data included the following columns: Cycle count, Pull Force, Energy, Trigger Pressure, Pressure, Amplitude, Time, Power, Pre-Height, and Height.
Modelling & Training Process
As part of the modelling exercise feature importance for each feature (column) was calculated using: dimension reduction machine learning techniques Principal Component Analysis (PCA), as described in “Multivariate Statistical Data Analysis-Principal Component Analysis (PCA),” International Journal of Livestock Research, 7(5), 60-78, (2017); Polynomial feature, as described in “Feature modeling using polynomial classifiers and stepwise regression,” Neurocomputing, Volume 73, Issues 10-12, June 2010, pages 1752-1759; and Generalized Discriminant Analysis (GDA), as described in “Generalized Discriminant Analysis algorithm for feature reduction in Cyber Attack Detection,” International Journal of Computer Science and Information Security (IJCSIS), Vol. 6, No. 1, 2009.
The training data was split into 70% training and 30% test data and five algorithms for non-linear data were trained using their respective hyperparameters. Model weights were initialized randomly, and a Stochastic Gradient Descent (SGD), as described in “An overview of gradient descent optimization algorithms, arXiv:1609.94747v2, Jun. 15, 2017, was used to adjust the weights as part of the training.
All models had features “Power (N),” “Weld time (sec),” “Height (mm)” and “Pre-height (mm),” and “Pull Force (N)” as the output, as shown here:
Model Evaluation
Trained models were tested and evaluated against the 30% validation data and also with a synthetic version of real data keeping almost all statistical properties of the original data intact. Random forest and CatBoost resulted in the best performance. The table of results for model evaluation is as follows:
The model was trained on a dataset with 700 rows. The predictions were based on a dataset with 300 rows.
Model Prediction
The best performing model was chosen to be deployed as part of the deployable analytics engine code.
Process data flow to model is orchestrated such that during live welding sessions, the model would receive process data for every weld, which it then used to predict the resulting possible “Pull force.”
The predicted pull force is then compared against the minimum threshold Pull force which determines the weld quality. If the predicted pull force is less than the threshold, the weld job is classified as suspect. Otherwise, the weld job is classified as good.
Case Study #5: Automated Machine Learning
In accordance with the present disclosure, an automated machine learning feature allows users of the weld analytics engine to train their own models using their data on-premises to avoid sending production data out for offline modelling and training.
With this feature, the weld analytics engine can automatically evaluate and select the best algorithms and/or stack of algorithms, along with optimal hyperparameter values for a given training dataset. In this way, the present automated machine learning feature automates the selection, composition, and parameterization of the machine learning models and leverages recent advantages in Genetic Programming, Stochastic Bayesian optimization and ensemble construction.
The system automates some of the common tasks required to build and evaluate a good predictive model or ensemble with optimal hyper parameter values for a given dataset. For example, as shown in
The system uses a genetic programming algorithm to find the highest-scoring pipeline by comparing the cross-validation score, i.e., accuracy for every generation. The system searches over a broad range of estimators, feature selectors, feature constructors, algorithms, models, and parameters to find a series of operators that minimize the error of the model predictions. The best scores for multiple generations are shown below (Best pipeline: LinearSVR (input_matrix, C=5.0, dual=False, epsilon=1.0, loss=squared_spsilon_insensitive, tol=0.1):
The following table contains two predicted pull force columns: (1) Predictions of fine-tuned model; and (2) Predictions from automated machine learning (AutoML). The data corresponds to an automotive battery welding application and the resulting test accuracy was 97.8%.
In this way, the systems and methods of the present disclosure include using different algorithms and models on the test data, evaluating and selecting the algorithm or model that most accurately predicts weld quality, and then using the selected algorithm or model going forward to predict weld quality using live weld parameter data.
In addition, once the quality monitoring system is used in the field over time, the welder hardware and other system components may be subject to process drift and may not perform the same as when the quality monitoring system was first installed. As such, the present disclosure includes updating the quality monitoring system to tune and check the selected algorithm or model used by the quality monitoring system to account for the process drift due to the use of the system in the field over time. For example, the quality monitoring system can be used on a new set of test data and the algorithm or model used by the internal parameters used by the quality monitoring system can be retuned and recalibrated in the field to account for process drift and more accurately predict weld quality. In other words, the data analytics model can be recalibrated after the welder has been operated in the field by utilizing a tuning procedure based on actual weld data that associates weld parameter data with weld quality data.
The foregoing description is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or uses. The broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent upon a study of the drawings, the specification, and the following claims. It should be understood that one or more steps within a method may be executed in different order (or concurrently) without altering the principles of the present disclosure. Further, although each of the embodiments is described above as having certain features, any one or more of those features described with respect to any embodiment of the disclosure can be implemented in and/or combined with features of any of the other embodiments, even if that combination is not explicitly described. In other words, the described embodiments are not mutually exclusive, and permutations of one or more embodiments with one another remain within the scope of this disclosure.
Spatial and functional relationships between elements (for example, between modules) are described using various terms, including “connected,” “engaged,” “interfaced,” and “coupled.” Unless explicitly described as being “direct,” when a relationship between first and second elements is described in the above disclosure, that relationship encompasses a direct relationship where no other intervening elements are present between the first and second elements, and also an indirect relationship where one or more intervening elements are present (either spatially or functionally) between the first and second elements.
As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A OR B OR C), using a non-exclusive logical OR. For example, the phrase at least one of A, B, and C should be construed to include any one of: (i) A alone; (ii) B alone; (iii) C alone; (iv) A and B together; (v) A and C together; (vi) B and C together; (vii) A, B, and C together. The phrase at least one of A, B, and C should not be construed to mean “at least one of A, at least one of B, and at least one of C.”
In the figures, the direction of an arrow, as indicated by the arrowhead, generally demonstrates the flow of information (such as data or instructions) that is of interest to the illustration. For example, when element A and element B exchange a variety of information but information transmitted from element A to element B is relevant to the illustration, the arrow may point from element A to element B. This unidirectional arrow does not imply that no other information is transmitted from element B to element A. Further, for information sent from element A to element B, element B may send requests for, or receipt acknowledgements of, the information to element A. The term subset does not necessarily require a proper subset. In other words, a first subset of a first set may be coextensive with (equal to) the first set.
In this application, including the definitions below, the term “module” or the term “controller” may be replaced with the term “circuit.” The term “module” may refer to, be part of, or include processor hardware (shared, dedicated, or group) that executes code and memory hardware (shared, dedicated, or group) that stores code executed by the processor hardware.
The module may include one or more interface circuits. In some examples, the interface circuit(s) may implement wired or wireless interfaces that connect to a local area network (LAN) or a wireless personal area network (WPAN). Examples of a LAN are Institute of Electrical and Electronics Engineers (IEEE) Standard 802.11-2016 (also known as the WIFI wireless networking standard) and IEEE Standard 802.3-2015 (also known as the ETHERNET wired networking standard). Examples of a WPAN are IEEE Standard 802.15.4 (including the ZIGBEE standard from the ZigBee Alliance) and, from the Bluetooth Special Interest Group (SIG), the BLUETOOTH wireless networking standard (including Core Specification versions 3.0, 4.0, 4.1, 4.2, 5.0, and 5.1 from the Bluetooth SIG).
The module may communicate with other modules using the interface circuit(s). Although the module may be depicted in the present disclosure as logically communicating directly with other modules, in various implementations the module may actually communicate via a communications system. The communications system includes physical and/or virtual networking equipment such as hubs, switches, routers, and gateways. In some implementations, the communications system connects to or traverses a wide area network (WAN) such as the Internet. For example, the communications system may include multiple LANs connected to each other over the Internet or point-to-point leased lines using technologies including Multiprotocol Label Switching (MPLS) and virtual private networks (VPNs).
In various implementations, the functionality of the module may be distributed among multiple modules that are connected via the communications system. For example, multiple modules may implement the same functionality distributed by a load balancing system. In a further example, the functionality of the module may be split between a server (also known as remote, or cloud) module and a client (or, user) module. For example, the client module may include a native or web application executing on a client device and in network communication with the server module.
The term code, as used above, may include software, firmware, and/or microcode, and may refer to programs, routines, functions, classes, data structures, and/or objects. Shared processor hardware encompasses a single microprocessor that executes some or all code from multiple modules. Group processor hardware encompasses a microprocessor that, in combination with additional microprocessors, executes some or all code from one or more modules. References to multiple microprocessors encompass multiple microprocessors on discrete dies, multiple microprocessors on a single die, multiple cores of a single microprocessor, multiple threads of a single microprocessor, or a combination of the above.
Shared memory hardware encompasses a single memory device that stores some or all code from multiple modules. Group memory hardware encompasses a memory device that, in combination with other memory devices, stores some or all code from one or more modules.
The term memory hardware is a subset of the term computer-readable medium. The term computer-readable medium, as used herein, does not encompass transitory electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term computer-readable medium is therefore considered tangible and non-transitory. Non-limiting examples of a non-transitory computer-readable medium are nonvolatile memory devices (such as a flash memory device, an erasable programmable read-only memory device, or a mask read-only memory device), volatile memory devices (such as a static random access memory device or a dynamic random access memory device), magnetic storage media (such as an analog or digital magnetic tape or a hard disk drive), and optical storage media (such as a CD, a DVD, or a Blu-ray Disc).
The apparatuses and methods described in this application may be partially or fully implemented by a special purpose computer created by configuring a general purpose computer to execute one or more particular functions embodied in computer programs. The functional blocks and flowchart elements described above serve as software specifications, which can be translated into the computer programs by the routine work of a skilled technician or programmer.
The computer programs include processor-executable instructions that are stored on at least one non-transitory computer-readable medium. The computer programs may also include or rely on stored data. The computer programs may encompass a basic input/output system (BIOS) that interacts with hardware of the special purpose computer, device drivers that interact with particular devices of the special purpose computer, one or more operating systems, user applications, background services, background applications, etc.
The computer programs may include: (i) descriptive text to be parsed, such as HTML (hypertext markup language), XML (extensible markup language), or JSON (JavaScript Object Notation), (ii) assembly code, (iii) object code generated from source code by a compiler, (iv) source code for execution by an interpreter, (v) source code for compilation and execution by a just-in-time compiler, etc. As examples only, source code may be written using syntax from languages including C, C++, C#, Objective C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, JavaScript®, HTML5 (Hypertext Markup Language 5th revision), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, MATLAB, SIMULINK, and Python®.
Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known processes, well-known device structures, and well-known technologies are not described in detail.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. The terms “comprises,” “comprising,” “including,” and “having,” are inclusive and therefore specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. The method steps, processes, and operations described herein are not to be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as an order of performance. It is also to be understood that additional or alternative steps may be employed.
Number | Date | Country | Kind |
---|---|---|---|
202121017108 | Apr 2021 | IN | national |
This application claims the benefit of U.S. Provisional Application 63/224,648, filed on Jul. 22, 2021. This application also claims the benefit and priority of Indian provisional patent application 20212107108, filed Apr. 12, 2021. The entire disclosures of each of the above applications are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63224648 | Jul 2021 | US |