Automatic phase error calibration method and system for self-adaptively controlling MEMS gyroscope
By using the phase error binary search algorithm and cascading full pass filter in MEMS gyroscope adaptive control, the problems of low phase error estimation accuracy and divergence of control errors are solved, and the engineering application of MEMS gyroscope adaptive control is realized.
Patent Information
- Application Number
- CN202510111147.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-23
- Publication Date
- 2025-04-25
AI Technical Summary
The existing MEMS gyroscope adaptive control method fails to effectively solve the problem of low estimation accuracy of phase error and unknown phase shift leading to divergence of control errors, making it difficult to implement engineering applications.
The phase error binary search algorithm is used to estimate the search range and optimal estimate of the phase error, and set a cascading full-pass filter with adjustable coefficients to realize automatic phase calibration of the adaptively controlled MEMS gyroscope.
It improves the estimation accuracy of phase error, effectively solves the problem of divergence of control errors caused by unknown phase shift, and realizes the engineering application of MEMS gyroscope adaptive control.
Smart Images

Figure CN119879987A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of MEMS gyroscope control, and in particular to an automatic phase error calibration method and system for adaptively controlling a MEMS gyroscope. Background Art
[0002] MEMS gyroscope is a micromechanical inertial sensor that uses the Coriolis effect to sense the angular motion of an object. With the advantages of low cost, small size, low power consumption and fast response, it is widely used in aerospace, autonomous driving, military industry, consumer electronics and other fields. At present, the force-balanced closed-loop type II rate gyroscope is the mainstream working mode of MEMS gyroscope, and has achieved good performance: zero bias stability (BI) <0.1° / h, angular rate random walk (ARW) <0.01° / h. However, the key performance of MEMS rate gyroscopes (such as BI, ARW) is usually limited by non-ideal factors such as noise, orthogonal error and frequency cracking, and it is difficult to reach the BI 0.001° / h inertial level.
[0003] In this regard, the introduction of modern control theory into the field of MEMS gyroscopes has formed a new adaptive control working mode. This adaptive control mode reduces the sensitivity of the gyroscope to environmental fluctuations by real-time estimating the damping coefficient matrix and stiffness coefficient matrix in the gyroscope system, thereby improving the long-term performance of the gyroscope. As traditional MEMS control methods approach their performance limits, this new adaptive control working mode has ushered in a research boom. Although this method has been proven to have good performance in theory or at the simulation level, it brings hope for performance breakthroughs in MEMS gyroscopes. However, existing studies generally use a more idealized gyroscope model, while ignoring the influence of key factors such as phase error. The estimation accuracy of the phase error is low, and the problem of control error divergence caused by unknown phase shift cannot be solved. To date, MEMS gyroscope adaptive control methods have not yet been applied in engineering.
[0004] Therefore, it is necessary to provide a technical solution for MEMS gyroscope adaptive control, which can improve the estimation accuracy of phase error, effectively solve the problem of control error divergence caused by unknown phase shift, and facilitate engineering application. Summary of the invention
[0005] To solve the above technical problems, the present invention provides an automatic phase error calibration method for adaptively controlling a MEMS gyroscope, comprising the following specific steps:
[0006] According to the composition of phase error and its influence on the performance of adaptive control gyro, the search range of phase error is estimated;
[0007] Using the search parameters and the search range as data input of a phase error binary search algorithm, running the phase error binary search algorithm, and outputting an optimal estimate of the phase error;
[0008] According to the optimal estimated value, the number of stages and coefficients of the cascaded all-pass filters with adjustable coefficients are set to obtain a cascaded filter module;
[0009] The automatic phase calibration of the adaptively controlled MEMS gyroscope is realized by the cascade filter module.
[0010] In a possible implementation, the search parameters include a maximum search number, a stop error, a control error evaluation function, a maximum control error, and an observation time.
[0011] In a possible implementation, running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps:
[0012] Initialize the low pointer, the middle pointer, and the high pointer in the search pointer group to the left boundary, the midpoint, and the right boundary of the search range, and set the initial value of the minimum control error;
[0013] A phase calibration step, performing phase calibration using the phase error value corresponding to the search pointer group, starting the gyro drive, obtaining the real-time control error, and obtaining the control error per second;
[0014] The control error per second is accumulated within the observation time range, and when the pointer search time reaches the set observation time, or the accumulated control error per second is greater than or equal to the maximum control error, the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second is waited for to be less than the maximum control error;
[0015] Obtaining the evaluation value of the search pointer group, updating the search pointer group, and when the value of the middle pointer changes, returning to the phase calibration step to continue the iterative search until the value of the middle pointer no longer changes, and updating the optimal estimated values of the minimum control error and the phase error;
[0016] When the number of searches is less than the maximum number of searches and the optimal estimate is greater than the stop error, the next search is performed and the phase calibration step is executed; otherwise, the optimal estimate is output.
[0017] In a possible implementation, the control error per second is expressed by the formula:
[0018]
[0019] Where t is the pointer search time, γ is the error gain, To control the error in real time.
[0020] In a possible implementation, when the search pointer group is updated, the update is performed according to the following formula:
[0021]
[0022] Among them, E l Indicates the evaluation value of the low pointer, E h Indicates the evaluation value of the high pointer, E m Indicates the evaluation value of the pointer, p l Indicates the value of the low pointer, p h Indicates the value of the high pointer, p m Indicates the value of the pointer.
[0023] In a possible implementation, the phase error is the sum of independent phase errors of analog-to-digital conversion delay, digital-to-analog conversion delay, transimpedance amplifier phase shift, driver phase shift, and calculation process delay.
[0024] In a possible implementation manner, the all-pass filter is a first-order look-ahead digital all-pass filter.
[0025] The present invention also provides an automatic phase error calibration system for adaptively controlling a MEMS gyroscope, comprising:
[0026] An estimation module, used for estimating a search range of a phase error according to the composition of the phase error and the degree of influence of the phase error on the performance of the adaptive control gyro;
[0027] A search module, used to use the search parameters and the search range as data input of a phase error binary search algorithm, run the phase error binary search algorithm, and output an optimal estimate of the phase error;
[0028] A setting module, used for setting the number of stages and coefficients of the cascaded all-pass filter with adjustable coefficients according to the optimal estimated value;
[0029] The cascade filter module is determined by the number of stages and the coefficients and is used to realize automatic phase calibration of an adaptively controlled MEMS gyroscope.
[0030] In a possible implementation, in an automatic phase error calibration system, the search parameters include a maximum search number, a stop error, a control error evaluation function, a maximum control error, and an observation time.
[0031] In a possible implementation, in an automatic phase error calibration system, running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps:
[0032] Initialize the low pointer, the middle pointer, and the high pointer in the search pointer group to the left boundary, the midpoint, and the right boundary of the search range, and set the initial value of the minimum control error;
[0033] A phase calibration step, performing phase calibration using the phase error value corresponding to the search pointer group, starting the gyro drive, obtaining the real-time control error, and obtaining the control error per second;
[0034] The control error per second is accumulated within the observation time range, and when the pointer search time reaches the set observation time, or the accumulated control error per second is greater than the maximum control error, the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second is waited to be less than the maximum control error;
[0035] Obtaining the evaluation value of the search pointer group, updating the search pointer group, and when the value of the middle pointer changes, returning to the phase calibration step to continue the iterative search until the value of the middle pointer no longer changes, and updating the optimal estimated values of the minimum control error and the phase error;
[0036] When the number of searches is less than the maximum number of searches and the optimal estimate is greater than the stop error, the next search is performed and the phase calibration step is executed; otherwise, the optimal estimate is output.
[0037] The technical solution provided by the present invention has at least the following beneficial effects:
[0038] By using the phase error binary search algorithm, the estimation accuracy of the phase error can be improved when it is difficult to obtain the exact value of the phase error, effectively solving the problem of control error divergence caused by unknown phase shift. At the same time, by designing a cascaded parameter-adjustable digital advance all-pass filter, the phase calibration of the adaptive control gyro is achieved without affecting the loop signal. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] Figure 1 A flowchart of an automatic phase error calibration method for adaptively controlling a MEMS gyroscope provided by an embodiment of the present invention;
[0040] Figure 2 A schematic diagram of an application of an automatic phase error calibration method for adaptively controlling a MEMS gyroscope provided by an embodiment of the present invention;
[0041] Figure 3 A principle block diagram of an automatic phase error calibration method for adaptively controlling a MEMS gyroscope provided in an embodiment of the present invention;
[0042] Figure 4A flow chart of a phase error binary search algorithm in an automatic phase error calibration method for adaptively controlling a MEMS gyroscope provided in an embodiment of the present invention. DETAILED DESCRIPTION
[0043] In order to deepen the understanding of the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. The embodiments are only used to explain the present invention and do not limit the protection scope of the present invention.
[0044] Please refer to Figures 1 to 4 The present invention provides an automatic phase error calibration method for adaptively controlling a MEMS gyroscope, comprising the following specific steps:
[0045] S100: estimating a search range of the phase error according to the composition of the phase error and its influence on the performance of the adaptive control gyro.
[0046] In this embodiment, when the adaptive control strategy is actually applied to the analog-digital hybrid MEMS gyro system, the phase error is a key non-ideal factor that cannot be ignored. The main sources are: analog-to-digital conversion delay (ADC), digital-to-analog conversion delay (DAC), transimpedance amplifier phase shift (TIA), driver phase shift (DA), calculation process delay (CPD), etc. The phase error of the gyro adaptive control system can be expressed as the sum of the above independent phase errors, which can be expressed as follows:
[0047]
[0048] The digital-to-analog conversion delay (ADC), digital-to-analog conversion delay (DAC), transimpedance amplifier phase shift (TIA), driver phase shift (DA), and calculation process delay (CPD) are all irrational factors, which are generally stable and easy to estimate. The digital-to-analog conversion delay (ADC), digital-to-analog conversion delay (DAC), and transimpedance amplifier phase shift (TIA) can be obtained from the selected chip data sheet, the driver phase shift (DA) can be obtained by consulting the data sheet or performing stimulus-response identification, and the calculation process delay (CPD) can be indirectly estimated by the processor's main frequency and the clock cycle required for calculation.
[0049] In a possible implementation, the phase error is the sum of independent phase errors of analog-to-digital conversion delay, digital-to-analog conversion delay, transimpedance amplifier phase shift, driver phase shift, and calculation process delay.
[0050] S200: using the search parameters and the search range as data input of a phase error binary search algorithm, running the phase error binary search algorithm, and outputting an optimal estimated value of the phase error.
[0051] In a possible implementation, the search parameters include a maximum search number, a stop error, a control error evaluation function, a maximum control error, and an observation time.
[0052] In this embodiment, the flow chart of the phase error binary search algorithm is as follows: Figure 4 The data input of the phase error binary search algorithm includes the phase error The search range ψ, stop error Maximum number of searches N, observation time t ob , Maximum control error E max Among them, the lower limit and upper limit of the search range ψ are expressed as and The data output of the phase error binary search algorithm is the phase error The best estimate of The control error evaluation function can be understood as the calculation function E(t) of the control error per second.
[0053] In a possible implementation, running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps:
[0054] S201: Initialize the low pointer p in the search pointer group l , middle pointer p m , high pointer p h The left boundary, midpoint and right boundary of the search range ψ are set, and the minimum control error E is set. min The initial value of .
[0055] Specifically expressed as: E min =∞.
[0056] S202: Phase calibration step, using the phase error value corresponding to the search pointer group to perform phase calibration, start gyro drive, and obtain real-time control error The real-time control error here is E(t). It can also be understood as drive error.
[0057] In a possible implementation, the control error per second is expressed by a formula (i.e., a control error evaluation function):
[0058]
[0059] Where t is the pointer search time, γ is the error gain, is the real-time control error. t can also be understood as the system running time. The function form of the control error E(t) per second can be understood as the control error evaluation function.
[0060] S203: at the observation time t ob The control error E(t) per second is accumulated within the range, and when the pointer search time t reaches the set observation time t ob , or the accumulated control error per second is greater than or equal to the maximum control error E max When the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second E(t) is waited for to be less than the maximum control error E max The control error E(t) per second is greater than or equal to the maximum control error E max When , it means that the gyro system has control. At this time, the gyro drive should be turned off immediately and wait for the control error E(t) per second to be less than the maximum control error E max Continue to execute the program. It should be noted that the accumulation here does not mean accumulation, but continuous recording.
[0061] S204: Obtain the search pointer group (p l ,p m ,p h )’s evaluation value (E l ,E m ,E h ), update the search pointer group (p l ,p m ,p h ), when the middle pointer p m When the value of changes, return to the phase calibration step to continue the iterative search until the middle pointer p m The value of no longer changes, and the minimum control error E is updated. min The optimal estimate of the phase error It should be pointed out that the pointer p m When the value of no longer changes, it is equivalent to p l 、p h It no longer changes.
[0062] S205: When the search times n is less than the maximum search times N and the optimal estimate value Greater than the stop error , enter the next search and execute the phase calibration step, otherwise output the optimal estimate value
[0063] It should be noted that the stop error Maximum number of searches N, observation time t ob The value of needs to be determined according to the actual engineering requirements. The typical value is: stop error The values are the expected phase search accuracy, the maximum number of searches N is greater than 20, and the observation time tob The value range is 1 to 10 seconds.
[0064] In a possible implementation, when the search pointer group is updated, the update is performed according to the following formula:
[0065]
[0066] Among them, E l Indicates the evaluation value of the low pointer, E h Indicates the evaluation value of the high pointer, E m Indicates the evaluation value of the pointer, p l Indicates the value of the low pointer, p h Indicates the value of the high pointer, p m Indicates the value of the pointer.
[0067] S300: According to the optimal estimation value, the number of stages and coefficients of the cascaded all-pass filters with adjustable coefficients are set to obtain a cascaded filter module.
[0068] In a possible implementation manner, the all-pass filter is a first-order look-ahead digital all-pass filter.
[0069] In this embodiment, a first-order leading digital all-pass filter is designed to adjust the phase without affecting the signal amplitude. The adjustable coefficient is expressed as k, and the transfer function is expressed as:
[0070]
[0071] Among them, by adjusting the coefficient k, its phase-frequency characteristics can be changed, and the lead compensation of a specific phase of the input signal can be achieved. By cascading a first-order lead digital all-pass filter, the phase lead compensation range can be expanded and the mapping linearity can be improved. Therefore, when the signal frequency is known (by reading the phase-locked loop frequency information), substitute the desired lead correction phase (i.e. the best estimate ), the coefficient k can be solved (such as Figure 3 The coefficients k in the equation include k1, k2, ..., k n , n is the number of stages). The coefficient k of the first-order leading digital all-pass filter is proportional to the leading phase The linear adjustment is generally 30°. The linear range and adjustment efficiency of the phase modulation of a single-stage all-pass filter are limited. Therefore, the linear phase modulation range is generally expanded by cascading filters. When the lead angle is 75°, three first-order leading digital all-pass filters can be cascaded to enable them to achieve 25° leading correction respectively.
[0072] It should be noted that the adaptive control strategy is very sensitive to phase error. Phase errors within a certain range will affect system performance (such as bandwidth and accuracy), and phase errors exceeding a certain threshold will directly cause system divergence. Conventional manual phase error estimation methods cannot meet accuracy requirements, which is the main problem faced by the adaptive control strategy in practical applications. The main purpose of this invention is to solve this problem.
[0073] S400: Implementing automatic phase calibration of an adaptively controlled MEMS gyroscope through the cascade filter module.
[0074] In this embodiment, in the automatic phase error calibration method for adaptively controlling a MEMS gyroscope, the application scenario of the automatic phase calibration is as follows: Figure 2 As shown, it specifically includes: adaptive control strategy (upper right dashed box part), MEMS vibrating gyroscope and peripheral circuit (lower left dashed box part), improved strategy for connecting the two (including the automatic phase error calibration method for adaptive control of MEMS gyroscope of the present invention, which is realized by the combination of automatic phase error calibration model and filter), etc. Among them, the classic adaptive control strategy includes reference model, parameter adaptive algorithm model, control rate generation model and some necessary operation units. The peripheral circuit of MEMS gyroscope mainly includes cross-group amplifier circuit (circuit voltage gain is K cv ), drive amplifier circuit (voltage to force gain is K vf ), ADC, DAC. The data transmission between the automatic phase error calibration model and the DAC has nothing to do with the automatic phase calibration method, but is related to the implementation of the automatic phase calibration technology. After the signal flows through the automatic phase error calibration model, the signal phase is corrected.
[0075] The principle framework of the automatic phase error calibration method for adaptively controlling a MEMS gyroscope in the present invention is as follows: Figure 3 As shown, it includes a phase search algorithm model, a phase calibration parameter solution module, a cascaded advanced all-pass filter module, and a signal flow and input and output nodes. The working principle of the automatic phase error calibration method is: the information input drives the phase search algorithm model to obtain a phase error estimate that meets the accuracy requirements. The phase error estimate is processed by the phase calibration parameter solution module to obtain the coefficients and series of the advanced all-pass filter in the cascaded advanced all-pass filter module. The configured cascaded advanced filter module (i.e. Figure 2 The filter in (A) is deployed at the output of the ADC to achieve automatic phase error calibration for the adaptive control MEMS gyroscope.
[0076] The present invention also provides an automatic phase error calibration system for adaptively controlling a MEMS gyroscope, comprising:
[0077] An estimation module, used for estimating a search range of a phase error according to the composition of the phase error and the degree of influence of the phase error on the performance of the adaptive control gyro;
[0078] A search module, used to use the search parameters and the search range as data input of a phase error binary search algorithm, run the phase error binary search algorithm, and output an optimal estimate of the phase error;
[0079] A setting module, used for setting the number of stages and coefficients of the cascaded all-pass filter with adjustable coefficients according to the optimal estimated value;
[0080] The cascade filter module is determined by the number of stages and the coefficients and is used to realize automatic phase calibration of an adaptively controlled MEMS gyroscope.
[0081] In a possible implementation, in an automatic phase error calibration system, the search parameters include a maximum search number, a stop error, a control error evaluation function, a maximum control error, and an observation time.
[0082] In a possible implementation, in an automatic phase error calibration system, running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps:
[0083] Initialize the low pointer, the middle pointer, and the high pointer in the search pointer group to the left boundary, the midpoint, and the right boundary of the search range, and set the initial value of the minimum control error;
[0084] A phase calibration step, performing phase calibration using the phase error value corresponding to the search pointer group, starting the gyro drive, obtaining the real-time control error, and obtaining the control error per second;
[0085] The control error per second is accumulated within the observation time range, and when the pointer search time reaches the set observation time, or the accumulated control error per second is greater than the maximum control error, the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second is waited to be less than the maximum control error;
[0086] Obtaining the evaluation value of the search pointer group, updating the search pointer group, and when the value of the middle pointer changes, returning to the phase calibration step to continue the iterative search until the value of the middle pointer no longer changes, and updating the optimal estimated values of the minimum control error and the phase error;
[0087] When the number of searches is less than the maximum number of searches and the optimal estimate is greater than the stop error, the next search is performed and the phase calibration step is executed; otherwise, the optimal estimate is output.
[0088] The above embodiments should not limit the present invention in any way, and any technical solutions obtained by equivalent replacement or equivalent conversion shall fall within the protection scope of the present invention.
Claims
1. An automatic phase error calibration method for adaptively controlling a MEMS gyroscope, characterized in that: The specific steps include: According to the composition of phase error and its influence on the performance of adaptive control gyro, the search range of phase error is estimated; Using the search parameters and the search range as data input of a phase error binary search algorithm, running the phase error binary search algorithm, and outputting an optimal estimate of the phase error; According to the optimal estimated value, the number of stages and coefficients of the cascaded all-pass filters with adjustable coefficients are set to obtain a cascaded filter module; The automatic phase calibration of the adaptively controlled MEMS gyroscope is realized by the cascade filter module.
2. The automatic phase error calibration method according to claim 1, characterized in that: The search parameters include maximum search times, stop error, control error evaluation function, maximum control error, and observation time.
3. The automatic phase error calibration method according to claim 2, characterized in that: Running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps: Initialize the low pointer, the middle pointer, and the high pointer in the search pointer group to the left boundary, the midpoint, and the right boundary of the search range, and set the initial value of the minimum control error; A phase calibration step, performing phase calibration using the phase error value corresponding to the search pointer group, starting the gyro drive, obtaining the real-time control error, and obtaining the control error per second; The control error per second is accumulated within the observation time range, and when the pointer search time reaches the set observation time, or the accumulated control error per second is greater than or equal to the maximum control error, the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second is waited for to be less than the maximum control error; Obtaining the evaluation value of the search pointer group, updating the search pointer group, and when the value of the middle pointer changes, returning to the phase calibration step to continue the iterative search until the value of the middle pointer no longer changes, and updating the optimal estimated values of the minimum control error and the phase error; When the number of searches is less than the maximum number of searches and the optimal estimate is greater than the stop error, the next search is performed and the phase calibration step is executed; otherwise, the optimal estimate is output.
4. The automatic phase error calibration method according to claim 3, characterized in that: The control error per second is expressed by the formula: Where t is the pointer search time, γ is the error gain, To control the error in real time.
5. The automatic phase error calibration method according to claim 3, characterized in that: When the search pointer group is updated, it is updated according to the following formula: Among them, E l Indicates the evaluation value of the low pointer, E h Indicates the evaluation value of the high pointer, E m Indicates the evaluation value of the pointer, p l Indicates the value of the low pointer, p h Indicates the value of the high pointer, p m Indicates the value of the pointer.
6. The automatic phase error calibration method according to claim 1, characterized in that: The phase error is the sum of independent phase errors of analog-to-digital conversion delay, digital-to-analog conversion delay, transimpedance amplifier phase shift, driver phase shift, and calculation process delay.
7. The automatic phase error calibration method according to claim 1, characterized in that: The all-pass filter is a first-order leading digital all-pass filter.
8. An automatic phase error calibration system for adaptively controlling a MEMS gyroscope, characterized in that: include: An estimation module, used for estimating a search range of a phase error according to the composition of the phase error and the degree of influence of the phase error on the performance of the adaptive control gyro; A search module, used to use the search parameters and the search range as data input of a phase error binary search algorithm, run the phase error binary search algorithm, and output an optimal estimate of the phase error; A setting module, used for setting the number of stages and coefficients of the cascaded all-pass filter with adjustable coefficients according to the optimal estimated value; The cascade filter module is determined by the number of stages and the coefficients and is used to realize automatic phase calibration of an adaptively controlled MEMS gyroscope.
9. The automatic phase error calibration system according to claim 8, characterized in that: The search parameters include maximum search times, stop error, control error evaluation function, maximum control error, and observation time.
10. The automatic phase error calibration system according to claim 9, characterized in that: Running the phase error binary search algorithm to output an optimal estimate of the phase error includes the following specific steps: Initialize the low pointer, the middle pointer, and the high pointer in the search pointer group to the left boundary, the midpoint, and the right boundary of the search range, and set the initial value of the minimum control error; A phase calibration step, performing phase calibration using the phase error value corresponding to the search pointer group, starting the gyro drive, obtaining the real-time control error, and obtaining the control error per second; The control error per second is accumulated within the observation time range, and when the pointer search time reaches the set observation time, or the accumulated control error per second is greater than the maximum control error, the gyro drive is turned off, the control error per second is used as the evaluation value of the low pointer, and the control error per second is waited to be less than the maximum control error; Obtaining the evaluation value of the search pointer group, updating the search pointer group, and when the value of the middle pointer changes, returning to the phase calibration step to continue the iterative search until the value of the middle pointer no longer changes, and updating the optimal estimated values of the minimum control error and the phase error; When the number of searches is less than the maximum number of searches and the optimal estimate is greater than the stop error, the next search is performed and the phase calibration step is executed; otherwise, the optimal estimate is output.