Главная страница
Навигация по странице:

  • TIME_S0_My

  • 3.3 Вопросы и задания для самоподготовки

  • 3.4 Тексты программ 3.4.1 Функции и файлы из папкиTIME Функция JD_epohi

  • Файл PR_JD_epohi.m

  • Функция week_GLONAS_gps

  • Файл PR_time_gps_GLON.m

  • Функция

  • Спутниковые системы навигации. Учебное пособие. Учебное пособие ( Лабораторный практикум на компьютере ) Київ 2008 1


    Скачать 4.49 Mb.
    НазваниеУчебное пособие ( Лабораторный практикум на компьютере ) Київ 2008 1
    Дата12.04.2023
    Размер4.49 Mb.
    Формат файлаpdf
    Имя файлаСпутниковые системы навигации. Учебное пособие.pdf
    ТипУчебное пособие
    #1057965
    страница4 из 14
    1   2   3   4   5   6   7   8   9   ...   14
    темах»
    Рекомендуется следующий порядок действий для выполнения лабораторной работы.
    1. Создайте папку TIME_My и скопируйтев ее все программы из папки TIME.
    2. Запустите MatLab [7, 8].
    3. Обратитесь к папке TIME _My и откройте ее.
    4. Откройте функцию JD_epohi, внимательно изучите ее по комментариям и программ- ным процедурам, описывающим алгоритм расчета (раздел 1. 3 книги [1]).
    5. Откройте пример расчета PR_JD_epohi.m и выполните m- файл.
    6. Основываясь на m- файле PR_JD_epohi.m выполните задание 1.
    7. Задание 1. Используя в качестве основы m- файл PR_JD_epohi.m , сформируйте m- файл и рассчитайте юлианского день для опорного года, в котором Вы родились. Рас- считайте юлианский день эпохи 2000 (2000 год) и объясните причину разницы в 1 день. Результат выполнения из командного окна MatLab перенесите в отчет.
    8. Откройте функцию JD_data, внимательно изучите ее по комментариям и программным процедурам, описывающим алгоритм расчета (раздел 1. 3 книги [1]).
    53

    9. Откройте пример расчета PR_JD_data.m и выполните m- файл.
    10. Основываясь на m- файле PR_JD_data.m выполните задание 2.
    11. Задание 2. Используя в качестве основы m- файл PR_JD_data.m , сформируйте m- файл и рассчитайте юлианского день для опорного года и номер дня года, в котором
    Вы родились. Рассчитайте юлианский день эпохи 2000 (2000 год) и объясните причину разницы в 1 день. Результат выполнения из командного окна MatLab перенесите в от- чет.
    12. Откройте функцию time_gps, внимательно изучите ее по комментариям и программ- ным процедурам, описывающим алгоритм расчета (раздел 1. 3 книги [1]).
    13. Откройте пример расчета PR_time_gps.m и выполните m- файл.
    14. Основываясь на m- файле PR_time_gps.m выполните задания 3 и 4.
    15. Задание 3. Используя в качестве основы m- файл PR_JD_data.m , сформируйте m- файл и рассчитайте номер GPS-недели, время UTC c начала текущей недели, время
    GPS c начала текущей недели, номер дня года, номера юлианского дня на момент вы- полнения лабораторной работы. Результат выполнения из командного окна MatLab пе- ренесите в отчет.
    16. Задание 4. В сформированном файле задайте номера дней, соответствующих субботе и воскресению и убедитесь, что происходит изменение номера недели. Результат вы- полнения из командного окна MatLab перенесите в отчет.
    17. Откройте функцию week_GLONAS_gps, внимательно изучите ее по комментариям и программным процедурам.
    18. Откройте пример расчета
    PR_time_gps_GLON.m и выполните m- файл.
    19. Основываясь на m- файле
    PR_time_gps_GLON.m выполните задание 5.
    20. Задание 5. Используя в качестве основы m- файл PR_time_gps_GLON.m , сформируй- те m- файл, задайте Na- календарный номер суток внутри четырехлетнего периода от ближайшего високосного года, выполните m- файл . Результат выполнения из команд- ного окна MatLab перенесите в отчет.
    21. Создайте папку TIME_S0_My и скопируйтев ее все программы из папки TIME_S0.
    22. Обратитесь к папке TIME_S0_My и откройте ее.
    23. Последовательно открывая функции: s0_Nut, utc_nut, koef, utc_nut_fi_eps внимательно изучите их по комментариям и программным процедурам, описывающим алгоритм расчета (раздел 1. 3 книги [ ]).
    24. Выполните указание 1 и дополните папку TIME_S0_My функциямиJD_epohi,
    JD_data.
    25. Откройте пример расчета PR_s0_Nut.m и выполните m- файл.
    54

    26. Основываясь на m- файле PR_s0_Nut.m выполните задание 6.
    27. Задание 6. Используя в качестве прототипа m- файлPR_s0_Nut.mсформируйтеm- файл, введите в него исходные данные, соответствующие времени выполнения работы выполните m- файл (рассчитайте истинное и среднее звездное время) и занесите ре- зультаты выполнения из командного окна MatLab в отчет.
    3.3 Вопросы и задания для самоподготовки
    1. Что понимается под терминами звездное время, истинное звездное время, среднее звездное время, время на гринвичском меридиане ?
    2. В каких спутниковых радионавигационных системах и для чего применяется юлиан- ский день?
    3. Назовите основные фундаментальные эпохи, используемые в спутниковой радионави- гации.
    4. Какие единицы измерения времени применяются в GPS?
    5. Какие единицы измерения времени применяются в ГЛОНАСС?
    6. Какие единицы измерения времени применяются в EGNOS?
    7. Какие единицы измерения времени применяются в GALILEO?
    8. Что в GPS обозначает дата с 5. 01. 80 на 6. 01. 80?
    9. На сколько секунд системное время GPS опережает время UTC?
    10. Какой смысл в ГЛОНАСС вкладывается в определение «московское декретное вре- мя»?
    11. Что такое универсальное всемирное время?
    12. Что такое атомное время?
    13. Напишите формулу, связывающую время ГЛОНАСС и время UTC.
    14. Объясните физический смысл нутации.
    15. Как изменяется время GPS в течение недели.
    16. Как изменяется время ГЛОНАСС в течение суток.
    3.4 Тексты программ
    3.4.1 Функции и файлы из папкиTIME
    Функция JD_epohi
    function jden = JD_epohi(epoha)
    %Имя: JD_epohi
    %Фукция JD_epohi(epoha) рассчитывает юлианский день
    %для опорного года (epoha)
    55

    %Входные данные: epoha, размерность-год
    %Выходные данные:jden- юлианский день, размерность -дни rk = mod(epoha,4); if ( rk == 0 ) rk = 1.0; else rk = 2.0 - rk * 0.25; end; n100 = floor(epoha / 100); n400 = floor(epoha / 400); jden = (4712 + epoha) * 365.25 + n400 - n100 + rk;
    % fprintf('epoha=%d rk=%f jden=%6.2f \n', epoha, rk, jden);
    Файл PR_JD_epohi.m
    %Пример расчета JD_epohi epoha=2000; jden = JD_epohi(epoha)
    Решение по данным примера. Юлианский день 2000 года (эпоха 2000) равен 2451544 (нулевой
    день !!!)
    Функция JD_
    data (расчет номера юлианского дня ).
    function [JD, day_year] = JD_data(year, mon, day)
    %Имя:JD_data
    % Функция JD_data(year, mon, day) вычисляет :
    %JD - номер юлианского дня, day_year - номер дня года.
    %Входные данные:
    %year - год,
    % mon - месяц,
    % day - день.
    %Выходные данные:
    %JD - юлианский день, day_year- день от начала года.
    %Оригинальные функции: function jd0 = JD_epohi(year),
    %(смотри комментарий).
    % число дней от начала периода до 12ч. всемирного времени (полдень)
    % указанной даты ( по Гринвичу)
    %Входные данные для контрольного примера:
    %year = 2000; mon = 1; day = 1;
    %количество дней в месяцах
    DnMon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    %Вычисление номера юлианского дня опорной эпохи jd0 = JD_epohi(year);
    %Учет високосного года nfebr = 0; if mod(year,4) == 0 56
    nfebr = 1; end;
    %Расчет номера дня года k = 0; for i = 2 : mon k = k + DnMon(i - 1); if (i == 2) k = k + nfebr; end; end; day_year = k + day;
    %Расчет номера юлианского дня
    JD = jd0 + day_year;
    %2451545 - номер юлианского дня; 1- первый день года.
    Файл PR_JD_data.m
    %Пример расчета JD_data year = 2000; mon = 1; day = 1;
    [JD, day_year] = JD_data(year, mon, day);
    [JD, day_year]'
    %Результат расчета JD= 2451545, day_year= 1
    Функция time_gps (расчет номера GPS-недели, времени UTC c начала текущей не-
    дели, времени GPS c начала текущей недели, номер дня года, номера юлианского дня) function [wGPS, TimesUTC, TimesGPS, day_year, JD, weekday] = time_gps(year, mon, day, h, min, sec)
    % Имя: time_gps
    % Функция time_gps(year, mon, day, h, min, sec) вычисляет :
    %wGPS -номер GPS- недели, TimesUTC -время UTC c начала текущей недели (секунда),
    % TimesGPS - время GPS c начала текущей недели (секунда),
    %day_year- номер дня года,
    % JD - номер юлианского дня,
    % weekday - день недели (0 - воскресенье, 1 - понедельник, 2 - вторник, 3 - среда,
    %4 - четверг, 5 - пятница, 6 - суббота.
    % Выходные данные: wGPS, TimesUTC, TimesGPS, day_year, JD, weekday.
    % Входные данные: year - год, mon - месяц, day - день, h - час,
    %min - минута, sec -секунда.
    %Оригинальные функции: function [JD, day_year] = JD_data(year, mon, day),
    %(смотри комментарий).
    % число дней от начала периода до 0ч. всемирного времени UTC
    % указанной даты ( по Гринвичу)
    %Входные данные для контрольного примера:
    %year = 2007; mon = 11; day = 28;
    %h = 20; min = 7; sec = 51;
    57

    %Используемые константы:
    % сдвиг времени между UTC и системным временем GPS на начало 2004 года
    %diff_UTC_GPS = 13;(до конца 2005 года) diff_UTC_GPS = 14;%(с 2006 года)
    %количество дней в месяцах
    DnMon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    % юлианский день начала отсчета недели GPS на ноль часов UTC c 5 на 6
    % января 1980 года. wGPS_0 = 2444244.5;
    % Расчет номеров юлианского дня и дня года
    [JD, day_year] = JD_data(year, mon, day);
    %Сдвиг на ноль часов UTC на гривчском меридиане
    JD = JD - 0.5;
    %Расчет номера GPS неделе стандартной функцией MatLab "floor" wGPS = floor((JD - wGPS_0) / 7);
    %Расчет дня недели стандартной функцией MatLab "mod" weekday = mod((JD - wGPS_0) , 7);
    %Расчет секунд с начала недели в шкале времени UTC
    TimesUTC = 86400 * weekday + 3600 * h + 60 * min + sec;
    %Расчет секунд с начала недели в шкале времени GPS
    TimesGPS = TimesUTC + diff_UTC_GPS;
    %Результат решения задачи по входным данным контрольного примера
    %1.0e+006 *- множитель для всех данных;
    % 0.00145500000000 - номер GPS недели;
    % 0.33167100000000 - количество секунд с начала недели по UTC;
    %0.33168500000000- количество секунд с начала недели по GPS;
    %0.00033200000000 - день года;
    %2.45443250000000 -номер юлианского дня;
    %0.00000300000000 - день недели (среда).
    Файл PR_time_gps.m
    %Пример 1 расчета функции time_gps(year, mon, day, h, min, sec) year=2007; mon= 11; day = 28; h = 20; min= 7; sec = 51;
    [wGPS, TimesUTC, TimesGPS, day_year, JD, weekday] = time_gps(year, mon, day, h, min, sec) ;
    [wGPS, TimesUTC, TimesGPS, day_year, JD, weekday]'
    58

    %Пример2 расчет функции time_gps(year, mon, day, h, min, sec) year=1999; mon= 8; day = 28; h = 23; min= 59; sec = 59;
    [wGPS, TimesUTC, TimesGPS, day_year, JD, weekday] = time_gps(year, mon, day, h, min, sec) ;
    [wGPS, TimesUTC, TimesGPS, day_year, JD, weekday]'
    Результат расчета: wGPS= 1024;
    TimesUTC =604799;
    TimesGPS = 604813; day_year =240;
    JD = 24514185; weekday = 6 (суббота);
    Пример 2 характерен тем, что в ночь с субботы на воскресенье 28 августа 1999 года неделя GPS равна 1024 и через одну секунду счет недель в системе GPS начался с начала.
    Функция week_GLONAS_gps
    function [wGPS,weekday] = week_GLONAS_gps(Na)
    % Имя функции: week_GLONAS_gps
    % Назначение: функция устанавливает связь между параметром Na, передаваемом с навигационного
    %спутника ГЛОНАСС и номером GPS- недели (wGPS), днем недели (weekday)
    % weekday - день недели (0 - воскресенье, 1 - понедельник, 2 - вторник, 3 - среда,
    %4 - четверг, 5 - пятница, 6 - суббота.
    %Входные данные:
    %Na- календарный номер суток внутри четырехлетнего периода от ближайшего високосного года, к
    %которым относится информация, передаваемая со спутника ГЛОНАСС (согласно интерфейсного конт-
    %рольного документа ГЛОНАСС
    % Выходные данные:
    %wGPS- номер недели GPS;
    % weekday- день недели.
    %Используемые константы:
    % сдвиг времени между UTC и системным временем GPS на начало 2004 года
    %diff_UTC_GPS = 13;(до конца 2003 года) diff_UTC_GPS = 14;%(с 2004 года)
    %количество дней в месяцах
    DnMon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    59

    % юлианский день начала отсчета недели GPS на ноль часов UTC c 5 на 6
    % января 1980 года. wGPS_0 = 2444244.5;
    % Расчет номеров юлианского дня и дня года, от которого отсчитываются дни ГЛОНАСС year =2003; mon=12; day=31;
    [JD, day_year] = JD_data(year, mon, day);
    %Сдвиг на ноль часов UTC на гривчском меридиане
    JD = JD - 0.5;
    %Расчет номера GPS неделе стандартной функцией MatLab "floor" wGPS = floor((JD+Na - wGPS_0) / 7);
    %Расчет дня недели стандартной функцией MatLab "mod" weekday = mod((JD+Na - wGPS_0) , 7);
    Файл PR_time_gps_GLON.m
    %Имя m- файла:PR_time_gps_GLON.m
    %Пример2 расчет функции week_GLONAS_gps(Na)
    Na=901;
    [wGPS,weekday] = week_GLONAS_gps(Na)
    % ответ: wGPS = 1380; weekday = 1 3.4.2 Функции и файлы из папки TIME_S0
    Папка TIME_S0 расчет истинного и среднего звездного времени. Расчет истинно- го звездного времени на 0 часов UTC предусматривается алгоритмом расчета эфемерид спутника ГДОНАСС на текущий момент времени. Истинное звездное время рассчитыва- ется по следующим программам.
    Функция s0_Nut
    function [s0_m_mod, s0_nut_mod,s0_m_hour, s0_m_min, s0_m_sec, s0_nut_hour, s0_nut_min, s0_nut_sec] = s0_Nut(year, mon, day, nut)
    %Имя: s0_Nut
    %функция рассчитывает истинное и среднее звездное время по формулам ( )
    % среднее звездное время s0 на 0ч UTC
    %year = 1993; mon = 1; day = 0;
    %fprintf('function s0_m - start \n'); jd2000 = 2451545; % 12h UTC 1 января
    % Применить функцию JD_data
    [jd, day_year] = JD_data(year, mon, day);
    60
    if (jd == NaN) s0_mod = NaN; h = NaN; min = NaN; sec = NaN; fprintf('function s0_m - end0 \n'); return; end; jd = jd - 0.5; d = jd - jd2000; t = d / 36525.0; % 36525 - юлианский период 100 лет t2 = t * t; h1 = 24110.54841;
    %h1=6.0*3600.0+41.0*60.0+50.54841;
    % h2 = 236.555367908 * d; h2 = 8640184.812866 * t ; h3 = 0.093104 * t2; h4 = t2 * t * 6.2E-6; if (nut == 0) na = 0; else na = utc_nut(t); end; s0_m = h1 + h2 + h3 - h4; s0_nut = s0_m + na; s0_m_mod = mod(s0_m, 86400); s0_day = floor(s0_m / 86400); s0_m_hour = s0_m_mod / 3600.0; s0_m_hour = floor(s0_m_mod / 3600); sec_min = s0_m_mod - s0_m_hour * 3600; s0_m_min = floor(sec_min / 60); s0_m_sec = sec_min - s0_m_min * 60; s0_nut_mod = mod(s0_nut, 86400); s0_day = floor(s0_nut / 86400); s0_nut_hour = s0_nut_mod / 3600.0; s0_nut_hour = floor(s0_nut_mod / 3600); sec_min = s0_nut_mod - s0_nut_hour * 3600; s0_nut_min = floor(sec_min / 60); s0_nut_sec = sec_min - s0_nut_min * 60;
    Функция
    utc_nut
    function nut = utc_nut(t)
    %Имя: utc_nut
    %функция рассчитывает формулы ( )
    %t =6.023472005475702e+002;
    61

    R = 1296000; % ( 1r=360grad=1 296 000 cek)
    RAD_SEK_ANGL = pi/(3600*180); t2 = t * t; t3 = t2 * t; l = 485866.733 + (1325.0 * R + 715922.633) * t + 31.310 * t2 + 0.064 * t3;%1.034807679476340e+012 l1 = 1287099.804 + (99 * R + 1292581.224) * t - 0.577 * t2 - 0.012 * t3; f = 335778.877 + (1342 * R + 295263.137) * t - 13.257 * t2 + 0.011 * t3; dd = 1072261.307 + (1236 * R + 1105601.328) * t - 6.891 * t2 + 0.019 * t3; omega = 450160.280 - (5 * R + 482890.539) * t + 7.455 * t2 + 0.008 * t3; eps0 = 84381.448 - 46.8150 * t - 0.00059 * t2 + 0.001813 * t3;
    % eps0 = 84381.447996 - 46.8150 * t - 0.00059 * t2 + 0.001813 * t3; eps_d = utc_nut_fi_eps(t, l, l1, f, dd, omega, 'd','e'); eps_k = utc_nut_fi_eps(t, l, l1, f, dd, omega, 'k','e'); eps = eps0 + eps_d + eps_k; cos_eps = cos(RAD_SEK_ANGL * eps ) / 15.0; d_fi = utc_nut_fi_eps(t, l, l1, f, dd, omega, 'd', 'f'); k_fi = utc_nut_fi_eps(t, l, l1, f, dd, omega, 'k', 'f'); nut1 = d_fi * cos_eps; nut2 = k_fi * cos_eps;
    % nut3 = 0.00264 * sin(omega) + 0.000063 * sin(2.0 * omega) формула ( ) nut3 = 0; nut1_dop = nut1; nut2_dop = nut2; nut3_dop = nut3; nut = nut1 + nut2 + nut3;
    Функция koef
    function[koef_id, koef_abd, koef_ik, koef_abk] = koef
    % Имя:koef
    % функция содержит коэффициенты табл. и табл. koef_id = [ 0, 0, 0, 0, 1 ; % 1 0, 0, 0, 0, 2 ; % 2
    -2, 0, 2, 0, 1 ; % 3 2, 0,-2, 0, 0 ; % 4
    -2, 0, 2, 0, 2 ; % 5 1,-1, 0,-1, 0 ; % 6 0,-2, 2,-2, 1 ; % 7 2, 0,-2, 0, 1 ; % 8 0, 0, 2,-2, 2 ; % 9 0, -1, 0, 0, 0 ; % 10 % исправлено
    0, 1, 2,-2, 2 ; % 11 0,-1, 2,-2, 2 ; % 12 0, 0, 2,-2, 1 ; % 13 62

    -2, 0, 0,2, 0 ; % 14 % исправлено
    0, 0, 2,-2, 0 ; % 15 0, 2, 0, 0, 0 ; % 16 0, 1, 0, 0, 1 ; % 17 0, 2, 2,-2, 2 ; % 18 0,-1, 0, 0, 1 ; % 19
    -2, 0, 0, 2, 1 ; % 20 0,-1, 2,-2, 1 ; % 21 2, 0, 0,-2, 1 ; % 22 0, 1, 2,-2, 1 ; % 23 1, 0, 0,-1, 0 ; % 24 2, 1, 0,-2, 0 ; % 25 0, 0,-2, 2, 1 ; % 26 0, 1,-2, 2, 0 ; % 27 0, 1, 0, 0, 2 ; % 28
    -1, 0, 0, 1, 1 ; % 29 0, 1, 2,-2, 0 ];% 30 koef_abd = [ -171996.0,-174.2, 92025.0, 8.9; % 1 2062.0, 0.2, -895.0, 0.5; % 2 46.0, 0.0, -24.0, 0.0; % 3 11.0, 0.0, 0.0, 0.0; % 4
    -3.0, 0.0, 1.0, 0.0; % 5
    -3.0, 0.0, 0.0, 0.0; % 6
    -2.0, 0.0, 1.0, 0.0; % 7 1.0, 0.0, 0.0, 0.0; % 8
    -13187.0, -1.6, 5736.0,-3.1; % 9
    -1426.0, 3.4, 54.0,-0.1; % 10 % исправлено
    -517.0, 1.2, 224.0,-0.6; % 11 217.0, -0.5, -95.0, 0.3; % 12 129.0, 0.1, -70.0, 0.0; % 13
    -48.0, 0.0, 1.0, 0.0; % 14 % исправлено
    -22.0, 0.0, 0.0, 0.0; % 15 17.0, -0.1, 0.0, 0.0; % 16
    -15.0, 0.0, 9.0, 0.0; % 17
    -16.0, 0.1, 7.0, 0.0; % 18
    -12.0, 0.0, 6.0, 0.0; % 19
    -6.0, 0.0, 3.0, 0.0; % 20
    -5.0, 0.0, 3.0, 0.0; % 21 4.0, 0.0, -2.0, 0.0; % 22 4.0, 0.0, -2.0, 0.0; % 23
    -4.0, 0.0, 0.0, 0.0; % 24 63

    1.0, 0.0, 0.0, 0.0; % 25 1.0, 0.0, 0.0, 0.0; % 26
    -1.0, 0.0, 0.0, 0.0; % 27 1.0, 0.0, 0.0, 0.0; % 28 1.0, 0.0, 0.0, 0.0; % 29
    -1.0, 0.0, 0.0, 0.0]; % 30 koef_ik = [ 0, 0, 2, 0, 2; % 31 1, 0, 0, 0, 0; % 32 0, 0, 2, 0, 1; % 33 1, 0, 2, 0, 2; % 34 1, 0, 0,-2, 0; % 35
    -1, 0, 2, 0, 2; % 36 0, 0, 0, 2, 0; % 37 1, 0, 0, 0, 1; % 38
    -1, 0, 0, 0, 1; % 39
    -1, 0, 2, 2, 2; % 40 1, 0, 2, 0, 1; % 41 0, 0, 2, 2, 2; % 42 2, 0, 0, 0, 0; % 43 1, 0, 2,-2, 2; % 44 2, 0, 2, 0, 2; % 45 0, 0, 2, 0, 0; % 46
    -1, 0, 2, 0, 1; % 47
    -1, 0, 0, 2, 1; % 48 1, 0, 0,-2, 1; % 49
    -1, 0, 2, 2, 1; % 50 1, 1, 0,-2, 0; % 51 0, 1, 2, 0, 2; % 52 0,-1, 2, 0, 2; % 53 1, 0, 2, 2, 2; % 54 1, 0, 0, 2, 0; % 55 2, 0, 2,-2, 2; % 56 0, 0, 0, 2, 1; % 57 0, 0, 2, 2, 1; % 58 1, 0, 2,-2, 1; % 59 0, 0, 0,-2, 1; % 60 1,-1, 0, 0, 0; % 61 2, 0, 2, 0, 1; % 62 0, 1, 0,-2, 0; % 63 1, 0,-2, 0, 0; % 64 0, 0, 0, 1, 0; % 65 1, 1, 0, 0, 0; % 66 64

    1, 0, 2, 0, 0; % 67 1,-1, 2, 0, 2; % 68
    -1,-1, 2, 2, 2; % 69
    -2, 0, 0, 0, 1; % 70 3, 0, 2, 0, 2; % 71 0,-1, 2, 2, 2; % 72 1, 1, 2, 0, 2; % 73
    -1, 0, 2,-2, 1; % 74 2, 0, 0, 0, 1; % 75 1, 0, 0, 0, 2; % 76 3, 0, 0, 0, 0; % 77 0, 0, 2, 1, 2; % 78
    -1, 0, 0, 0, 2; % 79 1, 0, 0,-4, 0; % 80
    -2, 0, 2, 2, 2; % 81
    -1, 0, 2, 4, 2; % 82 2, 0, 0,-4, 0; % 83 1, 1, 2,-2, 2; % 84 1, 0, 2, 2, 1; % 85
    -2, 0, 2, 4, 2; % 86
    -1, 0, 4, 0, 2; % 87 1,-1, 0,-2, 0; % 88 2, 0, 2,-2, 1; % 89 2, 0, 2, 2, 2; % 90 1, 0, 0, 2, 1; % 91 0, 0, 4,-2, 2; % 92 3, 0, 2,-2, 2; % 93 1, 0, 2,-2, 0; % 94 0, 1, 2, 0, 1; % 95
    -1,-1, 0, 2, 1; % 96 0, 0,-2, 0, 1; % 97 0, 0, 2,-1, 2; % 98 0, 1, 0, 2, 0; % 99 1, 0,-2,-2, 0; % 100 0,-1, 2, 0, 1; % 101 1, 1, 0,-2, 1; % 102 1, 0,-2, 2, 0; % 103 2, 0, 0, 2, 0; % 104 0, 0, 2, 4, 2; % 105 0, 1, 0, 1, 0]; % 106 koef_abk = [-2274.0, -0.2, 977.0, -0.5; % 31 712.0, 0.1, -7.0, 0.0; % 32 65

    -386.0, -0.4, 200.0, 0.0; % 33
    -301.0, 0.0, 129.0, -0.1; % 34
    -158.0, 0.0, -1.0, 0.0; % 35 123.0, 0.0, -53.0, 0.0; % 36 63.0, 0.0, -2.0, 0.0; % 37 63.0, 0.1, -33.0, 0.0; % 38
    -58.0, -0.1, 32.0, 0.0; % 39
    -59.0, 0.0, 26.0, 0.0; % 40
    -51.0, 0.0, 27.0, 0.0; % 41
    -38.0, 0.0, 16.0, 0.0; % 42 29.0, 0.0, -1.0, 0.0; % 43 29.0, 0.0, -12.0, 0.0; % 44
    -31.0, 0.0, 13.0, 0.0; % 45 26.0, 0.0, -1.0, 0.0; % 46 21.0, 0.0, -10.0, 0.0; % 47 16.0, 0.0, -8.0, 0.0; % 48
    -13.0, 0.0, 7.0, 0.0; % 49
    -10.0, 0.0, 5.0, 0.0; % 50
    -7.0, 0.0, 0.0, 0.0; % 51 7.0, 0.0, -3.0, 0.0; % 52
    -7.0, 0.0, 3.0, 0.0; % 53
    -8.0, 0.0, 3.0, 0.0; % 54 6.0, 0.0, 0.0, 0.0; % 55 6.0, 0.0, -3.0, 0.0; % 56
    -6.0, 0.0, 3.0, 0.0; % 57
    -7.0, 0.0, 3.0, 0.0; % 58 6.0, 0.0, -3.0, 0.0; % 59
    -5.0, 0.0, 3.0, 0.0; % 60 5.0, 0.0, 0.0, 0.0; % 61
    -5.0, 0.0, 3.0, 0.0; % 62
    -4.0, 0.0, 0.0, 0.0; % 63 4.0, 0.0, 0.0, 0.0; % 64
    -4.0, 0.0, 0.0, 0.0; % 65
    -3.0, 0.0, 0.0, 0.0; % 66 3.0, 0.0, 0.0, 0.0; % 67
    -3.0, 0.0, 1.0, 0.0; % 68
    -3.0, 0.0, 1.0, 0.0; % 69
    -2.0, 0.0, 1.0, 0.0; % 70
    -3.0, 0.0, 1.0, 0.0; % 71
    -3.0, 0.0, 1.0, 0.0; % 72 2.0, 0.0, -1.0, 0.0; % 73
    -2.0, 0.0, 1.0, 0.0; % 74 66

    2.0, 0.0, -1.0, 0.0; % 75
    -2.0, 0.0, 1.0, 0.0; % 76 2.0, 0.0, 0.0, 0.0; % 77 2.0, 0.0, -1.0, 0.0; % 78 1.0, 0.0, -1.0, 0.0; % 79
    -1.0, 0.0, 0.0, 0.0; % 80 1.0, 0.0, -1.0, 0.0; % 81
    -2.0, 0.0, 1.0, 0.0; % 82
    -1.0, 0.0, 0.0, 0.0; % 83 1.0, 0.0, -1.0, 0.0; % 84
    -1.0, 0.0, 1.0, 0.0; % 85
    -1.0, 0.0, 1.0, 0.0; % 86 1.0, 0.0, 0.0, 0.0; % 87 1.0, 0.0, 0.0, 0.0; % 88 1.0, 0.0, -1.0, 0.0; % 89
    -1.0, 0.0, 0.0, 0.0; % 90
    -1.0, 0.0, 0.0, 0.0; % 91 1.0, 0.0, 0.0, 0.0; % 92 1.0, 0.0, 0.0, 0.0; % 93
    -1.0, 0.0, 0.0, 0.0; % 94 1.0, 0.0, 0.0, 0.0; % 95 1.0, 0.0, 0.0, 0.0; % 96
    -1.0, 0.0, 0.0, 0.0; % 97
    -1.0, 0.0, 0.0, 0.0; % 98
    -1.0, 0.0, 0.0, 0.0; % 99
    -1.0, 0.0, 0.0, 0.0; % 100
    -1.0, 0.0, 0.0, 0.0; % 101
    -1.0, 0.0, 0.0, 0.0; % 102
    -1.0, 0.0, 0.0, 0.0; % 103 1.0, 0.0, 0.0, 0.0; % 104
    -1.0, 0.0, 0.0, 0.0; % 105 1.0, 0.0, 0.0, 0.0]; % 106
    Функция utc_nut_fi_eps
    function nut_fi_eps = utc_nut_fi_eps(t, l, l1, f, dd, omega, typ_nut, fi_eps)
    % Имя:utc_nut_fi_eps
    %функция рассчитывает нутацию
    % применить функцию koef
    [koef_id, koef_abd, koef_ik, koef_abk] = koef;
    RAD_SEK_ANGL = pi/(3600*180); if (typ_nut == 'd')
    67
    n = 30; else n = 76; end; sum_a = 0; sum_b = 0; for i = 1 : n if (typ_nut == 'd') s1 = koef_id(i,1) * l + koef_id(i,2) * l1 + koef_id(i,3) * f + koef_id(i,4) * dd + koef_id(i,5) * omega; if (fi_eps == 'f') a = koef_abd(i,1) * 1e-4; bt = koef_abd(i,2) * 1e-4; else a = koef_abd(i,3) * 1e-4; bt = koef_abd(i,4) * 1e-4; end; else s1 = koef_ik(i,1) * l + koef_ik(i,2) * l1 + koef_ik(i,3) * f + koef_ik(i,4) * dd + koef_ik(i,5) * omega; if (fi_eps == 'f') a = koef_abk(i,1) * 1e-4; bt = koef_abk(i,2) * 1e-4; else a = koef_abk(i,3) * 1e-4; bt = koef_abk(i,4) * 1e-4; end; end; if (fi_eps == 'f') sin_s1 = sin(RAD_SEK_ANGL * s1); sa = a * sin_s1; sb = bt * sin_s1; else cos_s1 = cos(RAD_SEK_ANGL * s1); sa = a * cos_s1; sb = bt * cos_s1; end; arg = RAD_SEK_ANGL * s1; sum_a = sum_a + sa; sum_b = sum_b + sb; end; nut_fi_eps = sum_a + sum_b * t;
    Указание 1
    68

    К функциям s0_Nut, utc_nut,
    :
    koef, utc_nut_fi_eps, необходимо добавить функции
    JD_epohi, JD_data и выполнить расчет на требуемую дату, ориентируясь на пример
    Файл PR_s0_Nut.m
    %Пример расчета истинного и среднего звездного времени
    %Для истинного времени nut=1, для среднего nut=0 year=1994; mon= 7; day=16; nut=1;
    [s0_m_mod, s0_nut_mod,s0_m_hour, s0_m_min, s0_m_sec, s0_nut_hour, s0_nut_min, s0_nut_sec] = s0_Nut(year, mon, day, nut);
    [s0_m_mod, s0_nut_mod,s0_m_hour, s0_m_min, s0_m_sec, s0_nut_hour, s0_nut_min, s0_nut_sec]'
    % Решение для приведенного примера
    %s0_m_mod= 70464.3120260519
    %s0_nut_mod=70465.1816369200
    %s0_m_hour=0.00190000000000
    %s0_m_min=0.00340000000000
    %s0_m_sec=0.00243120260519
    %s0_nut_hour=19 часов
    %s0_nut_min= 34 минуты
    %s0_nut_sec=25.1816369200 секунд
    69

    1   2   3   4   5   6   7   8   9   ...   14


    написать администратору сайта