Array memsimu data compression real-time storage method based on low storage and computation

By using hierarchical smoothing processing of array MEMSIMU data, the problem of limited storage and computing resources in array MEMSIMU data processing is solved, achieving data compression storage with low storage and computing requirements, thus meeting the needs of low-cost inertial navigation systems.

CN115390750BActive Publication Date: 2026-02-06BEIHANG UNIV +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210943188.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-08
Publication Date
2026-02-06
Estimated Expiration
2042-08-08

AI Technical Summary

Technical Problem

In existing technologies, data processing of array MEMSIMU requires a large amount of storage space and computation, which leads to a shortage of microcontroller resources and makes it difficult to meet the needs of low-cost inertial navigation systems.

Method used

It adopts a hierarchical smoothing approach, which processes the raw data through multi-level smoothing, compresses and stores the data, reduces storage requirements and controls computational load, and utilizes an ARM-core microcontroller for data transmission and real-time computation.

Benefits of technology

It significantly reduces the storage space usage of the microcontroller, saving resources, while ensuring the real-time performance and accuracy of navigation calculations, enabling fault diagnosis, and avoiding data deviation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115390750B_ABST
    Figure CN115390750B_ABST
Patent Text Reader

Abstract

The application relates to the field of MEMS inertial technology, and provides an array MEMS IMU data compression real-time storage method based on low storage and calculation amount. Compared with a single MEMS IMU, the array MEMS IMU needs to collect more data, and a master control chip needs to not only perform combined navigation processing on a large amount of original data, but also needs to store and compress historical data, which can be used to accurately judge the motion state of a carrier and perform fault diagnosis. For the array MEMS IMU with a single-chip microcomputer as the master control chip, the single-chip microcomputer needs to occupy more storage space and calculation amount to process the data of the array MEMS IMU, further compresses the combined navigation calculation resource, and restricts the development of the low-cost array MEMS IMU. Therefore, the application studies the array MEMS IMU data compression real-time storage method based on low storage and calculation amount. By applying the method, the use of the storage amount of the single-chip microcomputer is greatly reduced, and the single-chip microcomputer resource is saved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of MEMS inertial technology, and in particular, to an array MEMS IMU data compression real-time storage method based on low storage and computation. BACKGROUND

[0002] With the rapid development of semiconductor technology, Micro-Electro-Mechanical Systems (MEMS) has rapidly emerged. MEMS inertial sensors have many advantages such as small size, light weight, low cost, low power consumption, easy integration, and batch production, which provide a feasible solution for the wide application of inertial sensors in more fields such as consumer electronics and wearable devices.

[0003] Although the development of technology has greatly improved the performance of MEMS inertial sensors, under the current technical conditions, the navigation accuracy of MEMS inertial devices still cannot meet the needs of many applications. Array MEMS IMU is to form an array by multiple MEMS IMUs, so that all IMUs in the array measure the angular velocity and acceleration of the same carrier at the same time, and then fuse these angular velocity and acceleration data to improve the accuracy of the sensor and further improve the navigation accuracy of the IMU. An array IMU is usually composed of a master control chip and multiple IMUs. Therefore, array MEMS IMU needs to collect more data than single MEMS IMU, and the master control chip not only needs to perform combined navigation processing on a large amount of raw data, but also needs to store and compress historical data to accurately determine the motion state of the carrier and perform fault diagnosis. For consumer-grade MEMS inertial navigation systems, the navigation computer does not use the DSP+FPGA architecture, and often chooses a single-chip microcomputer with relatively low cost, which determines that both data transmission and navigation calculation need to be completed independently by the single-chip microcomputer. In the face of a large amount of data transmission and reception of array MEMS IMU inertial navigation systems, the single-chip microcomputer needs to occupy more storage space and computation to process array MEMS IMU data, further compressing the combined navigation calculation resources and restricting the development of low-cost array MEMS IMU. Therefore, under this background, it is necessary to study an array MEMS IMU data compression real-time storage method based on low storage and computation. SUMMARY

[0004] The present application aims to provide an array MEMS IMU data compression real-time storage method based on low storage and computation to solve or improve at least one of the above technical problems.

[0005] Therefore, the first aspect of the present application aims to provide an array MEMS IMU data compression real-time storage method based on low storage and computation.

[0006] The first aspect of the application provides a low-storage and low-computational array MEMSIMU data compression real-time storage method, comprising the following steps: S1, configuring a group of i number of sub-data sequences according to the sequence data length of a carrier , wherein the data amount of each sub-data sequence is , and m-level smoothing processing is configured according to i; S2, setting an array storage space , wherein the storage space is in one-to-one correspondence with the data amount ; S3, assigning original sequence data of the data amount to the corresponding array storage space , until the array storage space to which the original sequence data is currently assigned reaches a storage threshold; S4, after the current array storage space reaches the storage threshold, updating the state value of the corresponding i-level space storage state flag bit, and entering the corresponding i-level smoothing compression storage function for smoothing processing according to the state value to obtain smoothed data; S5, assigning the returned data to the corresponding position of the next level array space according to the corresponding i-level data storage index state bit, and if there is no next level, assigning the returned data to the final smoothing storage variable; wherein i is an integer not less than 1, = , and the value of m is equal to the value of i.

[0007] The low-storage and low-computational array MEMSIMU data compression real-time storage method provided by the application performs multi-level smoothing processing on original data based on the idea of hierarchical smoothing, and stores the original data after compression, which can greatly reduce the storage amount compared with the traditional storage method, and compared with the traditional smoothing method, the hierarchical smoothing does not increase the addition operation, but only increases a small part of multiplication operation, so that the computational amount is also maintained at a low level.

[0008] In the m-level hierarchical smoothing, the value of is set to m data amounts , and = , then m array storage spaces are set in the same way, which are in one-to-one correspondence with , the value of i is processed from small to large at a time during data filling, and the array storage space at each level is used After reaching the storage threshold, the state value of the corresponding i-level space storage state flag bit is updated, and the corresponding i-level smooth compression storage function is entered according to the state value for smooth processing, and data is obtained. The returned data is assigned to the corresponding position of the array space of the next level according to the corresponding i-level data storage index state bit, and the whole level is reached until the storage threshold.

[0009] In addition, the technical scheme provided by the embodiment of the application can also have the following additional technical features:

[0010] In any of the above technical schemes, after step S5, the method further comprises: S6, judging the motion state of the carrier according to the data stored in the final smooth storage variable, and if the array MEMSIMU has an abnormal phenomenon, diagnosing a fault of a certain MEMSIMU in the array MEMSIMU according to the final smooth storage variable.

[0011] In the technical scheme, the final smooth storage variable can be used to diagnose the fault of a certain MEMSIMU in the array MEMSIMU, so that the overall data is normal when subsequent data is analyzed, and the deviation in the final analysis is avoided.

[0012] In any of the above technical schemes, in the m-level configuration, and satisfy the following formula:

[0013] .

[0014] In the technical scheme, the above formula ensures that the product of the m data quantities is equal to the value of , and the association of the selected and is ensured.

[0015] In any of the above technical schemes, in the m-level configuration, the configuration parameters of need to satisfy the following formula:

[0016] .

[0017] In the technical scheme, in the same value of , there are multiple groups of different data quantities , in order to reduce the low storage quantity to the greatest extent, the sum of the groups in each data quantity is calculated, and a group of with the smallest value is selected.

[0018] In any of the above technical schemes, in the m-level smooth configuration, the calculation amount satisfies the following formula:

[0019] Addition: ;

[0020] Multiplication: .

[0021] In the technical solution, the calculation amount used by the multi-stage smoothing compression storage is determined by the amount of stored sequence data and the number of hierarchical stages, compared with the traditional storage method, the hierarchical compression storage method can greatly reduce the storage amount, and at the same time, the calculation amount is also maintained at a low level.

[0022] Specifically, the number of additions used is related to the total sequence data, and is a constant value, and the number of multiplications is related to the amount of second-stage smoothing data N2. Taking 100 sequence data as an example, the number of additions used by two-stage smoothing is 99, and the number of multiplications is 11.

[0023] The beneficial effects of the present application compared with the prior art are:

[0024] The present application is based on the low storage amount and calculation amount array MEMS IMU data compression real-time storage method. The single-chip microcomputer based on the ARM core has rich peripheral resources, and has data transmission and real-time operation capability, and is suitable for being used as a navigation computer of a MEMS inertial navigation system. The single-chip microcomputer itself has limited resources, generally, the flash memory and SRAM of a single-chip microcomputer are several tens of kB, and the SRAM is less than 1MB, so a low storage amount and calculation amount method is urgently needed to store a large amount of data in real time;

[0025] By using the compression method designed by the hierarchical smoothing idea, the storage space of the single-chip microcomputer is greatly reduced on the basis of maintaining the calculation amount basically unchanged, the storage amount is reduced, and the resources of the single-chip microcomputer are saved.

[0026] Additional aspects and advantages of embodiments of the present application will become apparent from the following description with reference to the drawings. BRIEF DESCRIPTION OF DRAWINGS

[0027] The accompanying drawings are included to provide a further understanding of the present application and are incorporated in and constitute a part of this specification, illustrate embodiments of the present application and serve to explain the principles of the present application.

[0028] Figure 1 The hierarchical smoothing compression storage program flowchart of the present application. DETAILED DESCRIPTION

[0029] In order to more clearly understand the above objectives, features and advantages of the present application, the present application will be further described in detail below with reference to the drawings and specific embodiments. It should be noted that the embodiments of the present application and the features in the embodiments can be combined with each other without conflict.

[0030] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present application. However, it will be recognized by one skilled in the art that the present application can be practiced without the specific details and, therefore, the scope of the present application is not limited to the details disclosed herein.

[0031] The first aspect of the present application provides a low storage and calculation based array MEMSIMU data compression real-time storage method, comprising the following steps: S1, according to the sequence data length of the carrier , a group of i number of sub-data sequences are configured, the data amount of each sub-data sequence is , and m-level smoothing processing is configured according to i; S2, an array storage space is set, the storage space of which is in one-to-one correspondence with the data amount ; S3, the original sequence data of the data amount is assigned to the corresponding array storage space , until the array storage space currently assigned with the original sequence data reaches the storage threshold; S4, after the current array storage space reaches the storage threshold, the state value of the corresponding i-level space storage state flag bit is updated, and according to the state value, the corresponding i-level smoothing compression storage function is entered for smoothing processing to obtain smoothed data; S5, the returned data is assigned to the corresponding position of the next level array space according to the corresponding i-level data storage index state bit, and if there is no next level, the returned data is assigned to the final smoothing storage variable; wherein i is an integer not less than 1, N= , and the value of m is equal to the value of i.

[0032] The low storage and calculation based array MEMSIMU data compression real-time storage method provided by the present application is based on the idea of hierarchical smoothing, which performs multi-level smoothing processing on the original data and compresses the original data for storage. Compared with the traditional storage method, the storage amount can be greatly reduced, and compared with the traditional smoothing method, the hierarchical smoothing does not increase the addition operation, but only increases a small part of multiplication operation, so that the calculation amount is also maintained at a low level.

[0033] Inertial navigation systems are systems with high real-time requirements, so navigation computers must complete data processing and navigation calculations in a very short time. Taking a MEMSIMU array composed of 48 MEMSIMU chips, with the domestically produced AT32F413C8T7 microcontroller as the main control chip as an example, the AT32F413C8T7 has an internal flash memory size of 32kB and an SRAM size of 64kB. Both initialized and uninitialized global variables are stored in the SRAM. One MEMSIMU generates seven float-type data points: three-axis acceleration, three-axis angular velocity, and chip temperature. Each set of data occupies 28 bytes. For a MEMSIMU array composed of 48 MEMSIMU chips, each set of data occupies 1344 bytes. If the sampling rate of the MEMIMU is 1kHz, then within 1 second, the MEMSIMU array composed of 48 MEMSIMU chips generates a total of 1,344,000 bytes, occupying 1.344kB of storage space. If the traditional storage method is used, the 64kB of storage space will be filled in about 47 seconds. However, to ensure the accuracy requirements, the MEMSIMU generally needs several minutes of real-time data. Therefore, the traditional storage method cannot meet the requirements of navigation accuracy. This invention is based on the idea of ​​hierarchical smoothing, which performs multi-level smoothing processing on the original data and compresses and stores the original data. Compared with traditional storage methods, it can significantly reduce the storage volume. At the same time, compared with traditional smoothing methods, hierarchical smoothing does not increase addition operations, but only increases a small number of multiplication operations, so that the amount of computation is kept at a low level.

[0034] In the m-level graded smoothing, Set to m data volumes ,and = Then, similarly, set up m array storage spaces. ,and In a one-to-one correspondence, when filling in the data, the value of i is processed and used in ascending order, and the data is stored in the array at each level. Once the storage threshold is reached, the status value of the corresponding i-th level space storage status flag is updated, and the corresponding i-th level smooth compression storage function is entered according to this status value for smoothing processing, and the data is obtained. The returned data is assigned to the corresponding position in the next level array space according to the corresponding i-th level data storage index status bit, until all levels have reached the storage threshold.

[0035] Specifically, taking the smoothing of 100 sequence data as an example, if a two-level smoothing method is used, let N1 represent the amount of data smoothed in the first level, N2 represent the amount of data smoothed in the second level, and the sum of N1 and N2 also represents the storage amount used. Based on the divisors of 100, the following can be used:

[0036] N1=10, N2=10;

[0037] N1=25, N2=4;

[0038] N1=4, N2=25;

[0039] N1=20, N2=5;

[0040] N1=5, N2=20;

[0041] N1=50, N2=2;

[0042] N1=2, N2=50;

[0043] The seven different secondary hierarchical smoothing processing compression storages are stored according to the product and minimum theorem, when the product of N1 and N2 is a constant value, the sum of N1 and N2 can take the minimum value, that is:

[0044] Only when is true, the equality holds.

[0045] Therefore, taking 100 sequence data as an example, when N1=N2=10, the storage amount used is the minimum, that is, 20 storage amounts, compared with the traditional storage method, the secondary smoothing compression storage reduces 80 storage amounts.

[0046] In addition, the technical scheme provided by the embodiment of the application can also have the following additional technical features:

[0047] In any of the above technical solutions, after step S5, the method further comprises: S6, judging the motion state of the carrier according to the data stored in the final smoothing storage variable, and if an abnormal phenomenon occurs in the array MEMSIMU, diagnosing a fault of a certain MEMSIMU in the array MEMSIMU according to the final smoothing storage variable.

[0048] In the technical solution, the final smoothing storage variable can be used to diagnose the fault of a certain MEMSIMU in the array MEMSIMU, so that the overall data is normal when subsequent data is analyzed, and deviation is avoided when the final data is analyzed.

[0049] In any of the above technical solutions, in the m-level configuration, and satisfy the following formula:

[0050] .

[0051] In the technical solution, the above formula ensures that the product of the m data amounts is equal to the value of , and ensures that the selected is equal to The connection.

[0052] In any of the above technical solutions, in the hierarchical configuration where the value of m is determined, the following is selected: The configuration parameters must satisfy the following formula:

[0053] .

[0054] In this technical solution, at the same numerical value Multiple sets of different data volumes will appear. To minimize storage requirements, the amount of data per group can be calculated. Sum the values ​​within each group and select the group with the smallest sum. .

[0055] In any of the above technical solutions, the computational load used in the m-level smooth configuration satisfies the following formula:

[0056] addition: ;

[0057] multiplication: .

[0058] In this technical solution, the computational cost of multi-level smooth compression storage is determined by the amount of sequence data stored and the number of levels. Compared with traditional storage methods, hierarchical compression storage can significantly reduce the storage cost while keeping the computational cost at a low level.

[0059] Example 1

[0060] like Figure 1 As shown, this example is based on the idea of ​​hierarchical smoothing. It uses multiple flags to perform the following operations: storing the original data in the first-level storage space, performing first-level smoothing, storing it in the second-level storage space, performing second-level smoothing, and so on, until storing it in the i-th-level storage space and performing i-th-level smoothing. Through multi-level segmented smoothing, storage space usage is reduced, significantly decreasing the storage volume, while not increasing the computational load excessively. Specifically:

[0061] Step 1: Hierarchical smooth storage configuration. Configure sub-data sequences, configure data sequence array space, initialize array space storage status flags, initialize data storage index, and define the final smooth storage variables.

[0062] procedurecode:

[0063] Initialize_configuration

[0064] N1=x1, N2=x2, ..., Ni=xi;

[0065] A1[0:N1]={0},A2[0:N2]={0},……Ai[0:Ni]={0};

[0066] Space_state_flag1=0,Space_state_flag2=0,……Space_state_flagi=0;

[0067] Index_state1=0,Index_state2=0,……Index_statei=0;

[0068] Final_data=0;

[0069] EndInitialize_configuration

[0070] Step two: First level smooth compression storage. The data of MEMSIMU is stored in the first level sub-data storage space. When the array storage space reaches the storage threshold, the first level smooth processing is performed.

[0071] procedure code:

[0072] First_Level_Smooth

[0073] ForIndex_state1=0→N1-1do

[0074] A1[Index_state1]=imudata

[0075] Endfor

[0076] ifIndex_state1=N1then

[0077] Space_state_flag1=1;

[0078] IfSpace_state_flag1=1then

[0079] smooth(A1)

[0080] Returnsmooth_data1;

[0081] Endif

[0082] Index_state1=0;

[0083] Endif

[0084] EndFirst_Level_Smooth

[0085] Step three: second level smooth compression storage. The first level smooth processed data is stored in the second level sub-data storage space. When the array storage space reaches the storage threshold, the second level smooth processing is performed.

[0086] procedure code:

[0087] Second Level Smooth

[0088] For Index_state2 = 0→N1-1 do

[0089] A2[Index_state2] = smooth_data1

[0090] Endfor

[0091] If Index_state2 = N2 then

[0092] Space_state_flag2 = 1;

[0093] If Space_state_flag2 = 1 then

[0094] smooth(A2);

[0095] Return smooth_data2;

[0096] Endif

[0097] Index_state2 = 0;

[0098] Endif

[0099] End Second Level Smooth

[0100] In turn, the third, fourth, i level smooth is continued, and the smooth data is stored in the corresponding array space.

[0101] Step four: i level smooth compression storage. The i-1 level smooth data is stored in the i level sub-data storage space. When the array storage space reaches the storage threshold, the i level smooth processing is performed. The smooth data is stored in the Final_data space, and the hierarchical smooth is completed.

[0102] procedure code:

[0103] Final Level Smooth

[0104] For Index_statei = 0→Ni-1 do

[0105] Ai[Index_statei]=smooth_data(i-1)

[0106] Endfor

[0107] IfIndex_statei=Nithen

[0108] Space_state_flagi=1;

[0109] IfSpace_state_flagi=1then

[0110] smooth(Ai);

[0111] Returnsmooth_datai;

[0112] Endif

[0113] Index_statei=0;

[0114] Endif

[0115] Final_data=smooth_datai;

[0116] EndFinal_Level_Smooth

[0117] Embodiment 2

[0118] Step 1: hierarchical smoothing storage configuration:

[0119] The hierarchical smoothing can be multi-level hierarchical smoothing such as two-level, three-level, four-level, etc. according to the total data of smoothing. The sequence data length can be set as N. The two-level smoothing configuration can take the divisors N1, N2 of N, wherein N1, N2 satisfy the following formula:

[0120]

[0121] For three-level smoothing configuration, the divisors N1, N2, N3 of N can be taken, wherein N1, N2 satisfy the following formula:

[0122]

[0123] Similarly, for m-level configuration, the divisors N1 of N satisfy the following formula:

[0124]

[0125] For the above m-level hierarchical configuration, there are multiple options for N1. Generally, the minimum memory is taken as the target to select the configuration parameters. The configuration needs to satisfy the following formula:

[0126] .

[0127] The calculation amount used satisfies the following formula:

[0128] Addition:

[0129] Multiplication:

[0130] For a three-level smoothing configuration, the calculation amount used satisfies the following formula:

[0131] Addition:

[0132] Multiplication:

[0133] By analogy, for an m-level smoothing configuration, the calculation amount used satisfies the following formula:

[0134] Addition:

[0135] Multiplication: .

[0136] Step 2: Hierarchical smoothing compression storage initialization configuration:

[0137] Hierarchical smoothing data compression storage is to process the original sequence data according to a certain fixed data amount for multi-level smoothing, so that a group of sequence data becomes one data after multi-level smoothing for storage. First, according to different hierarchical selection, initialization configuration is carried out, including hierarchical smoothing level i, data amount N1, N2, … Ni of each level, array storage space A1[N1], A2[N2], … Ai[Ni], array space storage state flag Space_state_flag, data storage index state bit Index_stae, and final smoothing storage variable final_data.

[0138] Step 3: Original sequence data acquisition and storage:

[0139] Get the array IMU original sequence data imu_data, assign N1 original sequence data to the array space A1, until the array space A1 reaches the storage threshold, otherwise loop step 3.

[0140] Step 4: First-level smoothing compression storage:

[0141] After the array space A1 reaches the storage threshold, the state value of the first-level space storage state flag is updated, and according to the state value, the first-level smooth compression storage function is entered for smooth processing, and the returned data is assigned to the corresponding position of the array space A2 according to the first-level data storage index state bit, until the array space A2 reaches the storage threshold, otherwise step 4 is executed cyclically.

[0142] Step 5: second-level smooth compression storage:

[0143] After the array space A2 reaches the storage threshold, the state value of the second-level space storage state flag is updated, and according to the state value, the second-level smooth compression storage function is entered for smooth processing, and the returned data is assigned to the corresponding position of the array space A3 according to the second-level data storage index state bit, until the array space A3 reaches the storage threshold, otherwise step 5 is executed cyclically.

[0144] By analogy, the third, fourth, …, i-1 level configurations are performed according to the selected number of levels.

[0145] Step 6: i-level smooth compression storage:

[0146] After the array space Ai reaches the storage threshold, the state value of the i-level space storage state flag is updated, and according to the state value, the i-level smooth compression storage function is entered for smooth processing, and the returned data is assigned to the final smooth storage variable final_data.

[0147] Step 7: carrier motion state judgment and fault diagnosis:

[0148] According to the data stored in the final smooth storage variable final_data, the motion state of the carrier is judged, and if an abnormal phenomenon occurs in the array IMU, the final_data can be used to diagnose the fault of a certain IMU in the array IMU.

[0149] The above-described embodiments are only descriptions of the preferred modes of the present application, and do not limit the scope of the present application, and various modifications and improvements to the technical solutions of the present application made by those skilled in the art without departing from the design spirit of the present application shall fall within the protection scope of the present application as defined by the claims.

Claims

1. A method for real-time storage of array MEMS IMU data compression based on low storage and computation, characterized in that, The method comprises the following steps: S1, according to the sequence data length of the carrier , a set of i number of sub-data sequences are configured, and the data amount of each sub-data sequence is , and m-level smoothing processing is configured according to i. S2, set array storage space whose storage space is in one-to-one correspondence with the data volume one-to-one correspondence; S3, assigning the data volume of raw sequence data to the corresponding array storage space until the array storage space currently assigned raw sequence data reaches a storage threshold; S4, in the current array storage space After reaching the storage threshold, the state value of the corresponding i-th level space storage state flag bit is updated, and the corresponding i-th level smoothing compression storage function is entered according to the state value to obtain smoothed data. S5, the returned data is assigned to the corresponding position of the array space of the next level according to the corresponding i-th level data storage index state bit, and if there is no next level, the returned data is assigned to the final smoothing storage variable; wherein i is an integer not less than 1, m has the same value as i.​ In an m-stage configuration, The relationship between the satisfies the following equation: ; In the hierarchical configuration with m numerical determination, the configuration parameters of are selected, and the following formula needs to be satisfied: ; In the m-level smoothing configuration, the amount of calculation used satisfies the following formula: Addition: ; Multiplication: .

2. The low storage and computation based array MEMS IMU data compression real-time storage method according to claim 1, wherein, After step S5, the following steps are further included: S6, judging the motion state of the carrier according to the data stored in the final smoothing storage variable, and if the array MEMSIMU appears abnormal phenomenon, diagnosing the fault of a certain MEMSIMU in the array MEMSIMU according to the final smoothing storage variable.

Citation Information

Patent Citations

  • Method for extracting and encoding motion characteristics of digital retina of mobile camera

    CN110009739A

  • Information processor, compression method, and program

    JP2016091491A