Тросовая система стабилизации спутника¶
В этом примере демонстрируется создание системы стабилизации углового положения спутника при помощи управления длиной троса, при помощи которого он присоединен к платформе. Реализованный при помощи конечных автоматов блок управления контролирует скорость намотки и размотки троса. Система позволяет снизить амплитуду колебаний небольшого спутника относительно платформы.
Описание изучаемого процесса¶
Рассмотрим задачу управления угловым моментом спутника при помощи тросовой системы. Тросовая стабилизация (Yo-yo despin) часто используется для уменьшения углового момента спутника, намеренно созданного для стабилизации во время разгона. Но наша система будет управлять колебаниями спутника вокруг космической платформы.
Система включает в себя небольшой спутник, подсоединенный к платформе при помощи длинного троса. Когда, от различных воздействий, подсоединенный к платформе спутник начинает колебаться как маятник, включается система стабилизации. Чтобы снизить эффект либрации, система стабилизации будет изменять длину троса, выпуская его до максимальной длины когда спутник находится в середине траектории колебательний (что снижает его угловую скорость) и втягивает трос обратно в те интервалы, когда угловая скорость спутника ближе к нулю.
Модель углового движения¶
На этой модели показано, как длина троса $l$ влияет на угловую скорость $\theta$ движения спутника.
Полная энергия спутника рассчитывается в блоке 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}$$
Переход значений сигнала через 0 фиксируется при помощи блоков HitCross
, которые формируют дополнительные переменные в вектор состояния нашей системы.
В конце концов, все 5 переменных этого вектора передаются в блок управления стабилизацией, реализованный в виде конечного автомата, при помощи компонента сhart
.
Управляющий блок¶
Ниже представлена схема системы управления, реализованная при помощи блока chart
.
Когда спутник находится в середине своей периодической траектории (при $\theta = 0$), система переходит в состояние ReelMovingOut
. Когда спутник достиг максимального удаления от платформы, система переходит в состояние ReelStop
. Затем, когда угловая скорость спутника переходит отметку 0, система переходит в состояние ReelMovingIn
. И когда трос достигает минимальной допустимой длины, система снова переходит в состояние ReelStop
.
Когда же блок вычисления полной энергии спутника возвращает достаточно малое значение, система стабилизации переходит в состояние Inactive
.
Отображение результатов¶
Запуск модели позволяет увидеть все переменные состояния системы стабилизации: длину троса l
, угол спутника theta
и их производные.
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, рад" )
Используем инспектор данных чтобы удобно расположить все графики в одном окне.
Как мы видим, энергия системы и амплитуда угловых колебаний снижалась по мере работы системы стабилизации. На синем графике мы видим, как менялась длина троса – от максимально допустимой до минимальной.
Заключение¶
Совместив несколько видов моделей на одном холсте Engee мы смогли визуализировать процесс управления тросовой системой стабилизации небольшого спутника.