Engee 文档
Notebook

卫星稳定系绳系统

该示例演示了通过控制系绳的长度来稳定卫星角度位置的系统。一个有限自动控制单元控制系绳的收放速度。该系统减小了小型卫星相对于平台的振荡幅度。

研究过程描述

考虑使用系绳系统控制卫星角动量的问题。系绳稳定系统(Yo-yo despin)通常用于减小卫星的角动量,目的是在加速过程中稳定卫星。但我们的系统将_控制卫星围绕空间平台的摆动。

该系统由一颗小型卫星组成,它通过一根长长的系绳与平台相连。当受到各种影响,连接在平台上的卫星开始像钟摆一样摆动时,稳定系统就会启动。为了减少摆动的影响,稳定系统将改变系绳的长度,当卫星处于摆动路径中间时,将系绳释放到最大长度(这将降低其角速度),当卫星的角速度接近零时,每隔一段时间将系绳缩回。

角运动模型

该模型显示了系链$l$ 的长度如何影响卫星运动的角速度$\theta$ 。

image.png

卫星的总能量在Total Energy 块中用公式计算:

$$E = 9.8 \cdot \dot \theta (1-cos(\theta)) + \frac{l^2 \cdot \dot \theta^2}{2}$$

在程序块Compute theta_dot_dot 中,计算卫星在距离平台$l$ 处运动时的角加速度:

$$\ddot \theta = \frac{-2 \dot l \dot \theta + 9.8 sin(\theta)}{l}$$

通过区块HitCross 固定信号值向 0 的过渡,这些区块构成了系统状态向量中的附加变量。

<br

最后,该矢量的所有 5 个变量都将传递给稳定控制单元,稳定控制单元以有限自动机的形式实现,使用组件сhart

控制块

以下是利用chart 模块实现的控制系统示意图。

image.png

当卫星处于周期轨迹的中间位置时($\theta = 0$ ),系统进入状态ReelMovingOut 。当卫星与平台的距离达到最大值时,系统进入状态ReelStop 。然后,当卫星角速度越过 0 刻度时,系统进入状态ReelMovingIn 。当系绳达到最小允许长度时,系统再次进入状态ReelStop

当总能量计算块返回一个足够小的值时,稳定系统切换到状态Inactive

显示结果

运行模型可以查看稳定系统的所有状态变量:系绳长度l 、卫星角度theta 及其导数。

In [ ]:
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 )
Out[0]:
Dict{String, DataFrames.DataFrame} with 3 entries:
  "theta" => 50001×2 DataFrame…
  "l"     => 50001×2 DataFrame…
  "E"     => 50001×2 DataFrame
In [ ]:
using Plots, LaTeXStrings
plot( s["theta"].time, s["theta"].value, xlabel=L"t, c", ylabel=L"\theta, рад" )
Out[0]:

使用数据检查器可以方便地在一个窗口中排列所有图形。

image.png

我们可以看到,随着稳定系统的工作,系统能量和角振荡幅度都在减小。在蓝色图表中,我们可以看到电缆长度如何从最大允许长度变为最小允许长度。

结论

通过在一个 Engee 画布上结合多种类型的模型,我们能够将控制小型卫星系绳稳定系统的过程可视化。