Multi-axis servo parallel system control method and device based on FPGA
By adopting a FPGA-based multi-axis servo parallel system control method, the problems of resolver data parsing accuracy and simple motor control strategy in the servo subsystem of the inter-satellite microwave communication terminal were solved. This method achieved high-precision resolver angle acquisition and stable motor motion, thereby improving the system's pointing accuracy and communication reliability.
Patent Information
- Application Number
- CN202511553429.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-29
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2045-10-29
AI Technical Summary
Existing inter-satellite microwave communication terminal servo subsystems suffer from insufficient resolution data parsing accuracy, simplistic motor control strategies, and low communication protocol parsing efficiency in terms of software control. This results in insufficient pointing accuracy and stability of the servo system, making it difficult to achieve complex motion control and reliable data transmission.
The system employs a FPGA-based multi-axis servo parallel system control method. Through clock correction and reset processing, it adjusts the data transmission and reception status, receives and parses resolver detection signals and control commands, determines motor rotation parameters, implements variable speed motion, optimizes acceleration and deceleration control strategies, supports complex motion algorithms and real-time communication, and adopts frame header detection and error handling mechanisms.
It achieves high-precision resolver angle acquisition, reduces motor vibration and noise, improves system stability and flexibility, ensures accurate command reception and reliable data feedback, and enhances anti-interference capability and communication reliability.
Smart Images

Figure CN121036628B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application relates to the field of servo control, in particular to a multi-axis servo parallel system control method and device based on FPGA. BACKGROUND
[0002] The servo controller of the existing intersatellite microwave communication terminal servo subsystem mainly relies on traditional motor control algorithms in software control, and has limited processing capacity for multi-motor collaborative control, high-precision angle analysis and complex communication protocols. In angle acquisition, the analysis precision of the resolver data is insufficient, and the high-resolution control demand cannot be met. In motor driving, the control strategy is relatively simple, which easily leads to unstable motor operation, affecting the stability and precision of the system. In communication, the real-time performance and reliability of the instruction analysis and data feedback are insufficient, and it is difficult to adapt to the high requirements of intersatellite communication on servo control. The existing servo controller has insufficient resolver data analysis precision, resulting in large angle acquisition error, affecting the pointing accuracy of the servo system; the motor control strategy is simple, and the motor operation is prone to vibration and noise, and the speed switching is unstable, affecting the system stability; the communication protocol analysis efficiency is low, the response delay of the instruction is large, and there is a lack of effective error detection and processing mechanism, resulting in low data transmission reliability; the multi-motor collaborative control capability is insufficient, and it is difficult to realize complex motion control algorithm, limiting the application scenarios of the servo system. SUMMARY
[0003] The application aims to provide a multi-axis servo parallel system control method and device based on FPGA, which implements clock correction and reset processing on the FPGA, adjusts the data transceiving state of the FPGA according to the signal interaction state of the FPGA, receives resolver detection signals output from a multi-axis resolver sensor, generates multi-axis angle data through resolver detection signal analysis processing, receives and analyzes control instructions, extracts instruction angle data, determines motor rotation parameters according to the multi-axis angle data and the instruction angle data, controls the motor to implement variable speed motion according to the motor rotation parameters and the real-time speed of the motor, so that the motor drives the multi-axis antenna to move to the target angle. Through accurate analysis processing of the output signals of the multi-axis resolver sensor, high-precision resolver angle acquisition is realized, and a reliable data source is provided for accurate control of the servo system; an optimized acceleration and deceleration control strategy is adopted to effectively reduce the vibration and noise of the motor operation, improve the motion stability and system stability; the servo system is collaboratively controlled. Complex motion control algorithms and real-time communication are supported, the system flexibility and expansibility are improved; a frame header detection, data verification and error processing mechanism is adopted to ensure accurate reception of instructions and reliable feedback of data, and the anti-interference ability and communication reliability of the system in a complex electromagnetic environment are improved.
[0004] The application is implemented by the following technical solutions:
[0005] The method comprises the following steps:
[0006] Clock correction and reset processing are performed on the FPGA, and the data transceiving state of the FPGA is adjusted according to the signal interaction state of the FPGA.
[0007] Rotary variable detection signals output from the multi-axis rotary variable sensor are received, and multi-axis angle data are generated by analyzing the rotary variable detection signals;
[0008] Control instructions are received and instruction angle data are extracted; motor rotation parameters are determined according to the multi-axis angle data and the instruction angle data.
[0009] The motor is controlled to perform variable-speed motion according to the motor rotation parameters and the real-time speed of the motor, so that the motor drives the multi-axis antenna to move to a target angle.
[0010] Optionally, clock correction and reset processing are performed on the FPGA, and the data transceiving state of the FPGA is adjusted according to the signal interaction state of the FPGA, which comprises the following steps:
[0011] The clock difference between the clock signal from the outside and the clock signal inside the FPGA is obtained, so as to perform clock correction on the FPGA.
[0012] The reset target and reset parameters are obtained by analyzing the reset signal from the outside, and reset processing is performed on the reset target according to the real-time running parameters of the reset target and the reset parameters.
[0013] The real-time data interaction state of the communication bus of the FPGA is obtained, and the busy and idle change trend of the communication bus is identified according to the real-time data interaction state, so as to adjust the data transceiving state of the FPGA; wherein the data transceiving state comprises the data transceiving operation execution timing.
[0014] Optionally, rotary variable detection signals output from the multi-axis rotary variable sensor are received, and multi-axis angle data are generated by analyzing the rotary variable detection signals, which comprises the following steps:
[0015] Frame header detection is performed on the rotary variable detection signals output from the X-axis rotary variable sensor and the Y-axis rotary variable sensor respectively, so as to obtain sensor identity information and determine whether the rotary variable detection signals are valid rotary variable detection signals.
[0016] Data analysis processing and verification processing are performed on the valid rotary variable detection signals, so as to generate X-axis angle data and Y-axis angle data.
[0017] According to the corresponding relationship between the antenna rotation angle and the motor rotation angle, the X-axis angle data and the Y-axis angle data are converted into motor actual rotation angle data, which is used as the multi-axis angle data.
[0018] Optionally, the control instruction is received and parsed to extract instruction angle data; and the motor rotation parameters are determined according to the multi-axis angle data and the instruction angle data, including:
[0019] The source identity of the received control instruction is identified to determine whether the control instruction is a trusted control instruction; and the instruction angle data is extracted from the trusted control instruction; wherein the instruction angle data includes multi-axis angle data that the source end expects to switch to;
[0020] The multi-axis angle difference data is obtained by comparing the multi-axis angle data and the instruction angle data; and the motor rotation direction and the motor rotation direction are determined according to the multi-axis angle data, the motor reduction ratio and the motor step angle, which are used as the motor rotation parameters.
[0021] Optionally, according to the motor rotation parameters and the motor real-time speed, the motor is controlled to implement variable speed motion, so that the motor drives the multi-axis antenna to move to a target angle, including:
[0022] According to the motor rotation parameters and the motor real-time speed, the motor is controlled to implement trapezoidal acceleration and deceleration motion or S-shaped acceleration and deceleration motion, so that the motor drives the X-axis antenna and / or the Y-axis antenna to move to a target angle.
[0023] Optionally, the setting method of the speed adjustment gradient of the acceleration and deceleration motion includes:
[0024] The current theoretical running speed and the current actual running speed are retrieved;
[0025] The running speed deviation coefficient Kv=|v s -v e | / v e is obtained according to the current theoretical running speed and the current actual running speed, where v s and v e represent the current actual running speed and the current theoretical running speed respectively;
[0026] The current deceleration trigger angle margin and the current motor driving running angle are retrieved;
[0027] The running angle margin coefficient Kw=|θ s -θ e | / θ e is obtained according to the current deceleration trigger angle margin and the current motor driving running angle, where θ s and θ eThese represent the current motor drive angle and the current deceleration trigger angle margin, respectively.
[0028] The speed adjustment gradient for acceleration and deceleration is set using the operating speed deviation coefficient Kv and the operating angle margin coefficient Kw.
[0029] The speed adjustment gradient of the acceleration / deceleration motion is obtained by the following formula:
[0030] At=a max ×(Kv×Kw) 0.5 ×[1-exp(-|v real -v ar | / Δv th )];
[0031] Where At represents the velocity adjustment gradient of acceleration / deceleration motion; a max This represents the rated maximum acceleration gradient of the motor; v real This indicates the current real-time speed of the motor; v ar Indicates the target speed of the motor; Δv th This indicates the speed deviation threshold.
[0032] FPGA-based multi-axis servo parallel system control device, including:
[0033] The main control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA;
[0034] The resolver signal transceiver and parsing module is used to receive the resolver detection signal output from the multi-axis resolver sensor, and to parse and process the resolver detection signal to generate multi-axis angle data;
[0035] The command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data;
[0036] The motor rotation parameter determination module is used to determine the motor rotation parameters based on the multi-axis angle data and the command angle data.
[0037] The motor control module is used to control the motor to perform variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle.
[0038] Optionally, the central control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA, including:
[0039] The clock difference is obtained by comparing the clock signal from the outside with the clock signal inside the FPGA, and the clock is then used to perform clock correction on the FPGA.
[0040] The reset target and reset parameters are obtained by parsing the reset signal from the outside. The reset target is then reset according to its real-time operating parameters and the reset parameters.
[0041] The real-time data interaction status of the FPGA's communication bus is obtained, and the busy / idle change trend of the communication bus is identified based on the real-time data interaction status, thereby adjusting the data transmission and reception status of the FPGA; wherein, the data transmission and reception status includes the execution timing of data transmission and reception operations.
[0042] Optionally, the resolver signal transceiver and parsing module is used to receive resolver detection signals output from a multi-axis resolver sensor, and to parse and process the resolver detection signals to generate multi-axis angle data, including:
[0043] Frame header detection is performed on the resolver detection signals output from the X-axis resolver sensor and the Y-axis resolver sensor respectively to obtain sensor identification information, thereby determining whether the resolver detection signal is a valid resolver detection signal;
[0044] The effective resolver detection signal is subjected to data parsing and verification processing to generate X-axis angle data and Y-axis angle data;
[0045] Based on the correspondence between the antenna rotation angle and the motor rotation angle, the X-axis angle data and the Y-axis angle data are converted into the actual motor rotation angle data, which are then used as the multi-axis angle data.
[0046] Optionally, the command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data, including:
[0047] The received control commands are identified from their source to determine whether they are trusted control commands. Command angle data is extracted from the trusted control commands. This command angle data includes multi-axis angle data that the source is expected to switch to.
[0048] The motor rotation parameter determination module is used to determine the motor rotation parameters based on the multi-axis angle data and the command angle data, including:
[0049] The multi-axis angle difference data is obtained by comparing the multi-axis angle data and the command angle data; the motor rotation direction and the motor rotation angle are determined based on the multi-axis angle data, the motor reduction ratio and the motor step angle, and are used as the motor rotation parameters.
[0050] Optionally, the motor control module is used to control the motor to perform variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle, including:
[0051] Based on the motor rotation parameters and the motor's real-time speed, the motor is controlled to perform trapezoidal acceleration and deceleration or S-shaped acceleration and deceleration, thereby driving the X-axis antenna and / or Y-axis antenna to move to the target angle.
[0052] Compared with the prior art, the present invention has the following beneficial effects:
[0053] The FPGA-based multi-axis servo parallel system control method and apparatus provided in this application implement clock correction and reset processing for the FPGA, adjust the FPGA's data transmission and reception status according to the FPGA's signal interaction status, receive resolver detection signals output from a multi-axis resolver sensor, and analyze and process the resolver detection signals to generate multi-axis angle data; receive and analyze control commands, extract command angle data; determine motor rotation parameters based on the multi-axis angle data and the command angle data; and control the motor to implement variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle. Through precise analysis and processing of the multi-axis resolver sensor output signals, high-precision acquisition of resolver angles is achieved, providing a reliable data source for the precise control of the servo system; an optimized acceleration and deceleration control strategy is adopted to effectively reduce motor vibration and noise, improving motion smoothness and system stability; and collaborative control of the servo system is provided. It supports complex motion control algorithms and real-time communication, improving system flexibility and scalability; and employs frame header detection, data verification, and error handling mechanisms to ensure accurate command reception and reliable data feedback, improving the system's anti-interference capability and communication reliability in complex electromagnetic environments. Attached Figure Description
[0054] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort. Wherein:
[0055] Figure 1 This is a flowchart illustrating the FPGA-based multi-axis servo parallel system control method provided by the present invention.
[0056] Figure 2 It is the trapezoidal acceleration and deceleration motion control curve of the motor.
[0057] Figure 3 A schematic diagram of the structure of the FPGA-based multi-axis servo parallel system control device provided by the present invention. Detailed Implementation
[0058] To make the above-mentioned objectives, features, and advantages of this application more apparent and understandable, the specific embodiments of this application will be described in detail below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are for illustrative purposes only and are not intended to limit the scope of this application. Furthermore, it should be noted that, for ease of description, only the parts relevant to this application are shown in the accompanying drawings, not the entire structure. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without inventive effort are within the scope of protection of this application.
[0059] The terms “comprising” and “having”, and any variations thereof, used in this application are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus.
[0060] In this document, the term "embodiment" means that a particular feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places throughout the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.
[0061] Please see Figure 1 As shown, an embodiment of this application provides a control method for a multi-axis servo parallel system based on an FPGA. This FPGA-based multi-axis servo parallel system control method includes:
[0062] Clock correction and reset processing are performed on the FPGA, and the data transmission and reception status of the FPGA is adjusted according to the signal interaction status of the FPGA.
[0063] Receive the resolver detection signal output from the multi-axis resolver sensor, and analyze and process the resolver detection signal to generate multi-axis angle data;
[0064] Receive and parse control commands, extract command angle data; determine motor rotation parameters based on multi-axis angle data and command angle data;
[0065] Based on the motor rotation parameters and the motor's real-time speed, the motor is controlled to perform variable speed motion, thereby driving the multi-axis antenna to move to the target angle.
[0066] The beneficial effects of the above embodiments are as follows: This FPGA-based multi-axis servo parallel system control method achieves high-precision acquisition of the resolver angle through precise analysis and processing of the output signal of the multi-axis resolver sensor, providing a reliable data source for the precise control of the servo system; it adopts an optimized acceleration and deceleration control strategy to effectively reduce motor vibration and noise, improving motion smoothness and system stability; it supports collaborative control of the servo system; it supports complex motion control algorithms and real-time communication, improving system flexibility and scalability; and it employs frame header detection, data verification, and error handling mechanisms to ensure accurate command reception and reliable data feedback, improving the system's anti-interference capability and communication reliability in complex electromagnetic environments.
[0067] In another embodiment, clock correction and reset processing are performed on the FPGA, and the data transmission and reception status of the FPGA is adjusted according to the signal interaction status of the FPGA, including:
[0068] The clock difference is obtained by comparing the clock signal from the outside with the clock signal inside the FPGA, and the clock is then used to perform clock correction on the FPGA.
[0069] The reset target and reset parameters are obtained by parsing the reset signal from the outside world. The reset target is then reset based on its real-time operating parameters and the reset parameters.
[0070] The real-time data interaction status of the FPGA's communication bus is obtained. Based on the real-time data interaction status, the busy / idle change trend of the communication bus is identified, and the data transmission and reception status of the FPGA is adjusted accordingly. The data transmission and reception status includes the execution timing of data transmission and reception operations.
[0071] The beneficial effects of the above embodiments are that the FPGA-based multi-axis servo parallel system control method is applied to the servo controller of an inter-satellite microwave communication terminal. It achieves high-precision control and reliable communication of the servo controller through coordinated work in multiple aspects, including global clock correction and signal / reset data communication, data parsing, and algorithm control. This coordinated work can be implemented at the Verilog code level. To ensure the normal coordinated operation of the FPGA as a whole, a central control module is set as the top-level module, thereby instantiating other modules of the FPGA and realizing the input of clock and reset signals, as well as the interaction of signals such as the communication bus, resolver detection signal, and limit switch status. Specifically, the clock difference between the external clock signal and the current clock signal inside the FPGA is obtained. A threshold comparison is performed on this clock difference to determine if the current clock signal of the FPGA deviates too much. If so, the external clock signal is used as the target clock signal, and the current clock signal of the FPGA is adjusted to the target clock signal; otherwise, the current clock signal of the FPGA remains unchanged. Furthermore, the reset target (i.e., the module within the FPGA that needs to be reset) and reset parameters (the target reset parameters corresponding to the module that needs to be reset) are obtained from the external reset signal. By receiving clock and reset signals from the outside world, it provides timing and reset control for the entire system.
[0072] The FPGA's communication bus can adopt either the CAN bus protocol or the RS422 bus protocol. By following the frame format and communication rules of the CAN bus or RS422 bus protocol, it achieves communication with the host computer's CAN bus or RS422 bus, receiving commands from the host computer and sending servo system status data. The aforementioned communication bus supports a baud rate of 115200bps and employs odd parity to ensure the reliability of bus data transmission. By detecting the falling edge of the received data, accurate reception of bus data is achieved, and a data reception completion flag is generated, improving communication real-time performance and data transmission rate, and supporting more device access and more complex network architectures. For example, by acquiring the real-time data interaction status of the FPGA's communication bus, the busy / idle trend of the communication bus can be identified, thereby adjusting the FPGA's data transmission and reception operation execution timing and other data transmission and reception statuses to ensure accurate command reception and reliable feedback of status data, reduce communication error rate, and improve the system's anti-interference capability.
[0073] In another embodiment, receiving a resolver detection signal output from a multi-axis resolver sensor and parsing and processing the resolver detection signal to generate multi-axis angle data includes:
[0074] Frame header detection is performed on the resolver detection signals output from the X-axis resolver sensor and the Y-axis resolver sensor respectively to obtain sensor identification information, thereby determining whether the resolver detection signal is a valid resolver detection signal;
[0075] The effective resolver detection signal is subjected to data parsing and verification processing to generate X-axis angle data and Y-axis angle data;
[0076] Based on the correspondence between the antenna resolver angle and the motor rotation angle, the X-axis angle data and Y-axis angle data are converted into the actual rotation angle data of the motor, which are then used as multi-axis angle data.
[0077] The beneficial effects of the above embodiments are as follows: To improve the accuracy of antenna reversal angle adjustment in multi-axis directions such as the X and Y axes, it is necessary to set up X-axis reversal sensors and Y-axis reversal sensors to detect the real-time reversal angles of the antenna in the X and Y axes respectively, providing a reliable angle basis for subsequent multi-axis reversal angle adjustment. To ensure the correct acquisition of the corresponding antenna's multi-axis reversal angle, device authentication is required for the source of the received reversal detection signal. Specifically, frame header detection is performed on the reversal detection signals output from the X-axis and Y-axis reversal sensors to obtain sensor identity information. This sensor identity information is compared with a pre-stored sensor identity list. If the sensor identity information exists in the list, the reversal detection signal is determined to be a valid reversal detection signal; otherwise, it is determined not to be a valid reversal detection signal. Furthermore, data parsing and verification processing are performed on the valid reversal detection signals to obtain X-axis angle data and Y-axis angle data, ensuring the accuracy of the multi-axis angle data. Additionally, when a valid reversal detection signal is confirmed to be received, a data update identifier is generated to ensure timely and accurate parsing of the valid reversal detection signal. Considering that the rotation angle of the motor itself and the multi-axis rotation angle of the motor-driven antenna are not directly the same, but have a specific angular transformation relationship, in order to accurately control the rotation of the motor to drive the antenna to rotate to the target angle, the X-axis angle data and Y-axis angle data are converted into the actual rotation angle data of the motor according to the correspondence between the antenna rotation angle and the motor rotation angle. This data is used as multi-axis angle data to provide a reliable basis for subsequent motor operation.
[0078] In another embodiment, receiving and parsing control commands, extracting command angle data; determining motor rotation parameters based on multi-axis angle data and command angle data, including:
[0079] The received control commands are identified from their source to determine whether they are trusted control commands. The command angle data is extracted from the trusted control commands. The command angle data includes the multi-axis angle data that the source expects to switch to.
[0080] Multi-axis angle difference data is obtained by comparing multi-axis angle data and command angle data; based on multi-axis angle data, motor reduction ratio and motor step angle, the motor rotation direction and motor rotation direction are determined and used as motor rotation parameters.
[0081] The beneficial effects of the above embodiments are as follows: To ensure that the motor can accurately drive the antenna to rotate to the corresponding angle, the source end identity of the control command for the motor is first identified to obtain the identity of the source end that issued the control command. The source end identity is compared with a pre-stored list of source end identities. If the source end identity exists in the list, the control command is determined to be a trusted control command; otherwise, the control command is determined not to be a trusted control command. The command angle data is extracted from the trusted control command parsing to provide the target angle value for the multi-axis angle data that the source end expects the antenna to switch to. Then, the multi-axis angle data and the command angle data are compared to calculate the corresponding multi-axis angle difference data. Based on the multi-axis angle data, the motor reduction ratio, and the motor step angle, the motor rotation direction and the motor rotation angle are determined and used as motor rotation parameters. Specifically, the number of motor rotation steps is obtained based on the motor reduction ratio and the motor step angle. At the same time, the positive and negative conversion of the rotation angle in different intervals is considered to ensure the accuracy of the multi-axis angle difference data calculation. Furthermore, based on the relationship between the command angle data and the current antenna angle, combined with the positive and negative range of the resolver angle, the direction of motor rotation is determined to ensure that the motor can accurately point to the target position.
[0082] In another embodiment, controlling the motor to perform variable-speed motion based on motor rotation parameters and real-time motor speed, thereby driving the multi-axis antenna to move to the target angle, includes:
[0083] Based on the motor rotation parameters and the motor's real-time speed, the motor is controlled to perform trapezoidal acceleration and deceleration or S-shaped acceleration and deceleration, thereby driving the X-axis antenna and / or Y-axis antenna to move to the target angle.
[0084] The beneficial effect of the above embodiments is that, in order to ensure that the motor can accurately drive the antenna to rotate to the target position angle, the motor can be controlled to perform trapezoidal acceleration and deceleration motion or S-shaped acceleration and deceleration motion according to the motor rotation parameters and the real-time speed of the motor, so that the motor drives the X-axis antenna and / or Y-axis antenna to move to the target angle. Please refer to... Figure 2 This refers to the trapezoidal acceleration and deceleration motion control curve of the motor. The main idea behind the motor's acceleration and deceleration control is to dynamically adjust the motor's acceleration and deceleration process based on the target number of steps and the current speed to ensure smooth motor operation. Furthermore, smooth speed control is achieved by setting different speed levels and acceleration / deceleration step sizes. For example... Figure 2The corresponding trapezoidal acceleration / deceleration motion control curve can be represented by the following formula: next_period = current_period - (2 × current_period) 2 The formula is: (×acceleration) / (F_clk×65536), where next_period represents the length of the next cycle, current_period represents the length of the current cycle, acceleration represents the current acceleration of the motor, and F_clk represents the system clock frequency. For controlling the motor to implement S-shaped acceleration and deceleration, the acceleration / deceleration curve can be dynamically generated based on the target speed and distance, and the motor's pulse output frequency can be adjusted accordingly. Using trapezoidal or S-shaped acceleration / deceleration algorithms to control the motor operation achieves precise control of the servo mechanism angle, with an angle error ≤ ±15 arcseconds. This meets the high pointing accuracy requirements of inter-satellite communication, effectively reduces vibration and noise during motor operation, ensures smooth motor speed switching, and improves system stability and reliability.
[0085] Meanwhile, the method for setting the speed adjustment gradient for acceleration and deceleration includes:
[0086] Retrieve the current theoretical operating speed and the current actual operating speed;
[0087] The operating speed deviation coefficient Kv = |v is obtained based on the current theoretical operating speed and the current actual operating speed. s -v e | / v e , where v s and v e These represent the current actual operating speed and the current theoretical operating speed, respectively.
[0088] Retrieve the current deceleration trigger angle margin and the current motor drive operating angle;
[0089] The operating angle margin coefficient Kw=|θ is obtained based on the current deceleration trigger angle margin and the current motor drive operating angle. s -θ e | / θ e , where θ s and θ e These represent the current motor drive angle and the current deceleration trigger angle margin, respectively.
[0090] The speed adjustment gradient for acceleration and deceleration is set using the operating speed deviation coefficient Kv and the operating angle margin coefficient Kw.
[0091] The speed adjustment gradient of the acceleration / deceleration motion is obtained by the following formula:
[0092] At=a max ×(Kv×Kw) 0.5×[1-exp(-|v real -v ar | / Δv th )];
[0093] Where At represents the velocity adjustment gradient of acceleration / deceleration motion; a max This represents the rated maximum acceleration gradient of the motor; v real This indicates the current real-time speed of the motor; v ar Indicates the target speed of the motor; Δv th This indicates the speed deviation threshold.
[0094] The beneficial effects of the above embodiments are that traditional gradient settings often rely solely on the single dimension of "speed deviation," easily neglecting the constraint of "angle margin" (e.g., if the motor speed is close to the target but nearing the angle requiring deceleration, continuing to accelerate with the original gradient will lead to overshoot). This solution, through the fusion calculation of the operating speed deviation coefficient Kv and the operating angle margin coefficient Kw, allows the gradient At to simultaneously respond to the needs of "whether the speed meets the target" and "whether deceleration is required at the angle," thereby improving speed adjustment efficiency and solving the problem of "insufficient accuracy caused by single-dimensional constraints." Simultaneously, the exponential term [1-exp(-|v] in the formula... real -v ar | / Δv th The deviation between real-time speed and target speed is smoothed non-linearly: when the deviation is less than Δv... th When the speed fluctuation threshold is reached, the exponential term increases slowly, and At changes gradually to avoid frequent gradient adjustments due to minor speed fluctuations (such as slight load fluctuations during motor operation); when the deviation exceeds Δv... th When the exponential term rapidly approaches 1, At responds promptly to deviations, ensuring effective adjustment. This characteristic of "smooth response to small deviations and sensitive response to large deviations" makes motor speed adjustment more stable, reduces jitter during antenna movement, and improves attitude consistency in multi-axis collaborative scenarios (such as synchronous movement of X-axis and Y-axis antennas). The formula uses a... max (Motor rated maximum acceleration gradient) serves as the basic limit for gradient calculation; all adjustments are made using the coefficient (Kv×Kw). 0.5 For a max Scaling is performed to ensure that the final acceleration / deceleration speed adjustment gradient At never exceeds the rated load capacity of the motor hardware. This avoids motor overload, encoder damage, or mechanical structure wear (such as gearbox impact) caused by excessive gradient settings, thus solving the problem of "equipment loss caused by the lack of hardware constraints on gradients" and balancing adjustment efficiency with hardware safety.
[0095] Please see Figure 3 As shown, an embodiment of this application provides a multi-axis servo parallel system control device based on an FPGA. This FPGA-based multi-axis servo parallel system control device includes:
[0096] The main control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA.
[0097] The resolver signal transceiver and parsing module is used to receive resolver detection signals output from a multi-axis resolver sensor, and to parse and process the resolver detection signals to generate multi-axis angle data.
[0098] The command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data;
[0099] The motor rotation parameter determination module is used to determine the motor rotation parameters based on multi-axis angle data and command angle data.
[0100] The motor control module is used to control the motor to perform variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle.
[0101] The beneficial effects of the above embodiments are as follows: This FPGA-based multi-axis servo parallel system control system achieves high-precision acquisition of the resolver angle through precise analysis and processing of the output signal of the multi-axis resolver sensor, providing a reliable data source for the precise control of the servo system; it adopts an optimized acceleration and deceleration control strategy to effectively reduce the vibration and noise of the motor operation, improving motion smoothness and system stability; it provides coordinated control of the servo system; it supports complex motion control algorithms and real-time communication, improving system flexibility and scalability; and it employs frame header detection, data verification, and error handling mechanisms to ensure accurate command reception and reliable data feedback, improving the system's anti-interference capability and communication reliability in complex electromagnetic environments.
[0102] In another embodiment, the master control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA, including:
[0103] The clock difference is obtained by comparing the clock signal from the outside with the clock signal inside the FPGA, and the clock is then used to perform clock correction on the FPGA.
[0104] The reset target and reset parameters are obtained by parsing the reset signal from the outside world. The reset target is then reset based on its real-time operating parameters and the reset parameters.
[0105] The real-time data interaction status of the FPGA's communication bus is obtained. Based on the real-time data interaction status, the busy / idle change trend of the communication bus is identified, and the data transmission and reception status of the FPGA is adjusted accordingly. The data transmission and reception status includes the execution timing of data transmission and reception operations.
[0106] The beneficial effects of the above embodiments are that the FPGA-based multi-axis servo parallel system control method is applied to the servo controller of an inter-satellite microwave communication terminal. It achieves high-precision control and reliable communication of the servo controller through coordinated work in multiple aspects, including global clock correction and signal / reset data communication, data parsing, and algorithm control. This coordinated work can be implemented at the Verilog code level. To ensure the normal coordinated operation of the FPGA as a whole, a central control module is set as the top-level module, thereby instantiating other modules of the FPGA and realizing the input of clock and reset signals, as well as the interaction of signals such as the communication bus, resolver detection signal, and limit switch status. Specifically, the clock difference between the external clock signal and the current clock signal inside the FPGA is obtained. A threshold comparison is performed on this clock difference to determine if the current clock signal of the FPGA deviates too much. If so, the external clock signal is used as the target clock signal, and the current clock signal of the FPGA is adjusted to the target clock signal; otherwise, the current clock signal of the FPGA remains unchanged. Furthermore, the reset target (i.e., the module within the FPGA that needs to be reset) and reset parameters (the target reset parameters corresponding to the module that needs to be reset) are obtained from the external reset signal. By receiving clock and reset signals from the outside world, it provides timing and reset control for the entire system.
[0107] The FPGA's communication bus can adopt either the CAN bus protocol or the RS422 bus protocol. By following the frame format and communication rules of the CAN bus or RS422 bus protocol, it achieves communication with the host computer's CAN bus or RS422 bus, receiving commands from the host computer and sending servo system status data. The aforementioned communication bus supports a baud rate of 115200bps and employs odd parity to ensure the reliability of bus data transmission. By detecting the falling edge of the received data, accurate reception of bus data is achieved, and a data reception completion flag is generated, improving communication real-time performance and data transmission rate, and supporting more device access and more complex network architectures. For example, by acquiring the real-time data interaction status of the FPGA's communication bus, the busy / idle trend of the communication bus can be identified, thereby adjusting the FPGA's data transmission and reception operation execution timing and other data transmission and reception statuses to ensure accurate command reception and reliable feedback of status data, reduce communication error rate, and improve the system's anti-interference capability.
[0108] In another embodiment, the resolver signal transceiver and parsing module is used to receive resolver detection signals output from a multi-axis resolver sensor, and to process and parse the resolver detection signals to generate multi-axis angle data, including:
[0109] Frame header detection is performed on the resolver detection signals output from the X-axis resolver sensor and the Y-axis resolver sensor respectively to obtain sensor identification information, thereby determining whether the resolver detection signal is a valid resolver detection signal;
[0110] The effective resolver detection signal is subjected to data parsing and verification processing to generate X-axis angle data and Y-axis angle data;
[0111] Based on the correspondence between the antenna resolver angle and the motor rotation angle, the X-axis angle data and Y-axis angle data are converted into the actual rotation angle data of the motor, which are then used as multi-axis angle data.
[0112] The beneficial effects of the above embodiments are as follows: To improve the accuracy of antenna reversal angle adjustment in multi-axis directions such as the X and Y axes, it is necessary to set up X-axis reversal sensors and Y-axis reversal sensors to detect the real-time reversal angles of the antenna in the X and Y axes respectively, providing a reliable angle basis for subsequent multi-axis reversal angle adjustment. To ensure the correct acquisition of the corresponding antenna's multi-axis reversal angle, device authentication is required for the source of the received reversal detection signal. Specifically, frame header detection is performed on the reversal detection signals output from the X-axis and Y-axis reversal sensors to obtain sensor identity information. This sensor identity information is compared with a pre-stored sensor identity list. If the sensor identity information exists in the list, the reversal detection signal is determined to be a valid reversal detection signal; otherwise, it is determined not to be a valid reversal detection signal. Furthermore, data parsing and verification processing are performed on the valid reversal detection signals to obtain X-axis angle data and Y-axis angle data, ensuring the accuracy of the multi-axis angle data. Additionally, when a valid reversal detection signal is confirmed to be received, a data update identifier is generated to ensure timely and accurate parsing of the valid reversal detection signal. Considering that the rotation angle of the motor itself and the multi-axis rotation angle of the motor-driven antenna are not directly the same, but have a specific angular transformation relationship, in order to accurately control the rotation of the motor to drive the antenna to rotate to the target angle, the X-axis angle data and Y-axis angle data are converted into the actual rotation angle data of the motor according to the correspondence between the antenna rotation angle and the motor rotation angle. This data is used as multi-axis angle data to provide a reliable basis for subsequent motor operation.
[0113] In another embodiment, the command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data, including:
[0114] The received control commands are identified from their source to determine whether they are trusted control commands. The command angle data is extracted from the trusted control commands. The command angle data includes the multi-axis angle data that the source expects to switch to.
[0115] The motor rotation parameter determination module is used to determine the motor rotation parameters based on multi-axis angle data and command angle data, including:
[0116] Multi-axis angle difference data is obtained by comparing multi-axis angle data and command angle data; based on multi-axis angle data, motor reduction ratio and motor step angle, the motor rotation direction and motor rotation direction are determined and used as motor rotation parameters.
[0117] The beneficial effects of the above embodiments are as follows: To ensure that the motor can accurately drive the antenna to rotate to the corresponding angle, the source end identity of the control command for the motor is first identified to obtain the identity of the source end that issued the control command. The source end identity is compared with a pre-stored list of source end identities. If the source end identity exists in the list, the control command is determined to be a trusted control command; otherwise, the control command is determined not to be a trusted control command. The command angle data is extracted from the trusted control command parsing to provide the target angle value for the multi-axis angle data that the source end expects the antenna to switch to. Then, the multi-axis angle data and the command angle data are compared to calculate the corresponding multi-axis angle difference data. Based on the multi-axis angle data, the motor reduction ratio, and the motor step angle, the motor rotation direction and the motor rotation angle are determined and used as motor rotation parameters. Specifically, the number of motor rotation steps is obtained based on the motor reduction ratio and the motor step angle. At the same time, the positive and negative conversion of the rotation angle in different intervals is considered to ensure the accuracy of the multi-axis angle difference data calculation. Furthermore, based on the relationship between the command angle data and the current antenna angle, combined with the positive and negative range of the resolver angle, the direction of motor rotation is determined to ensure that the motor can accurately point to the target position.
[0118] In another embodiment, the motor control module is used to control the motor to perform variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle, including:
[0119] Based on the motor rotation parameters and the motor's real-time speed, the motor is controlled to perform trapezoidal acceleration and deceleration or S-shaped acceleration and deceleration, thereby driving the X-axis antenna and / or Y-axis antenna to move to the target angle.
[0120] The beneficial effect of the above embodiments is that, in order to ensure that the motor can accurately drive the antenna to rotate to the target position angle, the motor can be controlled to perform trapezoidal acceleration and deceleration motion or S-shaped acceleration and deceleration motion according to the motor rotation parameters and the real-time speed of the motor, so that the motor drives the X-axis antenna and / or Y-axis antenna to move to the target angle.
[0121] In summary, this FPGA-based multi-axis servo parallel system control method and device achieves high-precision acquisition of the resolver angle through precise analysis and processing of the output signal from the multi-axis resolver sensor, providing a reliable data source for the precise control of the servo system. It employs an optimized acceleration / deceleration control strategy to effectively reduce motor vibration and noise, improving motion smoothness and system stability. It also supports collaborative control of the servo system, complex motion control algorithms, and real-time communication, enhancing system flexibility and scalability. Furthermore, it utilizes frame header detection, data verification, and error handling mechanisms to ensure accurate command reception and reliable data feedback, improving the system's anti-interference capability and communication reliability in complex electromagnetic environments.
[0122] The above is only one specific embodiment of the present invention, and any improvements made based on the concept of the present invention shall be considered within the scope of protection of the present invention.
Claims
1. A control method for a multi-axis servo parallel system based on FPGA, characterized in that, include: Clock correction and reset processing are performed on the FPGA, and the data transmission and reception status of the FPGA is adjusted according to the signal interaction status of the FPGA. Receive the resolver detection signal output from the multi-axis resolver sensor, and analyze and process the resolver detection signal to generate multi-axis angle data; Receive and parse control commands, extract command angle data; determine motor rotation parameters based on the multi-axis angle data and the command angle data; Based on the motor rotation parameters and the motor's real-time speed, the motor is controlled to perform variable speed motion, thereby driving the multi-axis antenna to move to the target angle. The process includes controlling the motor to perform variable-speed motion based on the motor rotation parameters and real-time speed, thereby driving the multi-axis antenna to move to the target angle. Based on the motor rotation parameters and the real-time speed of the motor, the motor is controlled to perform trapezoidal acceleration and deceleration or S-shaped acceleration and deceleration, thereby driving the X-axis antenna and / or Y-axis antenna to move to the target angle. The method for setting the speed adjustment gradient for acceleration and deceleration includes: Retrieve the current theoretical operating speed and the current actual operating speed; The operating speed deviation coefficient Kv = |v is obtained based on the current theoretical operating speed and the current actual operating speed. s -v e | / v e , where v s and v e These represent the current actual operating speed and the current theoretical operating speed, respectively. Retrieve the current deceleration trigger angle margin and the current motor drive operating angle; The operating angle margin coefficient Kw=|θ is obtained based on the current deceleration trigger angle margin and the current motor drive operating angle. s -θ e | / θ e , where θ s and θ e These represent the current motor drive angle and the current deceleration trigger angle margin, respectively. The speed adjustment gradient for acceleration and deceleration is set using the operating speed deviation coefficient Kv and the operating angle margin coefficient Kw. The speed adjustment gradient of the acceleration / deceleration motion is obtained by the following formula: At=a max ×(Kv×Kw) 0.5 ×[1-exp(-|v real -v ar | / Δv th )]; Where At represents the velocity adjustment gradient of acceleration / deceleration motion; a max This represents the rated maximum acceleration gradient of the motor; v real This indicates the current real-time speed of the motor; v ar Indicates the target speed of the motor; Δv th This indicates the speed deviation threshold.
2. The FPGA-based multi-axis servo parallel system control method as described in claim 1, characterized in that: Perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA, including: The clock difference is obtained by comparing the clock signal from the outside with the clock signal inside the FPGA, and the clock is then used to perform clock correction on the FPGA. The reset target and reset parameters are obtained by parsing the reset signal from the outside. The reset target is then reset according to its real-time operating parameters and the reset parameters. The real-time data interaction status of the FPGA's communication bus is obtained, and the busy / idle change trend of the communication bus is identified based on the real-time data interaction status, thereby adjusting the data transmission and reception status of the FPGA; wherein, the data transmission and reception status includes the execution timing of data transmission and reception operations.
3. The FPGA-based multi-axis servo parallel system control method as described in claim 1, characterized in that: Receive the resolver detection signal output from the multi-axis resolver sensor, and analyze and process the resolver detection signal to generate multi-axis angle data, including: Frame header detection is performed on the resolver detection signals output from the X-axis resolver sensor and the Y-axis resolver sensor respectively to obtain sensor identification information, thereby determining whether the resolver detection signal is a valid resolver detection signal; The effective resolver detection signal is subjected to data parsing and verification processing to generate X-axis angle data and Y-axis angle data; Based on the correspondence between the antenna rotation angle and the motor rotation angle, the X-axis angle data and the Y-axis angle data are converted into the actual motor rotation angle data, which are then used as the multi-axis angle data.
4. The FPGA-based multi-axis servo parallel system control method as described in claim 1, characterized in that: Receive and parse control commands, extract command angle data; determine motor rotation parameters based on the multi-axis angle data and the command angle data, including: The received control commands are identified from their source to determine whether they are trusted control commands. Command angle data is extracted from the trusted control commands. This command angle data includes multi-axis angle data that the source is expected to switch to. The multi-axis angle difference data is obtained by comparing the multi-axis angle data and the command angle data; the motor rotation direction and the motor rotation angle are determined based on the multi-axis angle data, the motor reduction ratio and the motor step angle, and are used as the motor rotation parameters.
5. A FPGA-based multi-axis servo parallel system control device, characterized in that, include: The main control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA; The resolver signal transceiver and parsing module is used to receive the resolver detection signal output from the multi-axis resolver sensor, and to parse and process the resolver detection signal to generate multi-axis angle data; The command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data; The motor rotation parameter determination module is used to determine the motor rotation parameters based on the multi-axis angle data and the command angle data. The motor control module is used to control the motor to perform variable speed motion according to the motor rotation parameters and the real-time speed of the motor, so that the motor drives the multi-axis antenna to move to the target angle; The motor control module is used to control the motor to perform variable speed motion based on the motor rotation parameters and the motor's real-time speed, thereby driving the multi-axis antenna to move to the target angle, including: Based on the motor rotation parameters and the real-time speed of the motor, the motor is controlled to perform trapezoidal acceleration and deceleration or S-shaped acceleration and deceleration, thereby driving the X-axis antenna and / or Y-axis antenna to move to the target angle. The speed adjustment gradient for acceleration and deceleration is set as follows: Retrieve the current theoretical operating speed and the current actual operating speed; The operating speed deviation coefficient Kv = |v is obtained based on the current theoretical operating speed and the current actual operating speed. s -v e | / v e , where v s and v e These represent the current actual operating speed and the current theoretical operating speed, respectively. Retrieve the current deceleration trigger angle margin and the current motor drive operating angle; The operating angle margin coefficient Kw=|θ is obtained based on the current deceleration trigger angle margin and the current motor drive operating angle. s -θ e | / θ e , where θ s and θ e These represent the current motor drive angle and the current deceleration trigger angle margin, respectively. The speed adjustment gradient for acceleration and deceleration is set using the operating speed deviation coefficient Kv and the operating angle margin coefficient Kw. The speed adjustment gradient of the acceleration / deceleration motion is obtained by the following formula: At=a max ×(Kv×Kw) 0.5 ×[1-exp(-|v real -v ar | / Δv th )]; Where At represents the velocity adjustment gradient of acceleration / deceleration motion; a max This represents the rated maximum acceleration gradient of the motor; v real This indicates the current real-time speed of the motor; v ar Indicates the target speed of the motor; Δv th This indicates the speed deviation threshold.
6. The FPGA-based multi-axis servo parallel system control device as described in claim 5, characterized in that: The central control module is used to perform clock correction and reset processing on the FPGA, and adjust the data transmission and reception status of the FPGA according to the signal interaction status of the FPGA, including: The clock difference is obtained by comparing the clock signal from the outside with the clock signal inside the FPGA, and the clock is then used to perform clock correction on the FPGA. The reset target and reset parameters are obtained by parsing the reset signal from the outside. The reset target is then reset according to its real-time operating parameters and the reset parameters. The real-time data interaction status of the FPGA's communication bus is obtained, and the busy / idle change trend of the communication bus is identified based on the real-time data interaction status, thereby adjusting the data transmission and reception status of the FPGA; wherein, the data transmission and reception status includes the execution timing of data transmission and reception operations.
7. The FPGA-based multi-axis servo parallel system control device as described in claim 5, characterized in that: The resolver signal transceiver and parsing module is used to receive resolver detection signals output from a multi-axis resolver sensor, and to parse and process the resolver detection signals to generate multi-axis angle data, including: Frame header detection is performed on the resolver detection signals output from the X-axis resolver sensor and the Y-axis resolver sensor respectively to obtain sensor identification information, thereby determining whether the resolver detection signal is a valid resolver detection signal; The effective resolver detection signal is subjected to data parsing and verification processing to generate X-axis angle data and Y-axis angle data; Based on the correspondence between the antenna rotation angle and the motor rotation angle, the X-axis angle data and the Y-axis angle data are converted into the actual motor rotation angle data, which are then used as the multi-axis angle data.
8. The FPGA-based multi-axis servo parallel system control device as described in claim 5, characterized in that: The command signal transceiver and parsing module is used to receive and parse control commands and extract command angle data, including: The received control commands are identified from their source to determine whether they are trusted control commands. Command angle data is extracted from the trusted control commands. This command angle data includes multi-axis angle data that the source is expected to switch to. The motor rotation parameter determination module is used to determine the motor rotation parameters based on the multi-axis angle data and the command angle data, including: The multi-axis angle difference data is obtained by comparing the multi-axis angle data and the command angle data; the motor rotation direction and the motor rotation angle are determined based on the multi-axis angle data, the motor reduction ratio and the motor step angle, and are used as the motor rotation parameters.
Citation Information
Patent Citations
Global positioning system (GPS) / global navigation satellite system (GLONASS) dual-system combination simulator and method
CN102176030A
Sector-scanning radar space-time joint target tracking method
CN112114308A