function SatInSun( const ASat : TOrbit) : Boolean




которая возвращает true если спутник, положение которого задано структурой ASat, освещен Солнцем или false - в противном случае.

Алгоритм

вычислить угол ,

если g£p/2, либо то вернуть true, иначе вернуть false.

где R – вектор положения спутника в АГЭСК;

es – единичный вектор направления на Солнце в АГЭСК

– средний радиус Земли. – норма вектора,

– скалярное произведение векторов.

 

 


 

Задание 14

1) Написать код функции

function Link(const ASat1, ASat2: TOrbit): Boolean,

которая возвращает true если спутники ASat1 и ASat2 в прямой видимости друг друга.

Алгоритм:

5. Вычислить , где

Х1 и Х2 – векторы положения спутников в АГЭСК,

<X1,X2> – скалярное произведение векторов,

RE – средний радиус Земли,

r1, r2 – модули векторов Х1 и Х2 соответственно.

6. Вернуть true если C<0 или false в противном случае.

2) Сконструировать тип данных, например, TSpaceSystem, пригодный для хранения в программе данных о спутниковой системе с произвольным количеством спутников. Данные об отдельном спутнике отнести к типу TOrbit. Написать код функции

function CanLink(const ASpaceSys: TSpaceSystem; n, m: integer):Boolean;

которая вернет true если спутники системы ASpaceSys с номерами n и m находятся в прямой видимости друг друга или false в случае когда либо n=m, либо условие видимости не выполняется.


 

Задание 15

 

1) Написать код функции

function RadioSector(const ASat: TOrbit; AElev: real):real,

которая возвращает угловой размер зоны радиовидимости спутника, положение которого задано в структуре ASat, с учетом минимального угла места, заданного параметром AElev.

Расчетная формула , где d – минимальный угол места, h – высота орбиты спутника, RE – средний радиус Земли.

 

2) Написать код функции

function SatTrack(const ASat:TOrbit): TLonLat, которая возвращает долготу и широту точки трассы спутника, параметры движения которого содержатся в структуре ASat. Тип данных TLonLat, объявлен так

type TLonLat = record Longitude, Latitude: real end; где Longitude – долгота, Latitude – широта.

Расчетные формулы:

широта:

долгота ,

где t – время, отсчитываемое от 0 часов даты расчета,

– долгота пересечения экватора,

– угловая скорость вращения Земли,

– наклонение плоскости орбиты КА к плоскости экватора Земли

u – аргумент широты КА.

 

Долгота пересечения экватора определяется по формуле

 

где

– среднее звездное время на 0 часов даты расчета,

W – долгота восходящего узла орбиты.

Для вычисления звездного времени используйте функцию SiderealTime.

 


 

Задание 16

1) Написать код функции

function Link(const ASat1, ASat2: TOrbit): Boolean,

которая возвращает true если спутники ASat1 и ASat2 в прямой видимости друг друга.

Алгоритм:

7. Вычислить , где

Х1 и Х2 – векторы положения спутников в АГЭСК,

<X1,X2> – скалярное произведение векторов,

RE – средний радиус Земли,

r1, r2 – модули векторов Х1 и Х2 соответственно.

8. Вернуть true если C<0 или false в противном случае.

2) Сконструировать тип данных, например, TSpaceSystem, пригодный для хранения в программе данных о спутниковой системе с произвольным количеством спутников. Данные об отдельном спутнике отнести к типу TOrbit. Написать код функции

function LinkCount(const ASpaceSys: TSpaceSystem; n: integer):integer;

которая вернет количество спутников системы ASpaceSys, находящихся в прямой видимости со спутником номер которого в системе равен n.


 

Задание 17

1) Сконструировать тип, например TERSat, который помимо данных, включенных в TOrbit, содержал бы дополнительное поле View вещественного типа - размер поля зрения аппаратуры дистанционного зондирования Земли (ДЗЗ).

Написать код функции

function ViewSector(const ASat: TERSat): real,

которая возвращает угловой размер зоны обслуживания аппаратуры спутника с учетом углового размера поля зрения аппаратуры. Все исходные данные содержатся в структуре ASat.

Расчетная формула ,

где g – угловой радиус поля зрения аппаратуры,

H – высота орбиты спутника в точке расчета:

RE – средний радиус Земли.

 

2) Сконструировать тип данных, например, TERS, пригодный для хранения в программе данных о спутниковой системе ДЗЗ с произвольным количеством спутников типа TERSat. Написать код функции

function ViewFitsCount(AERS: TERS; AView: real): integer; которая вернет количество спутников системы AERS, размер зоны обслуживания которых не меньше заданного параметром AView.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: