для моего проекта мне нужно рассчитать TOW (время недели) в Simulink. Я знаю, что этого можно добиться путем преобразования времени UTC во время GPS.
Я написал простой m-файл в Matlab, который выполняет следующие действия для меня в Matlab:
date_gps_int = 10000*y + 100*m + d
date_gps_str = int2str(date_gps_int)
date_gps_str_to_serial = datenum(date_gps_str,'yyyymmdd')
date_str_format = datestr(date_gps_str_to_serial,'dd-mmmm-yyyy')
Num_Days = daysact('06-jan-1980',date_str_format)
Num_Weeks = Num_Days/7
TOW = Num_Weeks - 1024
Мое первое намерение состояло в том, чтобы использовать это как функцию в simulink. Но, видимо, из-за 'datenum' и 'datestr' это невозможно, так как simulink не обрабатывает строки.
Теперь мне интересно, может ли кто-нибудь помочь мне с этой проблемой. Есть ли способ рассчитать TOW по дате UTC в Matlab без использования этих предопределенных функций?
Я также попытался написать алгоритм для подсчета количества дней с «6 января 1980 года», а затем подсчета количества недель путем деления на 7. Но, поскольку я не очень хорошо знаком с расчетом високосного года и не знаю формулы для таких расчетов мой результат отличается от реального TOW.
Буду признателен, если кто-нибудь может мне помочь в этом.