A Method and System for Accurate Estimation of Lithium-ion Battery Capacity Based on BMS

By constructing a charge-discharge cycle node map to identify turning points and calculate the difference in charge capacity, the problem of insufficient accuracy in traditional charge capacity estimation methods is solved, enabling accurate estimation of lithium-ion battery charge capacity, improving the intelligence of battery management systems and the safety of electric vehicles and energy storage systems.

CN120703589BActive Publication Date: 2026-04-03广东汇创新能源有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-02
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Traditional battery capacity estimation methods rely on simple voltage and current measurements, lacking a comprehensive analysis of battery status, resulting in insufficient accuracy in capacity estimation. In particular, dynamic changes during charging and discharging are difficult to capture in real time, affecting battery safety and efficiency. They cannot adapt to rapidly changing market demands, and estimation errors increase significantly with battery aging and environmental changes.

Method used

By using a BMS-based method to accurately estimate the battery capacity of lithium-ion batteries, raw data is collected to construct a charge-discharge cycle node map, identify charge-discharge inflection points, divide independent charge-discharge cycles, calculate the actual charge-discharge difference, and combine historical data to infer the fuzzy battery capacity range, thereby achieving accurate calculation of the real-time remaining capacity.

Benefits of technology

It improves the accuracy and reliability of power estimation, enhances the intelligence level of the battery management system, extends battery life, and promotes the safety and reliability of electric vehicles and energy storage systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120703589B_ABST
    Figure CN120703589B_ABST
Patent Text Reader

Abstract

This invention relates to the field of battery capacity estimation technology, and more particularly to a method and system for accurate capacity estimation of lithium-ion batteries based on a Battery Management System (BMS). The method includes the following steps: acquiring raw BMS data and performing voltage-current interval slicing to construct a charge-discharge cycle node map; then detecting node interruption seams and comparing slope differences to identify charge-discharge inflection points; subsequently, dividing independent charge-discharge cycles based on the inflection points and determining the current change time-series data for each cycle; calculating the actual charged and discharged capacity using this time-series data, comparing the charge-discharge differences, further querying historical input and discharged capacity to infer the fuzzy capacity range of the battery; and finally, accurately calculating the real-time remaining available capacity based on the fuzzy capacity range and the actual charge-discharge difference, and uploading it to the BMS system. This invention enables real-time monitoring and management of capacity estimation results, improving the intelligence level of the battery management system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of battery capacity estimation technology, and in particular to a method and system for accurate estimation of lithium-ion battery capacity based on a battery management system (BMS). Background Technology

[0002] Traditional battery capacity estimation methods often rely on simple voltage and current measurements, lacking a comprehensive analysis of battery state. This results in insufficient accuracy, especially in capturing dynamic changes during charging and discharging in real time. This frequently leads to misjudgments of remaining battery capacity by users, impacting battery safety and efficiency. Furthermore, existing technologies have limitations when processing complex data, failing to effectively construct detailed charge-discharge cycle graphs, thus limiting a deeper understanding of capacity changes. In practical applications, user expectations for battery performance are constantly increasing, particularly in electric vehicles and energy storage systems. Accurate capacity estimation is crucial for safe driving and system stability; however, traditional methods fail to consider... Given the importance of charge / discharge inflection points, the current understanding of battery performance is often incomplete and unable to adapt to rapidly changing market demands. Especially with battery aging and environmental changes, estimation errors increase significantly, impacting battery lifespan. Therefore, there is an urgent need for an innovative power estimation method and system that can comprehensively analyze raw BMS data, construct a charge / discharge cycle node map, identify charge / discharge inflection points in real time, accurately divide independent charge / discharge cycles, and calculate the actual charge / discharge difference. This would improve the accuracy of power estimation, promote the development of lithium-ion battery management technology, enhance battery safety and reliability, and provide users with more intelligent battery management solutions. Summary of the Invention

[0003] Therefore, it is necessary to provide a method and system for accurate estimation of lithium-ion battery capacity based on BMS to solve at least one of the above-mentioned technical problems.

[0004] To achieve the above objectives, a method for accurately estimating the capacity of a lithium-ion battery based on a BMS includes the following steps:

[0005] Step S1: Collect raw BMS data and perform voltage current interval slicing to construct a charge-discharge cycle node map;

[0006] Step S2: Detect node interruption seams based on the charge-discharge cycle node map, and compare the slope differences between nodes at the seam edge to identify charge-discharge inflection points;

[0007] Step S3: Divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and determine the current change time sequence data of each independent charge and discharge cycle.

[0008] Step S4: Calculate the actual charge and discharge capacity in independent charge and discharge cycles using current change time series data, and compare the charge and discharge differences to obtain the actual charge and discharge capacity differences.

[0009] Step S5: Based on the raw BMS data, query the historical input power and historical output power, and infer the fuzzy power range of the battery;

[0010] Step S6: Accurately calculate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge amounts, and upload the real-time remaining available power to the BMS system.

[0011] This invention also provides a BMS-based lithium-ion battery capacity estimation system for executing the BMS-based lithium-ion battery capacity estimation method described above. The BMS-based lithium-ion battery capacity estimation system includes:

[0012] The data acquisition module is used to acquire raw BMS data, perform voltage flow interval slicing, and construct a charge-discharge cycle node map;

[0013] The inflection point identification module is used to detect node interruption seams based on the node map of the charge and discharge cycle, and compare the slope differences between the nodes at the edge of the seam to identify the charge and discharge inflection point.

[0014] The cycle division module is used to divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and to determine the current change time sequence data of each independent charge and discharge cycle.

[0015] The charge / discharge comparison module is used to calculate the actual charge and discharge capacity in an independent charge / discharge cycle through current change time series data, and to compare the charge / discharge differences to obtain the actual charge / discharge capacity differences.

[0016] The battery power query module is used to query historical input power and historical output power based on raw BMS data, and to infer the fuzzy range of battery power.

[0017] The power estimation module is used to estimate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge, and then upload the real-time remaining available power to the BMS system.

[0018] The specific beneficial effects of this invention are as follows: By collecting raw BMS data and performing voltage-current interval slicing, a charge-discharge cycle node map is constructed, ensuring high accuracy and reliability of the basic data for energy estimation. The establishment of the charge-discharge cycle node map provides a clear view for subsequent analysis, facilitating the identification of key nodes in the charging and discharging process. Based on the charge-discharge cycle node map, node interruption seams are detected, and the slope differences between seam edge nodes are compared, effectively identifying charging and discharging inflection points. This provides an important basis for the analysis of dynamic energy changes, making the energy estimation process more accurate. Dividing independent charge-discharge cycles based on charging and discharging inflection points clearly defines the time-series data of current changes, ensuring a true reflection of current changes, thereby improving the traceability and transparency of the charging and discharging process. Calculating the actual charged and discharged energy in independent charge-discharge cycles using the time-series data of current changes provides a profound understanding of energy flow. This approach enhances the reliability of charge-discharge difference comparisons, revealing the actual charge-discharge differences. By querying historical input and output data from the BMS's raw data, sufficient historical context is provided for real-time power estimation. The inferred fuzzy battery power range offers an effective interval for power estimation, effectively addressing battery state uncertainties. Combining the fuzzy battery power range with the actual charge-discharge differences ensures accurate and practical power estimation. Uploading the real-time remaining available power to the BMS system enables real-time monitoring and management of power estimation results, improving the intelligence level of the battery management system, effectively supporting optimized battery use, extending battery life, and promoting the safety and reliability of electric vehicles and energy storage systems. The scientific and systematic nature of the overall process makes power estimation more adaptable in practical applications. Attached Figure Description

[0019] Figure 1 This is a flowchart illustrating the steps of a method for accurately estimating the capacity of a lithium-ion battery based on a battery management system (BMS).

[0020] Figure 2 This is a detailed flowchart illustrating the implementation steps of step S2;

[0021] Figure 3 This is a detailed flowchart illustrating the implementation steps of step S3;

[0022] The realization of the objective, functional features and advantages of the present invention will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation

[0023] The technical method of the present invention will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without inventive effort are within the scope of protection of the present invention.

[0024] Furthermore, the accompanying drawings are merely illustrative of the invention and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted. Some block diagrams shown in the drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor methods and / or microcontroller methods.

[0025] It should be understood that although the terms "first," "second," etc., may be used herein to describe various units, these units should not be limited by these terms. These terms are used merely to distinguish one unit from another. For example, without departing from the scope of the exemplary embodiments, a first unit may be referred to as a second unit, and similarly, a second unit may be referred to as a first unit. The term "and / or" as used herein includes any and all combinations of one or more of the associated listed items.

[0026] To achieve the above objectives, please refer to Figures 1 to 3 A method for accurately estimating the capacity of a lithium-ion battery based on a battery management system (BMS) includes the following steps:

[0027] Step S1: Collect raw BMS data and perform voltage current interval slicing to construct a charge-discharge cycle node map;

[0028] Step S2: Detect node interruption seams based on the charge-discharge cycle node map, and compare the slope differences between nodes at the seam edge to identify charge-discharge inflection points;

[0029] Step S3: Divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and determine the current change time sequence data of each independent charge and discharge cycle.

[0030] Step S4: Calculate the actual charge and discharge capacity in independent charge and discharge cycles using current change time series data, and compare the charge and discharge differences to obtain the actual charge and discharge capacity differences.

[0031] Step S5: Based on the raw BMS data, query the historical input power and historical output power, and infer the fuzzy power range of the battery;

[0032] Step S6: Accurately calculate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge amounts, and upload the real-time remaining available power to the BMS system.

[0033] In this embodiment, see Figure 1 The method for accurately estimating the capacity of a lithium-ion battery based on a BMS includes the following steps:

[0034] Step S1: Collect raw BMS data and perform voltage current interval slicing to construct a charge-discharge cycle node map;

[0035] In this embodiment, the specific operation process of collecting raw BMS data, performing voltage-current interval slicing, and constructing a charge-discharge cycle node graph is as follows: First, raw data such as voltage, current, temperature, and SOC (State of Charge) output by the BMS system are collected via the CAN bus. The sampling frequency is set to 1Hz to ensure the continuity of the time series. After data acquisition, the entire data sequence is coarsely divided into charging and discharging segments using a flow segmentation mechanism based on voltage-current joint sampling points. A preliminary determination of the charge-discharge state is achieved by setting a current threshold of ±0.2A. When the current is greater than the positive threshold, it is marked as a charging state; when the current is less than the negative threshold, it is marked as a discharging state. Voltage data is synchronously mapped to the corresponding current segments. Then, sliding window slicing is performed at 20-second intervals. Time-voltage-current ternary nodes are constructed within each window. The node graph is organized in a graph structure. The nodes contain three types of information: timestamp, voltage, and current. The current change rate and voltage change rate between two adjacent nodes are used as the edge weights to form the initial charge-discharge cycle node graph.

[0036] Step S2: Detect node interruption seams based on the charge-discharge cycle node map, and compare the slope differences between nodes at the seam edge to identify charge-discharge inflection points;

[0037] In this embodiment, the process of identifying charge-discharge inflection points by detecting node interruption seams based on the node map of the charge-discharge cycle and comparing the slope differences between the edge nodes of the seams is as follows: First, the continuity of the current direction is scanned for breakpoints using the node edge weight information in the map. The current gradient ΔI / Δt and voltage gradient ΔU / Δt of each two adjacent nodes are calculated using the difference method. The current slope of the current node is compared with the slope of the previous node. When the rate of change exceeds the set threshold of 0.5A / s, it is marked as a candidate node for the seam. Then, the edge slopes of all candidate seams are compared. If the slope directions of the left and right edge nodes of the seam are opposite and the absolute difference exceeds 1.0A / s, the node is determined to be a charge-discharge inflection point. In the inflection point detection, the Savitzky-Golay filter is used to smooth the original slope sequence to remove high-frequency noise interference. Finally, the set of node indices corresponding to all charge-discharge inflection points in the map is output.

[0038] Step S3: Divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and determine the current change time sequence data of each independent charge and discharge cycle.

[0039] In this embodiment, the process of dividing the independent charge and discharge cycles in the charge and discharge cycle node map according to the charge and discharge inflection points and determining the current change time series data of each independent charge and discharge cycle is as follows: The charge and discharge cycle node map is segmented according to the set of inflection points using the index cutting method. Each segment constitutes an independent cycle segment. The current values ​​and timestamps of all nodes in each segment are extracted to form the current time series data. The current data is not fitted by single linear fitting, but by piecewise regression fitting to process the fluctuation range, so as to reduce the influence of low-frequency changes within the segment. Each cycle segment records the start time, end time, minimum current, maximum current and corresponding trend label. The label is based on the positive or negative sign of the average value of the first derivative sequence of current to determine whether the cycle segment is a charging or discharging segment. In this process, the index consistency of the node map is preserved to ensure that the cycle division process does not introduce additional boundary errors.

[0040] Step S4: Calculate the actual charge and discharge capacity in independent charge and discharge cycles using current change time series data, and compare the charge and discharge differences to obtain the actual charge and discharge capacity differences.

[0041] In this embodiment, the actual charged and discharged quantities in independent charge-discharge cycles are calculated using current change time-series data, and the charge-discharge differences are compared to obtain the actual charge-discharge difference. The process involves using a step integral method to multiply and integrate the current value and time interval within each independent cycle. The unit is ampere-second (A·s), which is then converted to ampere-hours (Ah). The specific calculation formula is as follows: ,in For the first The average current over a time segment The integral is performed within a continuous sampling interval to avoid errors caused by sampling interruptions, given the time interval length. The charged capacity Qc and discharged capacity Qd for each charging cycle are recorded independently, and then compared on a cycle-by-cycle basis. Cycles with a deviation greater than 0.2 Ah are marked as abnormal cycles, and the difference is extracted. The difference sequences are constructed, and the difference sequences in all periods are summarized to obtain a complete set of actual charge and discharge difference data.

[0042] Step S5: Based on the raw BMS data, query the historical input power and historical output power, and infer the fuzzy power range of the battery;

[0043] In this embodiment, the process of querying historical input and output power based on BMS raw data and inferring the fuzzy battery power range is as follows: The cumulative charging and discharging fields from the historical records are extracted from the BMS raw data. The total input power Qinput and total output power Qoutput are calculated using an accumulation strategy. The difference between the two is used as the basis for estimating the historical residual power. Based on this, a temperature correction coefficient kt and a rate correction coefficient km are introduced. The current fuzzy power range is obtained through the correction model Qremain=(Qinput-Qoutput)×kt×km. kt is set according to the historical ambient temperature sampling average value using an empirical coefficient table. km is given according to the current rate fluctuation level, for example, 1 when the rate is less than 0.5C and 0.95 when it is greater than 1C. Intermediate values ​​are given by linear interpolation. These correction parameters improve the accuracy of the upper and lower limits of the fuzzy power estimation, forming an interval-type fuzzy power range.

[0044] Step S6: Accurately calculate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge amounts, and upload the real-time remaining available power to the BMS system.

[0045] In this embodiment, the specific operation of accurately calculating the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge amounts, and uploading the real-time remaining available power to the BMS system, is as follows: The median of the fuzzy power range is used as the initial estimation benchmark value. The latest period's ΔQ in the difference sequence is used as the correction value. The correction expression Qfinal = Qbase - ΔQ is adopted. Under the premise that Qbase is the median of the fuzzy power range, the value of Qfinal is dynamically updated. Simultaneously, upper and lower limit truncation operations are performed on Qfinal to ensure that it does not exceed the battery's rated capacity and minimum protection threshold, such as Qmin = 5% SOC corresponding to the capacity, and Qmax = 95% SOC corresponding to the capacity. The final result is written into the BMS upload frame as a separate field. Packets are assembled using CAN data frame encapsulation rules and uploaded periodically to the BMS master control terminal according to the message format specified in the BMS communication protocol. The upload period is set to once every 10 seconds, and a check bit redundancy protection mechanism is used to prevent data errors.

[0046] In this embodiment, step S1 specifically involves the following steps:

[0047] Acquire raw BMS data; extract the periodic domain structure from the raw BMS data to obtain the voltage flow structure sequence;

[0048] The voltage flow structure sequence is sliced ​​with time window alignment to generate voltage flow interval slices;

[0049] Phase sliding fitting is performed on voltage current interval slices to obtain rhythm reconstruction segments; voltage extreme nodes in rhythm reconstruction segments are identified.

[0050] Based on the voltage extreme value nodes, the charge-discharge cycle trajectory is fitted to obtain the charge-discharge trajectory characteristic line;

[0051] Construct a node map of the charging and discharging cycle based on the characteristic lines of the charging and discharging trajectory.

[0052] In this embodiment, a CAN bus interface module is used to connect to the main control unit in the vehicle battery management system. The sampling frequency is set to 1Hz. The sampling fields include total battery voltage, total battery current, individual battery cell voltage group, SOC (State of Charge), SOH (State of Health), temperature distribution, and current operating status flag. The acquisition interface uses a frame structure based on the J1939 protocol, and the ID filtering range is set between 0x1800F456 and 0x18FF50E5. During data acquisition, synchronization is performed using inter-frame timestamps to prevent timing errors caused by CAN transmission delays. All data is written to the local buffer in real time and indexed by the battery pack serial number and sampling timestamp to form a structured raw data set. The data units are uniformly V (volts), A (amperes), ℃ (degrees Celsius), and percentage. The raw data is filtered by the voltage-current joint keyword, retaining only the time series of total voltage and total current. Subsequently, the voltage-current sequence for each consecutive 48 hours is periodically reconstructed using a Fast Fourier Transform (FFT). Fourier Transform (FFT) was used to perform spectral analysis on the current series, identifying the periodic principal component frequency range between 0.0001 Hz and 0.001 Hz, corresponding to a time period of approximately 1000 to 10000 seconds. Based on this periodic principal frequency, the boundary points of the charging / discharging high-frequency segment and the stable segment in the original time series were retrieved. Using these as a reference, the original voltage-current data was segmented into periodic domain blocks, with each block's duration ranging from 1200 to 3600 seconds. Finally, all periodic domain blocks were combined, with a sliding window size of 300 seconds and a step size of 30 seconds. Segmentation was performed starting from the structural sequence timestamp, with each segment containing complete time, voltage, and current records. The time normalized value was recalculated within each window segment. Where t0 is the start time of the current window, the sliding window size is set to 300 seconds, the step size is 30 seconds, and the window is segmented starting from the timestamp of the structure sequence. Each segment contains complete time, voltage and current records, and the time normalized value is recalculated in each window segment. Where t0 is the start time of the current window, Given the current window width, z-score normalization is performed individually on each window segment, and the voltage and current values ​​are respectively mean-zeroed and unit-variance processed, forming a two-dimensional time series matrix of voltage and current within each segment. Where n is the number of data points in the current window, each generated segment is named IntervalSlice_i, where i represents the segment index, incrementing from 0. The final interval slice sequence is equal to the width of the current window. Z-score normalization is performed on each window segment separately, and the voltage and current values ​​are respectively mean-zeroed and unit-variance processed. Voltage and current form a two-dimensional time series matrix within each segment. Where n is the number of data points in the current window, each generated segment is named IntervalSlice_i, and i represents the segment index, incrementing from 0, ultimately forming an interval slice sequence. Synchronization phase matching is performed on all IntervalSlice_i segments. First, the main current trend curve of each segment is extracted and its shape is decomposed using Discrete Wavelet Transform (DWT). Then, dynamic time warping is applied to the phase delay between voltage and current. Time Warping (DTW) matching is used to fit the matched and aligned voltage-current sequences to B-spline curves. The control point spacing is set to 20 seconds, and the number of control points is no less than 5% of the data points in each segment. After each segment is fitted, all segments are rearranged according to their phase starting point to achieve rhythm reorganization. Each reorganized segment contains a continuous structure of the voltage trough at the end of the previous cycle and the current peak in the current cycle, and is uniformly saved in the format RhythmicSegment_j, where j is the rhythm sequence number. Each RhythmicSegment_j is traversed, and the first derivative of the voltage-time sequence U(t) is calculated to find the point where the derivative value changes from positive to negative or from negative to positive. This point is designated as a maximum or minimum node. A threshold of ΔUth = 0.5V is set to filter out pseudo-extremes caused by small fluctuations. For each valid extreme node, its timestamp, current value, voltage value, and position offset ratio in the rhythm segment are extracted and recorded as a node structure. This indicates the normalized position within the segment. All extreme nodes are sorted in ascending order by segment number and ratio_k, generating a global voltage extreme node set. The node sequence between two consecutive maxima is marked as a discharge trajectory segment, and the node sequence between two consecutive minima is marked as a charging trajectory segment. A third-order Bezier curve is fitted within each trajectory segment, using the first and last nodes as endpoints and the maximum current fluctuation point located in the middle third as control points, generating the discharge curve F_d(x) and the charging curve F_c(x). All curve interpolation points are set to 100 to maintain consistent resolution. The horizontal axis of the trajectory feature line represents the normalized time. The vertical axis represents voltage. With current The charging and discharging trajectory feature lines are uniformly recorded as FeatureLine_m structures, where m is the trajectory number, accompanied by a curve type label (charging or discharging) and the corresponding rhythm segment number. All FeatureLine_m are used as edges in a directed graph, and the voltage extreme value node Node_k is used as the node in the graph to construct the graph structure. V represents the set of nodes, and each node contains a set of attributes {timestamp, voltage, current, extreme value type}. E represents the set of edges established by the characteristic lines of the charge and discharge trajectory. The edge attributes include information such as trajectory fitting function parameters, trajectory duration, maximum current change rate, and average power. The connection weight between adjacent edges in the graph is set as the weighted sum of the time difference between trajectories and the difference in trajectory voltage slope. Finally, the node graph of the charge and discharge cycle is output.

[0053] In this embodiment, see Figure 2 The diagram below illustrates the detailed implementation steps of step S2. In this embodiment, the detailed implementation steps of step S2 include:

[0054] The connectivity of nodes is checked by examining the node graph during the charging and discharging cycle in order to obtain the node connection paths;

[0055] Breakpoint density gradient projection is performed based on the node connectivity path to generate candidate regions for joint breaks.

[0056] The voltage geometry trend is captured based on the candidate region of the joint fracture, and the node turning offset is inferred based on the voltage geometry trend to obtain the node turning offset data.

[0057] The turning point is located based on the node turning offset data to obtain the charging and discharging turning point.

[0058] In this embodiment, voltage, current, and state of charge data are extracted with a minimum sampling interval of 1 second. The continuous time series data is divided into periodic segments, which are broken according to the direction of charging current change, forming an independent node group structure with a single charge-discharge cycle as the unit. Each node is defined as a record unit with three attributes: timestamp, voltage value, and current value. The node group is then input into a graph structure construction module. This module uses the voltage difference and time difference between nodes in two-dimensional space as the basis for edge construction. The voltage difference threshold is set to 10 millivolts, and the time interval threshold is set to 20 seconds. If the voltage difference between two nodes is less than 10 millivolts and the time difference is less than 20 seconds, a graph edge is established between them. After all the edges that meet the conditions are used to construct the graph structure, the Floyd-Warshall algorithm is used to traverse the entire node graph and label it. Record whether there is a path reachability relationship between each group of nodes. Finally, record all paths in the form of a directed path set and filter path groups with a length of less than 8 to avoid low-density isolated paths interfering with connectivity judgment. The obtained complete path set constitutes the node connectivity path basis for subsequent break analysis. Sort the node connectivity path set from largest to smallest path length and select the first 50 paths for break point detection. The node sequence in each path is scanned step by step using a sliding window of length 7. Calculate the average voltage difference between nodes in each window and take the first derivative of the average voltage difference of consecutive windows as the voltage density gradient change value. Then, organize the density gradient change values ​​of all windows into a one-dimensional sequence and apply a bilateral median filter to the sequence to eliminate noise interference. Set the density gradient change threshold to 0.At a rate of 0.15 volts per minute, when three or more density abrupt changes exceeding this threshold exist in a continuous sequence, the window region containing these abrupt changes is marked as a high-density break region. All high-density regions are aggregated to form candidate seam break regions. Each region is described and numbered using a three-element information system: node index interval, peak voltage change rate, and time span. All node indices within each break region are extracted, and the corresponding original voltage value sequence is retrieved. A second-order difference operation is applied to each voltage sequence to obtain the voltage slope change sequence. Subsequently, segmented angle analysis is performed on this slope change sequence, using every eight consecutive points as analysis units to calculate the angle transformation trend between adjacent slopes. If three consecutive angle changes occur with the same direction and a change amplitude greater than 25 degrees, the center point of this angle turn is recorded as a potential offset inflection point. The voltage value change trends of the two points before and after this point are matched and verified. The verification rule is that both voltage direction consistency and slope direction consistency must be met simultaneously. Inflection points that meet this condition are included as node transition points. The offset data structure includes node index, voltage value, voltage change slope, and angle change before and after. All data is pooled into an offset data pool. All offset data is sorted in ascending order by node timestamp and grouped into local transition detection groups of 5 points each. For each point in the detection group, the voltage change direction of its two adjacent points is compared with its own slope direction. If the direction reverses and the slope change rate exceeds 5 mV / min, and the corresponding voltage in the original voltage sequence is a local maximum or minimum, then the node is designated as a charge / discharge transition point. All transition points are numbered sequentially by index and appended with the original cycle number. Finally, all transition points are integrated into a charge / discharge cycle node map to form a structured transition point set, used for key point extraction and state estimation calculations in subsequent modeling stages. All transition point record files are exported in CSV format, with each record containing the following fields: node index, timestamp, voltage value, transition slope, previous angle change, subsequent angle change, current value, and corresponding cycle number.

[0059] In this embodiment, the step of capturing voltage geometric trends based on candidate regions of joint fractures and inferring node turning offset data specifically involves:

[0060] Extract the continuous voltage trajectory inside the candidate region of the joint fracture;

[0061] Calculate the rate of change of the continuous voltage trajectory;

[0062] The tangent slope vector is calculated by using the continuous voltage trajectory and the trajectory change rate to obtain the joint edge slope vector;

[0063] Based on the slope vector of the seam edge, a two-way slope offset comparison is performed to generate node turning offset data.

[0064] In this embodiment, the operation of extracting continuous voltage trajectories within the candidate regions of joint fractures first determines the boundary index range of each candidate region from the generated candidate region map of joint fractures. This index range is represented in the form of a two-dimensional array, with the horizontal axis representing the time node index and the vertical axis representing the spatial fracture location index. Then, the full-dimensional voltage matrix in the voltage time series database is called to extract the voltage data point sequence within the two-dimensional index range. This sequence constitutes a continuous voltage trajectory, with each trajectory containing no less than 50 equally spaced sampling points, and the sampling time interval not exceeding 1 second. Each trajectory is represented by a triplet of time point, voltage value, and current value. The trajectory data structure is uniformly stored in the form of a list nested dictionary, where the key-value pair in the dictionary is timestamp to represent time. Voltage is represented by voltage and current by current. Each continuous voltage trajectory is sorted chronologically. A differential operation is then used to extract the voltage change and time interval between every two adjacent nodes. The voltage change rate per unit time is calculated by dividing the voltage change by the time interval. All rates are recorded as float numbers, retaining six decimal places. If three consecutive rate values ​​in opposite directions are found in the trajectory rate sequence, this segment is marked as a fluctuation interval, and a local rate index is generated. The local rate index includes the local maximum voltage change, the local average rate of change, and a direction indicator. All trajectory rate results are stored in a trajectory extension structure with the same number as the original trajectory. Each trajectory is appended with a... A field named `rate_profile` is used, which is a rate-of-change sequence with the same number of original sampling points and is synchronized with the time series. Local fitting calculations are performed on three consecutive sampling points in each trajectory. The fitting method involves performing a local first-order polynomial regression operation on a set of three points centered at the current sampling point, one before and one after it. The instantaneous slope of the fitted curve is extracted, and the resulting slope is represented as a vector. Each vector is defined as the tangent direction of the current sampling point on its trajectory curve. This tangent direction is stored as a two-dimensional vector, with the horizontal axis representing the time axis (units to the right) and the vertical axis representing the voltage axis (units upward). The voltage change rate per unit time is used as the length of the vertical axis. The units of the slope vectors are standardized, and all vectors are rounded to four decimal places. The direction angle normalization operation converts the angle into an angle value record within the range of 0 to 180 degrees. This record is named the `edge_slope_vector` field and written into the original trajectory extended data structure. All sampling points in the trajectory correspond to a tangent slope vector, forming a seam edge slope vector sequence. For any sampling point in each seam edge slope vector sequence, four consecutive slope vectors are taken forward and four backward, forming a local slope window composed of nine vectors. Then, the angle difference between each adjacent vector in this window is calculated using the cosine angle algorithm. If any angle difference exceeds 15 degrees, the sampling point is marked as a local deflection point. At the same time, the total angle change in the forward and backward offset directions is recorded.Forward and reverse slope offsets are generated separately. Then, for all marked deflection points, their slope offset values, offset direction flags, trajectory numbers, and time indices are extracted to form an offset data structure. The slope offset field in the offset data structure is retained to three decimal places, and the offset direction field uses binary labels "forward" and "backward". Finally, all node deflection offset data is written in a tabular structure to an offset mapping file named `slope_deviation_map`.

[0065] In this embodiment, see Figure 3 The diagram below illustrates the detailed implementation steps of step S3. In this embodiment, the detailed implementation steps of step S3 include:

[0066] Topological time embedding is performed on the charging and discharging inflection points to construct a source-tracing inflection node index;

[0067] Independent charge and discharge cycles in the charge and discharge cycle node map are separated by tracing the inflection node index.

[0068] The segmented current trajectory is mapped for the independent charge and discharge cycles to obtain the segmented current time sequence trajectory;

[0069] Identify the power transfer trend in the time-series trajectory of the current segment to obtain time-series data of current changes.

[0070] In this embodiment, a structured inflection point set file is called, and the timestamp, voltage value, current value, and cycle number information of each inflection point are loaded. Then, a topology construction method based on time series graph embedding is used for node mapping. Specifically, a linear time slice embedding strategy is adopted, arranging all inflection points in ascending order of timestamps and dividing the time into segments of 3600 seconds. A time embedding matrix is ​​constructed for the inflection points within each window. Each column of the time embedding matrix corresponds to an inflection point, and each row represents a time dimension feature, including the time interval relative to the starting point, the average voltage change rate between adjacent points, the current change rate between adjacent points, and the relative position index of the inflection point within the cycle. All dimension features are normalized. The normalization range is set to 0 to 1. The normalization rule is based on the minimum and maximum values ​​of the entire data set. Node topological offset values ​​are calculated using an embedding matrix, and an index mapping dictionary is constructed by combining the number of each period. The index dictionary key is the period number, and the values ​​are a list of pairs of index numbers and topological offset vector values ​​corresponding to the inflection points in the embedding matrix. The original filling and discharging period node map file and index file are loaded. For each period number item, its corresponding inflection point index list is read. Then, data truncation is performed on the first and last indices of the inflection point index list to extract all node information between the starting and ending inflection points from the map. If the number of nodes between two inflection points is less than 200, the period segment is skipped, and all valid period data segments are retained as... Independent periodic node segments are constructed, each consisting of a period number, a pair of inflection point timestamps, and a node sequence. The node sequence contains three primary attributes: time, voltage, and current. The completed independent periodic node segments are written to an intermediate cache path in structured JSON format for later use, along with auxiliary attributes such as the total duration of each period, average voltage change rate, and maximum current amplitude change recorded in an appendix. A two-dimensional current-time trajectory graph is constructed using the node sequence from each periodic segment. The horizontal axis of the trajectory graph represents the node timestamp, and the vertical axis represents the node current value. Subsequently, the trajectory graph is segmented, with each trajectory divided into five equal parts according to its duration. Each segment constitutes an independent current change segment. If any... If the number of nodes in a segment is less than 20, adjacent segments are merged to form a valid data set. Each segment contains at least 20 current node data points. A trajectory fitting operation is then performed on each segment using least-squares linear fitting. The fitting results include slope, mean current, fitting residual, and slope change rate. Each fitting index is written into the segment current trajectory description file in a structured manner. All segments are categorized by period number to form a segment current time-series trajectory set. The segment current trajectory set file is called to extract the current values ​​and fitting slope information for each segment under all periods. Then, the instantaneous power corresponding to each segment is calculated. The instantaneous power is obtained by multiplying the node current value by its corresponding voltage value at the time point.During the calculation, node timestamps are used to locate the corresponding time points in the original voltage sequence for value extraction. The power value at each moment is then time-weighted and averaged according to the trajectory segment division to obtain the average power and power change rate of each segment. Subsequently, a first-order difference operation is applied to all segment power data sequences to extract the power change trend. If the power change rate of three consecutive segments shows a monotonically increasing or decreasing trend, and the change amplitude exceeds 0.2 watts per minute, the segment is classified as a power transfer region, and the corresponding time index interval, current slope change, and voltage average value are extracted as trend identification fields. This ultimately forms a current change time series data set. Each data point includes a period number, segment index, power average, current slope, voltage level, trend direction, and change amplitude. This set is output as a CSV file for feature construction input in subsequent modeling modules. All field names follow the lowercase underscore naming convention.

[0071] In this embodiment, step S4 specifically involves the following steps:

[0072] The current change time series data is periodically oriented and mapped to the energy mapping data within the period.

[0073] The positive and negative power segments of the power mapping data within the cycle are decoupled to obtain the actual charged power and the actual discharged power.

[0074] Based on the power mapping data within the cycle, the actual charged power and the actual discharged power are independently matched for cycle charging and discharging to generate the corresponding charge and discharge amount within the cycle.

[0075] The difference in actual charge and discharge amounts within a cycle is calculated based on the corresponding charge and discharge amounts within that cycle.

[0076] In this embodiment, during the process of periodic direction conversion and mapping of current change time-series data to in-cycle charge mapping data, the segmented current time-series trajectory data is first standardized and resampled using a fixed sampling frequency of 1 Hz with equal interval sampling. At this frequency, each data point represents the actual current value of the battery at the current time point, in amperes. Then, the original time-series trajectory is periodically divided according to the preset charging start time and discharging end time index. The current sequence in each independent cycle is extracted and multiplied with the corresponding time sequence to generate the instantaneous charge value of each sampling point. The instantaneous charge values ​​of all sampling points are accumulated and summed in time order within the cycle to form a periodic charge sequence. Based on this, all charge values ​​are... The conversion from coulombs to milliampere-hours (mAh) is performed by multiplying the current value by the time difference and then dividing by 3600. A cycle-wide energy mapping data sequence is generated using a three-decimal-place format. For all energy changes in the cycle sequence, a sign detection operation is performed. By iterating through each energy value and marking its corresponding time index, continuous segments are extracted based on sign consistency. Segments with positive energy values ​​are classified as discharge segments, and those with negative energy values ​​are classified as charging segments. Then, an integration operation is performed on each segment, summing all energy values ​​within that segment to obtain the discharged and charged energy values ​​for each segment. The energy value for each segment is expressed in milliampere-hours (mAh) with three decimal places, and the start and end time indices for each energy segment are also included. The total charge value and segment category are recorded. A time-constrained segment pairing algorithm is used to traverse the charging and discharging segments of each cycle. A valid charging-discharging match is determined by comparing the end time of the current charging segment with the start time of the next discharging segment within 180 seconds. If the time condition is met, the charging and discharging segments are paired, and the charged and discharged values ​​are extracted and bound. The time index, charge value, and difference between the two values ​​are recorded. If the difference is greater than a threshold of 5 mA, the pair is marked as a deviation match; otherwise, it is marked as a normal match. Charging and discharging segments that fail to meet the pairing conditions are marked as unmatched, and their corresponding status codes are recorded. Status code 1 indicates a large deviation in charge / discharge time, while status code 2 indicates an isolated segment where no matching segment could be found. All paired charge / discharge segments are extracted, and charge / discharge error is calculated for each pair. The error value is obtained by calculating the difference between the charged and discharged amounts. A positive difference indicates that charging exceeds discharging, while a negative difference indicates that discharging exceeds charging. The error value is rounded to three decimal places and expressed in milliampere-hours (mAh). Simultaneously, the total charge, total discharge, and total error for all paired segments in each cycle are calculated. The average error value and error rate are then calculated. The error rate is defined as the total error divided by the total charge and multiplied by 100%, rounded to two decimal places. This operation is performed cycle-by-cycle using a fixed-window sliding function on hourly data.All discrepancies are then submitted to the power calculation module for subsequent error correction input processing used in the state estimation model. The entire processing logic is completed collaboratively by the current trajectory decoupling unit, power matching unit, and error analysis unit within the power diagnosis submodule deployed in the BMS main control unit. Implemented in C language, the process runs at a fixed frequency of once every 10 minutes, calling the processing routine and performing synchronous analysis on the latest data.

[0077] In this embodiment, step S5 specifically involves the following steps:

[0078] Historical cycle tracing is performed on the raw BMS data to construct a historical electricity time-series index;

[0079] Based on the historical electricity time-series index, query the historical input electricity and historical output electricity;

[0080] The historical accumulated net electricity volume is estimated by measuring historical input and output electricity.

[0081] Identify the most recent battery charge / discharge cycle in the charge / discharge cycle node map;

[0082] Calculate the recent charge / discharge difference in the battery charge / discharge cycle;

[0083] The battery charge / discharge difference is corrected in real time based on the recent charge / discharge difference to generate a fuzzy charge range.

[0084] In this embodiment, during the process of tracing historical cycles and constructing a historical energy time-series index from the raw BMS data, key frame nodes are first extracted from the real-time voltage, current, temperature, and SOC (State of Charge) time-series data collected during vehicle operation. Based on the timestamps of the charging start point, charging end point, discharging start point, and discharging end point, the entire energy data is divided into multiple physical charging and discharging cycle segments. A unique cycle number is assigned to each cycle segment, and start and end index values ​​are set in the database. A hash table structure named Cycle_Index is established to quickly locate the data position of any cycle segment. The timestamp precision is uniformly represented using the Unix time format. Each cycle segment is judged as having a time length of not less than 600 seconds and an energy accumulation of not less than 50 mAh as valid cycle judgment conditions. After removing all data segments that do not meet the cycle construction standards, the process is complete. A historical cycle index is constructed. Based on the previously constructed Cycle_Index hash table, data within each historical cycle segment is indexed and queried segment by segment. Current and time data for each cycle segment are extracted from the BMS_LOG database structure, and interpolation correction is performed according to the time series to ensure a sampling interval of 1 second. Then, for each data point, the current is multiplied by the sampling time to obtain the instantaneous charge value. Positive current segments represent charging, and negative current segments represent discharging. The historical input charge is accumulated across all positive current segments, and the historical output charge is accumulated across all negative current segments. The unit is uniformly set to milliampere-hours (mAh), and the values ​​are retained to three decimal places. A binary time-sharing algorithm is used during the query process. The interleaved tree approach accelerates the retrieval of cycle boundaries, keeping index access time within 5 milliseconds. It sequentially traverses historical cycle numbers, extracting independent input and output power values ​​from each cycle segment. The total input power is obtained by summing the input power values ​​across all cycle segments, and the total output power is obtained by summing the output power values ​​across all cycle segments. The difference between the two is the historical accumulated net power. To prevent accuracy drift due to accumulated errors, a temperature correction coefficient is introduced during the calculation process. By reading the average temperature of each cycle segment and consulting a preset temperature influence coefficient table, the weight ratio of input and output power is adjusted. The final accumulated net power unit remains milliampere-hours (mAh). All processing is executed in a separate Data_Accumulator module, running once daily. It fully updates the net charge volume for historical period segments and calls the Charge_Discharge_Graph structure. This graph stores the sequential relationships and time intervals of all historical charge-discharge cycles in graph form. Each node corresponds to a period segment, and the edge weight is the interval between cycles. Dijkstra's algorithm is used to perform shortest path backtracking on the node at the current moment in the graph, searching upwards for the most recent complete charge-discharge cycle pair, and extracting the input charge volume, output charge volume, and node number corresponding to that cycle as the reference node for the current cycle.Simultaneously, the average temperature, average current, and final SOC value of the current cycle segment are recorded to ensure that the node status in the graph can be aligned and compared with the current real-time status. The entire operation is deployed in the graph management module, run every five minutes by the Task_Graph_Analyzer process, and updates the nearest cycle node number in real time. For the nearest cycle node identified in the graph, the corresponding cycle current time series is extracted again from BMS_LOG. The instantaneous charge value is calculated for each time point, and the input charge and output charge are obtained by classification and accumulation. The difference between the two is the charge-discharge difference. To improve data accuracy, a drift filter is introduced before the difference calculation to perform boundary current denoising. The filtering threshold is set to 0.05 amperes. Records with currents below this value are considered noise and removed. The difference calculation process also considers the voltage disturbance range. A 10-second buffer is added before and after each cycle segment, and the average voltage change slope is used as the disturbance judgment condition. When the slope exceeds 5 millivolts per second, the difference correction operation is performed to ensure that the difference reflects the true charge. The battery's state changes, and the difference between the input and output power in the current cycle segment and the reference cycle segment is extracted. A correction coefficient is calculated based on the cumulative net power and the difference in power, defined as the ratio of the difference in power to the cumulative net power. This correction coefficient is multiplied by the maximum allowable deviation of the current SOC reading to generate an error range. Then, the lower limit of the error range is subtracted from the current SOC reading, and the upper limit is added to form the current fuzzy power range. All results are in milliampere-hours (mAh), with three decimal places retained. Limit value detection is performed on the generated range boundaries to ensure that the value does not exceed 0 to the battery's nominal capacity range. The correction model is calculated in real-time by the SOC_Refiner module, and the output data is pushed to the battery state assessment module and displayed as a fuzzy SOC range prompt on the BMS control board main interface. The entire processing cycle is executed every 10 seconds, using C language deployed in an independent processing thread within the embedded control chip. The system frequency is 100 Hz, ensuring that accuracy and response speed are within strict limits.

[0085] In this embodiment, step S6 specifically involves the following steps:

[0086] Based on the actual difference in charge and discharge amounts, the difference evolution path is traced back, and constraint analysis is performed according to the difference evolution path to obtain the battery discharge constraint.

[0087] Based on the battery discharge constraints, the battery fuzzy capacity range is simulated to obtain simulated capacity output data;

[0088] The available power is accurately calculated by simulating power output data to generate real-time remaining available power.

[0089] The remaining available power in real time is encoded in its entirety and uploaded to the BMS system.

[0090] In this embodiment, during the process of tracing the evolution path of the actual charge-discharge difference and performing constraint analysis based on the difference evolution path to obtain the battery discharge constraint, the difference in the charge-discharge process is first periodically segmented and statistically analyzed. Each statistical period is 600 seconds. Within this period, the deviation between the actual charge difference and the historical net charge fitting trajectory is extracted. A two-dimensional time series matrix is ​​constructed using the sliding window method, with the horizontal axis representing the time series nodes and the vertical axis representing the corresponding charge difference. A double exponential weighted moving average is used. The Average (Average) method is used to fit the trend of battery charge difference. Points on the fitted curve where the rate of change of local slope continuously exceeds a threshold of 0.001 mAh / s are identified as turning intervals. Connecting these consecutive turning intervals defines the difference evolution path. Each node in the path contains three dimensions of data: timestamp, battery charge difference, and deviation direction. Then, based on the difference evolution path, the constraint parsing model PathConstraintSolver is invoked. This model uses an extreme value envelope analysis algorithm to construct multiple linear envelope curves for the upper and lower bounds of the battery charge deviation along the evolution path. Finally, the maximum and minimum slopes of the battery charge difference are used as the battery discharge rate constraint boundaries, outputting battery discharge constraint value pairs. The upper bound is the maximum discharge rate limit, and the lower bound is the minimum guaranteed battery charge output threshold, in mAh / s. All operations are deployed in an independent difference modeling module, refreshed every 60 seconds. Next, the computational resources are limited to CPU utilization not exceeding 15%. The battery management control module receives the fuzzy battery charge range from the previous steps, extracts the upper and lower boundary values ​​of this range, and initializes them as the simulated starting and ending charges. Then, the discharge process simulation engine DischargeSimulator is called. This module takes a preset current curve template group as input, including the standard current curve (1C discharge curve), the slow discharge curve (0.3C curve), and the high-speed discharge curve (3C discharge curve). Each simulation uses one set of curves and combines the aforementioned battery discharge constraints to truncate and linearly scale the curves to match the constraint boundaries. The system simulates the charge output per second and records the current voltage change, SOC change, and the temperature value output by the thermal effect model. The simulation time period covers the entire fuzzy charge range until the simulated SOC is below 3%. If the SOC decrease rate is found to exceed 0.A discharge rate of 0.05% is immediately recorded as an abnormal discharge point. All simulated power output data is saved as structured vector groups, including five dimensions: time, voltage, current, power output, and temperature. The simulation resolution is once per second. The entire simulation is controlled by the simulation scheduling module, using multi-threaded concurrent processing to improve efficiency. Typical simulation time is controlled to be completed within 3 seconds. The power output dimension is extracted from the simulated power output data generated in the previous step, and hourly integration is performed to accumulate the total dischargeable power value. At the same time, the current, voltage, and temperature corresponding to each time segment are used as inputs to a multi-dimensional fitting function. The function weights are adjusted by the upper and lower bounds obtained from the aforementioned discharge constraints. The output of each sampling point is then calculated. The correction factors are used to correct the current sampling point's power output. All correction factors are limited to between 0.9 and 1.1. Finally, the actual available power is calculated by integration, with the unit uniformly set to milliampere-hours (mAh). Then, the available power value is time-aligned according to the current timestamp and the latest SOC reading. If the SOC difference exceeds 1%, the simulation process is restarted until the error converges to within 0.5%. The calculation result is encapsulated into a comprehensive available power structure containing the power value, starting SOC, ending SOC, and the corresponding voltage and temperature sequence. Finally, a structure queue is established in the memory buffer for transmission to the subsequent upload process. All calculations are completed in the SOC_Estimator module. The system employs a dual-buffer architecture to avoid interfering with the real-time operations of the main BMS thread. System memory allocation must not exceed 128KB. The generated available power structure is passed to the data encapsulation module EncodeBlockHandler. This module performs the following operations: first, it extracts four fields: power value, starting SOC, ending SOC, and temperature sequence. Then, it calculates the data integrity check code according to the CRC16 (16-bit Cyclic Redundancy Check) algorithm and adds it to the end of the data frame. Subsequently, it performs byte alignment on all data to ensure that each field is packaged using fixed-length bytes. The field order is: power value (4 bytes), starting SOC value (1 byte), ending SOC value (1 byte). The data consists of a 64-byte temperature sequence and a 2-byte checksum. After packaging, the BMS communication protocol stack interface Tx_UplinkProtocol is called to perform a CAN bus upload operation. Each frame has a maximum length of 80 bytes. The system uploads data every 5 seconds and records the upload status. If two consecutive checks fail, the encoding and upload process is retried. All upload records are synchronously stored in Flash memory as a basis for data traceability. The communication process uses an independent SPI bus channel to ensure that it does not interfere with the stability of the data flow of the main control thread. The upload module is deployed as a real-time task thread with a priority of 2 in the embedded RTOS system, with a scheduling period of 100 milliseconds.

[0091] In this embodiment, the step of tracing back the difference evolution path based on the actual charge / discharge difference and performing constraint analysis based on the difference evolution path specifically involves:

[0092] The data is arranged in time sequence based on the actual charge and discharge differences within each cycle, and the data on the changes in these differences are identified.

[0093] Extract the trend of variation in the variation data;

[0094] By tracing the evolution of differences based on their changing trends, we can obtain the evolution path of differences.

[0095] The difference in actual charge and discharge quantities is predicted by using the difference evolution path, thereby obtaining the predicted difference change data;

[0096] Discharge constraint mapping is performed based on predicted difference change data to obtain battery discharge constraints.

[0097] In this embodiment, during the process of arranging and identifying the difference in actual charge and discharge quantities within each cycle, the battery monitoring unit first records real-time operating parameters such as voltage, current, temperature, and SOC at a sampling period of 1 second. Then, it generates charge and discharge quantity data segments with a cycle of 600 seconds through the BMS data buffer. Each segment contains a timestamp and a net charge / discharge value. All periodic net charge / discharge data are constructed into a one-dimensional time series vector in chronological order. Subsequently, the difference calculation module DifferentialSequencer is called. This module calculates the difference value between adjacent cycles by subtracting the actual net charge / discharge value of the previous cycle from the actual net charge / discharge value of the current cycle, forming a difference data vector. The difference data is quantified and embedded into the original time series. All difference data are sorted according to their increasing time to generate a two-dimensional time-difference matrix. Then, a boundary filtering function is called to remove outliers in the difference matrix whose values ​​are greater than two standard deviations. Finally, a clean and continuous difference data column is obtained. This column of data will serve as the basic input for subsequent trend extraction and evolutionary modeling. The entire process relies on the data processing engine in the embedded edge node. The task execution cycle is fixed at once every 5 minutes. The difference column is extracted from the time-difference matrix generated in the previous stage as input and passed to the difference trend extraction module DeltaTrendExtractor. This module uses the Piecewise Linear regression fitting algorithm. Regression employs piecewise linear fitting. Initially, the difference column is divided into 6 segments of equal length, with each segment having a minimum length of 100 data points. Linear least-squares fitting is performed on each segment, and the variance of the fitted residuals is calculated. If the residual variance exceeds a threshold of 5 mA / s squared, the segment is further divided in half until the residual is below the threshold. The slope of the final fitted curve for each segment represents the trend of the difference. All trend segments are structured using four fields: start time, end time, slope, and average difference. The structure array length does not exceed 32 groups, and the data is stored in a temporary memory area for use in the next stage. To improve the accuracy of trend analysis, three-point median smoothing is performed on all trend segments to remove short-term abrupt changes. The trend extraction module runs on the BMS system. In the secondary scheduling thread, which has a lower priority than the SOC update thread and a fixed execution cycle of once every 20 minutes, the difference backtracking modeling module EvolutionTracer is called, and the previously extracted trend structure array is input. This module first performs range calculation on the slope of each trend segment to find the maximum and minimum slopes. Then, it traces the relative changes of the trend segments one by one in chronological order. That is, when the slope of a trend segment is significantly lower than that of the previous segment, it is determined as a trend turning point and this point is marked as a path node. All trend turning points are connected in chronological order to form a difference evolution path vector, where each node contains three dimensions: node timestamp, node trend slope, and the increase in the difference before and after the node. The maximum length of the evolution path vector is limited to 128 nodes.Interpolation and reconstruction are performed on all path nodes to unify the sampling period and construct a standard time series vector. Then, regularization is performed to map all trend slopes to the range [-1, 1]. This path data will serve as the core input for the subsequent differential change prediction model. Evolutionary backtracking modeling relies on the historical data backtracking engine and the main control scheduling kernel running alternately, updating the historical path every 48 hours. The differential prediction module DeltaForecastor is called, and the standardized differential evolution path vector is input. The differential prediction module embeds a sliding window regression predictor, SlidingWindowForecaster. The initial window length is set to 32 nodes. The window slides forward 4 nodes at each time step, using the trend slope sequence within the historical window as input. An LSTM (Long Short-Term Memory) network structure is used for prediction modeling. The LSTM network has an input dimension of 1, 64 hidden units, and outputs the predicted difference values ​​for the next 16 time points. The network parameters are trained using the Adam optimizer with a learning rate of 0.001 and a mean squared error loss function. Each training iteration is 30 times. The final output is a vector of predicted difference changes, with each element containing three fields: predicted time point, predicted difference value, and predicted offset direction. All prediction results are saved. The prediction vector array is used as the basis for prediction. When the prediction error exceeds 10%, a path reconstruction operation is triggered to update the evolution path input. The prediction results are passed to the downstream discharge mapping module. The entire prediction operation is deployed and executed on the edge server. The model update cycle is once a day. The discharge constraint mapping module ConstraintProjector is called and the difference prediction vector array output from the previous steps is input. The module first extracts the dimension of the prediction difference value to construct the prediction difference time series. The first derivative is calculated on the series to obtain the rate of change of the difference and calculate its maximum positive slope and maximum negative slope, which correspond to the over-discharge rate and overcharge rate defined in the system, respectively. Then, according to the system... The built-in discharge safety boundary specification sets the maximum slope limit as the maximum discharge boundary, in milliampere-hours per second (mAh / s), and uses the absolute value of the negative slope as the minimum discharge threshold. The constraint value range is limited to [0.01, 0.1] amperes per second. Finally, a battery discharge constraint vector is constructed and encapsulated as a constraint structure. This structure contains four types of fields: maximum discharge rate, minimum discharge rate, current predicted segment index, and valid start and end timestamps. This structure will be passed to the subsequent power output simulation module to adjust the upper and lower limits of current control during the output process. The discharge constraint calculation task is executed by an embedded mapping chip in the hardware, and all calculation times do not exceed 100 milliseconds.

[0098] This invention also provides a BMS-based lithium-ion battery capacity estimation system for executing the BMS-based lithium-ion battery capacity estimation method described above. The BMS-based lithium-ion battery capacity estimation system includes:

[0099] The data acquisition module is used to acquire raw BMS data, perform voltage flow interval slicing, and construct a charge-discharge cycle node map;

[0100] The inflection point identification module is used to detect node interruption seams based on the node map of the charge and discharge cycle, and compare the slope differences between the nodes at the edge of the seam to identify the charge and discharge inflection point.

[0101] The cycle division module is used to divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and to determine the current change time sequence data of each independent charge and discharge cycle.

[0102] The charge / discharge comparison module is used to calculate the actual charge and discharge capacity in an independent charge / discharge cycle through current change time series data, and to compare the charge / discharge differences to obtain the actual charge / discharge capacity differences.

[0103] The battery power query module is used to query historical input power and historical output power based on raw BMS data, and to infer the fuzzy range of battery power.

[0104] The power estimation module is used to estimate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge, and then upload the real-time remaining available power to the BMS system.

[0105] Therefore, the embodiments should be considered as exemplary and non-limiting in all respects, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of the equivalents of the application are intended to be included within the invention.

[0106] The above description is merely a specific embodiment of the present invention, enabling those skilled in the art to understand or implement the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the invention. Therefore, the present invention is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features of the invention herein.

Claims

1. A method for accurately estimating the capacity of a lithium-ion battery based on a battery management system (BMS), characterized in that, Includes the following steps: Step S1: Collect raw BMS data and perform voltage current interval slicing to construct a charge-discharge cycle node map; Step S2: Detect node interruption seams based on the charge-discharge cycle node map, and compare the slope differences between nodes at the seam edge to identify charge-discharge inflection points; Step S3: Divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and determine the current change time sequence data of each independent charge and discharge cycle. Step S4: Calculate the actual charge and discharge capacity in an independent charge and discharge cycle using the current change time series data, and compare the charge and discharge differences to obtain the actual charge and discharge capacity differences. Step S5: Based on the raw BMS data, query the historical input power and historical output power, and estimate the fuzzy range of battery power. Step S6: Accurately calculate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge amounts, and upload the real-time remaining available power to the BMS system; The specific steps of step S2 are as follows: The connectivity of nodes is checked by examining the node graph during the charging and discharging cycle in order to obtain the node connection paths; Breakpoint density gradient projection is performed based on the node connectivity path to generate candidate regions for joint breaks. The voltage geometry trend is captured based on the candidate region of the joint fracture, and the node turning offset is inferred based on the voltage geometry trend to obtain the node turning offset data. The turning point is located based on the node turning offset data to obtain the charging and discharging turning point; Specifically, the method of capturing voltage geometric trends based on candidate regions of joint fractures and inferring node turning offset data includes: Extract the continuous voltage trajectory inside the candidate region of the joint fracture; Calculate the rate of change of the continuous voltage trajectory; The tangent slope vector is calculated by using the continuous voltage trajectory and the trajectory change rate to obtain the joint edge slope vector; Based on the slope vector of the seam edge, a two-way slope offset comparison is performed to generate node turning offset data.

2. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 1, characterized in that, The specific steps of step S1 are as follows: Acquire raw BMS data; extract the periodic domain structure from the raw BMS data to obtain the voltage flow structure sequence; The voltage flow structure sequence is sliced ​​with time window alignment to generate voltage flow interval slices; Phase sliding fitting is performed on voltage current interval slices to obtain rhythm reconstruction fragments; Identify voltage extreme nodes in rhythm reconstruction segments; Based on the voltage extreme node, the charge-discharge cycle trajectory is fitted to obtain the charge-discharge trajectory characteristic line; Construct a node map of the charging and discharging cycle based on the characteristic lines of the charging and discharging trajectory.

3. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 1, characterized in that, Step S3 is as follows: Topological time embedding is performed on the charging and discharging inflection points to construct a source-tracing inflection node index; Independent charge and discharge cycles in the charge and discharge cycle node map are separated by tracing the inflection node index. The segmented current trajectory is mapped for the independent charge and discharge cycles to obtain the segmented current time sequence trajectory; Identify the power transfer trend in the time-series trajectory of the current in the section to obtain the time-series data of current changes.

4. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 1, characterized in that, Step S4 is as follows: The current change time series data is periodically oriented and mapped to the energy mapping data within the period. The positive and negative power segments of the power mapping data within the cycle are decoupled to obtain the actual charged power and the actual discharged power. Based on the power mapping data within the cycle, the actual charged power and the actual discharged power are independently matched for cycle charging and discharging to generate the corresponding charge and discharge amount within the cycle. The difference in actual charge and discharge amounts within a cycle is calculated based on the corresponding charge and discharge amounts within that cycle.

5. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 1, characterized in that, Step S5 is as follows: Historical cycle tracing is performed on the raw BMS data to construct a historical electricity time-series index; Based on the historical electricity time-series index, query the historical input electricity and historical output electricity; The historical accumulated net electricity volume is estimated by measuring historical input and output electricity. Identify the most recent battery charge / discharge cycle in the charge / discharge cycle node map; Calculate the recent charge / discharge difference in the battery charge / discharge cycle; The battery charge / discharge difference is corrected in real time based on the recent charge / discharge difference to generate a fuzzy charge range.

6. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 1, characterized in that, Step S6 is as follows: Based on the actual difference in charge and discharge amounts, the difference evolution path is traced back, and constraint analysis is performed according to the difference evolution path to obtain the battery discharge constraint. Based on the battery discharge constraints, the battery fuzzy capacity range is simulated to obtain simulated capacity output data; The available power is accurately calculated by simulating power output data to generate real-time remaining available power. The remaining available power in real time is encoded in its entirety and uploaded to the BMS system.

7. The method for accurately estimating the capacity of a lithium-ion battery based on a BMS according to claim 6, characterized in that, The specific steps of tracing back the difference evolution path based on the actual charge / discharge difference and performing constraint analysis based on the difference evolution path are as follows: The data is arranged in time sequence based on the actual charge and discharge differences within each cycle, and the data on the changes in these differences are identified. Extract the trend of variation in the variation data; By tracing the evolution of differences based on their changing trends, we can obtain the evolution path of differences. The difference in actual charge and discharge quantities is predicted by using the difference evolution path, thereby obtaining the predicted difference change data; Discharge constraint mapping is performed based on predicted difference change data to obtain battery discharge constraints.

8. A lithium-ion battery capacity accurate estimation system based on BMS, characterized in that, For executing the BMS-based accurate lithium-ion battery capacity estimation method as described in claim 1, the BMS-based accurate lithium-ion battery capacity estimation system comprises: The data acquisition module is used to acquire raw BMS data, perform voltage flow interval slicing, and construct a charge-discharge cycle node map; The inflection point identification module is used to detect node interruption seams based on the node map of the charge and discharge cycle, and compare the slope differences between the nodes at the edge of the seam to identify the charge and discharge inflection point. The cycle division module is used to divide the independent charge and discharge cycles in the charge and discharge cycle node diagram according to the charge and discharge inflection point, and to determine the current change time sequence data of each independent charge and discharge cycle. The charge / discharge comparison module is used to calculate the actual charge and discharge capacity in an independent charge / discharge cycle through current change time series data, and to compare the charge / discharge differences to obtain the actual charge / discharge capacity differences. The battery power query module is used to query historical input power and historical output power based on raw BMS data, and to infer the fuzzy range of battery power. The power estimation module is used to estimate the real-time remaining available power based on the battery's fuzzy power range and the difference between actual charge and discharge, and then upload the real-time remaining available power to the BMS system.

Citation Information

Patent Citations

  • Prediction method and system for residual life of lithium battery and readable storage medium

    CN111060835A

  • Battery monitoring method and system based on BMS (Battery Management System)

    CN118534332A