которая возвращает 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.