Free-Floating Space Manipulator Impact: Output SDRE Control

The application of the output- and state-dependent Riccati equation (OSDRE) is presented for impact modeling in space, FFSM.
Updated 5 Feb 2024

View License

The codes are for the simulation section of the mentioned article below:
Saeed Rafee Nekoo, Inna Sharf, Anibal Ollero, “Free-Floating Space Manipulator Impacting a Floating Object: Modeling and Output SDRE Controller Design,” Aerospace Science and Technology, 108945, 2024.
This work investigates the dynamics modeling, control, and impact resolution between a floating object and a free-floating space manipulator (FFSM). The controller design is carried out by using an output- and state-dependent Riccati equation (OSDRE) approach. In a collision between an object and a mechanism, the computation of the generalized velocities and the impact force or impulse, which are interrelated, is a challenging problem. Taking into account the free-floating conditions of the space environment, the conservation of linear and angular momentum equations, combined with the conservation of kinetic energy under the elastic impact assumption, are used to find the unknown variables of the impact problem. The control problem addressed for the FFSM is to regulate its end-effector in a point-to-point motion scenario, this while the space manipulator suffers an unintended impact with a floating object, such as a damaged satellite or space debris. By proposing a safety pause starting with the occurrence of impact and for a short duration thereafter, the proposed OSDRE design achieves the end-effector regulation control. Although the FFSM can reach the target point, it is shown that maintaining the end-effector regulation at the target is not feasible due to the momentum imparted to the FFSM as a result of the collision. To this end, we employ a simple thruster control on the space manipulator base to complete the regulation task.
The first code simulates the basic idea of the impact of an FFSM on an object. The object must be in the path of the end-effector otherwise the code is not able to see if it hits it or not. The reason is that the detection of impact is based on the measurement of the X-axis (distance) between the end-effector and the side of the object (Y axis does not play a role in the detection, this could be improved for future codes; a stop command if the end-effector does not hit the object, etc.).
To simulate the impact in the Y axis and change the initial and final position of the end-effector (to have the trajectory in vertical motion), the code must be changed in line 266 of the “Run_Section_4_2_Output_Feedback_Impact.m” code, a change from y1 to y2; and line 274 from Ie=[Ix;0] to Ie=[0;Iy];. And additional corresponding changes in lines 332-337.
The code has three control loops for three zones of pre-impact (lines 102-354), safety pause (lines 359-489), and regulation after impact (lines 493-674), for “Run_Section_4_2_Output_Feedback_Impact.m”. Line 266-340 (symbolic mathematics) are dedicated to only detect the impact and compute the velocities of generalized coordinates after impact and the impulse.
Please read the paper for more information on notation and method, you may contact the corresponding author for more information.

Cite As

Nekoo, S. R., I. Sharf, A. Ollero, “Free-Floating Space Manipulator Impacting a Floating Object: Modeling and Output SDRE Controller Design,” Aerospace Science and Technology, 108945, 2024.

MATLAB Release Compatibility
Created with R2023b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Correction of error unit in figure plots.