【解決方法】衛星を追跡するときのアンテナ ポインティング エラーをシミュレートするにはどうすればよいですか

プログラミングQA


TLE データを使用して LEO 衛星を追跡するときのアンテナのアンテナ ポインティング エラーをシミュレートしようとしています。 Python で Skyfield ライブラリを使用しています。 まず、Celestrak の Web サイトから TLE データを読み込み、次に TLE から衛星を選択しました。 次に、アンテナの位置に対して衛星が通過することを発見しました。 最後に、アンテナから衛星までの方位角と仰角を計算しました。 方法がわからない次のステップは、自分のアンテナが続く衛星パスをシミュレートすることです。 私のアンテナは方位角と仰角方向で 1.75°/秒の回転速度しかないため、一部のパスではこれよりも速い角速度 (たとえば 5°/秒) が必要です。 したがって、アンテナは取り残されます。 1.75°/秒の速度を使用して、アンテナが何度遅れるかをシミュレートして確認したいと考えています。 誰かが私に提案を与えることができれば、それは大歓迎です ありがとう.
これは私が使用したコードで、主に Skyfield のドキュメントからのものです。

私が試したこと:

Python
from astropy import units as u
from skyfield.api import Topos, load
from skyfield.api import EarthSatellite

# Load earth and time
planets = load('de421.bsp')
earth = planets['earth']

ts = load.timescale()
t0 = ts.now()

# loading TLE files from celestrak

stations_url = 'https://www.celestrak.com/NORAD/elements/active.txt'
satellites = load.tle_file(stations_url, reload=False)
print('Loaded', len(satellites), 'satellites')

# Selecting Astrocast 0.2 from the TLE Dataset

by_name = {sat.name: sat for sat in satellites}
satellite = by_name['ASTROCAST 0.2']
print(satellite)

# Finding rising and setting times

antenna_position = Topos(47.01452, 8.30613, elevation_m=500)
t1 = ts.utc(2020, 12, 17)
t, events = satellite.find_events(antenna_position, t0, t1, altitude_degrees=0.0)
for ti, event in zip(t, events):
    name = ('rise above horizon', 'culminate', 'set below horizon')[event]
    print(ti.utc_strftime('%Y %b %d %H:%M:%S'), name)
# Calculating Azimuth and Elevation with regard to antenna position

difference = satellite - antenna_position
topocentric = difference.at(t0)
alt, az, distance = topocentric.altaz()

if alt.degrees > 0:
    print('The', satellite.name, 'is above the horizon')
else:
    #print(the time remaining until the next pass)
    pass

print('elevation =', alt)
print('azimuth =', az)
print(int(distance.km), 'km')

# Creating an antenna at antenna_position with an angle rotating speed of 1.75° in both azimuth and elevation for simulation purposes

# Plotting the antenna pointing error: antenna pointing error is the difference of the real azimuth and elevation minus the azimuth and elevation of the antenna

解決策 1

nフレームで太陽(x、y、回転、半径ベクトル)を循環させる地球の「ストーリーボード」(UWP / WPF)があります。

進行状況を監視して報告するためにタイマーを使用します。 (ストーリーボードの経過時間に基づいて) 地球があるべき場所を知っているので、それを自分の計算と比較し、同期を保つためにタイマー間隔、「リードタイム」などを調整する方法を確認します。

コメント

タイトルとURLをコピーしました