Automatic acquisition method for charging abnormal data containing BMS (Battery Management System) message
By obtaining the charging process data packets of the on-board battery management system, using machine learning algorithms and edge computing technology, the automation, real-time acquisition and processing of charging abnormal data is achieved, and the problems of inaccurate data acquisition and processing delay in the existing technology are solved, and the accuracy and response speed of abnormal monitoring are improved.
Patent Information
- Application Number
- CN202411973701.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-04-29
AI Technical Summary
The prior art is difficult to achieve accurate and real-time acquisition of charging abnormal data, and traditional data processing methods are prone to missing complex abnormal modes.
By obtaining the charging process data packets generated by the on-board battery management system, using machine learning algorithms and anomaly detection model for data analysis, combining edge computing technology to process BMS packet data in real time, and automatically identify and process abnormal patterns during the charging process.
It realizes the automation, real-time acquisition and processing of charging abnormal data, improves the accuracy and response speed of data acquisition, and reduces the probability of missed detection and false alarms.
Smart Images

Figure CN119903390A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data processing technology, and in particular to a method for automatically collecting abnormal charging data including BMS messages. Background Art
[0002] In modern electric vehicles and energy storage systems, the Battery Management System (BMS) plays a vital role. The BMS is mainly responsible for monitoring and managing the health status of the battery, temperature control during the battery charging and discharging process, and charging and discharging strategies. The BMS records battery status parameters such as voltage, current, temperature, SOC (State of Charge) and SOH (State of Health) by sending and receiving real-time messages. These messages form an important basis for battery management and diagnosis, and can promptly detect abnormal conditions during the charging process.
[0003] With the rapid development of electric vehicles and their charging networks, accurate monitoring of charging data and abnormal warnings have become increasingly urgent. Traditional methods for collecting abnormal charging data usually rely on manual recording and observation, which is time-consuming and prone to missing important information. In the current charging data collection process, traditional data processing methods often rely on predefined rules and are prone to missing some complex abnormal patterns.
[0004] Therefore, developing an automated charging abnormality data collection method can not only improve the accuracy and real-time performance of data collection, but also provide a solid foundation for subsequent data analysis and abnormality warning. Summary of the Invention
[0005] In view of the shortcomings of the existing technology, the present invention provides a method for automatically collecting charging abnormality data including BMS messages, which solves the problems mentioned in the above background.
[0006] The present invention provides the following technical solution: The present invention discloses a method for automatically collecting charging abnormality data including BMS messages, comprising the following steps:
[0007] S1: Obtaining data messages generated by the vehicle battery management system during the charging process, the data messages including but not limited to current, voltage, temperature and SOC indicators;
[0008] S2: Analyzing and processing the data by implementing a machine learning algorithm and employing an anomaly detection model so that the system automatically identifies abnormal data that is inconsistent with a normal charging pattern;
[0009] S3: Edge computing technology is used on charging equipment to process BMS message data in real time, reduce data transmission delays, and automatically detect and identify abnormal patterns during charging and take corresponding measures;
[0010] S4: Mark the detected abnormal data and feed it back to the system;
[0011] S5: Synchronize data with cloud services through edge computing devices, and store real-time data and historical data in the cloud.
[0012] As a preferred solution, the N pieces of data collected in step S1 can be expressed as
[0013] X={x1,x2,…,x N}
[0014] Each piece of data xi consists of multiple features, as shown below
[0015] x i =[V i ,I i ,T i , SOC i ]
[0016] Among them, Vi, Ii, and Ti represent voltage, current, and temperature respectively, and SOCi represents the state of the battery.
[0017] As a preferred solution, step S2 specifically includes the following steps:
[0018] S21: Construct an autoencoder consisting of two parts: encoder and decoder;
[0019] The encoder maps the input data X to a low-dimensional representation Z, which is expressed as
[0020] Z = f(X; θ e )
[0021] Where f represents the nonlinear function of the encoder, θ e Represented as parameters of the encoder;
[0022] The decoder maps the low-dimensional representation Z back to the original data space X′, which is expressed as
[0023] X′=g(Z;θ d )
[0024] Among them, g is the function of the decoder, θ d Expressed as decoder parameters;
[0025] S22: Minimize the gap between the input data X and the reconstructed data X′, using the mean square error as the loss function
[0026]
[0027] L(X, X′) is the difference between the input data and the reconstructed data, n is the total number of input samples, usually the number of samples in the training set, and X i Represents the input of the i-th sample in the training data set, X i ′ is represented as corresponding to sample X i The reconstruction output of
[0028] S23: Anomaly detection, which determines the normality of the data by recording the reconstruction error. The reconstruction error is defined as
[0029]
[0030] Reconstruction error, which represents the difference between the input X and its reconstructed output X′;
[0031] Define a threshold σ. When the reconstruction error exceeds the threshold, it is considered as abnormal data.
[0032] If e(X)>σ, then X is an abnormal data.
[0033] As a preferred solution, step S3 specifically includes the following steps:
[0034] S31: Data preprocessing, preprocessing the collected data to ensure data quality and improve the accuracy of subsequent analysis. For data normalization, use min-max standardization
[0035]
[0036] x i Represents the normalized value of the i-th data sample, x min The minimum value of this feature among all samples, x max The maximum value of this feature among all samples;
[0037] S32: Use a deep learning algorithm to detect anomalies in real-time data, and use step S23 to calculate the reconstruction error for the reconstructed data X′ processed and output by the autoencoder.
[0038] As a preferred solution, the processing and feedback time of the abnormal data does not exceed 5 seconds.
[0039] As a preferred solution, the data synchronization in step S5 includes the following steps:
[0040] Data collection: charging-related data is collected in real time at the edge computing device to form a real-time data set D real ;
[0041] Historical data management, retrieving previously stored historical data sets from the cloud history ;
[0042] Data integration, merging real-time data sets with historical data sets to form a synchronized data set D sync
[0043] D sync =D real ∪D history ;
[0044] Data upload: upload the synchronized data set to cloud storage.
[0045] As a preferred solution, the synchronized data set D sync In the merging process, the real-time dataset D is averaged. real and historical dataset D history The values of the same features in are integrated, which is specifically defined as
[0046] D syne (i) = w1·D real (i)+w2·D history (i)
[0047] Where ω1 and ω2 are the weight coefficients of real-time data and historical data, respectively, and ω1+ω2=1.
[0048] As a preferred solution, the number N of data collected in step S1 is dynamically adjusted according to the update frequency of the real-time data stream and the importance of the data.
[0049] As a preferred solution, the edge computing technology in step S3 includes real-time monitoring of the current status of the charging device.
[0050] As a preferred solution, the cloud service adopts a distributed storage architecture.
[0051] Compared with the prior art, the present invention has the following beneficial effects:
[0052] The present invention acquires data messages generated by the vehicle's battery management system (BMS) in real time in an automated manner. Through the anomaly detection model in machine learning, the system can effectively identify data that does not conform to the normal charging mode, thereby reducing the probability of missed detection and false alarms and improving the accuracy of overall anomaly monitoring. At the same time, edge computing is implemented on the charging equipment, which can process BMS data in real time, reduce data transmission delays, and quickly respond to abnormal situations. This method reduces the burden on cloud servers and improves the response speed of the overall system. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] Figure 1This is a flow chart of the method for automatically collecting abnormal charging data according to the present invention;
[0054] Figure 2 This is a flow chart of the anomaly detection model used in the present invention;
[0055] Figure 3 This is a flow chart of the edge computing technology used in the present invention. DETAILED DESCRIPTION
[0056] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0057] See also Figure 1 The method for automatically collecting abnormal charging data including BMS messages in this embodiment includes the following steps:
[0058] S1: Obtaining data messages generated by the vehicle battery management system during the charging process, the data messages including but not limited to current, voltage, temperature and SOC indicators;
[0059] S2: Analyzing and processing the data by implementing a machine learning algorithm and employing an anomaly detection model so that the system automatically identifies abnormal data that is inconsistent with a normal charging pattern;
[0060] S3: Edge computing technology is used on charging equipment to process BMS message data in real time, reduce data transmission delays, and automatically detect and identify abnormal patterns during charging and take corresponding measures;
[0061] S4: Mark the detected abnormal data and feed it back to the system;
[0062] S5: Synchronize data with cloud services through edge computing devices, and store real-time data and historical data in the cloud.
[0063] Furthermore, the N pieces of data collected in step S1 can be expressed as
[0064] X={x1,x2,...,x N}
[0065] Each piece of data xi consists of multiple features, as shown below
[0066] x i =[V i ,I i ,T i , SOCi ]
[0067] Among them, Vi, Ii, and Ti represent voltage, current, and temperature respectively, SOCi represents the state of the battery, and data acquisition uses sensors (such as current sensors, temperature sensors, and voltage sensors) to collect relevant data during the charging process in real time.
[0068] refer to Figure 2 Furthermore, the step S2 specifically includes the following steps:
[0069] S21: Construct an autoencoder consisting of two parts: an encoder and a decoder. An autoencoder is an unsupervised learning model that is widely used in feature learning, data compression, and anomaly detection. An autoencoder consists of two parts: an encoder and a decoder. The encoder compresses the input data into a low-dimensional space representation, and the decoder attempts to reconstruct the original input from this low-dimensional representation. When training the autoencoder, the mean squared error (MSE) is used as the loss function, and the parameters are optimized to minimize the gap between the input and output. In the detection stage, normal data is trained and anomalies are identified by calculating the reconstruction error (the difference between the input and the reconstruction). A large amount of abnormal data will lead to a large reconstruction error, so a threshold can be set: when the reconstruction error exceeds the threshold, the data point is considered to be an anomaly. The specific process is as follows:
[0070] The encoder maps the input data X to a low-dimensional representation Z, which is expressed as
[0071] Z = f(X; θ e )
[0072] Where f represents the nonlinear function of the encoder, θ e Represented as parameters of the encoder;
[0073] The decoder maps the low-dimensional representation Z back to the original data space X′, which is expressed as
[0074] X′=g(Z;θ d )
[0075] Among them, g is the function of the decoder, θ d Expressed as decoder parameters;
[0076] S22: Minimize the gap between the input data X and the reconstructed data X′, using the mean square error as the loss function
[0077]
[0078] L(X, X′) is the difference between the input data and the reconstructed data, n is the total number of input samples, usually the number of samples in the training set, and X iRepresents the input of the i-th sample in the training data set, X i ′ is represented as corresponding to sample X i The reconstruction output of
[0079] S23: Anomaly detection, which determines the normality of the data by recording the reconstruction error. The reconstruction error is defined as
[0080]
[0081] Reconstruction error, which represents the difference between the input X and its reconstructed output X′;
[0082] Define a threshold σ. When the reconstruction error exceeds the threshold, it is considered as abnormal data.
[0083] If e(X)>σ, then X is an abnormal data.
[0084] In addition, step S2 can also adopt a one-class support vector machine (SVM). The one-class support vector machine is an effective anomaly detection technology, which is mainly used for single-class data. The goal of the algorithm is to find a hyperplane to maximize the interval between normal data points and the hyperplane while minimizing the misclassification rate of abnormal data points.
[0085] The working process is as follows: the input sample is mapped to a high-dimensional feature space through the kernel function. Once the data is mapped, the algorithm constructs a hyperplane that separates normal samples and calculates the boundary of the hyperplane to define the domain of normal samples. Finally, given a new instance, the decision function is used to determine whether the instance is within the normal boundary, thereby achieving anomaly detection. The specific process is as follows:
[0086] Map the input sample into the high-dimensional feature space H through the kernel function (such as Gaussian kernel)
[0087] φ:R d →H
[0088] Among them, Φ is the feature mapping function used to transform the input sample X from the original space (R d ) is mapped to a high-dimensional feature space H, where H is represented as a high-dimensional feature space, the space to which the input sample is mapped, so as to process high-dimensional data;
[0089] In high-dimensional space, find a hyperplane
[0090] w·φ(X)+b=0
[0091] Among them, ω is the normal vector, the normal vector of the hyperplane, which determines the direction of the hyperplane, and b is the bias, which represents the distance between the hyperplane and the origin and is used to adjust the position of the hyperplane;
[0092] The following optimization problem is used to maximize the margin of normal data points to the hyperplane:
[0093]
[0094] Among them, C is the penalty parameter, which is used to control the degree of penalty for misclassification. A larger C value will make the model focus more on correctly classifying training samples, which may lead to overfitting; a smaller C value will allow the model to allow some misclassification, which helps to improve generalization ability. i is a slack variable used to allow the model to tolerate a small number of abnormal samples during training. It represents the distance from the i-th sample to the hyperplane. n is the total number of samples, indicating the number of samples in the current training set.
[0095] For a new instance X, the decision function is of the form:
[0096] f(X)=sign(w·φ(X)+b)
[0097] Among them, f(X) represents the output of the decision function, which determines whether the input sample X is a normal sample according to its position;
[0098] If f(X) ≥ 0, then X is considered normal; otherwise it is abnormal.
[0099] The autoencoder identifies abnormal data by learning the characteristics of normal patterns. Data with reconstruction errors greater than the set threshold are judged to be abnormal. It can model the nonlinear characteristics in the input data, so it has a strong ability to recognize complex abnormal patterns in the input data space. It is particularly suitable for unlabeled data. By building a model by only learning normal samples, the need for labeled samples is avoided. The network architecture (number of layers and nodes) can be adjusted to adapt to data of different complexities, making it easier to learn different patterns. At the same time, features can be automatically extracted during the reconstruction process, which is especially important for data where feature engineering is difficult or the feature distribution is complex.
[0100] On the other hand, a type of support vector machine constructs a hyperplane in a high-dimensional feature space by maximizing the margin to achieve anomaly detection. It is suitable for battery management data with more features, and its maximum boundary concept has a clear geometric interpretation. It can effectively distinguish normal samples from abnormal samples, has no strong prior assumptions about the distribution of the data, and is suitable for different types of normal samples.
[0101] If the battery management system data has complex nonlinear characteristics, the sample size is large, and the requirements for anomaly recognition are high, an autoencoder can be considered. If the data dimension is high and the sample size is relatively small, and the anomaly boundaries of the samples are clear, a single-class SVM can be considered. If computing resources are limited and fast implementation is desired, a single-class SVM may be preferred, especially in the absence of labels. A single-class SVM can work reliably. If there is strong computing resource support and a large amount of data, an autoencoder may perform better in terms of flexibility and accuracy in anomaly recognition.
[0102] The above two methods each have their own advantages. They can be used alone or in combination. The combined use can significantly improve the detection accuracy and efficiency of charging abnormality data.
[0103] Considering the complexity of the battery management system, the combination of autoencoders and first-class SVMs may be the optimal solution. The autoencoder can be used for feature extraction and preliminary anomaly detection, and then the first-class SVM can be used to perform more accurate anomaly detection in the feature space generated by the autoencoder. This combination can take advantage of their respective advantages to improve detection accuracy and system performance.
[0104] refer to Figure 3 Furthermore, the step S3 specifically includes the following steps:
[0105] S31: Data preprocessing, preprocessing the collected data to ensure data quality and improve the accuracy of subsequent analysis. For data normalization, use min-max standardization
[0106]
[0107] x i Represents the normalized value of the i-th data sample, x min The minimum value of this feature among all samples, x max The maximum value of this feature among all samples;
[0108] S32: Use a deep learning algorithm to detect anomalies in real-time data. For the reconstructed data X′ processed and output by the autoencoder, use step S23 to calculate the reconstruction error. It should be noted that it is necessary to first determine whether step S23 uses an autoencoder or a type of support vector machine before performing the corresponding calculation.
[0109] Furthermore, the processing and feedback time for abnormal data does not exceed 5 seconds. Real-time monitoring is crucial during the charging process because battery performance and safety directly affect the safety and user experience of electric vehicles. Timely detection of abnormal data can effectively prevent potential dangerous situations such as overcharging and overheating. For the battery management system (BMS), ensuring data processing time within 5 seconds not only meets the safety requirements of industrial standards, but also helps provide rapid user feedback and optimize the charging experience.
[0110] Edge computing reduces transmission delays by processing data at the point where it is generated. By delegating data processing tasks to edge devices close to the data source (such as charging stations), the overall time for real-time data processing and feedback can be kept within a shorter range.
[0111] Separate data processing from user notifications and perform asynchronous processing through an event-driven mechanism. When a potential anomaly is detected, the system can trigger a notification immediately, rather than waiting for all data processing to complete before providing feedback to the user.
[0112] Based on the performance of historical data and real-time data, the threshold of the anomaly detection model is dynamically adjusted to optimize processing time. For example, the sensitivity of the model can be adjusted according to the frequency of abnormal data in the previous stage to adapt to the current charging status more quickly.
[0113] Furthermore, the data synchronization in step S5 includes the following steps:
[0114] Data collection: charging-related data is collected in real time at the edge computing device to form a real-time data set D real ,This dataset is updated every day and contains the latest battery status and parameters during ,charging;
[0115] Historical data management, retrieving previously stored historical data sets from the cloud history ,This dataset covers all past charging records and related analysis results;
[0116] Data integration, merging real-time data sets with historical data sets to form a synchronized data set D sync
[0117] D sync =D real ∪D history ;
[0118] The union operation here ensures that all related data are effectively integrated together.
[0119] Data upload, finally upload the synchronized dataset to cloud storage for long-term storage and subsequent analysis.
[0120] Furthermore, the synchronized data set Dsync In the merging process, the real-time dataset D is averaged. real and historical dataset D history The values of the same features in are integrated, which is specifically defined as
[0121] D syne (i) = w1·D real (i)+w2·D history (i)
[0122] Where ω1 and ω2 are the weight coefficients of real-time data and historical data, respectively, and ω1+ω2=1;
[0123] Through weighted averaging, the timeliness of real-time data and the stability of historical data can be effectively combined, avoiding the limitations of relying solely on a certain type of data. The weights can be adjusted at any time as needed, allowing the system to flexibly adapt to different charging environments or device states, improving data accuracy and reliability. At the same time, it provides an accurate data foundation for edge computing devices and supports faster decision-making.
[0124] Furthermore, the number of data N collected in step S1 is dynamically adjusted according to the update frequency of the real-time data stream and the importance of the data to adapt to different charging environments and needs. When N reaches a preset threshold, the data transmission to the edge computing device is automatically started for further analysis. This setting can avoid unnecessary data accumulation and ensure that only important data is continuously collected, thereby improving the overall efficiency of the system. It can make real-time adjustments according to the ever-changing charging environment and needs to cope with different application scenarios and user needs. By making dynamic decisions based on importance and update frequency, the quality and relevance of the collected data are guaranteed.
[0125] Furthermore, the edge computing technology in step S3 includes real-time monitoring of the current status of the charging equipment, and through dual monitoring of frequency and current, ensures that when the abnormal detection reaches the preset threshold, the charging operation is immediately interrupted and a warning is issued to avoid potential safety hazards. This setting can timely detect and handle abnormal situations, minimize safety hazards, and provide protection for the life and property safety of charging equipment and users. Through comprehensive analysis of real-time data, the speed and accuracy of problem diagnosis can be improved, and the impact of human intervention on the interruption process of the charging process can be reduced. Combined with a seamless fault warning and handling mechanism, the user's trust in the charging system and the user experience are enhanced.
[0126] Furthermore, the cloud service adopts a distributed storage architecture, supports simultaneous access by multiple users, and provides query, statistics and analysis functions for historical records to achieve traceability of the charging process and deeper data mining. The multi-user concurrent access capability enhances the flexibility of the system, meets the data access needs of different users, and improves user experience. By storing historical data, the traceability of the charging process is improved, which facilitates subsequent review and compliance checks. In addition, deeper data mining can support user decision-making, help identify trends, optimize operations and improve work efficiency.
[0127] While embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions, and variations may be made to these embodiments without departing from the principles and spirit of the invention, and that the scope of the invention is defined by the appended claims and their equivalents.
Claims
1. A method for automatically collecting abnormal charging data including BMS messages, characterized in that: The following steps are involved: S1: Obtaining data messages generated by the vehicle battery management system during the charging process, wherein the data messages include but are not limited to current, voltage, temperature and SOC indicators; S2: Analyze and process the data by implementing a machine learning algorithm, and use an anomaly detection model to enable the system to automatically identify abnormal data that does not conform to a normal charging pattern; S3: Edge computing technology is used on charging equipment to process BMS message data in real time, reduce data transmission delays, and automatically detect and identify abnormal modes during charging and take corresponding measures; S4: Mark the detected abnormal data and feed it back to the system; S5: Synchronize data with cloud services through edge computing devices, and store real-time data and historical data in the cloud.
2. The method for automatically collecting abnormal charging data including BMS messages according to claim 1, characterized in that: The N pieces of data collected in step S1 can be expressed as X={x1,x2,…,x N } Each piece of data xi consists of multiple features, such as The following indicates x i =[V i ,I i ,T i ,SOC i ] Among them, Vi, Ii, Ti represent voltage, current, and temperature respectively, and SOCi represents the state of the battery.
3. The method for automatically collecting abnormal charging data including BMS messages according to claim 2, characterized in that: The step S2 specifically includes the following steps: S21: Construct an autoencoder consisting of two parts: an encoder and a decoder; The encoder maps the input data X to a low-dimensional representation Z, which can be expressed as Z=f(X;θ e ) Where f represents the nonlinear function of the encoder, θ e Represented as parameters of the encoder; The decoder maps the low-dimensional representation Z back to the original data space X′, which can be expressed as X′=g(Z;θ d ) Among them, g represents the function of the decoder, θ d Represented as decoder parameters; S22: Minimize the gap between the input data X and the reconstructed data X′, using the mean square error as the loss function L(X, X′) is the difference between the input data and the reconstructed data, n is the total number of input samples, usually the number of samples in the training set, and X i Represents the input of the i-th sample in the training data set, X i ′ is represented as corresponding to sample X i The reconstruction output of S23: Anomaly detection, which determines the normality of the data by recording the reconstruction error. The reconstruction error is defined as The reconstruction error represents the difference between the input X and its reconstructed output X′; Define a threshold σ. When the reconstruction error exceeds this threshold, it is considered as abnormal data. If e(X)>σ, then X is an abnormal data.
4. The method for automatically collecting abnormal charging data including BMS messages according to claim 3, characterized in that: The step S3 specifically comprises the following steps: S31: Data preprocessing: preprocess the collected data to ensure data quality and improve the accuracy of subsequent analysis. For data normalization, use min-max standardization x i Represents the normalized value of the i-th data sample, x min The minimum value of this feature among all samples, x max The maximum value of this feature among all samples; S32: Use a deep learning algorithm to perform anomaly detection on real-time data, and use step S23 to calculate the reconstruction error for the reconstructed data X′ processed and output by the autoencoder.
5. The method for automatically collecting abnormal charging data including BMS messages according to any one of claims 1 to 4, characterized in that: The processing and feedback time of the abnormal data shall not exceed 5s.
6. The method for automatically collecting abnormal charging data including BMS messages according to claim 1, characterized in that: The data synchronization in step S5 includes the following steps: Data collection: collect charging-related data in real time at the edge computing device to form a real-time data set D real ; Historical data management, retrieving previously stored historical data sets from the cloud history ; Data integration: merging real-time data sets with historical data sets to form a synchronized data set D sync D sync =D real ∪D history ; Data upload: upload the synchronized data set to cloud storage.
7. The method for automatically collecting abnormal charging data including BMS messages according to claim 6, characterized in that: The synchronized data set D sync In the merging process, the real-time data set D is averaged by weighted average. real and historical dataset D history The values of the same features in are integrated, which is specifically defined as D syne (i)=w1·D real (i)+w2·D history (i) Among them, ω1 and ω2 are the weight coefficients of real-time data and historical data respectively, and ω1+ω2=1.
8. The method for automatically collecting abnormal charging data including BMS messages according to claim 2, characterized in that: The number N of data collected in step S1 is dynamically adjusted according to the update frequency of the real-time data stream and the importance of the data.
9. The method for automatically collecting abnormal charging data including BMS messages according to claim 1, characterized in that: The edge computing technology in step S3 includes real-time monitoring of the current status of the charging device.
10. The method for automatically collecting abnormal charging data including BMS messages according to claim 1, characterized in that: The cloud service adopts a distributed storage architecture.