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

  • Цель лабораторной работы

  • CH4701

  • ALM_CH4701_V3_My

  • ALM_CH4701_V3 Файл convers_АLM_GLN_YUMA_GPS.m

  • Функция Gln_data_from_NA

  • Функция GLN_satfind_YUMA

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


    Скачать 4.49 Mb.
    НазваниеУчебное пособие ( Лабораторный практикум на компьютере ) Київ 2008 1
    Дата12.04.2023
    Размер4.49 Mb.
    Формат файлаpdf
    Имя файлаСпутниковые системы навигации. Учебное пособие.pdf
    ТипУчебное пособие
    #1057965
    страница9 из 14
    1   ...   6   7   8   9   10   11   12   13   14
    РАЗДЕЛ 5 Преобразование данных навигационных спутников
    5.1 Преобразование данных альманаха приемника СН 4701 в формат YUMA
    5.1.1 Краткие сведения из теории
    В спутниковых радионавигационных системах ГЛОНАСС и GPS эфемериды рассчи- тываются по принципиально разным формулам. В то же время весьма целесообразным является применение в задачах прогнозирования навигационных сеансов использовать одинаковый формат данных альманаха. Отсюда вытекает задача преобразования (конвер- тирования) альманаха системы ГЛОНАСС в широко распространенный формат YUMA без потери данных об альманахе спутников ГЛОНАСС.
    Программы представленные в данном подразделе выполняют преобразование аль- манаха спутников GPS и ГЛОНАСС в формат YUMA, который воспринимается програм- мой PLANNING и обеспечивает возможность планирования сеансов навигационных оп- ределения при применении спутниковых систем GPS и ГЛОНАСС. Программный ком- плекс подготовлен в точном соответствии с интерфейсными контрольными документами [
    ].
    Рис. 5.1.
    Блок- схема программы преобразования альманаха ГЛОНАСС/GPS в формат YUMA convers_АLM_GLN_YUMA_GPS.m
    Входные данные 'In_dat\002.txt'
    Функция «Чтение альманаха»
    Read_GL_Alm
    Функция преобразования дня при- вязки данных альманаха
    Gln_data_from_NA
    Функция read_Alm(Dat)
    Функция write_GPS_alm
    Функция
    GLN_satfind_YUMA
    Функция
    JD_epohi
    Функция
    Gln_data_from_NA
    Функция
    JD_from_epohi
    Функция s0_Nut
    Функция
    JD_data
    Функция week_GLONAS_gps
    Функция gln_a
    Функция semi_axis
    Выходные данные:
    AlmGG.yum

    Для системы ГЛОНАСС Программы, записанные на CD-диск, находятся в папке
    ALM_CH4701_V3. Схема построения программного комплекса изображена на рис. 5.1.
    Основные комментарии и пояснения к программам приведены в листингах.
    Цель лабораторной работы преобразование (конвертирование) данных альманаха навигационных спутников в формат YUMA.
    5.1.2 Лабораторная работа 5. 1 «Конвертирование данных альманаха GPS и ГЛО-
    НАСС в формат » YUMA
    Пакет программ для выполнения лабораторной работы расположен в папке
    ALM_CH4701_V3. Для выполнения работы в качестве входных данных потребуется аль- манах спутников GPS и ГЛОНАСС, который можно получить с нескольких сайтов или с навигационного приемника, если приемник имеется в лаборатории.
    Рекомендуется следующий порядок выполнения лабораторной работы.
    1. Запишите альманах, с приемника CH4701 в папку In_dat. Если не имеется возможно- сти получить данные альманаха с приемника, то можно воспользоваться альманахом с именем 002.txt из приложения к данной книге.
    2. Создайте папку ALM_CH4701_V3_My и скопируйтев ее все программы из папки
    ALM_CH4701_V3 и папку In_dat.
    3. Запустите MatLab.
    4. Обратитесь к папке ALM_CH4701_V3_My , откройте ее, изучите функции, файлы и программные процедуры по комментариям и выполните задания 1 и 2.
    5. Задание 1. Откройте файл convers_ALM_GLN_YUMA_GPS.m в папке
    ALM_CH4701_V3_My и присвойте переменной Dat имя альманаха из папки In_dat.
    Выполните файл. Результат выполнения запишется в файл AlmGG.yum. Это и будет преобразованный в формат YUMA альманах спутников GPS и ГЛОНАСС.
    6. Задание 2. Загрузите альманах AlmGG.yum в программу прогнозирования PLANNING и убедитесь в его работоспособности.
    5.1.3 Задание для самоподготовки
    Ознакомтесь и освойте работу с программой PLANNING
    5.1.4 Функции и файлы из папки ALM_CH4701_V3
    Файл convers_АLM_GLN_YUMA_GPS.m
    142

    %Имя файла:convers_АLM_GLN_YUMA_GPS.m
    %от conversion- преобразование; программа преобразует данные альманаха GPS и ГЛОНАСС, полученные
    %с приемника "СН 4701" (производитель ГП "ОРИЗОН-НАВИГАЦИЯ" в формат YUMA
    %Входные данные: альманах- записан в папке с именем In_dat, например,
    %Dat = 'In_dat\GLN_all_23_10_06_17_45.alm';
    %Выходные данные:записываются в файл с именем 'AlmGG.yum'
    %Dat = 'In_dat\GLN_all8_11_06.alm';
    %Dat = 'In_dat\GLN06_11_06.alm';
    %Dat = 'In_dat\GG_24_03_03.alm';% GG24
    Dat = 'In_dat\002.txt';% CN
    %Имя файла для записи
    Name = 'AlmGG.yum';
    %Открытие файла для записи fid =fopen(Name,'wt');
    % Чтение альманаха
    [alm_GPS,max_kol_GPS,alm_gln,max_kol_GLN] = read_Alm(Dat);
    %Запись в файл альманаха GPS write_GPS_alm(fid, alm_GPS);
    %Полуоси земного эллипсоида
    A_WGS84_M = 6378137.0 ; % WGS-84 ellipsoid parameters
    A_PZ90_M = 6378136.0; %6 378 136 м - Equatorial radius of the Earth - ,большая полуось эллипсоида
    A_PZ90_M = A_WGS84_M;
    %Смещение времени GPS от UTC в секундах
    %dt_lsf = 13; leap_year = 2004;% Високосный год timeUTC_leap.year = leap_year; timeUTC_leap.mon = 0; timeUTC_leap.day = 0;
    GLN_satfind_YUMA( A_PZ90_M, timeUTC_leap, alm_gln, fid);
    Функция read_Alm
    function [alm,max_kol_GPS,alm_gln,max_kol_GLN] = read_Alm(Dat)
    %Имя функции:read_Alm
    %Функция читает данные альманаха GPS и ГЛОНАСС, полученные
    %с приемника "СН 4701" (производитель ГП "ОРИЗОН-НАВИГАЦИЯ"
    %Dat = '001.txt'; i=0; for i=1:61 alm(i).ID = 0; alm(i).Health=63;
    143
    alm_gln(i).ID=0; alm_gln(i).Health=255; end; fid =fopen(Dat,'rt'); max_kol_GLN = 0; max_kol_GPS = 0; while not(feof(fid)) str1=fscanf(fid,'%s',1); % GPS | GLN len1 = length(str1); if len1 == 4 % GPS if str1 == 'GPS:' max_kol_GPS = max_kol_GPS + 1; str1=fscanf(fid,'%c',4);
    ID=fscanf(fid,'%d',1); alm(ID).ID = ID; str2=fscanf(fid,'%c',13);
    Health=fscanf(fid,'%d',1); alm(ID).Health=Health; str3=fscanf(fid,'%c',19); eccentricity=fscanf(fid,'%g',1); alm(ID).ecc =eccentricity; str4=fscanf(fid,'%c',27); deltai=fscanf(fid,'%g',1) ; %i0 alm(ID).deltai= deltai ; %i0 str5=fscanf(fid,'%c',30);
    OMEGADOT=fscanf(fid,'%g',1)*1000; alm(ID).OMEGADOT=OMEGADOT; str6=fscanf(fid,'%c',37);
    A05=fscanf(fid,'%g',1); alm(ID).A05=A05; str7=fscanf(fid,'%c',32); omega0 =fscanf(fid,'%g',1); alm(ID).omega0 =omega0; str8=fscanf(fid,'%c',26); omega =fscanf(fid,'%g',1); alm(ID).omega=omega;
    144
    str9=fscanf(fid,'%c',19);
    M0=fscanf(fid,'%g',1); alm(ID).M0=M0; str10=fscanf(fid,'%c',11);
    Af0m=fscanf(fid,'%g',1)/1000; alm(ID).Af0m=Af0m; str11=fscanf(fid,'%c',10);
    Af01=fscanf(fid,'%g',1); alm(ID).Af01=Af01; str12=fscanf(fid,'%c',11);
    Af0=fscanf(fid,'%g',1); alm(ID).Af0=Af0; str13=fscanf(fid,'%c',19);
    Week=fscanf(fid,'%g',1)+1024; alm(ID).Week=Week; str14=fscanf(fid,'%c',27);
    TOA=fscanf(fid,'%d')/1000; alm(ID).TOA =TOA; end;% if str1 == 'GPS' else % GLONASS len1 = length(str1); if len1 == 8 max_kol_GLN = max_kol_GLN+1; str2=fscanf(fid,'%c',4);
    ID=fscanf(fid,'%d',1); alm_gln(ID).ID = ID; str3=fscanf(fid,'%c',15);
    Health=fscanf(fid,'%d',1); alm_gln(ID).Health=Health; str4=fscanf(fid,'%c',19);
    Hn=fscanf(fid,'%d',1); alm_gln(ID).Hn=Hn;
    145
    str5=fscanf(fid,'%c',34);
    TaUGL=fscanf(fid,'%g',1); alm_gln(ID).tau_n=TaUGL/1000; str6=fscanf(fid,'%c',52);
    LambdaN=fscanf(fid,'%g',1); alm_gln(ID). LambdaN=LambdaN; str7=fscanf(fid,'%c',24); deltai=fscanf(fid,'%g',1); alm_gln(ID).deltai=deltai; str8=fscanf(fid,'%c',21); eccentricity=fscanf(fid,'%g',1); alm_gln(ID).ecc =eccentricity; str9=fscanf(fid,'%c',39); omegan=fscanf(fid,'%g',1); alm_gln(ID).omegan =omegan; str10=fscanf(fid,'%c',48);
    TLambdaN=fscanf(fid,'%g',1); alm_gln(ID).TLambdaN =TLambdaN/1000-10800; str11=fscanf(fid,'%c',27);
    Tdr=fscanf(fid,'%g',1); alm_gln(ID).Tdr =Tdr/1000; str12=fscanf(fid,'%c',48); dTdr=fscanf(fid,'%g',1); alm_gln(ID).dTdr =dTdr;%?единицы измерения str13=fscanf(fid,'%c',16);
    Na=fscanf(fid,'%g',1); alm_gln(ID).Na =Na; end % if len1 == 4 % GPS end % while end fclose(fid);
    146

    Функция Gln_data_from_NA
    function [time_UTC] = Gln_data_from_NA(leap_year, day_from_leap);
    %Имя функции:Gln_data_from_NA
    %function [time_UTC] = Gln_data_from_NA(leap_year, day_from_leap);
    % преобразует NA - день привязки альманаха
    % от ближайшего високосного года - leap_year
    % в текущую дату: timeUTC (год, месяц, день)
    DnMon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; %количество дней в месяцах n4 = mod(leap_year, 4); n100 = mod(leap_year, 100); n400 = mod(leap_year, 400); if (n4 == 0) n_leap = 1; else n_leap = 0; end if ((n100 == 0) & (n400 > 0)) n_leap = 0; end if (day_from_leap > (365 + n_leap)) day = day_from_leap - (365 + n_leap); k =fix (day / 365); day = mod(day, 365); else day = day_from_leap; k = -1; end; god = leap_year + k + 1; if (god > leap_year) n_leap = 0; end; mon = 1; mon_day = 31; while (day > mon_day) day = day - mon_day; mon = mon + 1; % LK mon_day = DnMon(mon);
    % mon = mon+1; if (mon == 2) mon_day = mon_day + n_leap;
    147
    end end time_UTC.year = god; time_UTC.mon = mon; time_UTC.day = day;
    Функция :read_Alm
    function [alm,max_kol_GPS,alm_gln,max_kol_GLN] = read_Alm(Dat)
    %Имя функции:read_Alm
    %Функция читает данные альманаха GPS и ГЛОНАСС, полученные
    %с приемника "СН 4701" (производитель ГП "ОРИЗОН-НАВИГАЦИЯ"
    %Dat = '001.txt'; i=0; for i=1:61 alm(i).ID = 0; alm(i).Health=63; alm_gln(i).ID=0; alm_gln(i).Health=255; end; fid =fopen(Dat,'rt'); max_kol_GLN = 0; max_kol_GPS = 0; while not(feof(fid)) str1=fscanf(fid,'%s',1); % GPS | GLN len1 = length(str1); if len1 == 4 % GPS if str1 == 'GPS:' max_kol_GPS = max_kol_GPS + 1; str1=fscanf(fid,'%c',4);
    ID=fscanf(fid,'%d',1); alm(ID).ID = ID; str2=fscanf(fid,'%c',13);
    Health=fscanf(fid,'%d',1); alm(ID).Health=Health; str3=fscanf(fid,'%c',19); eccentricity=fscanf(fid,'%g',1); alm(ID).ecc =eccentricity; str4=fscanf(fid,'%c',27); deltai=fscanf(fid,'%g',1) ; %i0 alm(ID).deltai= deltai ; %i0 148
    str5=fscanf(fid,'%c',30);
    OMEGADOT=fscanf(fid,'%g',1)*1000; alm(ID).OMEGADOT=OMEGADOT; str6=fscanf(fid,'%c',37);
    A05=fscanf(fid,'%g',1); alm(ID).A05=A05; str7=fscanf(fid,'%c',32); omega0 =fscanf(fid,'%g',1); alm(ID).omega0 =omega0; str8=fscanf(fid,'%c',26); omega =fscanf(fid,'%g',1); alm(ID).omega=omega; str9=fscanf(fid,'%c',19);
    M0=fscanf(fid,'%g',1); alm(ID).M0=M0; str10=fscanf(fid,'%c',11);
    Af0m=fscanf(fid,'%g',1)/1000; alm(ID).Af0m=Af0m; str11=fscanf(fid,'%c',10);
    Af01=fscanf(fid,'%g',1); alm(ID).Af01=Af01; str12=fscanf(fid,'%c',11);
    Af0=fscanf(fid,'%g',1); alm(ID).Af0=Af0; str13=fscanf(fid,'%c',19);
    Week=fscanf(fid,'%g',1)+1024; alm(ID).Week=Week; str14=fscanf(fid,'%c',27);
    TOA=fscanf(fid,'%d')/1000; alm(ID).TOA =TOA; end;% if str1 == 'GPS' else % GLONASS
    149
    len1 = length(str1); if len1 == 8 max_kol_GLN = max_kol_GLN+1; str2=fscanf(fid,'%c',4);
    ID=fscanf(fid,'%d',1); alm_gln(ID).ID = ID; str3=fscanf(fid,'%c',15);
    Health=fscanf(fid,'%d',1); alm_gln(ID).Health=Health; str4=fscanf(fid,'%c',19);
    Hn=fscanf(fid,'%d',1); alm_gln(ID).Hn=Hn; str5=fscanf(fid,'%c',34);
    TaUGL=fscanf(fid,'%g',1); alm_gln(ID).tau_n=TaUGL/1000; str6=fscanf(fid,'%c',52);
    LambdaN=fscanf(fid,'%g',1); alm_gln(ID). LambdaN=LambdaN; str7=fscanf(fid,'%c',24); deltai=fscanf(fid,'%g',1); alm_gln(ID).deltai=deltai; str8=fscanf(fid,'%c',21); eccentricity=fscanf(fid,'%g',1); alm_gln(ID).ecc =eccentricity; str9=fscanf(fid,'%c',39); omegan=fscanf(fid,'%g',1); alm_gln(ID).omegan =omegan; str10=fscanf(fid,'%c',48);
    TLambdaN=fscanf(fid,'%g',1); alm_gln(ID).TLambdaN =TLambdaN/1000-10800; str11=fscanf(fid,'%c',27);
    Tdr=fscanf(fid,'%g',1);
    150
    alm_gln(ID).Tdr =Tdr/1000; str12=fscanf(fid,'%c',48); dTdr=fscanf(fid,'%g',1); alm_gln(ID).dTdr =dTdr;%?единицы измерения str13=fscanf(fid,'%c',16);
    Na=fscanf(fid,'%g',1); alm_gln(ID).Na =Na; end % if len1 == 4 % GPS end % while end fclose(fid);
    Функция write_GPS_alm
    function [] = write_GPS_alm(fw, alm)
    %Имя функции:write_GPS_alm
    %Функция записывает альманах GPS в совместный альманах спутников GPS и ГЛОНАСС в формате
    YUMA i=0; format long e; for i=1:31 if alm(i).ID > 0
    %Заголовок альманаха fprintf(fw,'**** Week %i almaNAU for PRN-0%i **********\n',alm(i).Week, alm(i).ID);
    %Номер спутника GPS fprintf(fw,'ID: %i\n',alm(i).ID);
    %Здоровье спутника GPS fprintf(fw,'Health: %i\n', alm(i).Health);
    %Эксцентриситет орбиты спутника GPS strdop = e_norm(alm(i).ecc, 9); fprintf(fw,'Eccentricity: %s\n', strdop);
    %Время от начала недели GPS, на которое заданы параметры альманаха fprintf(fw,'Time of Applicability(s): %6.4f\n',alm(i).TOA);
    %Наклонение орбиты спутника GPS
    151
    fprintf(fw,'Orbital Incluation(rad): %0.10f \n', alm(i).deltai);
    %Скорость изменения восходящего узла орбиты спутника GPS strdop = e_norm(alm(i).OMEGADOT, 9); fprintf(fw,'Rate of Right Ascen(r/s): %s\n', strdop);
    %Корень квадратный из большой полуоси орбиты спутника GPS fprintf(fw,'SQRT(A) (m^1/2): %4.7f \n',alm(i).A05);
    %Долгота восходящего узла орбиты спутника GPS strdop = e_norm(alm(i).omega0, 9); fprintf(fw,'Right Ascen at Week(rad): %s\n', strdop );
    %Аргумент перигея орбиты спутника GPS strdop = e_norm(alm(i).omega, 9); fprintf(fw,'Argument of Perigee(rad): %s\n',strdop);
    %Средняя аномалия спутника GPS strdop = e_norm(alm(i).M0, 9); fprintf(fw,'Mean Anom(rad): %s\n', strdop);
    %Коэффициенты полинома для учета поправок времени strdop = e_norm(alm(i).Af0m, 9); fprintf(fw,'Af0(s): %s\n', strdop); strdop = e_norm(alm(i).Af01, 9); fprintf(fw,'Af1(s/s): %s\n', strdop);
    %Номер недели fprintf(fw,'week: %i \n',alm(i).Week);
    %Запись альманаха GPS в файл fprintf(fw,' \n'); end; %if alm(i).ID > 0 end; %i
    Функция GLN_satfind_YUMA
    function [ ] = GLN_satfind_YUMA(a, timeUTC_leap, alm_gln, fid);
    %Имя функции:GLN_satfind_YUMA
    %функция обрабатывае входные данные
    KOL_GLN = 24;
    A_PZ90_KM = a / 1000; for ( i = 1 :KOL_GLN)
    %alm_gln.Na -(сек) время привязки альманаха от начала предшествующего високосного года day_from_leap = alm_gln(i).Na; timeUTC = Gln_data_from_NA(timeUTC_leap.year, day_from_leap); timeUTC.ti = 0.0; nut = 0;
    S0 = s0_Nut( timeUTC, nut);
    152
    time_s0 = S0.s0_m_mod ; %time_s0 - истинное звездное время в текущий момент обсервации year = timeUTC.year;
    % leap_year = fix( year / 4) * 4; % ближайший к текущему (предыдущий) високосный год leap_year = timeUTC_leap.year; % ближайший к текущему (предыдущий) високосный год
    %------------
    % ti = timeUTC.ti; % текущее время обсервации от начала дня
    % n00 = fix(ti / 86400);
    % n0 - номер текущих суток внутри 4-х летнего периода (от ближайшего високосного года)
    % n0 = JD_from_epohi(leap_year, timeUTC) + n00 + 1;
    % [eci_current_loc, eci_rec_pos_xyz] = llh_to_eci(a, b, ti, time_s0, current_loc_pz90);
    % satpos_eci = init_satpos_gln(); ti = alm_gln (i).TLambdaN; % текущее время обсервации от начала дня n00 = fix(ti / 86400);
    % n0 - номер текущих суток внутри 4-х летнего периода (от ближайшего високосного года) n0 = JD_from_epohi(leap_year, timeUTC) + n00 + 1; prn = alm_gln (i).ID; health = alm_gln (i).Health;
    Hn = alm_gln (i).Hn; if ((prn > 0) & (Hn > 0)) gln_a(A_PZ90_KM, i, n0, ti, time_s0, alm_gln, timeUTC_leap, fid); end; % f ( (prn > 0) & (health == 1)) end; % for ( i = 1 : KOL_GLN) fclose(fid);
    Функция Gln_data_from_NA
    function [time_UTC] = Gln_data_from_NA(leap_year, day_from_leap);
    %Имя функции:Gln_data_from_NA
    %function [time_UTC] = Gln_data_from_NA(leap_year, day_from_leap);
    % преобразует NA - день привязки альманаха
    % от ближайшего високосного года - leap_year
    % в текущую дату: timeUTC (год, месяц, день)
    DnMon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; %количество дней в месяцах n4 = mod(leap_year, 4); n100 = mod(leap_year, 100); n400 = mod(leap_year, 400);
    153
    if (n4 == 0) n_leap = 1; else n_leap = 0; end if ((n100 == 0) & (n400 > 0)) n_leap = 0; end if (day_from_leap > (365 + n_leap)) day = day_from_leap - (365 + n_leap); k =fix (day / 365); day = mod(day, 365); else day = day_from_leap; k = -1; end; god = leap_year + k + 1; if (god > leap_year) n_leap = 0; end; mon = 1; mon_day = 31; while (day > mon_day) day = day - mon_day; mon = mon + 1; % LK mon_day = DnMon(mon);
    % mon = mon+1; if (mon == 2) mon_day = mon_day + n_leap; end end time_UTC.year = god; time_UTC.mon = mon; time_UTC.day = day;
    Функция s0_Nut
    function [S0] = s0_Nut( timeUTC, nut)
    %Имя функции: s0_Nut
    %функция рассчитывает истинное и среднее звездное время по формулам ( )
    % среднее звездное время s0 на 0ч UTC
    %year = 1993; mon = 1; day = 0;
    %fprintf('function s0_m - start \n');
    154
    jd2000 = 2451545; % 12h UTC 1 января
    % Применить функцию JD_data
    [jd, day_year] = JD_data( timeUTC); 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.s0_nut = s0_m + na;
    S0.s0_m_mod = mod(s0_m, 86400); s0_day = floor(s0_m / 86400);
    S0.s0_m_hour = S0.s0_m_mod / 3600.0;
    S0.s0_m_hour = floor(S0.s0_m_mod / 3600); sec_min = S0.s0_m_mod - S0.s0_m_hour * 3600;
    S0.s0_m_min = floor(sec_min / 60);
    S0.s0_m_sec = sec_min - S0.s0_m_min * 60;
    S0.s0_nut_mod = mod(S0.s0_nut, 86400); s0_day = floor(S0.s0_nut / 86400);
    S0.s0_nut_hour = S0.s0_nut_mod / 3600.0;
    S0.s0_nut_hour = floor(S0.s0_nut_mod / 3600); sec_min = S0.s0_nut_mod - S0.s0_nut_hour * 3600;
    S0.s0_nut_min = floor(sec_min / 60);
    S0.s0_nut_sec = sec_min - S0.s0_nut_min * 60;
    155

    Функция :JD_from_epohi
    function [jd] =JD_from_epohi( epoha, timeUTC);
    %Имя функции:JD_from_epohi
    %Функция вычисляет jd - количество дней от указанного года (epoha)
    % до текущей даты, указанной в структуре timeUTC представленной в виде
    % (timeUTC.year, timeUTC.mon, timeUTC.day) jd0 = JD_epohi(epoha) + 1; % 12h, 1 den January
    [day, day_year] = JD_data(timeUTC); jd = day - jd0;
    1   ...   6   7   8   9   10   11   12   13   14


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