Inter-satellite laser communication attitude deviation compensation amount calculation method and system
By calculating and adjusting the attitude compensation amount of the laser terminal, the problem of laser communication failure caused by satellite attitude deviation is solved, and high-precision laser communication direction is achieved.
Patent Information
- Application Number
- CN202411583983.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-07
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2044-11-07
AI Technical Summary
The prior art is difficult to solve the problem that laser communication cannot be built chain due to satellite attitude deviation.
By judging the data type, including the attitude control management unit data, gyroscope data and current attitude, calculate the corresponding attitude compensation amount, and adjust the two-dimensional servo turntable of the laser terminal optical head to offset the satellite attitude deviation.
It realizes high-precision compensation for satellite attitude deviation, solves the problem that laser communication cannot be built in chains, and improves the direction accuracy of laser terminals.
Smart Images

Figure CN119544061A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of satellite laser communication technology, and in particular, relates to a method and system for calculating the compensation amount of attitude deviation in inter-satellite laser communication, and more particularly, to a method for calculating the compensation amount for offsetting attitude deviation in inter-satellite laser communication. Background Art
[0002] As satellite observation capabilities continue to increase, remote sensing technologies with high temporal resolution, high spatial resolution, and high spectral resolution are widely used. Satellite remote sensing generates the need for massive data transmission and downlink, but a single satellite that relies solely on microwave and relay terminal data communication is unable to meet the growing business needs. Therefore, intersatellite laser communication transmission and laser downlink of massive remote sensing data based on multiple satellites has become an inevitable trend for future development.
[0003] Compared with traditional satellite microwave communication, satellite laser communication, as a new communication method, has many advantages such as high transmission rate, large communication capacity, small size, light weight and high confidentiality. However, the pointing deviation of the laser terminal restricts the application and development of satellite laser communication engineering.
[0004] At present, existing technologies are unable to solve the problem of laser communication being unable to establish a link due to satellite attitude deviation.
[0005] Patent document CN104954069A discloses a satellite laser communication capture method based on signal light. The solution uses a capture and tracking mechanism to perform a double-ended spiral scanning method on the signal beam to complete the entire process of aiming, capturing and tracking, so that the capture detectors of the LEO and GEO satellites can detect the other party's light spot, and the light spot position is stably maintained at the center of the capture detectors of both parties, turning from tracking to communication. The premise of this method is based on the detection of the other party's light spot, and it cannot solve the problem of pointing deviation of the tracking mechanism.
[0006] Patent document CN106533562A discloses a space multi-user multi-standard satellite laser communication system and method, and provides a space multi-user multi-standard satellite laser communication system and method. The system includes a fine aiming deflection control mirror and a coarse aiming deflection control mirror. The method mentions that the system is designed with a coarse aiming control mirror and a fine aiming control mirror, but the control mirror pointing deviation is brought about to take into account the satellite attitude angle deviation.
[0007] Patent document CN102142899A discloses a satellite laser communication composite tracking and aiming vibration suppression device and control method. This scheme triggers the fine tracking and aiming system to perform compensation tracking and aiming for the randomly generated jitter signal through the corresponding switch, or triggers the composite system consisting of the coarse tracking and aiming system and the fine tracking and aiming system to perform compensation tracking and aiming, thereby realizing the time-sharing tracking and aiming compensation of the coarse tracking and aiming system and the fine tracking and aiming system, and improving the tracking and aiming efficiency. However, it can only eliminate the influence of micro-vibration of the satellite structure, and does not calculate and compensate for the laser pointing deviation caused by the satellite attitude deviation.
[0008] Literature "Satellite Intersatellite Laser Communication Coarse Tracking Turntable Control System" Wang Wenjie et al., Optical Precision Engineering 2021 Vol. 29 No. 12. A three-loop control model of the tracking system is established with a permanent magnet synchronous motor as the control object, and an adaptive gain control is proposed. The control adjustment time is shortened from 100ms to 70ms, and the steady-state accuracy is maintained at ±2.247μrad, which provides a theoretical basis for intersatellite laser communication tracking control for the realization of high-precision attitude compensation to offset attitude deviation engineering.
[0009] Reference "Compensation algorithm to reduce the impact of random vibration on satellite laser communication fiber coupling" Zhao Zhuo et al., Optical Communication Technology, Issue 12, 2020. Considering that the coupling reception process of space light-single-mode fiber is easily affected by satellite platform vibration and alignment error factors, the nutation algorithm and SPGD algorithm are used to make their convergence speed and coupling efficiency reach their respective optimal values at the optimal parameters, but the compensation algorithm does not consider the impact of satellite attitude deviation. Summary of the invention
[0010] In view of the defects in the prior art, the object of the present invention is to provide a method and system for calculating the attitude deviation compensation amount in inter-satellite laser communication.
[0011] According to the present invention, a method for calculating the compensation amount of attitude deviation in inter-satellite laser communication includes: determining a data type; the data type includes: attitude control management unit data, gyro data, and current attitude;
[0012] If the result is attitude control management unit data, the management unit data attitude angle calculation process will be entered;
[0013] If the result is gyro data, the gyro data attitude angle calculation process will be entered;
[0014] The result is the current posture, so let the current posture be the posture compensation amount;
[0015] If the result is not one of the above three situations, the attitude compensation output is set to zero.
[0016] Preferably, the data type is determined according to the status flag XZ_select;
[0017] Determine whether XZ_select is "AA", "55" or "A6". If the result is yes, XZ_select = "AA", then the data type is attitude control management unit data; XZ_select = "55", then the data type is gyro data; XZ_select = "A6", then the data type is current attitude;
[0018] Determine whether XZ_select is "AA", "55" or "A6". If not, set the attitude compensation output to zero.
[0019] The attitude compensation output is zero, and the expression is:
[0020] Qib_qin_A7_out=[1;0;0;0]
[0021] Among them, Qib_qin_A7_out represents the current posture compensation amount;
[0022] The attitude control management unit data includes: attitude quaternion Qib, body axis attitude angular velocity W;
[0023] The gyro data includes: angle increment fai, integration time T and angular velocity increment equivalent;
[0024] The management unit data attitude angle calculation process includes:
[0025] Step A1: Collect the attitude quaternion Qib and the body axis attitude angular velocity W;
[0026] Step A2: normalize the posture quaternion Qib, and then obtain the change quaternion of the current row posture according to the body axis posture angular velocity W;
[0027] Step A3: Calculating the attitude compensation amount according to the changed quaternion;
[0028] In step A2, the mathematical expression of the change quaternion is:
[0029]
[0030] Among them, q0 represents the input attitude quaternion Qib; represents the attitude angular velocity W matrix of the attitude control management unit; dq represents the changed quaternion;
[0031] In step A3, the expression of the posture compensation amount is:
[0032] q t =q0+dq×△t
[0033] Among them, q tIndicates the amount of attitude compensation; △t indicates the total time interval for the attitude control management unit data to give the compensation amount;
[0034] The mathematical expression of △t is:
[0035] △t=tlaser-t_compensate+in_step_s
[0036] Among them, tlaser represents the system time; t_compensate represents the time information corresponding to the attitude quaternion Qib; in_step_s represents the compensation amount calculation step length of the attitude control management unit for the next beat.
[0037] Preferably, the gyro data attitude angle calculation process includes:
[0038] Step B1: collecting gyro data;
[0039] Step B2: Calculate the gyro angular velocity according to the gyro data;
[0040] Step B3: Based on the gyro angular velocity, the gyro drift is removed to obtain the inertial three-axis angular velocity of the satellite body;
[0041] Step B4: judging whether the number of gyro data iterations NT is greater than 30 according to the inertial three-axis angular velocity of the satellite body, if yes, marking the system fault; if no, iterating the gyro data to obtain the gyro data compensation amount;
[0042] In step B2, the expression of the gyro angular velocity is:
[0043] Bybt = 1000 × (angle increment fai × angular velocity increment equivalent) / integration time T
[0044] Where, Bybt represents the body angular velocity output by the gyroscope, that is, the angular velocity of the gyroscope;
[0045] In step B3, the expression for deducting the gyro drift is:
[0046] Wby=Bybt-byb
[0047] Wherein, Wby represents the body angular velocity correction value output by the gyro; byb represents the drift value calibrated by the gyro;
[0048] The inertial three-axis angular velocity of the star body is expressed as:
[0049] Wib_gxd=A_g_bi×[Wby]
[0050] Among them, A_g_bi is the installation matrix of the gyroscope, Wib_gxd is the inertial three-axis angular velocity of the satellite body; [Wby] represents the vector form of the body angular velocity correction value output by the gyroscope;
[0051] In step B4, let Wib_gxd(N) represent the most recent 30 gyro data, N represents the number of gyro data, N≤30; let the attitude quaternion Qib be the initial value of iteration, and iterate through each beat of gyro data Wib_gxd(N), the mathematical expression is:
[0052] dq(N)=0.5×Wib_gxd(N)×q N
[0053] Among them, dq(N) is the quaternion changed per iteration; q N Represents the iteration result quaternion;
[0054] The mathematical expression of the gyro data compensation amount is:
[0055] q tg =q N +dq(N)×0.01
[0056] Among them, q tg is the gyro data compensation amount.
[0057] Preferably, in step B4, when NT=1, the iterative expression is:
[0058] dq(N)=0.5×Wib_gxd(N)×q N+1
[0059] Among them, q N+1 Represents the quaternion obtained by recursively deducing the N+1th gyroscope data;
[0060] q tg =q N +dq(N)×TT
[0061] Wherein, TT represents the total time interval for the gyro data to give the compensation value;
[0062] The expression of TT is:
[0063] TT=tlaser-t_compensate+in_step_sg
[0064] Among them, in_step_sg is the compensation calculation step length of the attitude control management unit for the next beat;
[0065] Normalize the gyro data source compensation to obtain the gyro data source output attitude compensation;
[0066] The mathematical expression of the attitude compensation amount output by the gyro data source is:
[0067] Qib_out_q_g_new=q tg . / norm(q tg )
[0068] Wherein, Qib_out_q_g_new represents the attitude compensation output by the gyro data source; the symbol · represents element-by-element division.
[0069] Preferably, when the data type is the current posture, let the current posture be the posture information; the expression of the posture information is:
[0070] Qib_qin=Qib. / norm(Qib)
[0071] Among them, Qib_qin represents the given attitude information compensation; norm(Qib) represents the norm calculation of vector Qib; Qib represents the current attitude information quaternion vector;
[0072] Assigning the posture information to the current posture compensation amount;
[0073] The current posture compensation amount, that is, the data type is the posture compensation amount under the current posture;
[0074] The current posture compensation amount is expressed as:
[0075] Qib_qin_A6_out=Qib_qin
[0076] Among them, Qib_qin_A6_out represents the current posture compensation amount.
[0077] A system for calculating an attitude deviation compensation amount for inter-satellite laser communication provided by the present invention comprises:
[0078] Determine the data type; the data type includes: attitude control management unit data, gyroscope data, current attitude;
[0079] If the result is attitude control management unit data, the management unit data attitude angle calculation module is triggered;
[0080] If the result is gyro data, the gyro data attitude angle calculation module is triggered;
[0081] The result is the current posture, so let the current posture be the posture compensation amount;
[0082] If the result is not one of the above three cases, the attitude compensation output is set to zero.
[0083] Preferably, the data type is determined according to the status flag, i.e., XZ_select;
[0084] Determine whether XZ_select is "AA", "55" or "A6". If the result is yes, XZ_select = "AA", then the data type is attitude control management unit data; XZ_select = "55", then the data type is gyro data; XZ_select = "A6", then the data type is current attitude;
[0085] Determine whether XZ_select is "AA", "55" or "A6". If not, set the attitude compensation output to zero.
[0086] The attitude compensation output is zero, and the expression is:
[0087] Qib_qin_A7_out=[1;0;0;0]
[0088] Among them, Qib_qin_A7_out represents the current posture compensation amount;
[0089] The attitude control management unit data includes: attitude quaternion Qib, body axis attitude angular velocity W;
[0090] The management unit data attitude angle calculation module includes:
[0091] Module A1: collect attitude quaternion Qib and body axis attitude angular velocity W;
[0092] Module A2: Normalize the posture quaternion Qib, and then obtain the change quaternion of the current row posture according to the body axis posture angular velocity W;
[0093] Module A3: Calculating the attitude compensation amount according to the changed quaternion;
[0094] In the module A2, the mathematical expression of the change quaternion is:
[0095]
[0096] Among them, q0 represents the input attitude quaternion Qib; represents the attitude angular velocity W matrix of the attitude control management unit; dq represents the changed quaternion;
[0097] In the module A3, the expression of the posture compensation amount is:
[0098] q t =q0+dq×△t
[0099] Among them, q t Indicates the amount of attitude compensation; △t indicates the total time interval for the attitude control management unit data to give the compensation amount;
[0100] The mathematical expression of △t is:
[0101] △t=tlaser-t_compensate+in_step_s
[0102] Among them, tlaser represents the system time; t_compensate represents the time information corresponding to the attitude quaternion Qib; in_step_s represents the compensation amount calculation step length of the attitude control management unit for the next beat.
[0103] Preferably, the gyro data attitude angle calculation module includes:
[0104] Module B1: collect gyro data;
[0105] Module B2: Calculate the gyro angular velocity based on the gyro data;
[0106] Module B3: Based on the gyro angular velocity, the gyro drift is removed to obtain the inertial three-axis angular velocity of the satellite body;
[0107] Module B4: According to the inertial three-axis angular velocity of the satellite body, determine whether the number of gyro data iterations NT is greater than 30. If the result is yes, mark the system fault; if the result is no, iterate the gyro data to calculate the gyro data compensation amount;
[0108] In the module B2, the expression of the gyro angular velocity is:
[0109] Bybt = 1000 × (angle increment fai × angular velocity increment equivalent) / integration time T
[0110] Where, Bybt represents the body angular velocity output by the gyroscope, that is, the angular velocity of the gyroscope;
[0111] In the module B3, the expression for deducting the gyro drift is:
[0112] Wby=Bybt-byb
[0113] Wherein, Wby represents the body angular velocity correction value output by the gyro; byb represents the drift value calibrated by the gyro;
[0114] The inertial three-axis angular velocity of the star body is expressed as:
[0115] Wib_gxd=A_g_bi×[Wby]
[0116] Among them, A_g_bi is the installation matrix of the gyroscope, Wib_gxd is the inertial three-axis angular velocity of the satellite body; [Wby] represents the vector form of the body angular velocity correction value output by the gyroscope;
[0117] In the module B4, let Wib_gxd(N) represent the latest 30 gyro data, N represents the number of gyro data, N≤30; let the attitude quaternion Qib be the initial value of iteration, and iterate through each beat of gyro data Wib_gxd(N), the mathematical expression is:
[0118] dq(N)=0.5×Wib_gxd(N)×q N
[0119] Among them, dq(N) is the quaternion changed per iteration; q N Represents the iteration result quaternion;
[0120] The mathematical expression of the gyro data compensation amount is:
[0121] q tg =q N +dq(N)×0.01
[0122] Among them, q tg is the gyro data compensation amount.
[0123] Preferably, in the module B4, when NT=1, the iterative expression is:
[0124] dq(N)=0.5×Wib_gxd(N)×q N+1
[0125] Among them, q N+1 Represents the quaternion obtained by recursively deducing the N+1th gyroscope data;
[0126] q tg =q N +dq(N)×TT
[0127] Wherein, TT represents the total time interval for the gyro data to give the compensation value;
[0128] The expression of TT is:
[0129] TT=tlaser-t_compensate+in_step_sg
[0130] Among them, in_step_sg is the compensation calculation step length of the attitude control management unit for the next beat;
[0131] Normalize the gyro data source compensation to obtain the gyro data source output attitude compensation;
[0132] The mathematical expression of the attitude compensation amount output by the gyro data source is:
[0133] Qib_out_q_g_new=q tg . / norm(qtg )
[0134] Wherein, Qib_out_q_g_new represents the attitude compensation output by the gyro data source; the symbol · represents element-by-element division.
[0135] Preferably, when the data type is the current posture, let the current posture be the posture information; the expression of the posture information is:
[0136] Qib_qin=Qib. / norm(Qib)
[0137] Among them, Qib_qin represents the given attitude information compensation; norm(Qib) represents the norm calculation of vector Qib; Qib represents the current attitude information quaternion vector;
[0138] Assigning the posture information to the current posture compensation amount;
[0139] The current posture compensation amount, that is, the data type is the posture compensation amount under the current posture;
[0140] The current posture compensation amount is expressed as:
[0141] Qib_qin_A6_out=Qib_qin
[0142] Among them, Qib_qin_A6_out represents the current posture compensation amount.
[0143] Compared with the prior art, the present invention has the following beneficial effects:
[0144] 1. The present invention is used for high-precision pointing and aiming of laser terminals, solving the problem of failure to establish a laser communication link due to satellite attitude deviation.
[0145] 2. When the method of the present invention is used for coplanar or non-coplanar high-orbit and low-orbit satellite laser communications, the attitude deviation caused by the satellite body is offset in the form of attitude compensation by adjusting the two-dimensional servo turntable of the laser terminal optical head.
[0146] 3. The present invention determines the compensation amount according to the attitude control management unit data, gyro data and current attitude, which can not only eliminate the influence of micro-vibration of the satellite structure, but also calculate and compensate for the laser pointing deviation caused by the satellite attitude deviation. BRIEF DESCRIPTION OF THE DRAWINGS
[0147] Other features, objects and advantages of the present invention will become more apparent from the detailed description of non-limiting embodiments made with reference to the following drawings:
[0148] Figure 1 The main flow chart provided by the present invention;
[0149] Figure 2 A schematic diagram of the calculation process of the data source compensation amount of the attitude control management unit provided by the present invention;
[0150] Figure 3 A schematic diagram of the high-frequency gyro data source compensation calculation process provided by the present invention. DETAILED DESCRIPTION
[0151] The present invention is described in detail below in conjunction with specific embodiments. The following embodiments will help those skilled in the art to further understand the present invention, but are not intended to limit the present invention in any form. It should be noted that, for those of ordinary skill in the art, several changes and improvements can also be made without departing from the concept of the present invention. These all belong to the protection scope of the present invention.
[0152] The present invention relates to a satellite laser communication servo turntable control algorithm, which is used for coplanar or non-coplanar high-orbit and low-orbit satellite laser communications. By adjusting the two-dimensional servo turntable of the laser terminal optical head, the attitude deviation caused by the satellite body is offset in the form of attitude compensation.
[0153] In other words, the method for calculating the compensation amount of inter-satellite laser communication attitude deviation provided by the present invention includes:
[0154] Step 1: Select the attitude compensation data source;
[0155] Specifically, when XZ_select = "AA" indicates the use of attitude control management unit data, XZ_select = "55" indicates the use of gyro data, and XZ_select = "A6" indicates the use of the current attitude, otherwise a zero compensation amount is given;
[0156] Step 2: Get high-precision attitude quaternion Qib;
[0157] Step 3: Calculate the data source compensation of the attitude control management unit;
[0158] Step 4: Obtain high-frequency gyro data fai and perform data preprocessing;
[0159] Step 5: Determine the number of gyro data iterations NT based on the time difference and determine the data validity;
[0160] Step 6: Calculate the gyro data source compensation;
[0161] Step 7: The current posture is assigned to the posture compensation amount; in other words, when XZ_select = "A6", the input current posture quaternion is normalized and assigned to the posture compensation amount;
[0162] Step 8: The attitude compensation output is assigned to zero; in other words, when XZ_select is not a value as mentioned above, the attitude compensation output is assigned to zero.
[0163] Specifically, in step 1:
[0164] Step 1.1: When the status flag XZ_select = "AA", it indicates that the attitude control management unit data is used, including high-precision attitude quaternion Qib, body axis attitude angular velocity W and corresponding time information, which are output to the onboard computer through the high-speed serial port of the attitude and orbit control subsystem management unit. The attitude quaternion Qib, namely Qib0, Qib1, Qib2 and Qib3, and the body axis attitude angular velocity W are 32-bit floating point numbers, namely Wc_x, Wc_y and Wc_z; the time information corresponding to the 32-bit floating point number is a 16-bit day count and a 32-bit 0.1 millisecond count. The high precision specifically refers to the attitude determination accuracy better than 3 arc seconds.
[0165] Step 1.2: The attitude control management unit updates data at a frequency of 10 Hz. The onboard computer verifies the data after acquisition and stores it in the cache state space if it is valid.
[0166] Step 1.3: XZ_select = "55" means using gyro data, including sampling angle increment fai, integration time T and angular velocity increment equivalent; wherein, the angular velocity increment equivalent is calibrated by a single machine and output to the onboard computer through the gyro high-speed serial port, and the main body three-axis angle increment fai is a 3-byte complement code, namely fai_x, fai_y and fai_z; the 3-byte complement code corresponds to T_x, T_y and T_z of the main body three-axis integration time T, respectively, and the unit is 1ms.
[0167] Step 1.4: The attitude control management unit data update frequency is 100Hz. The onboard computer verifies the acquired data and stores it in the cache state space if the data is valid.
[0168] Step 1.5: XZ_select = "A6" means using the current posture, normalizing the posture quaternion Qib in step 1.1, namely Qib0, Qib1, Qib2 and Qib3, as the compensation amount to adjust the two-dimensional servo turntable of the laser terminal optical head.
[0169] Step 1.6: When XZ_select is not a value mentioned above, the attitude compensation output is assigned to zero.
[0170] Specifically, in step 2:
[0171] 2.1: Get the system clock tlaser in seconds and normalize the attitude quaternion Qib;
[0172] 2.2: Use the attitude quaternion equation to obtain the current row attitude change quaternion, the expression is:
[0173]
[0174] Among them, q0 represents the input attitude quaternion Qib; represents the attitude angular velocity W matrix of the attitude control management unit; dq represents the changed quaternion.
[0175] Specifically, in step 3:
[0176] 3.1: Calculate the attitude compensation amount for the next shot using the attitude control management unit data source. The expression is:
[0177] q t =q0+dq×△t
[0178] Among them, △t represents the total time interval of the compensation amount given by the management unit data, and the mathematical expression is:
[0179] △t=tlaser-t_compensate+in_step_s
[0180] Among them, tlaser represents the system time, t_compensate is the time information corresponding to the quaternion Qib in step 1.1; in_step_s is the calculation step length of the compensation amount of the attitude control management unit for the next shot, the system defaults to 50ms, q t It is the data source compensation of the attitude control management unit.
[0181] Specifically, in step 4:
[0182] 4.1: Substituting the angle increment fai, integration time T, and angular velocity increment in step 1.3, we can obtain the gyro angular velocity output of the satellite body relative to the inertial system angular velocity, that is, the relationship is:
[0183] Bybt = 1000 × (angle increment fai × angular velocity increment equivalent) / integration time T
[0184] Wherein, Bybt represents the body angular velocity output by the gyroscope.
[0185] 4.2: Subtract gyro drift: Wby=Bybt-byb, where byb represents the drift of the gyro calibration and Wby represents the body angular velocity correction value output by the gyro.
[0186] 4.3: Get the three-axis angular velocity of the star body inertia, the expression is:
[0187] Wib_gxd=A_g_bi×[Wby]
[0188] Among them, A_g_bi is the installation matrix of the gyroscope, Wib_gxd is the three-axis angular velocity of the satellite body inertia; [Wby] represents the vector form of the body angular velocity correction value output by the gyroscope.
[0189] 4.4: The onboard computer stores the latest 30 gyro data in the state space for a long time, which is represented by Wib_gxd(N), where N represents the number of gyro data, N≤30, N=30, 29, …, 1. When N=1, it means the latest gyro data is stored.
[0190] Specifically, in step 5:
[0191] 5.1: Determine the number of gyro data iterations NT based on the time difference. NT is an integer multiple of 0.01 of the difference between the system time tlaser and the quaternion time t_compensate. When NT>30, it is determined that the attitude quaternion is not updated and the system fault flag is set.
[0192] Specifically, in step 6:
[0193] 6.1: Calculate the compensation of the gyro data source, and use the attitude quaternion Qib of the attitude control management unit as the initial value of the iteration. When NT≤30, use the gyro data Wib_gxd(N) of each beat to iterate. The expression is:
[0194] dq(N)=0.5×Wib_gxd(N)×q N
[0195] q tg =q N +dq(N)×0.01
[0196] Among them, q N The quaternion of the iteration result, the initial value is the attitude quaternion Qib, dq(N) is the quaternion change per iteration, q tg is the gyro data compensation amount.
[0197] 6.2: When NT=1, it is the latest gyro one-shot data iteration, and the iteration form is:
[0198] dq(N)=0.5×Wib_gxd(N)×q N+1
[0199] q tg =q N +dq(N)×TT
[0200] Among them, TT represents the total time interval of the gyro data giving the compensation amount, and the expression is:
[0201] TT=tlaser-t_compensate+in_step_sg
[0202] Among them, in_step_sg is the calculation step length of the next compensation amount of the attitude control management unit. The system defaults to 5ms, q tg The compensation amount for the gyro data source.
[0203] Specifically, in step 7:
[0204] 7.1: The current posture is assigned to the posture compensation;
[0205] 9. Step 8 comprises:
[0206] 8.1: The attitude compensation output is assigned to zero.
[0207] Specifically, in step 1: the attitude compensation data source selection flag XZ_select is a ground note number variable, as shown in Table 1 below, and the default value is XZ_select = "0xAA"
[0208] Table 1 Selection flag XZ_select
[0209]
[0210] The data formats of high-precision attitude quaternion Qib, body axis attitude angular velocity W and corresponding time information are shown in Table 2. The onboard computer obtains the data through the serial port and then performs a sum check. After the data is valid, it is stored in the cache state space.
[0211] Table 2 shows the management unit data format
[0212]
[0213] The attitude quaternion Qib is the quaternion of the satellite system relative to the inertial system;
[0214] The body axis attitude angular velocity W, that is, the attitude angular velocity of the satellite system relative to the inertial system in the system;
[0215] The content and format of the gyro high-speed serial port output are shown in Table 3. The update frequency is 100 Hz, and the data is stored in the cache state space after it is valid.
[0216] Table 3 shows the gyro data format
[0217]
[0218]
[0219] The gyro angular velocity increment equivalent of a certain satellite is calibrated to 2.231944e-5 after single-machine calibration, and is output to the onboard computer through the gyro high-speed serial port. The three-axis angle increment fai of the main body is a 3-byte complement code, namely fai_x, fai_y and fai_z; the 3-byte complement code corresponds to T_x, T_y and T_z of the three-axis integration time T of the main body, respectively, and the unit is 1ms.
[0220] XZ_select = "A6" means using the current posture. The quaternion normalization form is: Qib_qin = Qib. / norm(Qib), Qib_qin_A6_out = Qib_qin, Qib_qin represents the compensation amount of the given posture information, Qib_qin_A6_out represents outputting the current posture as the compensation amount to adjust the two-dimensional servo turntable of the laser terminal optical head.
[0221] Specifically, in step 2, the normalization of quaternion Qib is the same as step 1.
[0222] The attitude angular velocity W matrix is expressed as: wc_x = w(1); wc_y = w(2); wc_z = w(3);
[0223] Wherein, wc_x, wc_y and wc_z represent the angular velocities of the satellite body on the x, y and z axes respectively; w(1), w(2) and w(3) represent the first, second and third elements of the attitude angular velocity matrix W respectively;
[0224]
[0225] Specifically, in step 3, the quaternion of the current row posture change is expressed as:
[0226]
[0227] Among them, q0 = Qib_qin, the next shot posture compensation amount, q t =q0+dq×△t; the expression of △t is:
[0228] △t=tlaser-t_compensate+in_step_s
[0229] Where, tlaser represents the system time, t_compensate = 50ms, Qib_qin_out = q t Qib_qin_out indicates that the management unit data source outputs the attitude compensation amount to adjust the two-dimensional servo turntable of the laser terminal optical head.
[0230] Specifically, the step 4 includes: the body angular velocity Bybt output by the gyroscope includes: Bybt1, Bybt2 and Bybt3;
[0231] Bybt1=1000×(fai_x(N)×fai_x_peld) / T_x(N)
[0232] Bybt2=1000×(fai_y(N)×fai_y_peld) / T_y(N)
[0233] Bybt3=1000×(fai_z(N)×fai_z_peld) / T_z(N)
[0234] Among them, Bybt1, Bybt2 and Bybt3 represent the output of the X-axis, Y-axis and Z-axis of the gyroscope body respectively; N represents the number of gyroscope data, N≤30, N=30, 29, ..., 1, when N=1, it means storing the latest gyroscope data, fai_x_peld, fai_y_peld, fai_z_peld are the equivalent of the angular velocity increment of the X, Y, Z axes of the body, T_x(N), T_y(N), T_z(N) are the three-axis integration time of X, Y, Z of the Nth data body.
[0235] Subtract gyro drift, the specific form is as follows:
[0236] Wby1=Bybt1-byb1
[0237] Wby2=Bybt2-byb2
[0238] Wby3=Bybt3-byb3
[0239] Among them, byb1, byb2 and byb3 are respectively a gyro drift, another gyro drift and another gyro drift, which are obtained through ground calibration, and Wby1, Wby2 and Wby3 respectively represent the X, Y and Z three-axis outputs of the gyro body minus the drift.
[0240] The inertial three-axis angular velocity of the star body Wib_gxd is expressed as:
[0241] Wib_gxd=A_g_bi×[Wby]
[0242] Among them, A_g_bi is the installation matrix of the gyroscope. Taking a certain satellite as an example, the installation position is obtained:
[0243] A_g_bi=[0,0,1,0;-1,0,0,0;0,-1,0,0]
[0244] Among them, the installation deviation can be revised through the installation matrix A_g_bi;
[0245] Specifically, step 5 includes: iterating the gyro data NT times, where NT is an integer multiple of 0.01 of the difference between the system time tlaser and the quaternion time t_compensate, and the mathematical expression of NT is:
[0246] NT=ceil((tlaser_s-t_compensate_s) / 0.01)
[0247] When NT>30, it means that the attitude quaternion data of the attitude and orbit control management unit has not been received, the gyro has no iterative attitude reference, and the fault flag is set.
[0248] Specifically, the step 6 includes: when NT≤30, the attitude quaternion Qib of the attitude control management unit is used as the initial value of the iteration, and the gyro data Wib_gxd(N) of each beat is used for iteration;
[0249] dq(N)=0.5×Wib_gxd(N)×q N
[0250] q tg =q N +dq(N)×0.01
[0251] Among them, q N The quaternion of the iteration result, the initial value is Qib, dq(N) is the quaternion of each iteration change, q tg is the gyro data compensation amount.
[0252] When NT=1, it is the latest gyro one-shot data iteration, and the iteration form is:
[0253] dq(N)=0.5×Wib_gxd(N)×q N+1
[0254] q tg =q N +dq(N)×TT
[0255] Among them, TT represents the total time interval of the gyro data giving the compensation amount, and the expression is:
[0256] TT=tlaser-t_compensate+in_step_sg
[0257] in_step_sg is the calculation step length of the next compensation amount of the attitude control management unit. The system defaults to 5ms. tg is the gyro data source compensation, normalized to:
[0258] Qib_out_q_g_new=q tg· / norm(q tg )
[0259] Among them, Qib_out_q_g_new represents the output attitude compensation of the gyro data source, which adjusts the two-dimensional servo turntable of the laser terminal optical head; norm(q tg ) represents the norm calculation of the gyro data compensation amount; the symbol · represents element-by-element division. Specifically, it is a grammatical sentence in Matlab. C=A. / B and C=rdivide(A,B) have the same usage, indicating that the article is matrix and scalar division.
[0260] Specifically, step 7 includes: obtaining attitude and track control management unit data, including: timestamp t_compensate, attitude quaternion Qib, normalizing the attitude quaternion Qib, and obtaining attitude information; the expression of the attitude information is:
[0261] Qib_qin=Qib. / norm(Qib)
[0262] Among them, norm(Qib) represents the norm calculation of vector Qib; Qib represents the quaternion vector of current posture information;
[0263] Assign the attitude information Qib_qin to the attitude compensation amount, the expression is:
[0264] Qib_qin_A6_out=Qib_qin
[0265] Among them, Qib_qin_A6_out represents the current posture compensation amount.
[0266] Specifically, in step 8, the attitude compensation output is assigned to zero, and the expression is:
[0267] Qib_qin_A7_out=[1;0;0;0]
[0268] Among them, Qib_qin_A7_out represents the current posture compensation amount.
[0269] The present invention also provides an inter-satellite laser communication attitude deviation compensation calculation system, which can be implemented by executing the process steps of the inter-satellite laser communication attitude deviation compensation calculation method, that is, those skilled in the art can understand the inter-satellite laser communication attitude deviation compensation calculation method as a preferred implementation of the inter-satellite laser communication attitude deviation compensation calculation system.
[0270] A system for calculating an attitude deviation compensation amount for inter-satellite laser communication provided by the present invention comprises:
[0271] Determine the data type; the data type includes: attitude control management unit data, gyroscope data, current attitude;
[0272] If the result is attitude control management unit data, the management unit data attitude angle calculation module is triggered;
[0273] If the result is gyro data, the gyro data attitude angle calculation module is triggered;
[0274] The result is the current posture, so let the current posture be the posture compensation amount;
[0275] If the result is not one of the above three situations, the attitude compensation output is set to zero.
[0276] Those skilled in the art know that, in addition to realizing the system and its various devices, modules, and units provided by the present invention in a purely computer-readable program code, it is entirely possible to realize the same functions in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, the system and its various devices, modules, and units provided by the present invention can be considered as a hardware component, and the devices, modules, and units included therein for realizing various functions can also be regarded as structures within the hardware component; the devices, modules, and units for realizing various functions can also be regarded as both software modules for realizing the method and structures within the hardware component.
[0277] The above describes the specific embodiments of the present invention. It should be understood that the present invention is not limited to the above specific embodiments, and those skilled in the art can make various changes or modifications within the scope of the claims, which does not affect the essence of the present invention. In the absence of conflict, the embodiments of the present application and the features in the embodiments can be combined with each other arbitrarily.
Claims
1. A method for calculating the compensation amount of intersatellite laser communication attitude deviation, characterized in that: include: Determine the data type; The data types include: attitude control management unit data, gyroscope data, and current attitude; If the result is attitude control management unit data, the management unit data attitude angle calculation process will be entered; If the result is gyro data, the gyro data attitude angle calculation process will be entered; The result is the current posture, so let the current posture be the posture compensation amount; If the result is not one of the above three situations, the attitude compensation output is set to zero.
2. The method for calculating the compensation amount of inter-satellite laser communication attitude deviation according to claim 1 is characterized in that: Determine the data type based on the status flag XZ_select; Determine whether XZ_select is "AA", "55" or "A6". If the result is yes, XZ_select = "AA", then the data type is attitude control management unit data; XZ_select = "55", then the data type is gyro data; XZ_select = "A6", then the data type is current attitude; Determine whether XZ_select is "AA", "55" or "A6". If not, set the attitude compensation output to zero. The attitude compensation output is zero, and the expression is: Qib_qin_A7_out=[1;0;0;0] Among them, Qib_qin_A7_out represents the current posture compensation amount; The attitude control management unit data includes: attitude quaternion Qib, body axis attitude angular velocity W; The gyro data includes: angle increment fai, integration time T and angular velocity increment equivalent; The management unit data attitude angle calculation process includes: Step A1: Collect the attitude quaternion Qib and the body axis attitude angular velocity W; Step A2: normalize the posture quaternion Qib, and then obtain the change quaternion of the current row posture according to the body axis posture angular velocity W; Step A3: Calculating the attitude compensation amount according to the changed quaternion; In step A2, the mathematical expression of the change quaternion is: dq=0.5×ω×q0 Wherein, q0 represents the input attitude quaternion Qib; ω represents the attitude angular velocity W matrix of the attitude control management unit; dq represents the changed quaternion; In step A3, the expression of the posture compensation amount is: q t =q0+dq×△t Among them, q t Indicates the amount of attitude compensation; △t indicates the total time interval for the attitude control management unit data to give the compensation amount; The mathematical expression of △t is: △t=tlaser-t_compensate+in_step_s Among them, tlaser represents the system time; t_compensate represents the time information corresponding to the attitude quaternion Qib; in_step_s represents the compensation amount calculation step length of the attitude control management unit for the next beat.
3. The method for calculating the compensation amount of inter-satellite laser communication attitude deviation according to claim 3 is characterized in that: The gyro data attitude angle calculation process includes: Step B1: collecting gyro data; Step B2: Calculate the gyro angular velocity according to the gyro data; Step B3: Based on the gyro angular velocity, the gyro drift is removed to obtain the inertial three-axis angular velocity of the satellite body; Step B4: judging whether the number of gyro data iterations NT is greater than 30 according to the inertial three-axis angular velocity of the satellite body, if yes, marking the system fault; if no, iterating the gyro data to obtain the gyro data compensation amount; In step B2, the expression of the gyro angular velocity is: Bybt = 1000 × (angle increment fai × angular velocity increment equivalent) / integration time T Where, Bybt represents the body angular velocity output by the gyroscope, that is, the angular velocity of the gyroscope; In step B3, the expression for deducting the gyro drift is: Wby=Bybt-byb Wherein, Wby represents the body angular velocity correction value output by the gyro; byb represents the drift value calibrated by the gyro; The inertial three-axis angular velocity of the star body is expressed as: Wib_gxd=A_g_bi×[Wby] Among them, A_g_bi is the installation matrix of the gyroscope, Wib_gxd is the inertial three-axis angular velocity of the satellite body; [Wby] represents the vector form of the body angular velocity correction value output by the gyroscope; In step B4, let Wib_gxd(N) represent the most recent 30 gyro data, N represents the number of gyro data, N≤30; let the attitude quaternion Qib be the initial value of iteration, and iterate through each beat of gyro data Wib_gxd(N), the mathematical expression is: dq(N)=0.5×Wib_gxd(N)×q N Among them, dq(N) is the quaternion changed per iteration; q N Represents the iteration result quaternion; The mathematical expression of the gyro data compensation amount is: q tg =q N +dq(N)×0.01 Among them, q tg is the gyro data compensation amount.
4. The method for calculating the compensation amount of inter-satellite laser communication attitude deviation according to claim 4 is characterized in that: In step B4, when NT=1, the iterative expression is: dq(N)=0.5×Wib_gxd(N)×q N+1 Among them, q N+1 Represents the quaternion obtained by recursively deducing the N+1th gyroscope data; q tg =q N +dq(N)×TT Wherein, TT represents the total time interval for the gyro data to give the compensation value; The expression of TT is: TT=tlaser-t_compensate+in_step_sg Among them, in_step_sg is the compensation calculation step length of the attitude control management unit for the next beat; Normalize the gyro data source compensation to obtain the gyro data source output attitude compensation; The mathematical expression of the attitude compensation amount output by the gyro data source is: Qib_out_q_g_new=q tg . / norm(q tg ) Wherein, Qib_out_q_g_new represents the attitude compensation output by the gyro data source; the symbol · represents element-by-element division.
5. The method for calculating the compensation amount of inter-satellite laser communication attitude deviation according to claim 5 is characterized in that: When the data type is current posture, let the current posture be posture information; the expression of the posture information is: Qib_qin=Qib. / norm(Qib) Among them, Qib_qin represents the given attitude information compensation; norm(Qib) represents the norm calculation of vector Qib; Qib represents the current attitude information quaternion vector; Assigning the posture information to the current posture compensation amount; The current posture compensation amount is expressed as: Qib_qin_A6_out=Qib_qin Among them, Qib_qin_A6_out represents the current posture compensation amount.
6. A system for calculating the compensation amount of attitude deviation in intersatellite laser communication, characterized in that: include: Determine the data type; The data types include: attitude control management unit data, gyroscope data, and current attitude; If the result is attitude control management unit data, the management unit data attitude angle calculation module is triggered; If the result is gyro data, the gyro data attitude angle calculation module is triggered; The result is the current posture, so let the current posture be the posture compensation amount; If the result is not one of the above three situations, the attitude compensation output is set to zero.
7. The inter-satellite laser communication attitude deviation compensation amount calculation system according to claim 6 is characterized in that: Determine the data type based on the status flag, i.e. XZ_select; Determine whether XZ_select is "AA", "55" or "A6". If the result is yes, XZ_select = "AA", then the data type is attitude control management unit data; XZ_select = "55", then the data type is gyro data; XZ_select = "A6", then the data type is current attitude; Determine whether XZ_select is "AA", "55" or "A6". If not, set the attitude compensation output to zero. The attitude compensation output is zero, and the expression is: Qib_qin_A7_out=[1;0;0;0] Among them, Qib_qin_A7_out represents the current posture compensation amount; The attitude control management unit data includes: attitude quaternion Qib, body axis attitude angular velocity W; The management unit data attitude angle calculation module includes: Module A1: collect attitude quaternion Qib and body axis attitude angular velocity W; Module A2: Normalize the posture quaternion Qib, and then obtain the change quaternion of the current row posture according to the body axis posture angular velocity W; Module A3: Calculating the attitude compensation amount according to the changed quaternion; In the module A2, the mathematical expression of the change quaternion is: dq=0.5×ω×q0 Wherein, q0 represents the input attitude quaternion Qib; ω represents the attitude angular velocity W matrix of the attitude control management unit; dq represents the changed quaternion; In the module A3, the expression of the posture compensation amount is: q t =q0+dq×△t Among them, q t Indicates the amount of attitude compensation; △t indicates the total time interval for the attitude control management unit data to give the compensation amount; The mathematical expression of △t is: △t=tlaser-t_compensate+in_step_s Among them, tlaser represents the system time; t_compensate represents the time information corresponding to the attitude quaternion Qib; in_step_s represents the compensation amount calculation step length of the attitude control management unit for the next beat.
8. The inter-satellite laser communication attitude deviation compensation amount calculation system according to claim 7, characterized in that: The gyro data attitude angle calculation module includes: Module B1: collect gyro data; Module B2: Calculate the gyro angular velocity based on the gyro data; Module B3: Based on the gyro angular velocity, the gyro drift is removed to obtain the inertial three-axis angular velocity of the satellite body; Module B4: According to the inertial three-axis angular velocity of the satellite body, determine whether the number of gyro data iterations NT is greater than 30. If the result is yes, mark the system fault; if the result is no, iterate the gyro data to calculate the gyro data compensation amount; In the module B2, the expression of the gyro angular velocity is: Bybt = 1000 × (angle increment fai × angular velocity increment equivalent) / integration time T Where, Bybt represents the body angular velocity output by the gyroscope, that is, the angular velocity of the gyroscope; In the module B3, the expression for deducting the gyro drift is: Wby=Bybt-byb Wherein, Wby represents the body angular velocity correction value output by the gyro; byb represents the drift value calibrated by the gyro; The inertial three-axis angular velocity of the star body is expressed as: Wib_gxd=A_g_bi×[Wby] Among them, A_g_bi is the installation matrix of the gyroscope, Wib_gxd is the inertial three-axis angular velocity of the satellite body; [Wby] represents the vector form of the body angular velocity correction value output by the gyroscope; In the module B4, let Wib_gxd(N) represent the latest 30 gyro data, N represents the number of gyro data, N≤30; let the attitude quaternion Qib be the initial value of iteration, and iterate through each beat of gyro data Wib_gxd(N), the mathematical expression is: dq(N)=0.5×Wib_gxd(N)×q N Among them, dq(N) is the quaternion changed per iteration; q N Represents the iteration result quaternion; The mathematical expression of the gyro data compensation amount is: q tg =q N +dq(N)×0.01 Among them, q tg is the gyro data compensation amount.
9. The inter-satellite laser communication attitude deviation compensation amount calculation system according to claim 8, characterized in that: In the module B4, when NT=1, the iteration expression is: dq(N)=0.5×Wib_gxd(N)×q N+1 Among them, q N+1 Represents the quaternion obtained by recursively deducing the N+1th gyroscope data; q tg =q N +dq(N)×TT Wherein, TT represents the total time interval for the gyro data to give the compensation value; The expression of TT is: TT=tlaser-t_compensate+in_step_sg Among them, in_step_sg is the compensation calculation step length of the attitude control management unit for the next beat; Normalize the gyro data source compensation to obtain the gyro data source output attitude compensation; The mathematical expression of the attitude compensation amount output by the gyro data source is: Qib_out_q_g_new=q tg . / norm(q tg ) Wherein, Qib_out_q_g_new represents the attitude compensation output by the gyro data source; the symbol · represents element-by-element division.
10. The inter-satellite laser communication attitude deviation compensation amount calculation system according to claim 9, characterized in that: When the data type is current posture, let the current posture be posture information; the expression of the posture information is: Qib_qin=Qib. / norm(Qib) Among them, Qib_qin represents the given attitude information compensation; norm(Qib) represents the norm calculation of vector Qib; Qib represents the quaternion vector of the current attitude information; Assigning the posture information to the current posture compensation amount; The current posture compensation amount is expressed as: Qib_qin_A6_out=Qib_qin Among them, Qib_qin_A6_out represents the current posture compensation amount.
Citation Information
Patent Citations
Satellite laser communication composite tracking and pointing vibration suppression device and control method
CN102142899A
Satellite laser communication capturing method based on signal light
CN104954069A
Spatial multiuser multi-system satellite laser communication system and method
CN106533562A
Laser communication load aiming method and system based on satellite-borne cooperation
CN115037369A
Method for measuring and calibrating pointing deviation of multi-beam antenna under satellite antenna coordinate system
CN116470950A