Satellite stabilisation tether system¶
This example demonstrates the creation of a system for stabilising the angular position of a satellite by controlling the length of the tether by which it is attached to the platform. A finite automata control unit controls the speed at which the tether is wound and unwound. The system reduces the amplitude of oscillations of the small satellite relative to the platform.
Description of the process under study¶
Consider the problem of controlling the angular momentum of a satellite using a tether system. Tether stabilisation (Yo-yo despin) is often used to reduce the angular momentum of a satellite, deliberately designed to stabilise it during acceleration. But our system will control the oscillations of the satellite around the space platform.
The system comprises a small satellite connected to the platform by means of a long tether. When, from various influences, the satellite attached to the platform begins to swing like a pendulum, the stabilisation system is activated. To reduce the effect of libration, the stabilisation system will vary the length of the tether, releasing it to its maximum length when the satellite is in the middle of its swing path (which reduces its angular velocity) and retracting the tether back at intervals when the satellite's angular velocity is closer to zero.
Angular motion model¶
This model shows how the length of the tether $l$ affects the angular velocity $\theta$ of the satellite's motion.
The total energy of the satellite is calculated in block Total Energy
using the formula:
$$E = 9.8 \cdot \dot \theta (1-cos(\theta)) + \frac{l^2 \cdot \dot \theta^2}{2}$$
In block Compute theta_dot_dot
the angular acceleration of the satellite during its motion at a distance $l$ from the platform is calculated:
$$\ddot \theta = \frac{-2 \dot l \dot \theta + 9.8 sin(\theta)}{l}$$
The transition of signal values through 0 is fixed by means of blocks HitCross
, which form additional variables in the state vector of our system.
Finally, all 5 variables of this vector are passed to the stabilisation control unit, implemented as a finite automaton, using the component сhart
.
Control block¶
Below is a schematic of the control system realised with the block chart
.
When the satellite is in the middle of its periodic trajectory (at $\theta = 0$), the system enters the state ReelMovingOut
. When the satellite has reached the maximum distance from the platform, the system enters the state ReelStop
. Then, when the angular velocity of the satellite crosses the 0 mark, the system enters the state ReelMovingIn
. And when the tether reaches the minimum allowable length, the system again enters the state ReelStop
.
When the total energy calculation block returns a sufficiently small value, the stabilisation system switches to the state Inactive
.
Displaying the results¶
Running the model allows you to see all the state variables of the stabilisation system: tether length l
, satellite angle theta
and their derivatives.
modelName = "satellite_yo_yo_model";
model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
# Запустим модель
s = engee.run( modelName, verbose=false )
using Plots, LaTeXStrings
plot( s["theta"].time, s["theta"].value, xlabel=L"t, c", ylabel=L"\theta, рад" )
Use the data inspector to conveniently arrange all the graphs in one window.
As we can see, the energy of the system and the amplitude of the angular oscillations decreased as the stabilisation system worked. In the blue graph we can see how the cable length changed from the maximum allowable to the minimum.
Conclusion¶
By combining several types of models on a single Engee canvas we were able to visualise the process of controlling the tether stabilisation system of a small satellite.