A modular hybrid test platform based on arduino and rack-pinion transmission
By using a modular hybrid test platform based on Arduino and rack and pinion transmission, combined with adaptive control algorithms and high-precision sensors, the problems of high cost and insufficient accuracy of existing hybrid test systems are solved, realizing a low-cost, high-precision modular test platform that can adapt to the testing needs of complex structures.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- NANJING UNIV OF AERONAUTICS & ASTRONAUTICS
- Filing Date
- 2026-02-10
- Publication Date
- 2026-06-16
AI Technical Summary
Existing hybrid testing systems are costly, lack precision, and have poor adaptability, making it difficult to achieve a low-cost, high-precision modular hybrid testing platform. In particular, when dealing with composite material delamination failure and dynamic flutter, it is difficult to achieve millimeter-level displacement control precision and millisecond-level real-time interaction, and the hardware response lag is long.
A modular hybrid test platform based on Arduino and rack-and-pinion transmission is adopted, which combines a rack sliding system, a stepper motor/brushless servo motor, a force sensor, a displacement meter, a limit switch and an adaptive control algorithm. Through the Newmark-β numerical integration algorithm and the SRCKF stiffness recognition algorithm, high-frequency real-time interaction and high-precision displacement control are achieved.
A low-cost, high-precision modular hybrid test platform has been developed, reducing hardware costs, achieving displacement control accuracy of ±0.05mm, interaction frequency ≥100Hz, and shortening hardware response lag time, thus adapting to the testing needs of complex structures.
Smart Images

Figure CN122211596A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of aircraft structural strength testing technology, and in particular to a modular hybrid testing device based on low-cost hardware (Arduino) and rack and pinion transmission mechanism using Abaqus scripts, for high-frequency dynamic loading tests of aerospace structures (such as wings). Background Technology
[0002] As aircraft structures evolve towards lightweight and high-performance designs, the application of new materials such as composite materials and high-strength aluminum alloys is becoming increasingly widespread (for example, composite materials account for over 50% of the fuselage of the B787 and A350). However, the highly nonlinear mechanical behavior of these materials (such as delamination failure and plastic accumulation in composite materials) poses significant challenges to structural testing methods. While traditional fully physical testing methods can provide realistic data, they suffer from problems such as complex equipment, high costs, and cumbersome operation. On the other hand, pure numerical simulation methods, although lower in cost, struggle to accurately capture the nonlinear dynamic response of materials and boundary condition distortions, resulting in significant deviations between simulation results and actual conditions.
[0003] To balance efficiency and accuracy, hybrid testing (or real-time substructure testing) technology has emerged, aiming to achieve more efficient and accurate simulation of structural behavior by combining the advantages of computer simulation and physical testing. However, existing hybrid testing systems still have many shortcomings, such as: traditional platforms mostly use dedicated hardware controllers (such as industrial PCs), with closed architectures, making it impossible for users to adjust core algorithm parameters according to test requirements; high system integration requires professional programming knowledge, resulting in long development cycles and difficulty in rapid promotion and application; commercial hybrid testing systems are expensive; existing platforms are mostly centralized architectures, unable to support multi-node distributed collaborative experiments (such as multi-segment loading of airfoils), making it difficult to meet the testing needs of complex structures; especially when dealing with nonlinear behaviors such as composite material delamination failure and dynamic flutter, existing systems cannot simultaneously achieve millimeter-level displacement control accuracy and millisecond-level real-time interaction, and the long hardware response lag leads to boundary condition distortion and accumulation of test errors.
[0004] Furthermore, existing technologies, such as hybrid test platforms based on Abaqus scripts, while partially improving computational accuracy, are still limited by oversimplified numerical models, high communication latency, and a lack of modular design, making them unable to effectively meet the stringent requirements of high-frequency dynamic loading on aircraft structures. Therefore, there is an urgent need for a low-cost, high-precision, modular, and open-programmable hybrid test platform to address these issues. Summary of the Invention
[0005] To address the problems in the prior art, this invention provides a modular hybrid test platform based on Arduino and rack and pinion transmission. By optimizing the transmission structure, adaptive control algorithm, and multi-level safety mechanism, it solves the problems of high cost, insufficient accuracy, and poor adaptability in the prior art.
[0006] Technical solution:
[0007] This invention discloses a modular hybrid test platform based on Arduino and rack-and-pinion transmission, comprising: a modular hybrid test loading device as the main hardware execution unit, the loading device including:
[0008] A transmission module with a rack and pinion sliding system as its core, wherein the rack and pinion sliding system is configured with a pre-tightened double-tooth rack and pinion transmission mechanism to eliminate backlash;
[0009] A stepper motor / brushless servo motor that provides power to the transmission module;
[0010] A force sensor is installed between the actuator end of the rack sliding system and the test piece fixture, and a displacement meter is configured in conjunction with the transmission module;
[0011] Maximum travel limiters and minimum travel limiters are respectively located at both ends of the rack and pinion sliding system;
[0012] and a control system connected to the loading device, the control system comprising:
[0013] The lower-level machine is based on Arduino. The Arduino outputs control signals to the motor driver through I / O pins, and at the same time receives feedback signals from the force sensor, displacement meter and limit switch.
[0014] A host computer running Python programs integrates the Newmark-β numerical integration algorithm and the SRCKF stiffness identification algorithm, and achieves real-time interaction with Arduino at ≥100Hz via serial port;
[0015] The host computer generates the target displacement command through the Newmark-β algorithm, and loads the test piece through the Arduino-driven transmission module. At the same time, based on the measured data of the force sensor and displacement gauge, the stiffness parameter is corrected and the time step is dynamically adjusted through the SRCKF algorithm to form a closed-loop control link.
[0016] Furthermore, when the platform's power unit uses a stepper motor, it drives the motor by outputting PUL, DIR, and ENA signals through the Arduino's IO pins; when the platform's power unit uses a brushless servo motor, it communicates with the Arduino through the MCP2515CAN bus module, and the brushless servo motor has its own encoder to achieve closed-loop position feedback.
[0017] Furthermore, the rack and pinion transmission mechanism has a gear module of 1.5 and a reduction ratio of 1:1, which, together with the dovetail slide, achieves a displacement control accuracy of ±0.05mm.
[0018] Furthermore, the force sensor is a strain gauge sensor paired with the HX711 module, with a range of 0-58.86N, and is connected to the A0 pin of the Arduino; the displacement gauge is an LVDT linear displacement sensor with a range of ±40mm, and is connected to the A1 pin of the Arduino. Both have a sampling frequency of ≥100Hz.
[0019] Furthermore, the maximum travel limit switch and the minimum travel limit switch are connected to the D3 and D2 digital input pins of the Arduino, respectively, and the displacement over-limit protection is implemented using the INPUT_PULLUP mode.
[0020] Furthermore, the parameters of the Newmark-β numerical integration algorithm are configured as γ=0.5, β=0.25, and initial time step Δt=0.05s; the initial covariance of the SRCKF stiffness identification algorithm is P=1000, process noise Q=1.0, and observation noise R=0.1.
[0021] Furthermore, the control system supports CAN communication extension, connecting the brushless servo motor via the MCP2515 CAN bus module, with the motor ID configured as 0x141 (standard ID 0x140 + physical ID 1).
[0022] Furthermore, the host computer is compatible with Abaqus script execution, supports importing finite element model files in JSON / XML format, and allows configuration of node control parameters and load wave files via scripts.
[0023] Furthermore, the platform supports collaborative work of multiple Arduino nodes through Socket communication, and can also call Python's CFD libraries (such as OpenFOAM) to achieve aerodynamic-structural coupling simulation.
[0024] This invention also discloses a testing method based on a modular hybrid test platform using Arduino and rack and pinion transmission, comprising the following steps:
[0025] 1) Build the finite element model of the test specimen in Abaqus and export it as JSON / XML format. Import the model into Python and initialize the nodal stiffness matrix.
[0026] 2) Input boundary conditions (time history file or function input) in the Python interface and preview the loaded waveform;
[0027] 3) Connect the hardware devices and verify the working status of the Arduino, motor, and sensors;
[0028] 4) Start the hybrid experiment. The Python side generates the MOVE|target_disp command through the Newmark-β algorithm and sends it to the Arduino to drive the transmission module to load the test piece;
[0029] 5) The Arduino feeds back measured data via the STATUS|ACTUAL_POS:xx.xxx|FORCE:xx.xxx protocol. The Python side updates the SRCKF stiffness value and dynamically adjusts the time step based on this data.
[0030] 6) The experiment will stop when the termination condition or the EMERGENCY_STOP command is triggered. The data will be automatically saved as a CSV file and visualized and analyzed using Matplotlib.
[0031] Beneficial effects:
[0032] This invention solves the problems of complex platform construction, computational accuracy issues, boundary condition distortion, long hardware response lag, and low interaction frequency in aircraft structural strength analysis, providing an easy-to-operate, high-precision, open-programmable modular hybrid test platform. Specifically,
[0033] (1) This invention uses an open-source Arduino controller, modular standard components and low-cost sensors, which significantly reduces hardware costs compared to traditional dedicated hybrid experimental systems; at the same time, it provides a graphical user interface and an open programmable interface, which greatly simplifies the platform construction process and lowers the threshold for researchers to use it.
[0034] (2) The present invention adopts an architecture that combines a brushless servo motor with a CAN bus and a pre-tightened rack and pinion transmission mechanism to achieve a displacement control accuracy of ±0.05mm; the interaction frequency between the host computer and the slave computer is ≥100Hz, the hardware response lag time is shortened, and nonlinear mechanical behaviors such as composite material delamination failure and wing flutter can be accurately captured.
[0035] (3) This invention supports bidirectional compatibility between the old scheme configuration of stepper motor and driver and the new scheme configuration of brushless servo motor and CAN module, adapting to the cost and performance requirements of different test scenarios; at the same time, it supports the collaborative work of multiple Arduino nodes through Socket communication, and can call the Python CFD library to realize aerodynamic-structural coupling simulation, covering multi-dimensional needs from basic material testing to complex component testing. Attached Figure Description
[0036] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly described below.
[0037] Figure 1 This is a schematic diagram of an experimental setup according to an embodiment of the present invention;
[0038] Figure 2 This is a circuit connection diagram of an Arduino-based hybrid experimental device according to an embodiment of the present invention (old design).
[0039] Figure 3 This is a circuit connection diagram of an Arduino-based hybrid experimental device according to an embodiment of the present invention (new scheme).
[0040] Figure label:
[0041] 1. Control board; 2. Maximum stroke limit switch; 3. Rack and pinion sliding system; 4. Brushless servo motor; 5. Sample test piece; 6. Minimum stroke limit switch; 7. Force sensor; 8. Displacement gauge. Detailed Implementation
[0042] To make the objectives, technical solutions, and advantages of this invention clearer, the following detailed description, in conjunction with the accompanying drawings and embodiments, further illustrates the invention. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of the invention.
[0043] Example 1
[0044] like Figure 1 As shown, this embodiment discloses a modular hybrid test loading device, which is the core functional execution unit of the modular hybrid test platform. The test platform uses this hybrid test loading device as a physical carrier, and the loading device is the hardware foundation for the platform to realize the core functions of dynamic loading and mechanical parameter acquisition.
[0045] In the hybrid test loading device, the components are integrated in a functionally coordinated manner. The control board 1, serving as the core command center, is installed on the side of the main body of the device, responsible for outputting control signals and receiving feedback data. The brushless servo motor 4 provides the power source, and its power is transmitted to the rack and pinion sliding system 3 through a transmission mechanism, driving the slide table to perform linear motion. The maximum stroke limiter 2 and the minimum stroke limiter 6 are respectively located at both ends of the rack and pinion sliding system, working with the control board to achieve displacement over-limit protection. The force sensor 7 and displacement gauge 8 are installed between the test piece fixture and the slide table execution end, collecting the force and displacement data of the test piece in real time and transmitting it back to the control board. The test piece example 5 is fixed on the fixture at the front end of the force sensor, and the dynamic loading test is completed through the movement of the rack and pinion sliding system. All components are assembled into a whole with the slide table system via rigid supports, ensuring the stability of the loading process and the accuracy of data acquisition.
[0046] Example 2
[0047] This embodiment discloses a modular hybrid testing platform based on Arduino and rack-and-pinion transmission, focusing on low-cost, high-precision general dynamic mechanical testing, suitable for scenarios such as composite material delamination failure or cantilever beam loading. The hybrid testing platform includes the following modules:
[0048] 1. A hardware control module, used to drive the physical actuator and load the physical test substructure, and to collect the response data of the physical test substructure in real time.
[0049] The hardware control module includes a controller, a communication module, actuators, sensors, and a safety protection module.
[0050] The controller uses an Arduino series development board or an equivalent controller. In this embodiment, an Arduino Uno R3 development board is used, which is compatible with both stepper motor control and brushless servo motor control. Stepper motor control: The A4988 driver is connected to pins D2 (STEP), D3 (DIR), and D4 (ENABLE) to drive the 57HS09 stepper motor, achieving linear motion of the slide table through rack and pinion transmission. Brushless servo motor control: It is connected via an MCP2515 CAN bus module. The CS pin is connected to Arduino D10, SCK to D13, MOSI to D11, and MISO to D12. The motor ID is configured as 0x141 (standard ID 0x140 + physical ID 1), supporting higher dynamic response.
[0051] The A4988 stepper motor and force / displacement sensor data acquisition enable millimeter-level displacement control. The connection is as follows: the A4988 driver is connected to the D2 (STEP), D3 (DIR), and D4 (ENABLE) pins of the Arduino to achieve precise start, stop, direction, and speed control of the stepper motor, which in turn drives the test piece to be loaded through the rack and pinion transmission mechanism.
[0052] The communication module uses the MCP2515 CAN bus module, and its connections are as follows: CS pin is connected to Arduino D10, SCK pin is connected to Arduino SCK (D13), MOSI pin is connected to Arduino MOSI (D11), and MISO pin is connected to Arduino MISO (D12).
[0053] The actuator is used to drive various mechanical actuation devices. It can be adapted to different types of actuators such as stepper motors, servo motors or hydraulic actuators, and supports open-loop or closed-loop control modes. In this embodiment, a brushless servo motor is used. Its connection is as follows: CAN_H is connected to MCP2515 CAN_H, CAN_L is connected to MCP2515 CAN_L, and the motor ID configuration is 0x141 (standard ID 0x140 + physical ID 1).
[0054] The sensor is used to acquire force, displacement, and other related physical parameters in real time. It integrates an LVDT displacement sensor and a strain gauge force sensor, supporting real-time data acquisition at a sampling rate of 100Hz. The LVDT displacement sensor is connected as follows: signal line to Arduino A1 (analog input), power supply line to Arduino 5V, and ground line to Arduino GND. The force sensor has a range of 58.86N and is connected as follows: signal line to Arduino A0 (analog input), power supply line to Arduino 5V, and ground line to Arduino GND.
[0055] The safety protection module integrates limit switches for positive and negative limits: the signal line of limit switch #1 (positive limit) is connected to the D3 digital input pin of the Arduino, and the signal line of limit switch #2 (negative limit) is connected to the D2 digital input pin of the Arduino. Both use INPUT_PULLUP mode to ensure signal stability by utilizing internal pull-up resistors.
[0056] The hardware control module also includes auxiliary interfaces, including status indicator lights and a serial communication interface. The positive terminal of the status indicator light is connected to the D6 pin of the Arduino, and the negative terminal is connected to the GND pin. The serial communication interface is connected to the PC USB interface through the TX0 / RX0 pins, with a baud rate configured to 115200, to achieve stable data interaction between the controller and the host computer.
[0057] Physical installation and safety protection: (1) The main body has pre-reserved mounting holes for the test piece fixture. The test piece fixture is connected to the main body by bolts to ensure gapless transmission; (2) When the test is abnormal, the program will directly cut off the motor drive power supply to achieve emergency stop, with a response time of <10ms.
[0058] 2. The software solver module is used to run the numerical simulation model and calculate control commands and update model parameters in real time based on the response data fed back by the hardware control module.
[0059] The software solution module includes a numerical simulation unit, a parameter identification unit, and an adaptive control unit. The numerical simulation unit integrates Newmark-type explicit or implicit integration algorithms; the parameter identification unit uses Kalman filter-type algorithms to achieve real-time estimation of system parameters; and the adaptive control unit contains three-stage control logic of prediction, execution, and correction, supports dynamic adjustment of time step, and can handle structural nonlinear responses.
[0060] In this embodiment, the Newmark-β solver and SRCKF stiffness identification algorithm are integrated in the Python side, and real-time dynamic loading is achieved through a three-stage adaptive control of prediction-execution-correction.
[0061] Solver configuration: Newmark-β parameters: gamma=0.5, beta=0.25, initial time step Δt=0.01s5;
[0062] SRCKF is initialized with covariance P=1000, process noise Q=1.0, and observation noise R=0.13.
[0063] 3. A communication protocol module is used to establish a bidirectional data transmission channel between the hardware control module and the software solving module, enabling high-frequency, low-latency exchange of control commands and response data. In this embodiment, a lightweight TCP / IP communication protocol is used to support 100Hz high-frequency data exchange (latency <1ms).
[0064] The communication protocol module supports serial port, Ethernet, or wireless communication, employing a lightweight TCP / IP protocol to enable direct communication between Arduino and Python. The data transmission frequency is no less than 50Hz, and in practice, it supports high-frequency data exchange up to 100Hz, with a latency of <1ms. It uses a lightweight data encapsulation protocol, is compatible with the data formats of traditional hybrid experimental platforms (such as OpenFresco), and facilitates expansion.
[0065] 4. A security protection module is used to monitor the operating status of the hardware control module, software solving module and communication protocol module in real time and provide multi-level security protection.
[0066] The safety protection module includes: a hardware-level emergency stop protection mechanism, in which the hardware emergency stop circuit directly cuts off the motor drive power supply with a response time of <10ms; a software-level parameter over-limit protection mechanism, including software verification of displacement over-limit and software verification of force over-limit; and a system status monitoring and anomaly handling mechanism to achieve real-time monitoring and anomaly handling of data flow.
[0067] The software solving module, communication protocol module, and hardware control module are connected in sequence to form a closed-loop adaptive real-time control system.
[0068] Example 3
[0069] This embodiment discloses the circuit connection diagram of the modular hybrid test platform based on Arduino and rack-and-pinion transmission in Embodiment 2. For example... Figure 2 As shown, the Arduino (HB1) serves as the core: the displacement meter (HB2) has its 24V+ and 24V- pins connected to an external 24V power supply, and its AO pin transmits displacement signals; the breadboard (HB6) acts as a power distribution module, converting the 24V power supply to 5V to power the force sensor (HB3), whose A0 pin transmits the force signal to the Arduino's A0 pin; the motor driver (HB4) receives control signals such as PUL (pulse), DIR (direction), and ENA (enable) output from the Arduino, converting them into drive signals adapted for the stepper motor (HB5). The yellow and red phase lines of the stepper motor are connected to the driver's A+ and A- pins to achieve motor operation control. Each module forms a control, drive, and detection link through the Arduino's power and digital / analog pins to complete the experimental loading and data acquisition.
[0070] This solution uses a combination of a stepper motor and a motor driver, relying on the driver to convert the Arduino's control signals into motor power signals.
[0071] Example 4
[0072] This embodiment discloses the circuit connection diagram of the modular hybrid test platform based on Arduino and rack-and-pinion transmission in Embodiment 2, as another preferred solution. Figure 3 As shown, the circuit uses Arduino as the core control hub, and the left-side pin area is its interface: the IO1 pin of the microswitch (HB11) is connected to the Arduino's digital pin 3, and the GND pin is connected to the Arduino's GND, serving as a trigger signal input component (such as emergency stop triggering); the INT, SO, SI, SCK, and CS pins of the MCP2515 CAN bus module (HB10) are connected to the Arduino's digital pins 10, 11, 12, and 13 respectively, with GND connected to the Arduino's GND and VCC connected to the Arduino's 5V, used to extend CAN communication functions (such as connecting a brushless servo motor); the 24V+ and 24V- of the displacement gauge (HB8) are connected to an external 24V power supply, and the A1 pin is connected to the Arduino's analog pin A1, responsible for collecting the displacement data of the test piece; the 3.3V+ and 3.3V- of the force sensor (HB9) are connected to the Arduino's 3.3V, and the A0 pin is connected to the Arduino. The analog pin A0 is used to collect the force data of the test piece; at the same time, the power supply terminals of the motor (motor+, motor-) are connected in parallel with the external 24V power supply (24V+, 24V-) to realize power supply.
[0073] Each module forms a unified power supply and signal link through the Arduino's power pins (5V, 3.3V), digital / analog pins, and GND: sensor modules (displacement gauges, force sensors) transmit measured data to the Arduino, and control modules (MCP2515, microswitches) realize communication expansion and status triggering, together forming the hardware circuit foundation for data acquisition, command control, and power execution of the test platform.
[0074] Example 4 (corresponding) Figure 3 The preferred embodiment compared to embodiment 3 (corresponding to) Figure 2The optimized solution offers superior performance compared to the older solution. It replaces the stepper motor with a brushless servo motor and eliminates the independent motor driver, communicating directly with the Arduino via the MCP2515 CAN bus module. The brushless servo motor has a built-in encoder, enabling closed-loop position feedback and providing higher displacement control accuracy compared to the open-loop control of the stepper motor. The CAN bus communication in the optimized solution offers better transmission speed and real-time performance than the old solution's ordinary I / O signal control. Combined with the high-speed characteristics of the brushless servo motor, hardware response lag is improved. Eliminating the independent driver in the optimized solution results in a simpler circuit structure, reducing intermediate signal transmission links and lowering interference risks. Furthermore, the higher power density of the brushless servo motor allows it to handle more complex loading conditions. The new MCP2515 module supports multi-node CAN communication, enabling multiple servo motors to work collaboratively, whereas the old stepper motor drive architecture is difficult to scale to multi-node loading scenarios.
[0075] Example 5
[0076] This embodiment discloses the operation process of the modular hybrid test platform based on Arduino and rack-and-pinion transmission in Embodiment 2:
[0077] 1. Configure and connect the hardware. Use the Arduino Uno R3 as the core controller and connect peripherals through the following interfaces:
[0078] If the circuit connection method of Embodiment 3 is adopted, then the stepper motor control is as follows: the A4988 driver is connected to pins 36 of D2 (STEP), D3 (DIR), and D4 (ENABLE);
[0079] If the circuit connection method of Example 4 is adopted, the brushless servo motor control is as follows: the independent driver is removed, and the motor is communicated through the MCP2515 CAN bus module (INT / SO / SI / SCK / CS pins are connected to Arduino digital pins 10 / 11 / 12 / 13 respectively), and the motor ID is configured as 0x141;
[0080] Force sensor: HX711 module connected to pin A0 (range 0-58.86N, accuracy ±0.1%).
[0081] Displacement sensor: LVDT linear displacement sensor connected to pin 6 of A1 (range ±40mm, resolution 0.01mm).
[0082] The test piece fixture must be connected to the stepper motor guide rail via a rigid connecting rod to ensure backlash-free transmission; the hardware emergency stop circuit directly cuts off the motor drive power supply with a response time of <10ms.
[0083] 2. Then, deploy the software and configure the parameters.
[0084] Setting up the Python environment: Installing dependencies: pip install numpy scipy pyserialmatplotlib.
[0085] Core code snippet for controlling the loop:
[0086] def control_loop(self):
[0087] while self.running:
[0088] # 1. Newmark-β prediction
[0089] pred_disp = self.solver.predict(last_state)
[0090] # 2. Arduino performs loading (compatible with both new and old power units)
[0091] if the old solution:
[0092] result = self.execute_stepper_loading(pred_disp) # Drive the stepper motor
[0093] else:
[0094] result = self.execute_servo_loading(pred_disp) # Drive the servo motor via CAN bus
[0095] # 3. Status Correction
[0096] acc_corr = self.solver.correct(result['disp'])
[0097] # 4. Stiffness Update
[0098] self.stiffness = self.stiffness_estimator.update(result)
[0099] Solver configuration: Newmark-β parameters: gamma=0.5, beta=0.25, initial time step Δt=0.01s5; SRCKF initialization covariance P=1000, process noise Q=1.0, observation noise R=0.13.
[0100] Arduino firmware flashing. Upload the firmware program adapted to the corresponding power unit via the Arduino IDE (old scheme: P2P_HBT_CA.ino, baud rate 9600; new scheme: P2P_HBT_CAN.ino, baud rate 115200).
[0101] Calibrate sensor zero position: Execute the CALIB_DISP command to ensure that the initial error of the displacement sensor is <0.02mm.
[0102] 3. Start the test:
[0103] Step 1: In Abaqus, build a finite element model of the numerical experimental specimen. Based on the material properties of the specimen (such as composite laminate parameters and aluminum alloy elastic modulus) and geometric dimensions, construct a three-dimensional solid model and complete the mesh generation. Define boundary conditions (such as fixed constraints and hinge constraints) that match the actual installation state. Then, export the model as a JSON / XML format file, import the finite element model into the Python program, and complete the initialization of the nodal stiffness matrix.
[0104] Step 2: Open the pre-written Python script in Abaqus and enable the external communication interface; at the same time, input the boundary conditions in the Python script (you can choose to import the time history file or customize the load through functions such as 0.3*sin(2*3.14*t)) and preview the loaded waveform to ensure that the load parameters are consistent with the test requirements.
[0105] Step 3: Connect the hardware. Establish a physical connection between the Arduino control board and the computer via the USB interface. Check the wiring of the corresponding components according to the power unit configuration: For the old solution (stepper motor), check the wiring of the A4988 driver and the stepper motor. For the new solution (brushless servo motor), check the wiring of the MCP2515 CAN module and the servo motor. At the same time, confirm that the wiring of the force sensor and displacement gauge is normal.
[0106] Step 4: Set Abaqus node control parameters. Specify the control nodes in the finite element model that correspond to the hardware loading through the script, configure the displacement and force output modes of the nodes, and associate the dynamic solution parameters of the model (such as time step and integration algorithm) to keep the numerical model consistent with the control logic on the Python side.
[0107] Step 5: Set the load wave file (acceleration wave file). Import the preset test loading conditions (such as acceleration waves simulating aircraft vibration) into the system and match the frequency, amplitude and other parameters of the hardware loading through the Python interface.
[0108] Step 6: Verify the hardware status. Send test commands to the Arduino via the Python interface and execute corresponding actions according to the power unit configuration: the old solution drives the stepper motor to perform small displacement movements, while the new solution drives the servo motor to perform small displacement movements via the CAN bus; synchronously collect feedback data from the force sensor and displacement gauge to verify whether the hardware's motion response and data acquisition accuracy meet the test requirements.
[0109] Step 7: Start the mixed test (real-time control phase):
[0110] Prediction phase: The Python side calculates the target displacement using the Newmark-β algorithm, generates the MOVE|target_disp command, and sends it to the Arduino;
[0111] Execution phase: After receiving the command, the Arduino drives the stepper motor to move, and at the same time feeds back the actual displacement and force data to the Python side through the STATUS|ACTUAL_POS:20.802|FORCE:0.000 protocol format;
[0112] Correction phase: The Python side updates the SRCKF stiffness value based on the measured data and dynamically adjusts the time step (adjustment range 0.001-0.1s) to optimize the loading instruction at the next moment;
[0113] Step 8: Termination and Data Analysis:
[0114] When the termination condition is triggered (such as the completion of a preset cycle or the reaching of a preset time) or the EMERGENCY_STOP command is executed, the experiment stops immediately; the test data is automatically saved as a CSV file, containing parameters such as time, displacement, force, and stiffness, and can be visualized and analyzed using Matplotlib tools.
[0115] Meanwhile, the hybrid test platform in this embodiment has extended functions: it supports collaborative work of multiple Arduino nodes through Socket communication, adapting to complex test scenarios such as multi-segment loading of wings; it can call Python's CFD library (such as OpenFOAM) to realize aerodynamic-structural coupling simulation, expanding the application scenarios of the test.
[0116] Finally, it should be noted that the above descriptions are merely preferred embodiments of the present invention and are not intended to limit the present invention. Although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art can still modify the technical solutions described in the foregoing embodiments or make equivalent substitutions for some of the technical features. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A modular hybrid test platform based on Arduino and rack-and-pinion transmission, characterized in that, include: The modular hybrid test loading device, which serves as the main hardware execution component, comprises: A transmission module with a rack and pinion sliding system as its core, wherein the rack and pinion sliding system is configured with a pre-tightened double-tooth rack and pinion transmission mechanism to eliminate backlash; A stepper motor / brushless servo motor that provides power to the transmission module; A force sensor is installed between the actuator end of the rack sliding system and the test piece fixture, and a displacement meter is configured in conjunction with the transmission module; Maximum travel limiters and minimum travel limiters are respectively located at both ends of the rack and pinion sliding system; and a control system connected to the loading device, the control system comprising: The lower-level machine is based on Arduino. The Arduino outputs control signals to the motor driver through I / O pins, and at the same time receives feedback signals from the force sensor, displacement meter and limit switch. A host computer running Python programs integrates the Newmark-β numerical integration algorithm and the SRCKF stiffness identification algorithm, and achieves real-time interaction with Arduino at ≥100Hz via serial port; The host computer generates the target displacement command through the Newmark-β algorithm, and loads the test piece through the Arduino-driven transmission module. At the same time, based on the measured data of the force sensor and displacement gauge, the stiffness parameter is corrected and the time step is dynamically adjusted through the SRCKF algorithm to form a closed-loop control link.
2. The modular hybrid test platform according to claim 1, characterized in that, When the power unit of the platform uses a stepper motor, it drives the motor by outputting PUL, DIR, and ENA signals through the Arduino's IO pins; when the power unit of the platform uses a brushless servo motor, it communicates with the Arduino through the MCP2515 CAN bus module, and the brushless servo motor has its own encoder to achieve closed-loop position feedback.
3. The modular hybrid test platform according to claim 1, characterized in that, The rack and pinion transmission mechanism has a gear module of 1.5 and a reduction ratio of 1:1, which, together with the dovetail slide, achieves a displacement control accuracy of ±0.05mm.
4. The modular hybrid test platform according to claim 1, characterized in that, The force sensor is a strain gauge sensor paired with the HX711 module, with a range of 0-58.86N, and is connected to the A0 pin of the Arduino; the displacement meter is an LVDT linear displacement sensor with a range of ±40mm, and is connected to the A1 pin of the Arduino. Both have a sampling frequency of ≥100Hz.
5. The modular hybrid test platform according to claim 1, characterized in that, The maximum travel limit switch and the minimum travel limit switch are connected to the D3 and D2 digital input pins of the Arduino, respectively, and the displacement over-limit protection is implemented using the INPUT_PULLUP mode.
6. The modular hybrid test platform according to claim 1, characterized in that, The parameters of the Newmark-β numerical integration algorithm are configured as γ=0.5, β=0.25, and initial time step Δt=0.05s; The initial covariance of the SRCKF stiffness identification algorithm is P=1000, the process noise is Q=1.0, and the observation noise is R=0.
1.
7. The modular hybrid test platform according to claim 1, characterized in that, The control system supports CAN communication extension and connects to the brushless servo motor via the MCP2515 CAN bus module, with the motor ID configured as 0x141.
8. The modular hybrid test platform according to claim 1, characterized in that, The host computer is compatible with Abaqus script execution, supports importing finite element model files in JSON / XML format, and configures node control parameters and load wave files through scripts.
9. The modular hybrid test platform according to claim 1, characterized in that, The platform supports collaborative work of multiple Arduino nodes through Socket communication, and can also call Python's CFD library to achieve aerodynamic-structural coupling simulation.
10. A test method based on the modular hybrid test platform according to any one of claims 1-9, characterized in that, Includes the following steps: 1) Build the finite element model of the test specimen in Abaqus and export it as JSON / XML format. Import the model into Python and initialize the nodal stiffness matrix. 2) Input the boundary conditions in the Python script and preview the loaded waveform; 3) Connect the hardware devices and verify the working status of the Arduino, motor, and sensors; 4) Start the hybrid experiment. The Python side generates the MOVE|target_disp command through the Newmark-β algorithm and sends it to the Arduino to drive the transmission module to load the test piece; 5) The Arduino feeds back measured data via the STATUS|ACTUAL_POS:xx.xxx|FORCE:xx.xxx protocol. The Python side updates the SRCKF stiffness value and dynamically adjusts the time step based on this data. 6) The experiment will stop when the termination condition or the EMERGENCY_STOP command is triggered. The data will be automatically saved as a CSV file and visualized and analyzed using Matplotlib.