A method for quickly detecting multi-beam pointing conflicts of a relay satellite

CN122621225BActive Publication Date: 2026-09-25BEIJING YUANSHAN INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202611030880.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-07-13
Publication Date
2026-09-25
Estimated Expiration
2046-07-13

AI Technical Summary

Technical Problem

[0004]本申请通过提供一种中继卫星多波束指向冲突快速检测方法,解决了现有技术中冲突检测计算量大、检测效率低、误判率高,同时全空间三维数组存储开销大、时间维循环清零写入功耗高的问题,实现了冲突检测计算量与已规划任务数量无关、大幅降低星载计算机运算负担,通过粗细两级体素分辨率与按需细分机制平衡存储开销与检测精度,并利用时间戳老化技术彻底消除周期性清零操作,减少写入功耗,提升多波束并发服务能力和频谱资源利用效率的技术效果

Benefits of technology

通过采用将方位角、俯仰角与时间统一离散化为体素的三维标记数组进行冲突快速查询,结合粗细两级体素分辨率与按需细分机制以及基于时间戳的体素老化技术,进而实现了冲突检测计算量与已规划任务数量无关、大幅降低星载计算机运算负担,同时平衡存储开销与检测精度、消除周期性清零写入功耗,提升多波束并发服务能力和频谱资源利用效率的技术效果。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122621225B_ABST
    Figure CN122621225B_ABST
Patent Text Reader

Abstract

The application discloses a kind of relay satellite multi-beam pointing conflict fast detection method, it is related to satellite communication technical field, comprising: dividing frequency range into equal interval frequency points, according to the same frequency interference isolation requirement Protection angle threshold value, Protection angle threshold value is converted into distance threshold value in pointing space;Based on distance threshold value, azimuth angle step and pitch angle step are set, time step is the minimum planning unit, space is discretized into voxel, and three-dimensional mark array is initialized;When new task arrives, discretization period is time slice, query voxel in three-dimensional mark array Mark occupancy;If any voxel is occupied, conflict is determined, and the frequency point of conflict task is recorded in unusable list, otherwise any existing frequency point is reused;If no frequency point can be reused, then the frequency point in unusable list is eliminated, and the frequency point with least use frequency is selected to be assigned to new task;New task is added to task list and the frequency point number of distribution is output.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of satellite communication technology, and in particular to a rapid detection method for multi-beam pointing conflicts in relay satellites. Background Technology

[0002] Relay satellites typically carry phased array antennas, capable of simultaneously forming multiple beams to provide communication services to different user terminals. To improve bandwidth utilization, multiple beams share the same frequency using spatial division multiplexing. This means that reuse of the same frequency is permitted when the spatial isolation between two beams meets the requirements for co-channel interference protection; otherwise, different frequencies must be allocated. Therefore, during mission planning, it is necessary to quickly detect whether the direction of the new mission beam meets the frequency reuse conditions with the direction of existing mission beams, i.e., to determine if there is a pointing conflict.

[0003] Existing conflict detection methods are mainly divided into two categories. The first category is the pairwise angle comparison method, which calculates the spatial angle between the beam pointing of the new mission at each moment and the beam pointing of all planned missions at the same moment, and compares it with the protection angle threshold. The computational cost of this method is proportional to the product of the number of planned missions and the number of time slices of the new mission. When the number of user terminals serving relay satellites increases and the mission duration is long, the computational cost increases exponentially, exceeding the real-time processing capacity of the onboard computer. The second category is the spatial grid pre-division method, such as discretizing the azimuth-elevation plane into a grid and marking the occupancy status of each grid. Although this method reduces the real-time computational cost to some extent, it only deals with the spatial dimension and ignores the temporal dimension. In reality, the beam pointing changes dynamically with time, and the pointing at different moments, even if they fall into the same spatial grid, does not necessarily indicate a conflict (e.g., mission durations do not intersect). Separating time and space processing can easily lead to misjudgment or require additional time alignment calculations, reducing detection efficiency. Existing methods typically employ a full-space three-dimensional array in terms of storage structure, which requires the pre-allocation of a large number of storage units, putting pressure on the limited storage resources on the satellite; the time-dimensional cyclic cleanup operation also introduces additional write overhead and power consumption. Summary of the Invention

[0004] This application provides a rapid collision detection method for multi-beam pointing on relay satellites, which solves the problems of large computational load, low detection efficiency, and high false positive rate in existing collision detection technologies. At the same time, it also addresses the problems of large storage overhead of the full-space three-dimensional array and high power consumption of time-dimensional cyclic zeroing write. The method achieves that the collision detection computational load is independent of the number of planned tasks, significantly reducing the computational burden on the onboard computer. It balances storage overhead and detection accuracy through coarse and fine voxel resolution and on-demand subdivision mechanism, and completely eliminates periodic zeroing operations by using timestamp aging technology, reducing write power consumption and improving multi-beam concurrent service capabilities and spectrum resource utilization efficiency.

[0005] This application provides a rapid detection method for multi-beam pointing conflict in relay satellites, including: S1: Divide the frequency band into equally spaced frequency points to form a frequency point set, set the protection angle threshold according to the co-channel interference isolation requirements, and convert the protection angle threshold into a distance threshold pointing into space; S2: Based on the distance threshold, set the azimuth and pitch step sizes, take the smallest planning unit for the time step, discretize the space into voxels with azimuth, pitch and time as axes, and initialize the three-dimensional label array; S3: When a new task arrives, the time period is discretized into time slices. Conflict detection is performed based on the three-dimensional marker array. The voxel index corresponding to each time slice is calculated, and the voxel's occupied marker in the three-dimensional marker array is queried. If the voxel marker corresponding to any time slice is occupied, it is determined that the new task conflicts with the planned task. The frequency of the conflicting task is recorded in the unavailable list. Otherwise, the frequency of any planned task is reused. S4: If no frequency point can be reused, remove the frequency points from the unavailable list, select the frequency point with the fewest uses and assign it to the new task; add the new task to the task list and output the assigned frequency point number.

[0006] Furthermore, the method for converting the protection angle threshold into a distance threshold in the pointing space is as follows: , in, Distance threshold To protect the angle threshold, Pi is the conversion constant between angles and radians.

[0007] Furthermore, the azimuth step size and elevation step size are both: ,in, This is the distance threshold; its value ensures that the Euclidean distance between any two beam pointing points located within the same voxel is no greater than [value missing]. Thus, the condition that falling into the same voxel is considered to be a conflict is met; The time step is taken as the smallest time unit of the mission plan, and it is required that the change in beam pointing angle within a time step does not exceed half of the azimuth step and the elevation step.

[0008] , in, This is the azimuth subscript. The subscript for pitch angle. For time index, The beam azimuth angle, For beam pitch angle, For a moment, The azimuth step size is... The pitch step length, For time step, This is the starting reference time. This indicates rounding down to the nearest integer.

[0009] Furthermore, the time dimension of the three-dimensional marker array is managed using a circular queue: the time index of each time slice is modulo the total number of time slices within the planning window; at the same time, a current starting time index is maintained, and whenever time advances by one time step, the current starting time index is incremented by one, and the entire two-dimensional voxel plane corresponding to the newly entered time slice in the planning window is cleared to zero.

[0010] Furthermore, the conflict detection based on the three-dimensional marker array includes: pre-selecting tasks with overlapping time periods from the list of planned tasks to form a candidate set; for each planned task in the candidate set, determining the intersection interval between its service time period and that of the new task; if the intersection is not empty, calculating the voxel index of the new task and the planned task for each time slice within the intersection; marking the voxels occupied by the planned task as occupied in the three-dimensional marker array; when the new task arrives, it is only necessary to traverse each time slice within the service time period of the new task itself, calculate the voxel index and query the three-dimensional marker array; if any voxel corresponding to any time slice is marked as occupied, a conflict is determined to exist; if all voxels corresponding to all time slices are free, no conflict is determined to exist.

[0011] Furthermore, the method also includes two levels of voxel resolution: the original voxels are used as fine voxels, and the azimuth and pitch step sizes of the coarse voxels are defined to be twice that of the fine voxels; a three-dimensional marker array for coarse voxels is established, and a density counter and a fine voxel marker array are maintained for each coarse voxel; when a new task arrives, the status of the coarse voxels is first queried. The status of the coarse voxels includes three categories: idle, occupied but not subdivided, and subdivided. If the coarse voxel is idle, it is determined that there is no conflict; if the coarse voxel is occupied but not subdivided, it is conservatively determined to be a conflict; if the coarse voxel is subdivided, the fine voxel marker array is queried to determine the conflict; when the number of planned tasks in the coarse voxel reaches the subdivision threshold, the subdivision operation is triggered, a fine voxel marker array is created, and the internal tasks are mapped to the fine voxels.

[0012] Furthermore, the subdivision threshold is set according to the task density requirements. The fine voxel marker array is only created when the coarse voxel is subdivided, and the entire space is not pre-allocated. When the proportion of fine voxels occupied within the coarse voxel is lower than the merging threshold, the fine voxel marker array is deleted and the coarse voxel is restored to an unsubdivided state.

[0013] Furthermore, the method also includes voxel aging: maintaining a timestamp field for each voxel, recording the time slice index of the last time the voxel was occupied, and setting a global window start time index; during conflict detection, if the voxel's timestamp is less than the start time index, it is considered idle; when a new task occupies a voxel, the timestamp of the corresponding voxel is updated to the current time slice index; time dimension advancement only requires updating the start time index, without actively clearing the voxel marker.

[0014] Furthermore, the voxel aging also includes periodic recycling: according to a preset task processing cycle, all coarse voxels are scanned; for coarse voxels whose status is occupied but not subdivided and whose timestamp differs from the starting time index by more than twice the window length, their status is reset to idle; for subdivided coarse voxels, if the timestamps of all their internal fine voxels are less than the starting time index, the fine voxel array is deleted and the coarse voxels are restored to idle.

[0015] One or more technical solutions provided in this application have at least the following technical effects or advantages: By employing a three-dimensional marker array that discretizes azimuth, elevation, and time into voxels for rapid collision lookup, combined with coarse and fine voxel resolution, an on-demand subdivision mechanism, and timestamp-based voxel aging technology, the technical effects of achieving collision detection computational load independent of the number of planned tasks, significantly reducing the computational burden on the onboard computer, balancing storage overhead and detection accuracy, eliminating periodic zeroing write power consumption, and improving multi-beam concurrent service capabilities and spectrum resource utilization efficiency are achieved. Attached Figure Description

[0016] Figure 1 This is a flowchart of a rapid detection method for multi-beam pointing conflict of relay satellites in an embodiment of the present invention. Detailed Implementation

[0017] To facilitate understanding of the present invention, a more complete description of this application will be given below with reference to the accompanying drawings, which illustrate preferred embodiments of the invention. However, the invention can be implemented in many different forms and is not limited to the embodiments described herein. Rather, these embodiments are provided to enable a more thorough and complete understanding of the disclosure of the present invention.

[0018] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains; the terminology used herein in the description of the invention is for the purpose of describing particular embodiments only and is not intended to limit the invention; the term "and / or" as used herein includes any and all combinations of one or more of the associated listed items.

[0019] Example 1: As Figure 1 As shown, a rapid detection method for multi-beam pointing conflict in relay satellites is proposed.

[0020] S1: Divide the frequency band into equally spaced frequency points to form a frequency point set, set the protection angle threshold according to the co-channel interference isolation requirements, and convert the protection angle threshold into a distance threshold pointing into space; Specifically, based on the available range of the onboard Ka band (25.25 GHz to 27.5 GHz) and the bandwidth required for a single-channel 200 Mbps transmission, the entire frequency band is divided into several equally spaced frequency points, denoted as the frequency point set. ,in This represents the maximum number of frequency points that can be used simultaneously. The set of frequency points remains unchanged during system operation, serving as a resource pool for frequency point allocation.

[0021] Based on the radiation pattern characteristics of the phased array antenna and the system's isolation requirements for co-channel interference, an angle value is determined as the guard angle threshold. (Unit: degrees) For example, for a typical inter-satellite link, this guard angle threshold can be set within a small range, such as between 3 and 10 degrees, depending on the antenna beamwidth and co-channel interference protection requirements. The guard angle threshold is used to determine whether two beams can reuse the same frequency: if the angle between the centers of the two beams is greater than or equal to... If the spatial isolation is sufficient, the same frequency point can be reused; otherwise, different frequency points must be allocated.

[0022] The protection angle threshold is converted into a distance threshold in the pointing coordinate space, and a two-dimensional pointing plane is established with azimuth and pitch angles as coordinate axes. The Euclidean distance between two points in this plane is: , in, The weighted Euclidean distance between the two beam pointing points. and For the azimuth angles of the two beams, and The elevation angles of the two beams, This represents the average pitch angle. Since the chord length is approximately equal to the included angle when the included angle is small, the protection angle threshold can be set accordingly. Approximately used as a distance threshold, i.e. The protection angle threshold, initially in degrees, is converted to a distance threshold, initially in radians. This is based on the Euclidean distance between the pointing points of the two beams. Less than At that time, it was determined that a conflict existed.

[0023] S2: Based on the distance threshold, set the azimuth and pitch step sizes, take the smallest planning unit for the time step, discretize the space into voxels with azimuth, pitch and time as axes, and initialize the three-dimensional label array; Specifically, the azimuth step size is set based on the distance threshold converted from the protection angle threshold. Pitch angle step length The chosen value ensures that the Euclidean distance between any two beam pointing points located within the same voxel is no greater than [value missing]. Therefore, the conflict determination condition is met. Time step Take the smallest time unit of task planning (e.g., 1 second), and require that within a... The change in the inner beam pointing angle does not exceed and Half of it, to avoid pointer jumps across time slices.

[0024] By azimuth Pitch angle ,time Using coordinate axes, the continuous three-dimensional space is discretized into several unit three-dimensional cubes (voxels). Each voxel is uniquely identified by integer subscripts in three dimensions: azimuth subscript... Pitch angle subscript Time subscript ,in, This is the starting reference time.

[0025] Based on the discretization parameters, the maximum number of possible indices in the three dimensions is pre-calculated: azimuth dimension size. Pitch angle dimension Size of the time dimension ,in, To maximize task lead time, allocate a three-dimensional marker array. The array is initialized to 0 and all elements are initialized to 0. This array is used to record whether each voxel is occupied by a planned task, with 1 indicating that it is occupied and 0 indicating that it is free.

[0026] Create an empty task list to store information for all planned tasks. Each task record includes: task identifier, service period, beam pointing curve, and assigned frequency number.

[0027] S3: When a new task arrives, the time period is discretized into time slices. Conflict detection is performed based on the three-dimensional marker array. The voxel index corresponding to each time slice is calculated, and the voxel's occupied marker in the three-dimensional marker array is queried. If the voxel marker corresponding to any time slice is occupied, it is determined that the new task conflicts with the planned task. The frequency of the conflicting task is recorded in the unavailable list. Otherwise, the frequency of any planned task is reused. Specifically, whenever a new user terminal task arrives, the service start time for obtaining the new task is determined. Service end time The beam pointing angle at each moment is pre-calculated based on the target terminal's orbital parameters. The service period is discretized into a series of equally spaced time slices, with each time slice corresponding to the following time: , in, No. The specific time corresponding to each time slice. The service start time for the new task. For time step, This is the sequence number of the time slice, starting from 0. , , The total number of time slices required for the new task. The end time for service on the new mission. The beam pointing angle on each time slice is denoted as... .

[0028] The conflict detection based on the three-dimensional marker array includes: pre-selecting tasks with overlapping time periods from the list of planned tasks to form a candidate set; for each planned task in the candidate set, determining the intersection interval between its service time period and that of the new task; if the intersection is not empty, calculating the voxel index of the new task and the planned task for each time slice within the intersection; and marking the voxels occupied by the planned task as occupied in the three-dimensional marker array. Specifically, let the existing task number be m, and its service period be... Pre-select all planned tasks from the list of planned tasks that overlap with the current new task's service time, i.e., satisfy... These tasks are then combined into a candidate set.

[0029] Sort the tasks in the candidate set in ascending order of their service end time. If two tasks have the same end time, sort them in ascending order of their start time. Create an unavailable frequency list to store the frequency numbers used by planned tasks that have beam pointing conflicts with the new task.

[0030] Based on the sorted candidate set, each planned task in the candidate set is retrieved sequentially. Let the task retrieved now be denoted as . Regarding the new task and Perform the following conflict detection operations: determine the new task and The intersection interval of service periods. If the intersection is empty, it is determined to be conflict-free, and the detection is skipped directly. If the intersection is not empty, then for each discrete time slice within the intersection... According to the new task and Each task's beam pointing curve is used to calculate its beam pointing angle at that moment. and Map the two pointing angles to voxel subscripts respectively: , Time index Depend on The time slice is determined uniformly based on the reference time during initialization. If a certain time slice exists... , making and Then determine the new task and There is a beam pointing conflict; otherwise, it is determined to be conflict-free.

[0031] If it is determined that there is no conflict, then The frequency point number used is assigned to the new task, and the assignment result is recorded. If a conflict is determined, then... The frequency point number used is added to the unavailable frequency point list, and the process continues to iterate through the next task in the candidate set.

[0032] S4: If no frequency point can be reused, remove the frequency points from the unavailable list, select the frequency point with the fewest uses and assign it to the new task; add the new task to the task list and output the assigned frequency point number.

[0033] Specifically, if no reusable frequency point is found after traversing all tasks in the candidate set (i.e., every candidate task conflicts with the new task), then a new frequency point allocation is performed: all frequencies recorded in the unavailable frequency point list are removed from the available frequency point set, resulting in a remaining available frequency point set. The number of times each frequency point has been allocated is counted in the current task list, and the frequency point with the fewest usages is selected from the remaining available frequency point set and allocated to the new task. If multiple frequency points have the same number of usages and all have the fewest usages, the frequency point with the smallest number is selected.

[0034] Add the new task to the task list, recording its task identifier, service period, beam pointing curve, and assigned frequency number. Based on the beam pointing curve of the new task, assign it to each discrete time slice. corresponding voxels Set the value to 1 in the three-dimensional marker array M, that is, execute. Complete the occupation marker for the new task. After marking, output the frequency point number assigned to the new task.

[0035] By azimuth Pitch angle and time Construct a three-dimensional continuous space for the coordinate axes. For any task, at each time step... Corresponding beam pointing angle A beam pointing curve is formed in this space. Beam pointing conflict exists between two tasks if and only if there exists a certain moment... The Euclidean distance between the beam pointing points of the two tasks is less than the distance corresponding to the protection angle threshold. Since the space has been discretized into voxels, and the step size is... and The value of guarantees that the distance between any two points within the same voxel is no greater than 1. Therefore, collision detection can be transformed into determining whether the beam pointing curves of two tasks pass through the same voxel. It should be noted that this method uses conservative voxel collision detection, which may result in the detection of a few voxel collisions with distances smaller than [a certain value]. However, point pairs falling on adjacent voxels are considered conflict-free. Since the guard angle threshold usually allows for engineering margins and the actual beam pointing changes continuously, the probability of this missed detection is low and acceptable in on-board rapid planning scenarios.

[0036] The conflict detection based on the three-dimensional marker array further includes: when a new task arrives, it is only necessary to traverse each time slice within the service period of the new task, calculate the voxel index and query the three-dimensional marker array. If any voxel corresponding to any time slice is marked as occupied, it is determined that there is a conflict; if all voxels corresponding to all time slices are idle, it is determined that there is no conflict.

[0037] Before each new task arrives, a 3D marker array records the voxels occupied by all planned tasks, with each occupied voxel having a value of 1. The process iterates through each discrete time slice within the service period of the new task. According to the beam pointing angle at that moment Calculate the corresponding voxel index: , in, The azimuth voxel subscript is used. The subscript for pitch angle voxels. The subscript for time. Depend on and start reference time according to Confirm, query If the value is 1, it means that the voxel has been occupied by a planned task, that is, the new task conflicts with the planned task; if the voxel value corresponding to all time slices is 0, it is determined that the new task does not conflict with any planned task.

[0038] The time dimension of the three-dimensional marker array is managed using a circular queue: the time index of each time slice is modulo the total number of time slices in the planning window; at the same time, a current starting time index is maintained, and whenever time advances by one time step, the current starting time index is incremented by one, and the entire two-dimensional voxel plane corresponding to the newly entered time slice in the planning window is cleared to zero.

[0039] Specifically, due to the time coordinate The range of values ​​can be very large, reaching several hours or even days, but in practice, only a window of time around the current time is needed, such as the next 24 hours. A circular queue is used to manage the time-dimensional array: the time index pairs... Modulus, where This represents the total number of time slices within the window. Maintain a current start time index. When time moves forward one At that time, Increment by 1, and clear the entire 2D voxel plane corresponding to the time slice entering the window to zero. Historical time slices that have been removed from the window will no longer be queried by any new tasks, and their storage space will be overwritten cyclically. Since time is unidirectional and irreversible, voxels corresponding to completed tasks do not need to be restored to 0.

[0040] Traditional polling methods, when processing new tasks, require calculating the beam pointing angle of the new task in each time slice and comparing it with the beam pointing angles of all planned tasks in the same time slice, and then comparing this angle with a protection threshold. Let the number of time slices for the new task be... The number of planned tasks is The computational cost of the traditional method is proportional to... When the number of planned tasks is large or the task service period is long, the computational load will increase rapidly, making it difficult to complete in real time in an environment with limited onboard computing resources. By adopting a three-dimensional discretized marker array, the collision detection process no longer needs to compare with each planned task individually. Before each new task arrives, the three-dimensional marker array has already recorded the voxels occupied by all planned tasks. For a new task, it is only necessary to traverse each of its own time slices, calculate the voxel index corresponding to the beam pointing angle of that time slice, and then query the value of that voxel in the marker array. The operation for each time slice includes one floor division, one array access, and one conditional judgment, all of which are constant-time operations. The computational load is only proportional to the number of time slices of the new task. And the number of planned tasks Irrelevant.

[0041] For example, assuming the number of planned tasks Number of new mission time slices (Corresponding to 1 hour, one time slice per second). Traditional methods require approximately 100 × 3600 = 360,000 angle calculations, while the method in this embodiment only requires approximately 3,600 voxel queries and simple integer operations. The efficiency advantage becomes more pronounced as the number of planned tasks increases.

[0042] The technical solutions described in the embodiments of this application have at least the following technical effects or advantages: This application adopts a scheme that discretizes azimuth, elevation, and time into the smallest unit and records the occupancy status using a marker array. This avoids the cumbersome process of aligning all existing tasks one by one and calculating every moment in the traditional method. Conflict determination can be completed with a simple query, which greatly reduces the on-board computing burden and ensures real-time response capability in mission-intensive scenarios. At the same time, through the design of quantization rules, the accuracy of conflict detection is fully preserved while simplifying the calculation. Combined with the time-dimensional cyclic management mechanism, storage overhead is also effectively reduced, allowing the system to support longer-cycle mission planning with limited resources. Ultimately, this improves the multi-beam concurrent service capability and spectrum resource utilization efficiency of relay satellites.

[0043] Example 2: Example 1 achieved fast querying with conflict detection computation independent of the number of planned tasks, but still suffers from excessive storage overhead of the full-space three-dimensional marker array. This example further supplements and explains the content of Example 1.

[0044] The method also includes two levels of voxel resolution: the original voxels are used as fine voxels, and the azimuth and pitch step sizes of the coarse voxels are defined to be twice that of the fine voxels; a three-dimensional marker array for coarse voxels is established, and a density counter and a fine voxel marker array are maintained for each coarse voxel; when a new task arrives, the status of the coarse voxels is first queried. The status of the coarse voxels includes three categories: idle, occupied but not subdivided, and subdivided. If the coarse voxel is idle, it is determined that there is no conflict; if the coarse voxel is occupied but not subdivided, it is conservatively determined to be a conflict; if the coarse voxel is subdivided, the fine voxel marker array is queried to determine the conflict; when the number of planned tasks in the coarse voxel reaches the subdivision threshold, the subdivision operation is triggered, a fine voxel marker array is created, and the internal tasks are mapped to the fine voxels.

[0045] The subdivision threshold is set according to the task density requirements. The fine voxel marker array is only created when the coarse voxel is subdivided, and the entire space is not pre-allocated. When the proportion of fine voxels occupied in the coarse voxel is lower than the merging threshold, the fine voxel marker array is deleted and the coarse voxel is restored to the unsubdivided state.

[0046] Specifically, a two-level voxel resolution and an on-demand subdivision mechanism are introduced to reduce storage requirements while maintaining detection accuracy. Let the original voxels be the fine voxels, with an azimuth step size of... The pitch step size is And satisfy: , , in, This is the distance threshold converted from the protection angle threshold.

[0047] Define the step size of coarse voxels as twice that of fine voxels: , in, The azimuth step size is the bold element. This represents the pitch step size for the coarse voxels. Each coarse voxel contains two fine voxels in both the azimuth and pitch directions, meaning each coarse voxel corresponds to 2 × 2 = 4 fine voxels. A subdivision threshold is also set; for example, when the number of planned tasks within a coarse voxel reaches three, the subdivision operation for that voxel is triggered. The subdivision threshold is set according to actual needs.

[0048] Establish a 3D marker array for bold voxels to record the current occupancy status of each voxel, categorized into three states: idle, occupied but not subdivided, and subdivided. Maintain an optional marker array for fine voxels for each voxel, created only when the voxel is subdivided. Each fine voxel corresponds to a sub-cube. The fine voxel array is stored in the associated data structure of the voxels and is not pre-allocated with full space. The temporal dimension is still managed by the third dimension of the voxel array. Maintain a density counter array to record the number of currently planned tasks within each voxel.

[0049] When a new task arrives, its service period is discretized into time slices. Based on the azimuth and elevation angles of the beam pointing on the time slice, the value is divided by the coarse voxel step size and rounded down to obtain the coarse voxel index. The coarse voxel status is queried based on its index: if the coarse voxel status is idle, the time slice is considered conflict-free, and the process continues to the next time slice. If the coarse voxel status is occupied but not subdivided, it indicates that there is only one planned task or a few tasks within the coarse voxel that have not reached the subdivision threshold. Due to the large size of the coarse voxels, the distance between any two points within a coarse voxel may exceed the guard angle threshold; therefore, a conservative assessment indicates a conflict, requiring further processing. If the coarse voxel status is subdivided, the fine voxel index within that coarse voxel is calculated based on the beam pointing angle. , in, The subscript for the azimuth direction of the fine voxel inside the bold voxel. The subscript for the pitch angle direction within the bold voxel is the thin voxel subscript. and The bold voxel subscript for the beam pointing angle of that time slice. .

[0050] Query the fine voxel marker array If the value is empty, and the fine voxel is marked as occupied, a conflict is determined; otherwise, there is no conflict. If there are no conflicts in all time slices, the frequency allocation phase begins; otherwise, a conflict is determined, and the frequency needs to be reallocated or the task rejected.

[0051] If a new task conflicts with a planned task in a certain time slice, the frequency used by the planned task is added to the unavailable list. After iterating through all candidate tasks, if no reusable frequency is found, the frequency with the fewest uses is selected from the remaining frequencies and assigned to the new task.

[0052] After adding a new task to the task list, the 3D voxel occupancy markers need to be updated based on its beam pointing curve. For each time slice of the new task, the corresponding coarse voxel index is calculated and the current state of the coarse voxel is checked. If the state is idle, the coarse voxel state is changed to occupied but not subdivided, and the density counter of the coarse voxel is incremented by 1; no fine voxel array needs to be created. If the state is occupied but not subdivided, the density counter of the coarse voxel is incremented by 1, and it is determined whether the counter value has reached the subdivision threshold. If the threshold is reached, the subdivision operation is performed: a fine voxel marker array corresponding to the coarse voxel is created. This array is a two-dimensional array with a size of [missing information]. ,in This represents the number of fine voxels included in each direction (azimuth or elevation). For example, when... At that time, each bold voxel contains There are 4 elements in the fine voxel tag array. All planned tasks currently in the coarse voxel are remapped to the fine voxels according to their beam pointing angles, and the corresponding fine voxels are marked as occupied. The coarse voxel state is changed to subdivided, and the density counter is released. If the state is subdivided, the fine voxels corresponding to each time slice of the new task are directly marked as occupied.

[0053] Because the time dimension uses a circular queue, when a time slice moves out of the planning window, all corresponding coarse and fine voxel arrays can be cleared and reused. To free up storage space, a voxel merging scan is performed at regular intervals (e.g., after processing 100 tasks): All subdivided coarse voxels are traversed, and the proportion of occupied fine voxels within each voxel is checked against the merging threshold. If the proportion is below the threshold, the fine voxel array is deleted, the coarse voxel state is restored to occupied but unsubdivided, and the density counter is set to the actual number of tasks within that voxel. If the actual number of tasks within the voxel is zero, it is directly restored to an idle state. The merging threshold can be adjusted according to actual needs, such as below 30%. After all operations are completed, the output is the frequency point number assigned to the new task, and the task list is updated.

[0054] The technical solutions described in the embodiments of this application have at least the following technical effects or advantages: This application employs a two-level voxel resolution strategy (coarse and fine) and on-demand subdivision, achieving a flexible balance between storage overhead and detection accuracy. By rapidly filtering a large number of idle or low-density regions at the coarse voxel level, subdivision is triggered and fine voxel arrays are created only within task-intensive coarse voxels, avoiding the huge storage burden caused by pre-allocating fine voxels across the entire space. Simultaneously, combined with a density counter and a periodic voxel merging mechanism, it can dynamically track changes in task distribution and promptly reclaim storage resources for voxels that no longer require subdivision, effectively controlling memory fragmentation and peak usage during long-term operation. While maintaining collision detection accuracy, it significantly reduces space requirements under limited onboard storage resources and further reduces the average number of query and marking operations per time slice, improving the real-time performance and scalability of relay satellite multi-beam planning.

[0055] Example 3: Example 2 achieved a balance between storage overhead and detection accuracy, but it still suffers from drawbacks such as high write overhead and high power consumption due to the need to periodically clear the two-dimensional voxel plane of the time-dimensional circular queue. This example further supplements and explains the content of Example 2.

[0056] The method also includes voxel aging: maintaining a timestamp field for each voxel, recording the time slice index of the last time the voxel was occupied, and setting a global window start time index; during conflict detection, if the voxel's timestamp is less than the start time index, it is considered idle; when a new task occupies a voxel, the timestamp of the corresponding voxel is updated to the current time slice index; time dimension advancement only requires updating the start time index, without actively clearing the voxel marker.

[0057] Specifically, based on the bold voxel 3D marker array, each bold voxel, in addition to storing its state and density counter, has an additional integer timestamp field, denoted as... An initial value of -1 indicates that it has never been used. For subdivided coarse voxels, each fine voxel within them also independently stores a timestamp field. The timestamp value indicates the time slice index of the last time that voxel was used by a task.

[0058] Maintain a global variable This indicates the start time slice index of the current planning window. The length of the planning window is [length value missing]. A time slice, such as the next 24 hours. If the time slice is in seconds, then L = 86400. At any given moment, the valid time slice index range is... Time advances by one unit. , It will automatically increment by 1. The update can be triggered by an interrupt of the onboard clock, or it can be calculated based on the current real time before each task is processed, without the need for manual looping.

[0059] When a new task arrives, its service period is discretized into time slices to obtain the actual time corresponding to each time slice. And calculate its absolute time subscript, for each time slice, based on the beam pointing angle. The bold voxel subscript where the calculation is performed The current status of the bold voxel is then queried: if the bold voxel is idle, the time slice is conflict-free, and the next time slice is checked. If the bold voxel is occupied but not subdivided, the timestamp of the bold voxel is read. .if This indicates that although the bold element was previously occupied, its task has been moved out of the planning window and should currently be considered free and without conflict. Conversely, if If the condition is conservatively determined, a conflict exists because there might be a task still within the window within the bold voxel, and due to the large size of the bold voxel, its beam pointing might conflict with the new task. If the bold voxel is in a subdivided state, then the index of the fine voxel pointing to the bold voxel within the bold voxel is calculated. Read the corresponding fine voxel Similarly, compare the timestamp with If the fine voxel timestamp < If a time slice is found to be free of conflict, it is considered idle and conflict-free; otherwise, it is considered conflicting. During the detection process, if a conflict is detected in any time slice, the entire new task is marked as conflicting with an existing task. If there are no conflicts in any time slice, the frequency allocation phase begins.

[0060] Once a frequency point is successfully assigned to a new task, all voxels used by that task need to be recorded in a 3D marker structure. For each time slice of the new task, the coarse voxel index is calculated. And check the status of the bold voxels. If the status is idle, change it to occupied but not subdivided, set the density counter to 1, and set the bold voxel's... Update to the current time slice index. If the status is occupied but not subdivided, increment the density counter by 1. Check if the counter has reached the preset subdivision threshold. If it has, perform the subdivision operation: create a two-dimensional array of fine voxels, and map all existing tasks in the coarse voxels to the fine voxels according to their respective beam pointing angles, and assign each occupied fine voxel a subdivision value. Set the time slice index for the corresponding task. Different tasks within the same coarse voxel may occupy different time slices, therefore the timestamp of each fine voxel should be updated based on the last occupied time slice. Change the coarse voxel state to subdivided and release the density counter. If the state is subdivided, directly calculate the fine voxel index based on the beam pointing angle and set the fine voxel's index accordingly. Update to the current time slice index. If multiple tasks or multiple time slices of the same task point to the same voxel, the timestamp is taken as the maximum value. As long as it is within the window, it is considered occupied.

[0061] As time goes by, it will lead to Gradually increase, when a certain coarse voxel or fine voxel... Smaller than the current When a voxel is considered idle, it is considered idle. This determination is performed dynamically on each query, without requiring any background cleanup tasks. Old timestamp values ​​can be overwritten by new tasks or retained indefinitely. Because the time index is monotonically increasing and the window length L is fixed, the value range of the timestamp has an upper bound, preventing overflow.

[0062] The voxel aging process also includes periodic recycling: according to a preset task processing cycle, all coarse voxels are scanned; for coarse voxels whose status is occupied but not subdivided and whose timestamp differs from the starting time index by more than twice the window length, their status is reset to idle; for subdivided coarse voxels, if the timestamps of all their internal fine voxels are less than the starting time index, the fine voxel array is deleted and the coarse voxels are restored to idle.

[0063] Specifically, at regular intervals, such as after processing 1000 tasks, all bold voxels are scanned. much smaller (If the difference exceeds twice the window length) and the bold element is in an occupied but unsubdivided state, reset its state to idle, and... Set to -1. For a subdivided coarse voxel, if all its internal fine voxels... All less than If this is not possible, the fine voxel array can be deleted, restoring the coarse voxels to their idle state. This recycling operation is not mandatory and should only be enabled when storage resources are extremely scarce. After the voxel timestamp update is complete, the frequency point number assigned to the new task is output, and the information of the new task is added to the task list.

[0064] The technical solutions described in the embodiments of this application have at least the following technical effects or advantages: This application eliminates the need for clearing the time dimension circular queue by adding a timestamp field to each bold and fine voxel and maintaining a global window start index. It employs a timestamp-based differential voxel update mechanism, reducing the time dimension maintenance complexity from a linear overhead related to the total number of voxels to a constant-level operation, significantly alleviating the write burden and energy consumption of the onboard computer. Simultaneously, by dynamically comparing the timestamp with the window start index during queries, periodic memory writes and cache invalidations are avoided, further improving conflict detection speed. Furthermore, it decouples time dimension management from spatial dimension hierarchical management and supports dynamic adjustment of the planning window length, enhancing flexibility and scalability.

[0065] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. For those skilled in the art, the present invention can have various modifications and variations. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

Claims

1. A rapid detection method for multi-beam pointing conflict in relay satellites, characterized in that, include: S1: Divide the frequency band into equally spaced frequency points to form a frequency point set, set the protection angle threshold according to the co-channel interference isolation requirements, and convert the protection angle threshold into a distance threshold pointing into space; S2: Based on the distance threshold, set the azimuth and pitch step sizes, take the smallest planning unit for the time step, discretize the space into voxels with azimuth, pitch and time as axes, and initialize the three-dimensional label array; S3: When a new task arrives, the time period is discretized into time slices, collision detection is performed based on the three-dimensional marker array, the voxel index corresponding to each time slice is calculated, and the voxel's occupied marker in the three-dimensional marker array is queried. If any time slice is marked as occupied by a voxel, it is determined that the new task conflicts with the planned task. The frequency of the conflicting task is recorded in the unavailable list. Otherwise, the frequency of any planned task is reused. S4: If no frequency point can be reused, remove the frequency points from the unavailable list, select the frequency point with the fewest uses and assign it to the new task; add the new task to the task list and output the assigned frequency point number; The voxels are represented by azimuth subscripts, elevation subscripts, and time subscripts: , in, This is the azimuth subscript. The subscript for pitch angle. For time index, The beam azimuth angle, For beam pitch angle, For a moment, The azimuth step size is... The pitch step length, For time step, This is the starting reference time. This indicates rounding down to the nearest integer.

2. The rapid detection method for multi-beam pointing conflict of relay satellites according to claim 1, characterized in that, The method for converting the protection angle threshold into a distance threshold in the pointing space is as follows: , in, Distance threshold To protect the angle threshold, Pi is the conversion constant between angles and radians.

3. The rapid detection method for multi-beam pointing conflict of relay satellites according to claim 1, characterized in that, The azimuth step size and elevation step size are both: ,in, This is the distance threshold; its value ensures that the Euclidean distance between any two beam pointing points located within the same voxel is no greater than [value missing]. Thus, the condition that falling into the same voxel is considered to be a conflict is met; The time step is taken as the smallest time unit of the mission plan, and it is required that the change in beam pointing angle within a time step does not exceed half of the azimuth step and the elevation step.

4. The rapid detection method for multi-beam pointing conflict of a relay satellite according to claim 1, characterized in that, The time dimension of the three-dimensional marker array is managed using a circular queue: the time index of each time slice is modulo the total number of time slices in the planning window; at the same time, a current starting time index is maintained, and whenever time advances by one time step, the current starting time index is incremented by one, and the entire two-dimensional voxel plane corresponding to the newly entered time slice in the planning window is cleared to zero.

5. The rapid detection method for multi-beam pointing conflict of a relay satellite according to claim 1, characterized in that, The conflict detection based on the three-dimensional marker array includes: pre-selecting tasks with overlapping time periods from the list of planned tasks to form a candidate set; for each planned task in the candidate set, determining the intersection interval between its service time period and that of the new task; if the intersection is not empty, calculating the voxel index of the new task and the planned task for each time slice within the intersection; marking the voxels occupied by the planned task as occupied in the three-dimensional marker array; when the new task arrives, it is only necessary to traverse each time slice within the service time period of the new task itself, calculate the voxel index and query the three-dimensional marker array; if any voxel corresponding to any time slice is marked as occupied, a conflict is determined to exist; if all voxels corresponding to all time slices are free, no conflict is determined to exist.

6. The rapid detection method for multi-beam pointing conflict of a relay satellite according to claim 1, characterized in that, The method also includes two levels of voxel resolution: the original voxels are used as fine voxels, and the azimuth and pitch step sizes of the coarse voxels are defined to be twice that of the fine voxels; a three-dimensional marker array for coarse voxels is established, and a density counter and a fine voxel marker array are maintained for each coarse voxel; when a new task arrives, the status of the coarse voxels is first queried. The status of the coarse voxels includes three categories: idle, occupied but not subdivided, and subdivided. If the coarse voxel is idle, it is determined that there is no conflict; if the coarse voxel is occupied but not subdivided, it is conservatively determined to be a conflict; if the coarse voxel is subdivided, the fine voxel marker array is queried to determine the conflict; when the number of planned tasks in the coarse voxel reaches the subdivision threshold, the subdivision operation is triggered, a fine voxel marker array is created, and the internal tasks are mapped to the fine voxels.

7. A rapid detection method for multi-beam pointing conflict in relay satellites according to claim 6, characterized in that, The subdivision threshold is set according to the task density requirements. The fine voxel marker array is only created when the coarse voxel is subdivided, and the entire space is not pre-allocated. When the proportion of fine voxels occupied in the coarse voxel is lower than the merging threshold, the fine voxel marker array is deleted and the coarse voxel is restored to the unsubdivided state.

8. A rapid detection method for multi-beam pointing conflict in relay satellites according to claim 6, characterized in that, The method also includes voxel aging: maintaining a timestamp field for each voxel, recording the index of the last time slice the voxel was occupied, and setting a global window start time index; During conflict detection, if the timestamp of a voxel is less than the starting time index, it is considered idle. When a new task occupies a voxel, the timestamp of the corresponding voxel is updated to the current time slice index. Time dimension advancement only requires updating the starting time index and does not require actively clearing the voxel marker.

9. A rapid detection method for multi-beam pointing conflict in relay satellites according to claim 8, characterized in that, The voxel aging process also includes periodic recycling: according to a preset task processing cycle, all coarse voxels are scanned; for coarse voxels whose status is occupied but not subdivided and whose timestamp differs from the starting time index by more than twice the window length, their status is reset to idle; for subdivided coarse voxels, if the timestamps of all their internal fine voxels are less than the starting time index, the fine voxel array is deleted and the coarse voxels are restored to idle.

Citation Information

Patent Citations

  • Airspace conflict detection method suitable for global space range

    CN112348960A

  • Task planning method, device and equipment of relay satellite and storage medium

    CN117371764A