...
This commit is contained in:
parent
f661dfad44
commit
864e257884
@ -50,12 +50,16 @@ struct AsibFM700MountControls {
|
||||
AsibFM700PointingErrorCorrection PEC;
|
||||
AsibFM700Hardware hardware;
|
||||
AsibFM700Telemetry telemetry{astrometryEngine, PEC, hardware};
|
||||
AsibFM700SlewModel<LoggerT> slewModel;
|
||||
AsibFM700GuidingModel<LoggerT> guidingModel;
|
||||
|
||||
std::tuple<mcc::MccAltLimitPZ<mcc::MccAltLimitKind::MIN_ALT_LIMIT>> prohibitedZones;
|
||||
|
||||
AsibFM700SlewModel<LoggerT> slewModel{PEC, hardware, prohibitedZones};
|
||||
AsibFM700GuidingModel<LoggerT> guidingModel{PEC, hardware, prohibitedZones};
|
||||
};
|
||||
|
||||
|
||||
static_assert(mcc::traits::mcc_mount_controls_c<AsibFM700MountControls<mcc::utils::MccSpdlogLogger>>);
|
||||
|
||||
// global mount configuration
|
||||
|
||||
struct AsibFM700Config {
|
||||
|
||||
@ -15,10 +15,10 @@ static std::string MCC_DEFAULT_LEAP_SECONDS_FILE = R"--(
|
||||
# Value of TAI-UTC in second valid beetween the initial value until
|
||||
# the epoch given on the next line. The last line reads that NO
|
||||
# leap second was introduced since the corresponding date
|
||||
# Updated through IERS Bulletin 69 issued in January 2025
|
||||
# Updated through IERS Bulletin 70 issued in July 2025
|
||||
#
|
||||
#
|
||||
# File expires on 28 December 2025
|
||||
# File expires on 28 June 2026
|
||||
#
|
||||
#
|
||||
# MJD Date TAI-UTC (s)
|
||||
@ -67,7 +67,7 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
|
||||
* *
|
||||
* Rapid Service/Prediction of Earth Orientation *
|
||||
**********************************************************************
|
||||
3 July 2025 Vol. XXXVIII No. 027
|
||||
31 July 2025 Vol. XXXVIII No. 031
|
||||
______________________________________________________________________
|
||||
GENERAL INFORMATION:
|
||||
MJD = Julian Date - 2 400 000.5 days
|
||||
@ -76,13 +76,15 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
|
||||
where pi = 3.14159265... and T is the date in Besselian years.
|
||||
TT = TAI + 32.184 seconds
|
||||
DUT1= (UT1-UTC) transmitted with time signals
|
||||
= 0.0 seconds beginning 26 December 2024 at 0000 UTC
|
||||
= +0.1 seconds beginning 10 July 2025 at 0000 UTC
|
||||
Beginning 1 January 2017:
|
||||
TAI-UTC = 37.000 000 seconds
|
||||
***********************************************************************
|
||||
* ANNOUNCEMENTS: *
|
||||
* *
|
||||
* There will NOT be a leap second introduced in UTC *
|
||||
* at the end of December 2025. *
|
||||
* *
|
||||
* The primary source for IERS Rapid Service/Prediction Center (RS/PC) *
|
||||
* data products is the official IERS RS/PC website: *
|
||||
* https://maia.usno.navy.mil *
|
||||
@ -114,48 +116,13 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
|
||||
IERS Rapid Service
|
||||
MJD x error y error UT1-UTC error
|
||||
" " " " s s
|
||||
25 6 27 60853 0.15472 .00009 0.44036 .00009 0.040354 0.000022
|
||||
25 6 28 60854 0.15644 .00009 0.44013 .00009 0.041389 0.000023
|
||||
25 6 29 60855 0.15844 .00009 0.44006 .00009 0.042204 0.000024
|
||||
25 6 30 60856 0.16029 .00009 0.44003 .00009 0.042854 0.000016
|
||||
25 7 1 60857 0.16204 .00009 0.43988 .00009 0.043427 0.000013
|
||||
25 7 2 60858 0.16365 .00009 0.43965 .00009 0.043890 0.000012
|
||||
25 7 3 60859 0.16516 .00009 0.43931 .00009 0.044366 0.000009
|
||||
|
||||
IERS Final Values
|
||||
MJD x y UT1-UTC
|
||||
" " s
|
||||
25 5 2 60797 0.0865 0.4180 0.03007
|
||||
25 5 3 60798 0.0873 0.4191 0.03031
|
||||
25 5 4 60799 0.0882 0.4202 0.03039
|
||||
25 5 5 60800 0.0889 0.4212 0.03031
|
||||
25 5 6 60801 0.0898 0.4221 0.03006
|
||||
25 5 7 60802 0.0907 0.4232 0.02970
|
||||
25 5 8 60803 0.0915 0.4238 0.02932
|
||||
25 5 9 60804 0.0925 0.4244 0.02898
|
||||
25 5 10 60805 0.0939 0.4247 0.02874
|
||||
25 5 11 60806 0.0955 0.4251 0.02855
|
||||
25 5 12 60807 0.0970 0.4259 0.02849
|
||||
25 5 13 60808 0.0980 0.4268 0.02857
|
||||
25 5 14 60809 0.0990 0.4277 0.02880
|
||||
25 5 15 60810 0.1001 0.4288 0.02915
|
||||
25 5 16 60811 0.1008 0.4299 0.02958
|
||||
25 5 17 60812 0.1012 0.4309 0.02999
|
||||
25 5 18 60813 0.1016 0.4316 0.03034
|
||||
25 5 19 60814 0.1027 0.4318 0.03056
|
||||
25 5 20 60815 0.1040 0.4321 0.03061
|
||||
25 5 21 60816 0.1052 0.4328 0.03042
|
||||
25 5 22 60817 0.1063 0.4338 0.02998
|
||||
25 5 23 60818 0.1073 0.4346 0.02931
|
||||
25 5 24 60819 0.1081 0.4356 0.02856
|
||||
25 5 25 60820 0.1086 0.4365 0.02791
|
||||
25 5 26 60821 0.1096 0.4368 0.02748
|
||||
25 5 27 60822 0.1106 0.4373 0.02744
|
||||
25 5 28 60823 0.1114 0.4375 0.02772
|
||||
25 5 29 60824 0.1116 0.4380 0.02813
|
||||
25 5 30 60825 0.1120 0.4375 0.02851
|
||||
25 5 31 60826 0.1127 0.4374 0.02881
|
||||
25 6 1 60827 0.1132 0.4377 0.02899
|
||||
25 7 25 60881 0.19849 .00009 0.43231 .00009 0.060664 0.000023
|
||||
25 7 26 60882 0.19962 .00009 0.43171 .00009 0.061061 0.000018
|
||||
25 7 27 60883 0.20063 .00009 0.43095 .00009 0.061275 0.000018
|
||||
25 7 28 60884 0.20201 .00009 0.43031 .00009 0.061376 0.000016
|
||||
25 7 29 60885 0.20393 .00009 0.42977 .00009 0.061481 0.000016
|
||||
25 7 30 60886 0.20609 .00009 0.42900 .00009 0.061552 0.000012
|
||||
25 7 31 60887 0.20824 .00009 0.42803 .00009 0.061682 0.000006
|
||||
|
||||
_______________________________________________________________________
|
||||
|
||||
@ -163,486 +130,401 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
|
||||
The following formulas will not reproduce the predictions given below,
|
||||
but may be used to extend the predictions beyond the end of this table.
|
||||
|
||||
x = 0.1314 + 0.0400 cos A + 0.1547 sin A - 0.0075 cos C - 0.0886 sin C
|
||||
y = 0.3810 + 0.1454 cos A - 0.0330 sin A - 0.0886 cos C + 0.0075 sin C
|
||||
UT1-UTC = 0.0606 + 0.00011 (MJD - 60867) - (UT2-UT1)
|
||||
x = 0.1419 + 0.0946 cos A + 0.1166 sin A - 0.0303 cos C - 0.0701 sin C
|
||||
y = 0.3863 + 0.1145 cos A - 0.0825 sin A - 0.0701 cos C + 0.0303 sin C
|
||||
UT1-UTC = 0.0464 + 0.00010 (MJD - 60895) - (UT2-UT1)
|
||||
|
||||
where A = 2*pi*(MJD-60859)/365.25 and C = 2*pi*(MJD-60859)/435.
|
||||
where A = 2*pi*(MJD-60887)/365.25 and C = 2*pi*(MJD-60887)/435.
|
||||
|
||||
TAI-UTC(MJD 60860) = 37.0
|
||||
TAI-UTC(MJD 60888) = 37.0
|
||||
The accuracy may be estimated from the expressions:
|
||||
S x,y = 0.00068 (MJD-60859)**0.80 S t = 0.00025 (MJD-60859)**0.75
|
||||
S x,y = 0.00068 (MJD-60887)**0.80 S t = 0.00025 (MJD-60887)**0.75
|
||||
Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d
|
||||
Polar coord's 0.004 0.007 0.010 0.013
|
||||
UT1-UTC 0.0014 0.0024 0.0032 0.0040
|
||||
|
||||
MJD x(arcsec) y(arcsec) UT1-UTC(sec)
|
||||
2025 7 4 60860 0.1666 0.4389 0.04491
|
||||
2025 7 5 60861 0.1680 0.4385 0.04561
|
||||
2025 7 6 60862 0.1694 0.4380 0.04651
|
||||
2025 7 7 60863 0.1708 0.4375 0.04762
|
||||
2025 7 8 60864 0.1721 0.4369 0.04889
|
||||
2025 7 9 60865 0.1734 0.4364 0.05025
|
||||
2025 7 10 60866 0.1747 0.4359 0.05163
|
||||
2025 7 11 60867 0.1760 0.4353 0.05295
|
||||
2025 7 12 60868 0.1772 0.4347 0.05411
|
||||
2025 7 13 60869 0.1785 0.4341 0.05505
|
||||
2025 7 14 60870 0.1797 0.4335 0.05573
|
||||
2025 7 15 60871 0.1809 0.4329 0.05615
|
||||
2025 7 16 60872 0.1821 0.4322 0.05641
|
||||
2025 7 17 60873 0.1832 0.4315 0.05666
|
||||
2025 7 18 60874 0.1844 0.4308 0.05701
|
||||
2025 7 19 60875 0.1855 0.4301 0.05759
|
||||
2025 7 20 60876 0.1867 0.4294 0.05843
|
||||
2025 7 21 60877 0.1878 0.4286 0.05953
|
||||
2025 7 22 60878 0.1889 0.4278 0.06082
|
||||
2025 7 23 60879 0.1899 0.4271 0.06216
|
||||
2025 7 24 60880 0.1910 0.4263 0.06342
|
||||
2025 7 25 60881 0.1920 0.4254 0.06451
|
||||
2025 7 26 60882 0.1931 0.4246 0.06536
|
||||
2025 7 27 60883 0.1941 0.4237 0.06600
|
||||
2025 7 28 60884 0.1951 0.4229 0.06647
|
||||
2025 7 29 60885 0.1960 0.4220 0.06686
|
||||
2025 7 30 60886 0.1970 0.4211 0.06726
|
||||
2025 7 31 60887 0.1979 0.4201 0.06774
|
||||
2025 8 1 60888 0.1988 0.4192 0.06835
|
||||
2025 8 2 60889 0.1997 0.4182 0.06912
|
||||
2025 8 3 60890 0.2006 0.4173 0.07005
|
||||
2025 8 4 60891 0.2015 0.4163 0.07113
|
||||
2025 8 5 60892 0.2023 0.4153 0.07233
|
||||
2025 8 6 60893 0.2031 0.4143 0.07357
|
||||
2025 8 7 60894 0.2039 0.4132 0.07478
|
||||
2025 8 8 60895 0.2047 0.4122 0.07584
|
||||
2025 8 9 60896 0.2054 0.4111 0.07666
|
||||
2025 8 10 60897 0.2062 0.4101 0.07718
|
||||
2025 8 11 60898 0.2069 0.4090 0.07742
|
||||
2025 8 12 60899 0.2075 0.4079 0.07746
|
||||
2025 8 13 60900 0.2082 0.4068 0.07741
|
||||
2025 8 14 60901 0.2089 0.4057 0.07742
|
||||
2025 8 15 60902 0.2095 0.4045 0.07762
|
||||
2025 8 16 60903 0.2101 0.4034 0.07809
|
||||
2025 8 17 60904 0.2106 0.4022 0.07884
|
||||
2025 8 18 60905 0.2112 0.4011 0.07981
|
||||
2025 8 19 60906 0.2117 0.3999 0.08088
|
||||
2025 8 20 60907 0.2122 0.3987 0.08193
|
||||
2025 8 21 60908 0.2127 0.3975 0.08285
|
||||
2025 8 22 60909 0.2132 0.3963 0.08355
|
||||
2025 8 23 60910 0.2136 0.3951 0.08403
|
||||
2025 8 24 60911 0.2140 0.3939 0.08432
|
||||
2025 8 25 60912 0.2144 0.3927 0.08451
|
||||
2025 8 26 60913 0.2147 0.3915 0.08467
|
||||
2025 8 27 60914 0.2151 0.3902 0.08488
|
||||
2025 8 28 60915 0.2154 0.3890 0.08522
|
||||
2025 8 29 60916 0.2157 0.3877 0.08573
|
||||
2025 8 30 60917 0.2159 0.3865 0.08641
|
||||
2025 8 31 60918 0.2162 0.3852 0.08727
|
||||
2025 9 1 60919 0.2164 0.3840 0.08825
|
||||
2025 9 2 60920 0.2165 0.3827 0.08931
|
||||
2025 9 3 60921 0.2167 0.3814 0.09034
|
||||
2025 9 4 60922 0.2168 0.3802 0.09125
|
||||
2025 9 5 60923 0.2169 0.3789 0.09195
|
||||
2025 9 6 60924 0.2170 0.3776 0.09236
|
||||
2025 9 7 60925 0.2171 0.3763 0.09245
|
||||
2025 9 8 60926 0.2171 0.3750 0.09226
|
||||
2025 9 9 60927 0.2171 0.3738 0.09190
|
||||
2025 9 10 60928 0.2171 0.3725 0.09154
|
||||
2025 9 11 60929 0.2171 0.3712 0.09134
|
||||
2025 9 12 60930 0.2170 0.3699 0.09141
|
||||
2025 9 13 60931 0.2169 0.3686 0.09178
|
||||
2025 9 14 60932 0.2168 0.3673 0.09239
|
||||
2025 9 15 60933 0.2167 0.3661 0.09314
|
||||
2025 9 16 60934 0.2165 0.3648 0.09389
|
||||
2025 9 17 60935 0.2163 0.3635 0.09452
|
||||
2025 9 18 60936 0.2161 0.3622 0.09495
|
||||
2025 9 19 60937 0.2158 0.3609 0.09516
|
||||
2025 9 20 60938 0.2156 0.3597 0.09517
|
||||
2025 9 21 60939 0.2153 0.3584 0.09503
|
||||
2025 9 22 60940 0.2150 0.3571 0.09484
|
||||
2025 9 23 60941 0.2146 0.3559 0.09466
|
||||
2025 9 24 60942 0.2142 0.3546 0.09458
|
||||
2025 9 25 60943 0.2139 0.3534 0.09465
|
||||
2025 9 26 60944 0.2134 0.3521 0.09489
|
||||
2025 9 27 60945 0.2130 0.3509 0.09530
|
||||
2025 9 28 60946 0.2125 0.3497 0.09585
|
||||
2025 9 29 60947 0.2120 0.3484 0.09649
|
||||
2025 9 30 60948 0.2115 0.3472 0.09713
|
||||
2025 10 1 60949 0.2110 0.3460 0.09770
|
||||
2025 10 2 60950 0.2104 0.3448 0.09809
|
||||
2025 10 3 60951 0.2099 0.3436 0.09823
|
||||
2025 10 4 60952 0.2093 0.3424 0.09807
|
||||
2025 10 5 60953 0.2086 0.3412 0.09759
|
||||
2025 10 6 60954 0.2080 0.3401 0.09687
|
||||
2025 10 7 60955 0.2073 0.3389 0.09605
|
||||
2025 10 8 60956 0.2066 0.3378 0.09532
|
||||
2025 10 9 60957 0.2059 0.3366 0.09483
|
||||
2025 10 10 60958 0.2052 0.3355 0.09464
|
||||
2025 10 11 60959 0.2044 0.3344 0.09475
|
||||
2025 10 12 60960 0.2036 0.3333 0.09504
|
||||
2025 10 13 60961 0.2028 0.3322 0.09538
|
||||
2025 10 14 60962 0.2020 0.3311 0.09563
|
||||
2025 10 15 60963 0.2012 0.3300 0.09571
|
||||
2025 10 16 60964 0.2003 0.3290 0.09557
|
||||
2025 10 17 60965 0.1994 0.3280 0.09524
|
||||
2025 10 18 60966 0.1985 0.3269 0.09475
|
||||
2025 10 19 60967 0.1976 0.3259 0.09419
|
||||
2025 10 20 60968 0.1967 0.3249 0.09361
|
||||
2025 10 21 60969 0.1957 0.3239 0.09312
|
||||
2025 10 22 60970 0.1947 0.3230 0.09276
|
||||
2025 10 23 60971 0.1937 0.3220 0.09259
|
||||
2025 10 24 60972 0.1927 0.3211 0.09259
|
||||
2025 10 25 60973 0.1917 0.3202 0.09276
|
||||
2025 10 26 60974 0.1906 0.3193 0.09305
|
||||
2025 10 27 60975 0.1896 0.3184 0.09337
|
||||
2025 10 28 60976 0.1885 0.3175 0.09366
|
||||
2025 10 29 60977 0.1874 0.3166 0.09383
|
||||
2025 10 30 60978 0.1863 0.3158 0.09380
|
||||
2025 10 31 60979 0.1851 0.3150 0.09350
|
||||
2025 11 1 60980 0.1840 0.3142 0.09291
|
||||
2025 11 2 60981 0.1828 0.3134 0.09206
|
||||
2025 11 3 60982 0.1817 0.3126 0.09105
|
||||
2025 11 4 60983 0.1805 0.3119 0.09004
|
||||
2025 11 5 60984 0.1793 0.3112 0.08919
|
||||
2025 11 6 60985 0.1781 0.3105 0.08864
|
||||
2025 11 7 60986 0.1768 0.3098 0.08841
|
||||
2025 11 8 60987 0.1756 0.3091 0.08843
|
||||
2025 11 9 60988 0.1743 0.3085 0.08858
|
||||
2025 11 10 60989 0.1731 0.3078 0.08870
|
||||
2025 11 11 60990 0.1718 0.3072 0.08868
|
||||
2025 11 12 60991 0.1705 0.3066 0.08847
|
||||
2025 11 13 60992 0.1692 0.3061 0.08807
|
||||
2025 11 14 60993 0.1679 0.3055 0.08754
|
||||
2025 11 15 60994 0.1666 0.3050 0.08696
|
||||
2025 11 16 60995 0.1652 0.3045 0.08638
|
||||
2025 11 17 60996 0.1639 0.3040 0.08589
|
||||
2025 11 18 60997 0.1626 0.3035 0.08554
|
||||
2025 11 19 60998 0.1612 0.3031 0.08537
|
||||
2025 11 20 60999 0.1598 0.3027 0.08539
|
||||
2025 11 21 61000 0.1585 0.3023 0.08559
|
||||
2025 11 22 61001 0.1571 0.3019 0.08593
|
||||
2025 11 23 61002 0.1557 0.3015 0.08634
|
||||
2025 11 24 61003 0.1543 0.3012 0.08675
|
||||
2025 11 25 61004 0.1529 0.3009 0.08707
|
||||
2025 11 26 61005 0.1515 0.3006 0.08724
|
||||
2025 11 27 61006 0.1501 0.3004 0.08718
|
||||
2025 11 28 61007 0.1487 0.3001 0.08688
|
||||
2025 11 29 61008 0.1473 0.2999 0.08634
|
||||
2025 11 30 61009 0.1459 0.2997 0.08562
|
||||
2025 12 1 61010 0.1445 0.2995 0.08484
|
||||
2025 12 2 61011 0.1431 0.2994 0.08414
|
||||
2025 12 3 61012 0.1417 0.2993 0.08368
|
||||
2025 12 4 61013 0.1402 0.2991 0.08352
|
||||
2025 12 5 61014 0.1388 0.2991 0.08365
|
||||
2025 12 6 61015 0.1374 0.2990 0.08395
|
||||
2025 12 7 61016 0.1360 0.2990 0.08429
|
||||
2025 12 8 61017 0.1345 0.2990 0.08452
|
||||
2025 12 9 61018 0.1331 0.2990 0.08456
|
||||
2025 12 10 61019 0.1317 0.2990 0.08439
|
||||
2025 12 11 61020 0.1303 0.2991 0.08408
|
||||
2025 12 12 61021 0.1288 0.2991 0.08369
|
||||
2025 12 13 61022 0.1274 0.2993 0.08332
|
||||
2025 12 14 61023 0.1260 0.2994 0.08304
|
||||
2025 12 15 61024 0.1246 0.2995 0.08289
|
||||
2025 12 16 61025 0.1232 0.2997 0.08293
|
||||
2025 12 17 61026 0.1218 0.2999 0.08316
|
||||
2025 12 18 61027 0.1204 0.3001 0.08357
|
||||
2025 12 19 61028 0.1190 0.3004 0.08414
|
||||
2025 12 20 61029 0.1176 0.3006 0.08479
|
||||
2025 12 21 61030 0.1162 0.3009 0.08546
|
||||
2025 12 22 61031 0.1149 0.3012 0.08606
|
||||
2025 12 23 61032 0.1135 0.3016 0.08651
|
||||
2025 12 24 61033 0.1121 0.3019 0.08676
|
||||
2025 12 25 61034 0.1108 0.3023 0.08678
|
||||
2025 12 26 61035 0.1094 0.3027 0.08657
|
||||
2025 12 27 61036 0.1081 0.3031 0.08620
|
||||
2025 12 28 61037 0.1068 0.3035 0.08575
|
||||
2025 12 29 61038 0.1055 0.3040 0.08535
|
||||
2025 12 30 61039 0.1042 0.3045 0.08513
|
||||
2025 12 31 61040 0.1029 0.3050 0.08516
|
||||
2026 1 1 61041 0.1016 0.3055 0.08548
|
||||
2026 1 2 61042 0.1003 0.3061 0.08601
|
||||
2026 1 3 61043 0.0990 0.3067 0.08663
|
||||
2026 1 4 61044 0.0978 0.3072 0.08720
|
||||
2026 1 5 61045 0.0966 0.3079 0.08759
|
||||
2026 1 6 61046 0.0953 0.3085 0.08776
|
||||
2026 1 7 61047 0.0941 0.3091 0.08775
|
||||
2026 1 8 61048 0.0929 0.3098 0.08763
|
||||
2026 1 9 61049 0.0917 0.3105 0.08749
|
||||
2026 1 10 61050 0.0906 0.3112 0.08742
|
||||
2026 1 11 61051 0.0894 0.3120 0.08746
|
||||
2026 1 12 61052 0.0883 0.3127 0.08766
|
||||
2026 1 13 61053 0.0871 0.3135 0.08801
|
||||
2026 1 14 61054 0.0860 0.3143 0.08852
|
||||
2026 1 15 61055 0.0849 0.3151 0.08915
|
||||
2026 1 16 61056 0.0838 0.3159 0.08984
|
||||
2026 1 17 61057 0.0828 0.3168 0.09052
|
||||
2026 1 18 61058 0.0817 0.3176 0.09108
|
||||
2026 1 19 61059 0.0807 0.3185 0.09145
|
||||
2026 1 20 61060 0.0797 0.3194 0.09156
|
||||
2026 1 21 61061 0.0787 0.3203 0.09138
|
||||
2026 1 22 61062 0.0777 0.3212 0.09092
|
||||
2026 1 23 61063 0.0768 0.3222 0.09023
|
||||
2026 1 24 61064 0.0758 0.3232 0.08943
|
||||
2026 1 25 61065 0.0749 0.3241 0.08864
|
||||
2026 1 26 61066 0.0740 0.3251 0.08797
|
||||
2026 1 27 61067 0.0731 0.3261 0.08752
|
||||
2026 1 28 61068 0.0723 0.3272 0.08730
|
||||
2026 1 29 61069 0.0715 0.3282 0.08730
|
||||
2026 1 30 61070 0.0706 0.3293 0.08740
|
||||
2026 1 31 61071 0.0698 0.3303 0.08748
|
||||
2026 2 1 61072 0.0691 0.3314 0.08742
|
||||
2026 2 2 61073 0.0683 0.3325 0.08715
|
||||
2026 2 3 61074 0.0676 0.3336 0.08668
|
||||
2026 2 4 61075 0.0669 0.3347 0.08606
|
||||
2026 2 5 61076 0.0662 0.3359 0.08538
|
||||
2026 2 6 61077 0.0655 0.3370 0.08476
|
||||
2026 2 7 61078 0.0649 0.3381 0.08430
|
||||
2026 2 8 61079 0.0643 0.3393 0.08405
|
||||
2026 2 9 61080 0.0637 0.3405 0.08401
|
||||
2026 2 10 61081 0.0631 0.3417 0.08423
|
||||
2026 2 11 61082 0.0625 0.3429 0.08462
|
||||
2026 2 12 61083 0.0620 0.3441 0.08513
|
||||
2026 2 13 61084 0.0615 0.3453 0.08570
|
||||
2026 2 14 61085 0.0610 0.3465 0.08618
|
||||
2026 2 15 61086 0.0606 0.3478 0.08646
|
||||
2026 2 16 61087 0.0601 0.3490 0.08651
|
||||
2026 2 17 61088 0.0597 0.3502 0.08629
|
||||
2026 2 18 61089 0.0594 0.3515 0.08575
|
||||
2026 2 19 61090 0.0590 0.3528 0.08502
|
||||
2026 2 20 61091 0.0587 0.3540 0.08419
|
||||
2026 2 21 61092 0.0584 0.3553 0.08335
|
||||
2026 2 22 61093 0.0581 0.3566 0.08261
|
||||
2026 2 23 61094 0.0578 0.3579 0.08206
|
||||
2026 2 24 61095 0.0576 0.3592 0.08182
|
||||
2026 2 25 61096 0.0574 0.3605 0.08174
|
||||
2026 2 26 61097 0.0572 0.3618 0.08178
|
||||
2026 2 27 61098 0.0570 0.3631 0.08189
|
||||
2026 2 28 61099 0.0569 0.3644 0.08189
|
||||
2026 3 1 61100 0.0568 0.3657 0.08172
|
||||
2026 3 2 61101 0.0567 0.3670 0.08136
|
||||
2026 3 3 61102 0.0567 0.3683 0.08079
|
||||
2026 3 4 61103 0.0566 0.3697 0.08008
|
||||
2026 3 5 61104 0.0566 0.3710 0.07935
|
||||
2026 3 6 61105 0.0567 0.3723 0.07875
|
||||
2026 3 7 61106 0.0567 0.3736 0.07836
|
||||
2026 3 8 61107 0.0568 0.3749 0.07813
|
||||
2026 3 9 61108 0.0569 0.3763 0.07808
|
||||
2026 3 10 61109 0.0570 0.3776 0.07827
|
||||
2026 3 11 61110 0.0571 0.3789 0.07855
|
||||
2026 3 12 61111 0.0573 0.3802 0.07886
|
||||
2026 3 13 61112 0.0575 0.3815 0.07917
|
||||
2026 3 14 61113 0.0577 0.3828 0.07941
|
||||
2026 3 15 61114 0.0580 0.3841 0.07945
|
||||
2026 3 16 61115 0.0583 0.3855 0.07926
|
||||
2026 3 17 61116 0.0586 0.3868 0.07879
|
||||
2026 3 18 61117 0.0589 0.3881 0.07805
|
||||
2026 3 19 61118 0.0592 0.3893 0.07714
|
||||
2026 3 20 61119 0.0596 0.3906 0.07617
|
||||
2026 3 21 61120 0.0600 0.3919 0.07528
|
||||
2026 3 22 61121 0.0604 0.3932 0.07457
|
||||
2026 3 23 61122 0.0609 0.3945 0.07407
|
||||
2026 3 24 61123 0.0614 0.3957 0.07389
|
||||
2026 3 25 61124 0.0619 0.3970 0.07393
|
||||
2026 3 26 61125 0.0624 0.3982 0.07404
|
||||
2026 3 27 61126 0.0629 0.3995 0.07410
|
||||
2026 3 28 61127 0.0635 0.4007 0.07400
|
||||
2026 3 29 61128 0.0641 0.4020 0.07359
|
||||
2026 3 30 61129 0.0647 0.4032 0.07292
|
||||
2026 3 31 61130 0.0653 0.4044 0.07215
|
||||
2026 4 1 61131 0.0660 0.4056 0.07125
|
||||
2026 4 2 61132 0.0667 0.4068 0.07037
|
||||
2026 4 3 61133 0.0674 0.4080 0.06956
|
||||
2026 4 4 61134 0.0681 0.4091 0.06893
|
||||
2026 4 5 61135 0.0689 0.4103 0.06842
|
||||
2026 4 6 61136 0.0697 0.4114 0.06812
|
||||
2026 4 7 61137 0.0705 0.4126 0.06802
|
||||
2026 4 8 61138 0.0713 0.4137 0.06814
|
||||
2026 4 9 61139 0.0721 0.4148 0.06828
|
||||
2026 4 10 61140 0.0730 0.4159 0.06842
|
||||
2026 4 11 61141 0.0739 0.4170 0.06844
|
||||
2026 4 12 61142 0.0748 0.4180 0.06820
|
||||
2026 4 13 61143 0.0757 0.4191 0.06770
|
||||
2026 4 14 61144 0.0766 0.4201 0.06699
|
||||
2026 4 15 61145 0.0776 0.4212 0.06611
|
||||
2026 4 16 61146 0.0786 0.4222 0.06511
|
||||
2026 4 17 61147 0.0796 0.4232 0.06423
|
||||
2026 4 18 61148 0.0806 0.4242 0.06358
|
||||
2026 4 19 61149 0.0816 0.4251 0.06321
|
||||
2026 4 20 61150 0.0827 0.4261 0.06322
|
||||
2026 4 21 61151 0.0837 0.4270 0.06337
|
||||
2026 4 22 61152 0.0848 0.4279 0.06356
|
||||
2026 4 23 61153 0.0859 0.4288 0.06364
|
||||
2026 4 24 61154 0.0871 0.4297 0.06349
|
||||
2026 4 25 61155 0.0882 0.4306 0.06314
|
||||
2026 4 26 61156 0.0894 0.4314 0.06257
|
||||
2026 4 27 61157 0.0905 0.4322 0.06185
|
||||
2026 4 28 61158 0.0917 0.4331 0.06111
|
||||
2026 4 29 61159 0.0929 0.4339 0.06040
|
||||
2026 4 30 61160 0.0941 0.4346 0.05980
|
||||
2026 5 1 61161 0.0954 0.4354 0.05946
|
||||
2026 5 2 61162 0.0966 0.4361 0.05933
|
||||
2026 5 3 61163 0.0979 0.4368 0.05942
|
||||
2026 5 4 61164 0.0991 0.4375 0.05971
|
||||
2026 5 5 61165 0.1004 0.4382 0.06017
|
||||
2026 5 6 61166 0.1017 0.4388 0.06065
|
||||
2026 5 7 61167 0.1030 0.4395 0.06110
|
||||
2026 5 8 61168 0.1043 0.4401 0.06146
|
||||
2026 5 9 61169 0.1057 0.4407 0.06171
|
||||
2026 5 10 61170 0.1070 0.4413 0.06171
|
||||
2026 5 11 61171 0.1084 0.4418 0.06155
|
||||
2026 5 12 61172 0.1097 0.4423 0.06119
|
||||
2026 5 13 61173 0.1111 0.4428 0.06070
|
||||
2026 5 14 61174 0.1125 0.4433 0.06014
|
||||
2026 5 15 61175 0.1139 0.4438 0.05964
|
||||
2026 5 16 61176 0.1153 0.4442 0.05948
|
||||
2026 5 17 61177 0.1167 0.4446 0.05963
|
||||
2026 5 18 61178 0.1181 0.4450 0.06010
|
||||
2026 5 19 61179 0.1195 0.4454 0.06068
|
||||
2026 5 20 61180 0.1209 0.4458 0.06123
|
||||
2026 5 21 61181 0.1224 0.4461 0.06169
|
||||
2026 5 22 61182 0.1238 0.4464 0.06196
|
||||
2026 5 23 61183 0.1252 0.4467 0.06208
|
||||
2026 5 24 61184 0.1267 0.4469 0.06202
|
||||
2026 5 25 61185 0.1281 0.4472 0.06187
|
||||
2026 5 26 61186 0.1296 0.4474 0.06184
|
||||
2026 5 27 61187 0.1311 0.4476 0.06187
|
||||
2026 5 28 61188 0.1325 0.4477 0.06209
|
||||
2026 5 29 61189 0.1340 0.4479 0.06251
|
||||
2026 5 30 61190 0.1355 0.4480 0.06313
|
||||
2026 5 31 61191 0.1369 0.4481 0.06394
|
||||
2026 6 1 61192 0.1384 0.4482 0.06487
|
||||
2026 6 2 61193 0.1399 0.4482 0.06591
|
||||
2026 6 3 61194 0.1413 0.4482 0.06694
|
||||
2026 6 4 61195 0.1428 0.4482 0.06790
|
||||
2026 6 5 61196 0.1443 0.4482 0.06877
|
||||
2026 6 6 61197 0.1457 0.4482 0.06950
|
||||
2026 6 7 61198 0.1472 0.4481 0.07002
|
||||
2026 6 8 61199 0.1487 0.4480 0.07030
|
||||
2026 6 9 61200 0.1501 0.4479 0.07051
|
||||
2026 6 10 61201 0.1516 0.4477 0.07062
|
||||
2026 6 11 61202 0.1530 0.4476 0.07078
|
||||
2026 6 12 61203 0.1545 0.4474 0.07103
|
||||
2026 6 13 61204 0.1559 0.4472 0.07158
|
||||
2026 6 14 61205 0.1574 0.4469 0.07239
|
||||
2026 6 15 61206 0.1588 0.4467 0.07343
|
||||
2026 6 16 61207 0.1602 0.4464 0.07452
|
||||
2026 6 17 61208 0.1616 0.4461 0.07551
|
||||
2026 6 18 61209 0.1631 0.4458 0.07621
|
||||
2026 6 19 61210 0.1645 0.4454 0.07668
|
||||
2026 6 20 61211 0.1659 0.4450 0.07691
|
||||
2026 6 21 61212 0.1673 0.4446 0.07694
|
||||
2026 6 22 61213 0.1686 0.4442 0.07699
|
||||
2026 6 23 61214 0.1700 0.4438 0.07723
|
||||
2026 6 24 61215 0.1714 0.4433 0.07764
|
||||
2026 6 25 61216 0.1727 0.4428 0.07823
|
||||
2026 6 26 61217 0.1741 0.4423 0.07906
|
||||
2026 6 27 61218 0.1754 0.4418 0.08011
|
||||
2026 6 28 61219 0.1768 0.4412 0.08129
|
||||
2026 6 29 61220 0.1781 0.4406 0.08253
|
||||
2026 6 30 61221 0.1794 0.4400 0.08379
|
||||
2026 7 1 61222 0.1807 0.4394 0.08503
|
||||
2026 7 2 61223 0.1819 0.4388 0.08607
|
||||
2026 7 3 61224 0.1832 0.4381 0.08690
|
||||
2025 8 1 60888 0.2101 0.4272 0.06205
|
||||
2025 8 2 60889 0.2119 0.4263 0.06269
|
||||
2025 8 3 60890 0.2133 0.4254 0.06357
|
||||
2025 8 4 60891 0.2145 0.4244 0.06468
|
||||
2025 8 5 60892 0.2156 0.4234 0.06594
|
||||
2025 8 6 60893 0.2167 0.4224 0.06727
|
||||
2025 8 7 60894 0.2177 0.4213 0.06856
|
||||
2025 8 8 60895 0.2187 0.4202 0.06970
|
||||
2025 8 9 60896 0.2197 0.4190 0.07060
|
||||
2025 8 10 60897 0.2206 0.4177 0.07120
|
||||
2025 8 11 60898 0.2215 0.4164 0.07146
|
||||
2025 8 12 60899 0.2224 0.4152 0.07142
|
||||
2025 8 13 60900 0.2232 0.4139 0.07120
|
||||
2025 8 14 60901 0.2240 0.4127 0.07098
|
||||
2025 8 15 60902 0.2248 0.4114 0.07091
|
||||
2025 8 16 60903 0.2255 0.4101 0.07106
|
||||
2025 8 17 60904 0.2262 0.4089 0.07146
|
||||
2025 8 18 60905 0.2269 0.4076 0.07208
|
||||
2025 8 19 60906 0.2275 0.4063 0.07281
|
||||
2025 8 20 60907 0.2281 0.4049 0.07354
|
||||
2025 8 21 60908 0.2286 0.4036 0.07414
|
||||
2025 8 22 60909 0.2291 0.4023 0.07454
|
||||
2025 8 23 60910 0.2296 0.4009 0.07474
|
||||
2025 8 24 60911 0.2301 0.3996 0.07478
|
||||
2025 8 25 60912 0.2305 0.3982 0.07473
|
||||
2025 8 26 60913 0.2309 0.3968 0.07466
|
||||
2025 8 27 60914 0.2313 0.3954 0.07467
|
||||
2025 8 28 60915 0.2316 0.3941 0.07483
|
||||
2025 8 29 60916 0.2320 0.3927 0.07516
|
||||
2025 8 30 60917 0.2322 0.3913 0.07569
|
||||
2025 8 31 60918 0.2325 0.3899 0.07639
|
||||
2025 9 1 60919 0.2327 0.3885 0.07722
|
||||
2025 9 2 60920 0.2330 0.3871 0.07811
|
||||
2025 9 3 60921 0.2331 0.3857 0.07897
|
||||
2025 9 4 60922 0.2333 0.3843 0.07971
|
||||
2025 9 5 60923 0.2334 0.3828 0.08022
|
||||
2025 9 6 60924 0.2335 0.3814 0.08044
|
||||
2025 9 7 60925 0.2336 0.3800 0.08033
|
||||
2025 9 8 60926 0.2336 0.3786 0.07993
|
||||
2025 9 9 60927 0.2336 0.3772 0.07935
|
||||
2025 9 10 60928 0.2336 0.3757 0.07876
|
||||
2025 9 11 60929 0.2336 0.3743 0.07832
|
||||
2025 9 12 60930 0.2335 0.3729 0.07814
|
||||
2025 9 13 60931 0.2334 0.3715 0.07825
|
||||
2025 9 14 60932 0.2333 0.3701 0.07859
|
||||
2025 9 15 60933 0.2331 0.3686 0.07906
|
||||
2025 9 16 60934 0.2329 0.3672 0.07952
|
||||
2025 9 17 60935 0.2327 0.3658 0.07987
|
||||
2025 9 18 60936 0.2325 0.3644 0.08003
|
||||
2025 9 19 60937 0.2322 0.3630 0.07996
|
||||
2025 9 20 60938 0.2319 0.3616 0.07969
|
||||
2025 9 21 60939 0.2316 0.3602 0.07928
|
||||
2025 9 22 60940 0.2313 0.3588 0.07881
|
||||
2025 9 23 60941 0.2309 0.3574 0.07837
|
||||
2025 9 24 60942 0.2305 0.3560 0.07804
|
||||
2025 9 25 60943 0.2301 0.3546 0.07786
|
||||
2025 9 26 60944 0.2297 0.3532 0.07787
|
||||
2025 9 27 60945 0.2292 0.3518 0.07805
|
||||
2025 9 28 60946 0.2287 0.3505 0.07838
|
||||
2025 9 29 60947 0.2282 0.3491 0.07880
|
||||
2025 9 30 60948 0.2276 0.3478 0.07924
|
||||
2025 10 1 60949 0.2270 0.3464 0.07962
|
||||
2025 10 2 60950 0.2264 0.3451 0.07983
|
||||
2025 10 3 60951 0.2258 0.3438 0.07978
|
||||
2025 10 4 60952 0.2252 0.3424 0.07944
|
||||
2025 10 5 60953 0.2245 0.3411 0.07878
|
||||
2025 10 6 60954 0.2238 0.3398 0.07790
|
||||
2025 10 7 60955 0.2231 0.3386 0.07692
|
||||
2025 10 8 60956 0.2223 0.3373 0.07603
|
||||
2025 10 9 60957 0.2215 0.3360 0.07538
|
||||
2025 10 10 60958 0.2207 0.3348 0.07506
|
||||
2025 10 11 60959 0.2199 0.3335 0.07504
|
||||
2025 10 12 60960 0.2191 0.3323 0.07523
|
||||
2025 10 13 60961 0.2182 0.3311 0.07547
|
||||
2025 10 14 60962 0.2173 0.3299 0.07564
|
||||
2025 10 15 60963 0.2164 0.3287 0.07565
|
||||
2025 10 16 60964 0.2155 0.3275 0.07545
|
||||
2025 10 17 60965 0.2145 0.3263 0.07507
|
||||
2025 10 18 60966 0.2136 0.3252 0.07454
|
||||
2025 10 19 60967 0.2126 0.3241 0.07396
|
||||
2025 10 20 60968 0.2116 0.3229 0.07339
|
||||
2025 10 21 60969 0.2105 0.3218 0.07290
|
||||
2025 10 22 60970 0.2095 0.3207 0.07257
|
||||
2025 10 23 60971 0.2084 0.3197 0.07242
|
||||
2025 10 24 60972 0.2073 0.3186 0.07246
|
||||
2025 10 25 60973 0.2062 0.3176 0.07267
|
||||
2025 10 26 60974 0.2050 0.3166 0.07299
|
||||
2025 10 27 60975 0.2039 0.3156 0.07336
|
||||
2025 10 28 60976 0.2027 0.3146 0.07370
|
||||
2025 10 29 60977 0.2015 0.3136 0.07393
|
||||
2025 10 30 60978 0.2003 0.3126 0.07395
|
||||
2025 10 31 60979 0.1991 0.3117 0.07371
|
||||
2025 11 1 60980 0.1979 0.3108 0.07317
|
||||
2025 11 2 60981 0.1966 0.3099 0.07238
|
||||
2025 11 3 60982 0.1953 0.3090 0.07144
|
||||
2025 11 4 60983 0.1941 0.3082 0.07049
|
||||
2025 11 5 60984 0.1928 0.3073 0.06970
|
||||
2025 11 6 60985 0.1914 0.3065 0.06920
|
||||
2025 11 7 60986 0.1901 0.3057 0.06903
|
||||
2025 11 8 60987 0.1888 0.3050 0.06912
|
||||
2025 11 9 60988 0.1874 0.3042 0.06933
|
||||
2025 11 10 60989 0.1860 0.3035 0.06951
|
||||
2025 11 11 60990 0.1847 0.3028 0.06956
|
||||
2025 11 12 60991 0.1833 0.3021 0.06941
|
||||
2025 11 13 60992 0.1819 0.3014 0.06907
|
||||
2025 11 14 60993 0.1804 0.3008 0.06861
|
||||
2025 11 15 60994 0.1790 0.3001 0.06809
|
||||
2025 11 16 60995 0.1776 0.2995 0.06758
|
||||
2025 11 17 60996 0.1761 0.2989 0.06707
|
||||
2025 11 18 60997 0.1747 0.2984 0.06669
|
||||
2025 11 19 60998 0.1732 0.2979 0.06650
|
||||
2025 11 20 60999 0.1717 0.2973 0.06650
|
||||
2025 11 21 61000 0.1702 0.2969 0.06668
|
||||
2025 11 22 61001 0.1687 0.2964 0.06699
|
||||
2025 11 23 61002 0.1672 0.2959 0.06738
|
||||
2025 11 24 61003 0.1657 0.2955 0.06776
|
||||
2025 11 25 61004 0.1642 0.2951 0.06806
|
||||
2025 11 26 61005 0.1627 0.2948 0.06820
|
||||
2025 11 27 61006 0.1612 0.2944 0.06812
|
||||
2025 11 28 61007 0.1596 0.2941 0.06779
|
||||
2025 11 29 61008 0.1581 0.2938 0.06722
|
||||
2025 11 30 61009 0.1566 0.2935 0.06647
|
||||
2025 12 1 61010 0.1550 0.2933 0.06567
|
||||
2025 12 2 61011 0.1535 0.2930 0.06495
|
||||
2025 12 3 61012 0.1519 0.2928 0.06445
|
||||
2025 12 4 61013 0.1504 0.2926 0.06426
|
||||
2025 12 5 61014 0.1488 0.2925 0.06435
|
||||
2025 12 6 61015 0.1473 0.2924 0.06463
|
||||
2025 12 7 61016 0.1457 0.2923 0.06493
|
||||
2025 12 8 61017 0.1441 0.2922 0.06513
|
||||
2025 12 9 61018 0.1426 0.2921 0.06512
|
||||
2025 12 10 61019 0.1410 0.2921 0.06492
|
||||
2025 12 11 61020 0.1395 0.2921 0.06456
|
||||
2025 12 12 61021 0.1379 0.2921 0.06414
|
||||
2025 12 13 61022 0.1364 0.2921 0.06372
|
||||
2025 12 14 61023 0.1348 0.2922 0.06339
|
||||
2025 12 15 61024 0.1333 0.2923 0.06320
|
||||
2025 12 16 61025 0.1318 0.2924 0.06318
|
||||
2025 12 17 61026 0.1302 0.2925 0.06335
|
||||
2025 12 18 61027 0.1287 0.2927 0.06371
|
||||
2025 12 19 61028 0.1272 0.2929 0.06421
|
||||
2025 12 20 61029 0.1256 0.2931 0.06480
|
||||
2025 12 21 61030 0.1241 0.2933 0.06540
|
||||
2025 12 22 61031 0.1226 0.2936 0.06593
|
||||
2025 12 23 61032 0.1211 0.2939 0.06631
|
||||
2025 12 24 61033 0.1196 0.2942 0.06648
|
||||
2025 12 25 61034 0.1181 0.2945 0.06642
|
||||
2025 12 26 61035 0.1166 0.2948 0.06614
|
||||
2025 12 27 61036 0.1152 0.2952 0.06567
|
||||
2025 12 28 61037 0.1137 0.2956 0.06513
|
||||
2025 12 29 61038 0.1122 0.2960 0.06463
|
||||
2025 12 30 61039 0.1108 0.2965 0.06430
|
||||
2025 12 31 61040 0.1094 0.2970 0.06422
|
||||
2026 1 1 61041 0.1079 0.2974 0.06441
|
||||
2026 1 2 61042 0.1065 0.2980 0.06480
|
||||
2026 1 3 61043 0.1051 0.2985 0.06526
|
||||
2026 1 4 61044 0.1037 0.2991 0.06565
|
||||
2026 1 5 61045 0.1024 0.2996 0.06585
|
||||
2026 1 6 61046 0.1010 0.3002 0.06581
|
||||
2026 1 7 61047 0.0996 0.3009 0.06558
|
||||
2026 1 8 61048 0.0983 0.3015 0.06522
|
||||
2026 1 9 61049 0.0970 0.3022 0.06485
|
||||
2026 1 10 61050 0.0957 0.3029 0.06455
|
||||
2026 1 11 61051 0.0944 0.3036 0.06438
|
||||
2026 1 12 61052 0.0931 0.3043 0.06439
|
||||
2026 1 13 61053 0.0918 0.3051 0.06459
|
||||
2026 1 14 61054 0.0906 0.3058 0.06498
|
||||
2026 1 15 61055 0.0893 0.3066 0.06552
|
||||
2026 1 16 61056 0.0881 0.3074 0.06616
|
||||
2026 1 17 61057 0.0869 0.3083 0.06682
|
||||
2026 1 18 61058 0.0858 0.3091 0.06743
|
||||
2026 1 19 61059 0.0846 0.3100 0.06790
|
||||
2026 1 20 61060 0.0834 0.3109 0.06816
|
||||
2026 1 21 61061 0.0823 0.3118 0.06818
|
||||
2026 1 22 61062 0.0812 0.3127 0.06797
|
||||
2026 1 23 61063 0.0801 0.3136 0.06757
|
||||
2026 1 24 61064 0.0791 0.3146 0.06710
|
||||
2026 1 25 61065 0.0780 0.3156 0.06666
|
||||
2026 1 26 61066 0.0770 0.3166 0.06637
|
||||
2026 1 27 61067 0.0760 0.3176 0.06631
|
||||
2026 1 28 61068 0.0750 0.3186 0.06653
|
||||
2026 1 29 61069 0.0740 0.3196 0.06698
|
||||
2026 1 30 61070 0.0731 0.3207 0.06754
|
||||
2026 1 31 61071 0.0721 0.3218 0.06810
|
||||
2026 2 1 61072 0.0712 0.3229 0.06853
|
||||
2026 2 2 61073 0.0704 0.3240 0.06874
|
||||
2026 2 3 61074 0.0695 0.3251 0.06875
|
||||
2026 2 4 61075 0.0687 0.3262 0.06861
|
||||
2026 2 5 61076 0.0678 0.3273 0.06843
|
||||
2026 2 6 61077 0.0671 0.3285 0.06830
|
||||
2026 2 7 61078 0.0663 0.3297 0.06830
|
||||
2026 2 8 61079 0.0655 0.3309 0.06846
|
||||
2026 2 9 61080 0.0648 0.3321 0.06880
|
||||
2026 2 10 61081 0.0641 0.3333 0.06930
|
||||
2026 2 11 61082 0.0635 0.3345 0.06993
|
||||
2026 2 12 61083 0.0628 0.3357 0.07063
|
||||
2026 2 13 61084 0.0622 0.3370 0.07134
|
||||
2026 2 14 61085 0.0616 0.3382 0.07197
|
||||
2026 2 15 61086 0.0610 0.3395 0.07244
|
||||
2026 2 16 61087 0.0605 0.3407 0.07269
|
||||
2026 2 17 61088 0.0599 0.3420 0.07266
|
||||
2026 2 18 61089 0.0594 0.3433 0.07235
|
||||
2026 2 19 61090 0.0590 0.3446 0.07181
|
||||
2026 2 20 61091 0.0585 0.3459 0.07115
|
||||
2026 2 21 61092 0.0581 0.3472 0.07049
|
||||
2026 2 22 61093 0.0577 0.3485 0.06996
|
||||
2026 2 23 61094 0.0573 0.3499 0.06966
|
||||
2026 2 24 61095 0.0570 0.3512 0.06961
|
||||
2026 2 25 61096 0.0567 0.3525 0.06978
|
||||
2026 2 26 61097 0.0564 0.3539 0.07006
|
||||
2026 2 27 61098 0.0561 0.3552 0.07033
|
||||
2026 2 28 61099 0.0559 0.3566 0.07045
|
||||
2026 3 1 61100 0.0557 0.3579 0.07033
|
||||
2026 3 2 61101 0.0555 0.3593 0.06993
|
||||
2026 3 3 61102 0.0553 0.3607 0.06927
|
||||
2026 3 4 61103 0.0552 0.3620 0.06843
|
||||
2026 3 5 61104 0.0551 0.3634 0.06752
|
||||
2026 3 6 61105 0.0550 0.3648 0.06663
|
||||
2026 3 7 61106 0.0550 0.3662 0.06588
|
||||
2026 3 8 61107 0.0549 0.3675 0.06529
|
||||
2026 3 9 61108 0.0549 0.3689 0.06488
|
||||
2026 3 10 61109 0.0550 0.3703 0.06460
|
||||
2026 3 11 61110 0.0550 0.3717 0.06447
|
||||
2026 3 12 61111 0.0551 0.3731 0.06446
|
||||
2026 3 13 61112 0.0552 0.3744 0.06443
|
||||
2026 3 14 61113 0.0554 0.3758 0.06436
|
||||
2026 3 15 61114 0.0555 0.3772 0.06408
|
||||
2026 3 16 61115 0.0557 0.3786 0.06349
|
||||
2026 3 17 61116 0.0559 0.3799 0.06259
|
||||
2026 3 18 61117 0.0562 0.3813 0.06141
|
||||
2026 3 19 61118 0.0564 0.3827 0.06005
|
||||
2026 3 20 61119 0.0567 0.3840 0.05860
|
||||
2026 3 21 61120 0.0570 0.3854 0.05727
|
||||
2026 3 22 61121 0.0574 0.3867 0.05618
|
||||
2026 3 23 61122 0.0577 0.3881 0.05536
|
||||
2026 3 24 61123 0.0581 0.3894 0.05478
|
||||
2026 3 25 61124 0.0586 0.3907 0.05438
|
||||
2026 3 26 61125 0.0590 0.3921 0.05402
|
||||
2026 3 27 61126 0.0595 0.3934 0.05356
|
||||
2026 3 28 61127 0.0600 0.3947 0.05298
|
||||
2026 3 29 61128 0.0605 0.3960 0.05224
|
||||
2026 3 30 61129 0.0610 0.3973 0.05131
|
||||
2026 3 31 61130 0.0616 0.3986 0.05030
|
||||
2026 4 1 61131 0.0622 0.3999 0.04920
|
||||
2026 4 2 61132 0.0628 0.4012 0.04819
|
||||
2026 4 3 61133 0.0635 0.4024 0.04731
|
||||
2026 4 4 61134 0.0641 0.4037 0.04672
|
||||
2026 4 5 61135 0.0648 0.4050 0.04635
|
||||
2026 4 6 61136 0.0656 0.4062 0.04618
|
||||
2026 4 7 61137 0.0663 0.4074 0.04628
|
||||
2026 4 8 61138 0.0671 0.4086 0.04646
|
||||
2026 4 9 61139 0.0678 0.4098 0.04671
|
||||
2026 4 10 61140 0.0686 0.4110 0.04691
|
||||
2026 4 11 61141 0.0695 0.4122 0.04694
|
||||
2026 4 12 61142 0.0703 0.4134 0.04670
|
||||
2026 4 13 61143 0.0712 0.4145 0.04619
|
||||
2026 4 14 61144 0.0721 0.4157 0.04540
|
||||
2026 4 15 61145 0.0730 0.4168 0.04436
|
||||
2026 4 16 61146 0.0739 0.4179 0.04323
|
||||
2026 4 17 61147 0.0749 0.4190 0.04215
|
||||
2026 4 18 61148 0.0759 0.4201 0.04125
|
||||
2026 4 19 61149 0.0768 0.4211 0.04060
|
||||
2026 4 20 61150 0.0779 0.4222 0.04022
|
||||
2026 4 21 61151 0.0789 0.4232 0.04012
|
||||
2026 4 22 61152 0.0799 0.4242 0.04007
|
||||
2026 4 23 61153 0.0810 0.4253 0.03998
|
||||
2026 4 24 61154 0.0821 0.4262 0.03981
|
||||
2026 4 25 61155 0.0832 0.4272 0.03945
|
||||
2026 4 26 61156 0.0843 0.4282 0.03896
|
||||
2026 4 27 61157 0.0855 0.4291 0.03839
|
||||
2026 4 28 61158 0.0866 0.4300 0.03777
|
||||
2026 4 29 61159 0.0878 0.4309 0.03717
|
||||
2026 4 30 61160 0.0890 0.4318 0.03670
|
||||
2026 5 1 61161 0.0902 0.4327 0.03647
|
||||
2026 5 2 61162 0.0914 0.4335 0.03650
|
||||
2026 5 3 61163 0.0927 0.4343 0.03671
|
||||
2026 5 4 61164 0.0939 0.4351 0.03710
|
||||
2026 5 5 61165 0.0952 0.4359 0.03768
|
||||
2026 5 6 61166 0.0965 0.4367 0.03826
|
||||
2026 5 7 61167 0.0978 0.4374 0.03880
|
||||
2026 5 8 61168 0.0991 0.4382 0.03926
|
||||
2026 5 9 61169 0.1004 0.4389 0.03960
|
||||
2026 5 10 61170 0.1017 0.4396 0.03969
|
||||
2026 5 11 61171 0.1030 0.4402 0.03958
|
||||
2026 5 12 61172 0.1044 0.4409 0.03924
|
||||
2026 5 13 61173 0.1058 0.4415 0.03874
|
||||
2026 5 14 61174 0.1071 0.4421 0.03822
|
||||
2026 5 15 61175 0.1085 0.4427 0.03781
|
||||
2026 5 16 61176 0.1099 0.4432 0.03762
|
||||
2026 5 17 61177 0.1113 0.4438 0.03770
|
||||
2026 5 18 61178 0.1127 0.4443 0.03797
|
||||
2026 5 19 61179 0.1141 0.4448 0.03848
|
||||
2026 5 20 61180 0.1156 0.4453 0.03905
|
||||
2026 5 21 61181 0.1170 0.4457 0.03952
|
||||
2026 5 22 61182 0.1185 0.4461 0.03983
|
||||
2026 5 23 61183 0.1199 0.4465 0.03997
|
||||
2026 5 24 61184 0.1214 0.4469 0.03987
|
||||
2026 5 25 61185 0.1228 0.4473 0.03969
|
||||
2026 5 26 61186 0.1243 0.4476 0.03958
|
||||
2026 5 27 61187 0.1257 0.4479 0.03953
|
||||
2026 5 28 61188 0.1272 0.4482 0.03962
|
||||
2026 5 29 61189 0.1287 0.4485 0.03986
|
||||
2026 5 30 61190 0.1302 0.4487 0.04031
|
||||
2026 5 31 61191 0.1317 0.4489 0.04088
|
||||
2026 6 1 61192 0.1331 0.4491 0.04159
|
||||
2026 6 2 61193 0.1346 0.4493 0.04244
|
||||
2026 6 3 61194 0.1361 0.4494 0.04341
|
||||
2026 6 4 61195 0.1376 0.4496 0.04430
|
||||
2026 6 5 61196 0.1391 0.4497 0.04511
|
||||
2026 6 6 61197 0.1406 0.4497 0.04574
|
||||
2026 6 7 61198 0.1421 0.4498 0.04612
|
||||
2026 6 8 61199 0.1436 0.4498 0.04627
|
||||
2026 6 9 61200 0.1451 0.4498 0.04633
|
||||
2026 6 10 61201 0.1465 0.4498 0.04635
|
||||
2026 6 11 61202 0.1480 0.4498 0.04643
|
||||
2026 6 12 61203 0.1495 0.4497 0.04676
|
||||
2026 6 13 61204 0.1510 0.4496 0.04741
|
||||
2026 6 14 61205 0.1525 0.4495 0.04834
|
||||
2026 6 15 61206 0.1539 0.4494 0.04956
|
||||
2026 6 16 61207 0.1554 0.4492 0.05075
|
||||
2026 6 17 61208 0.1568 0.4490 0.05178
|
||||
2026 6 18 61209 0.1583 0.4488 0.05255
|
||||
2026 6 19 61210 0.1597 0.4486 0.05301
|
||||
2026 6 20 61211 0.1612 0.4483 0.05328
|
||||
2026 6 21 61212 0.1626 0.4481 0.05345
|
||||
2026 6 22 61213 0.1640 0.4478 0.05361
|
||||
2026 6 23 61214 0.1655 0.4474 0.05393
|
||||
2026 6 24 61215 0.1669 0.4471 0.05442
|
||||
2026 6 25 61216 0.1683 0.4467 0.05512
|
||||
2026 6 26 61217 0.1697 0.4463 0.05611
|
||||
2026 6 27 61218 0.1711 0.4459 0.05729
|
||||
2026 6 28 61219 0.1724 0.4455 0.05868
|
||||
2026 6 29 61220 0.1738 0.4450 0.06008
|
||||
2026 6 30 61221 0.1751 0.4446 0.06159
|
||||
2026 7 1 61222 0.1765 0.4441 0.06300
|
||||
2026 7 2 61223 0.1778 0.4435 0.06426
|
||||
2026 7 3 61224 0.1791 0.4430 0.06534
|
||||
2026 7 4 61225 0.1804 0.4424 0.06625
|
||||
2026 7 5 61226 0.1817 0.4418 0.06692
|
||||
2026 7 6 61227 0.1830 0.4412 0.06750
|
||||
2026 7 7 61228 0.1843 0.4406 0.06802
|
||||
2026 7 8 61229 0.1855 0.4400 0.06856
|
||||
2026 7 9 61230 0.1868 0.4393 0.06919
|
||||
2026 7 10 61231 0.1880 0.4386 0.06998
|
||||
2026 7 11 61232 0.1892 0.4379 0.07112
|
||||
2026 7 12 61233 0.1904 0.4372 0.07248
|
||||
2026 7 13 61234 0.1916 0.4364 0.07398
|
||||
2026 7 14 61235 0.1927 0.4357 0.07539
|
||||
2026 7 15 61236 0.1939 0.4349 0.07656
|
||||
2026 7 16 61237 0.1950 0.4341 0.07751
|
||||
2026 7 17 61238 0.1961 0.4333 0.07821
|
||||
2026 7 18 61239 0.1972 0.4324 0.07881
|
||||
2026 7 19 61240 0.1983 0.4316 0.07932
|
||||
2026 7 20 61241 0.1993 0.4307 0.07987
|
||||
2026 7 21 61242 0.2003 0.4298 0.08067
|
||||
2026 7 22 61243 0.2014 0.4289 0.08162
|
||||
2026 7 23 61244 0.2024 0.4280 0.08281
|
||||
2026 7 24 61245 0.2033 0.4271 0.08417
|
||||
2026 7 25 61246 0.2043 0.4261 0.08568
|
||||
2026 7 26 61247 0.2052 0.4251 0.08728
|
||||
2026 7 27 61248 0.2061 0.4242 0.08887
|
||||
2026 7 28 61249 0.2070 0.4232 0.09042
|
||||
2026 7 29 61250 0.2079 0.4221 0.09183
|
||||
2026 7 30 61251 0.2088 0.4211 0.09304
|
||||
2026 7 31 61252 0.2096 0.4201 0.09407
|
||||
These predictions are based on all announced leap seconds.
|
||||
|
||||
CELESTIAL POLE OFFSET SERIES:
|
||||
NEOS Celestial Pole Offset Series
|
||||
MJD dpsi error deps error
|
||||
(msec. of arc)
|
||||
60837 -112.47 0.89 -11.70 0.14
|
||||
60838 -112.54 0.89 -11.60 0.14
|
||||
60839 -112.51 0.89 -11.35 0.14
|
||||
60840 -112.45 0.32 -11.16 0.16
|
||||
60841 -112.45 1.48 -11.11 0.30
|
||||
60842 -112.49 1.48 -11.13 0.30
|
||||
60843 -112.49 1.48 -11.15 0.30
|
||||
60844 -112.49 1.20 -11.12 0.28
|
||||
60845 -112.62 1.20 -11.03 0.28
|
||||
60846 -112.97 1.20 -10.87 0.28
|
||||
|
||||
IERS Celestial Pole Offset Final Series
|
||||
MJD dpsi deps
|
||||
(msec. of arc)
|
||||
60797 -109.8 -11.9
|
||||
60798 -109.1 -12.1
|
||||
60799 -108.8 -12.0
|
||||
60800 -108.9 -11.6
|
||||
60801 -109.3 -11.1
|
||||
60802 -109.7 -10.8
|
||||
60803 -109.8 -10.7
|
||||
60804 -109.8 -10.6
|
||||
60805 -109.7 -10.6
|
||||
60806 -109.6 -10.8
|
||||
60807 -109.5 -11.3
|
||||
60808 -109.5 -11.7
|
||||
60809 -109.6 -11.9
|
||||
60810 -109.7 -11.8
|
||||
60811 -109.7 -11.6
|
||||
60812 -109.6 -11.6
|
||||
60813 -109.5 -11.6
|
||||
60814 -109.3 -11.6
|
||||
60815 -109.2 -11.6
|
||||
60816 -109.3 -11.6
|
||||
60817 -109.4 -11.6
|
||||
60818 -109.7 -11.4
|
||||
60819 -110.2 -11.0
|
||||
60820 -111.0 -10.7
|
||||
60821 -111.6 -10.8
|
||||
60822 -111.9 -11.1
|
||||
60823 -111.8 -11.3
|
||||
60824 -111.5 -11.6
|
||||
60825 -110.9 -11.7
|
||||
60826 -110.5 -11.8
|
||||
60827 -110.5 -11.7
|
||||
60865 -116.77 0.98 -11.24 0.21
|
||||
60866 -116.93 0.98 -11.18 0.21
|
||||
60867 -116.98 0.98 -10.97 0.21
|
||||
|
||||
IAU2000A Celestial Pole Offset Series
|
||||
MJD dX error dY error
|
||||
(msec. of arc)
|
||||
60837 0.432 0.352 -0.216 0.145
|
||||
60838 0.439 0.352 -0.218 0.145
|
||||
60839 0.448 0.352 -0.222 0.145
|
||||
60840 0.457 0.128 -0.227 0.160
|
||||
60841 0.465 0.588 -0.235 0.303
|
||||
60842 0.472 0.588 -0.243 0.303
|
||||
60843 0.476 0.588 -0.251 0.303
|
||||
60844 0.476 0.476 -0.260 0.282
|
||||
60845 0.472 0.476 -0.267 0.282
|
||||
60846 0.467 0.476 -0.275 0.282
|
||||
|
||||
|
||||
IAU2000A Celestial Pole Offset Final Series
|
||||
MJD dX dY
|
||||
(msec. of arc)
|
||||
60797 0.44 -0.19
|
||||
60798 0.51 -0.19
|
||||
60799 0.53 -0.19
|
||||
60800 0.52 -0.18
|
||||
60801 0.49 -0.17
|
||||
60802 0.41 -0.16
|
||||
60803 0.33 -0.14
|
||||
60804 0.31 -0.16
|
||||
60805 0.34 -0.21
|
||||
60806 0.39 -0.26
|
||||
60807 0.44 -0.30
|
||||
60808 0.49 -0.33
|
||||
60809 0.48 -0.26
|
||||
60810 0.45 -0.17
|
||||
60811 0.42 -0.09
|
||||
60812 0.42 -0.07
|
||||
60813 0.43 -0.10
|
||||
60814 0.44 -0.14
|
||||
60815 0.45 -0.18
|
||||
60816 0.43 -0.21
|
||||
60817 0.40 -0.22
|
||||
60818 0.37 -0.22
|
||||
60819 0.37 -0.21
|
||||
60820 0.38 -0.19
|
||||
60821 0.39 -0.16
|
||||
60822 0.40 -0.14
|
||||
60823 0.41 -0.12
|
||||
60824 0.41 -0.11
|
||||
60825 0.41 -0.11
|
||||
60826 0.39 -0.14
|
||||
60827 0.34 -0.18
|
||||
60865 0.402 0.390 -0.210 0.213
|
||||
60866 0.393 0.390 -0.229 0.213
|
||||
60867 0.382 0.390 -0.247 0.213
|
||||
|
||||
)--";
|
||||
|
||||
|
||||
@ -27,8 +27,8 @@ template <traits::mcc_mount_controls_c MOUNT_CONTROLS>
|
||||
class MccMount : public fsm::MccFiniteStateMachine, public utils::MccSpdlogLogger, protected MOUNT_CONTROLS
|
||||
{
|
||||
// declare these classes as friends to allow them access protected members 'slewModel' and 'guidingModel'
|
||||
friend class MccMountStateSlew<MccMount>;
|
||||
friend class MccMountStateGuiding<MccMount>;
|
||||
friend class MccMountStateSlew<MccMount<MOUNT_CONTROLS>>;
|
||||
friend class MccMountStateGuiding<MccMount<MOUNT_CONTROLS>>;
|
||||
|
||||
public:
|
||||
typedef MOUNT_CONTROLS mount_controls_t;
|
||||
|
||||
@ -139,21 +139,29 @@ public:
|
||||
|
||||
using guiding_point_t = MccSlewAndGuidingPoint;
|
||||
|
||||
template <traits::mcc_mount_controls_c MOUNT_CONTROLS_T, typename... LoggerCtorArgTs>
|
||||
MccSimpleGuidingModel(MOUNT_CONTROLS_T& mount_controls, LoggerCtorArgTs&&... ctor_args)
|
||||
template <traits::mcc_mount_telemetry_c TELEMETRY_T,
|
||||
traits::mcc_mount_hardware_c HARDWARE_T,
|
||||
traits::mcc_tuple_c PZ_T,
|
||||
typename... LoggerCtorArgTs>
|
||||
MccSimpleGuidingModel(TELEMETRY_T& telemetry,
|
||||
HARDWARE_T& hardware,
|
||||
PZ_T& prohibited_zone,
|
||||
LoggerCtorArgTs&&... ctor_args)
|
||||
requires(!std::same_as<LoggerT, MccNullLogger>)
|
||||
: LoggerT(std::forward<LoggerCtorArgTs>(ctor_args)...)
|
||||
{
|
||||
logDebug(std::format("Create 'MccSimpleGuidingModel' class instance ({})", (void*)this));
|
||||
|
||||
init(mount_controls);
|
||||
init(telemetry, hardware, prohibited_zone);
|
||||
}
|
||||
|
||||
template <traits::mcc_mount_controls_c MOUNT_CONTROLS_T>
|
||||
MccSimpleGuidingModel(MOUNT_CONTROLS_T& mount_controls)
|
||||
template <traits::mcc_mount_telemetry_c TELEMETRY_T,
|
||||
traits::mcc_mount_hardware_c HARDWARE_T,
|
||||
traits::mcc_tuple_c PZ_T>
|
||||
MccSimpleGuidingModel(TELEMETRY_T& telemetry, HARDWARE_T& hardware, PZ_T& prohibited_zone)
|
||||
requires(std::same_as<LoggerT, MccNullLogger>)
|
||||
{
|
||||
init(mount_controls);
|
||||
init(telemetry, hardware, prohibited_zone);
|
||||
}
|
||||
|
||||
virtual ~MccSimpleGuidingModel()
|
||||
@ -177,23 +185,24 @@ protected:
|
||||
|
||||
|
||||
|
||||
error_t init(auto& mount_controls)
|
||||
error_t init(auto& telemetry, auto& hardware, auto& prohibited_zones)
|
||||
{
|
||||
// deduce controls types
|
||||
using astrom_engine_t = decltype(mount_controls.astrometryEngine);
|
||||
using hardware_t = decltype(mount_controls.hardware);
|
||||
using pec_t = decltype(mount_controls.PEC);
|
||||
using telemetry_t = decltype(mount_controls.telemetry);
|
||||
// deduce controls types
|
||||
using hardware_t = decltype(hardware);
|
||||
using telemetry_t = decltype(telemetry);
|
||||
static_assert(traits::mcc_mount_default_telemetry_c<telemetry_t>,
|
||||
"TELEMETRY CLASS MUST BE A DESCENDANT OF 'MccMountTelemetry'!");
|
||||
|
||||
static_assert(std::derived_from<telemetry_t, MccMountTelemetry<astrom_engine_t, pec_t, hardware_t,
|
||||
typename telemetry_t::mount_telemetry_data_t>>,
|
||||
"TELEMETRY CLASS MUST BE A DESCENDANT OF 'MccMountTelemetry' ONE!");
|
||||
using astrom_engine_t = typename telemetry_t::astrom_engine_t;
|
||||
|
||||
using tpl_pz_t = decltype(mount_controls.prohibitedZones);
|
||||
static constexpr size_t Nzones = std::tuple_size_v<decltype(prohibited_zones)>;
|
||||
|
||||
const auto p_mount_controls = &mount_controls;
|
||||
const auto p_telemetry = &telemetry;
|
||||
const auto p_hardware = &hardware;
|
||||
const auto p_prohibited_zones = &prohibited_zones;
|
||||
|
||||
_guidingFunc = [p_mount_controls, this](guiding_point_t guiding_point) {
|
||||
_guidingFunc = [p_telemetry, p_hardware, p_prohibited_zones, this](guiding_point_t guiding_point) {
|
||||
_stopRequested = false;
|
||||
|
||||
if (guiding_point.correctionRange[0] >= guiding_point.correctionRange[1]) {
|
||||
@ -203,19 +212,14 @@ protected:
|
||||
auto low_corr_limit = guiding_point.correctionRange[0] * guiding_point.correctionRange[0];
|
||||
auto high_corr_limit = guiding_point.correctionRange[1] * guiding_point.correctionRange[1];
|
||||
|
||||
auto& astrom_engine = p_mount_controls->astrometryEngine;
|
||||
auto& hardware = p_mount_controls->hardware;
|
||||
auto& pec = p_mount_controls->PEC;
|
||||
auto& telemetry = p_mount_controls->telemetry;
|
||||
|
||||
using coord_t = typename astrom_engine_t::coord_t;
|
||||
using jd_t = typename astrom_engine_t::juldate_t;
|
||||
jd_t jd;
|
||||
// using coord_t = typename astrom_engine_t::coord_t;
|
||||
// using jd_t = typename astrom_engine_t::juldate_t;
|
||||
// jd_t jd;
|
||||
|
||||
|
||||
error_t res_err;
|
||||
typename astrom_engine_t::error_t ast_err;
|
||||
typename pec_t::error_t pec_err;
|
||||
// typename pec_t::error_t pec_err;
|
||||
|
||||
typename telemetry_t::error_t t_err;
|
||||
typename telemetry_t::mount_telemetry_data_t t_data;
|
||||
@ -225,7 +229,7 @@ protected:
|
||||
|
||||
ax_pos.moving_type = hardware_t::hw_moving_type_t::HW_MOVE_GUIDING;
|
||||
|
||||
t_err = telemetry.setTarget(guiding_point);
|
||||
t_err = p_telemetry->setTarget(guiding_point);
|
||||
if (t_err) {
|
||||
if constexpr (std::same_as<decltype(t_err), error_t>) {
|
||||
logError(std::format("An telemetry error occured: code = {} ({})", t_err.value(), t_err.message()));
|
||||
@ -238,7 +242,7 @@ protected:
|
||||
}
|
||||
}
|
||||
|
||||
std::array<bool, std::tuple_size_v<tpl_pz_t>> in_zone_flag;
|
||||
std::array<bool, Nzones> in_zone_flag;
|
||||
|
||||
while (true) {
|
||||
if (_stopRequested) {
|
||||
@ -249,10 +253,13 @@ protected:
|
||||
|
||||
|
||||
// suspend the thread here until telemetry data is updated
|
||||
t_err = telemetry.waitForUpdatedData(t_data, guiding_point.telemetryUpdateTimeout);
|
||||
t_err = p_telemetry->waitForUpdatedData(t_data, guiding_point.telemetryUpdateTimeout);
|
||||
|
||||
ax_pos.x = t_data.mntPosX;
|
||||
ax_pos.y = t_data.mntPosY;
|
||||
|
||||
// check prohibited zones ...
|
||||
if (mccCheckInZonePZTuple(t_data, p_mount_controls->prohibitedZones, in_zone_flag)) {
|
||||
if (mccCheckInZonePZTuple(t_data, *p_prohibited_zones, in_zone_flag)) {
|
||||
return MccSimpleGuidingModelErrorCode::ERROR_IN_PROHIBITED_ZONE;
|
||||
};
|
||||
|
||||
@ -279,9 +286,13 @@ protected:
|
||||
|
||||
// compare t_data with computed coordinates ...
|
||||
if (_doCorrection) {
|
||||
auto coord_diff = telemetry.targetToMountDiff();
|
||||
auto coord_diff = p_telemetry->targetToMountDiff();
|
||||
|
||||
if (coord_diff.r2 < low_corr_limit) {
|
||||
logWarn(
|
||||
std::format("guiding model: the 'mount-target' square of difference is less than the limit "
|
||||
"(diff = {}; lim = {}). Do not perfrom the corrections!",
|
||||
(double)coord_diff.r2, (double)high_corr_limit));
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -294,22 +305,14 @@ protected:
|
||||
}
|
||||
|
||||
// do correction
|
||||
// current celestial position of target is already computed for current time point
|
||||
// so one needs only correct apparent coordinates for PEC corrections
|
||||
ax_pos.time_point = t_data.time_point;
|
||||
if constexpr (mccIsEquatorialMount(pec_t::mountType)) {
|
||||
ax_pos.x = t_data.tagHA - t_data.pecX;
|
||||
ax_pos.y = t_data.tagDEC - t_data.pecY;
|
||||
} else if constexpr (mccIsAltAzMount(pec_t::mountType)) {
|
||||
ax_pos.x = t_data.tagAZ - t_data.pecX;
|
||||
ax_pos.y = t_data.tagALT - t_data.pecY;
|
||||
} else {
|
||||
static_assert(false, "UNSUPPORTED MOUNT TYPE!");
|
||||
ax_pos.x += coord_diff.xdiff;
|
||||
if (guiding_point.dualAxisGuiding) {
|
||||
ax_pos.y += coord_diff.ydiff;
|
||||
}
|
||||
|
||||
|
||||
// asynchronous operation!
|
||||
auto err = hardware.setPos(ax_pos);
|
||||
auto err = p_hardware->setPos(ax_pos);
|
||||
if (err) {
|
||||
if constexpr (std::same_as<decltype(err), error_t>) {
|
||||
logError(
|
||||
|
||||
@ -454,25 +454,25 @@ concept mcc_prohibited_zone_c =
|
||||
|
||||
// check if given coordinates are into the zone.
|
||||
// input coordinates interpretation is in according to 'zoneCoordPairKind' static constexpr member
|
||||
{
|
||||
t.inZone(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>())
|
||||
} -> std::convertible_to<bool>;
|
||||
// {
|
||||
// t.inZone(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>())
|
||||
// } -> std::convertible_to<bool>;
|
||||
|
||||
|
||||
// for given coordinates and time the method computes a time to reach the zone.
|
||||
// implementation of the method must assume that input coordinates are apparent RA and DEC at given time
|
||||
// point, while the time point is one from which computation should be performed (e.g. current time moment)
|
||||
{
|
||||
t.timeTo(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>(),
|
||||
std::declval<typename T::time_point_t>())
|
||||
} -> mcc_time_duration_c;
|
||||
// // for given coordinates and time the method computes a time to reach the zone.
|
||||
// // implementation of the method must assume that input coordinates are apparent RA and DEC at given time
|
||||
// // point, while the time point is one from which computation should be performed (e.g. current time moment)
|
||||
// {
|
||||
// t.timeTo(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>(),
|
||||
// std::declval<typename T::time_point_t>())
|
||||
// } -> mcc_time_duration_c;
|
||||
|
||||
|
||||
// for given coordinates and time the method computes a time to exit from the zone
|
||||
{
|
||||
t.timeFrom(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>(),
|
||||
std::declval<typename T::time_point_t>())
|
||||
} -> mcc_time_duration_c;
|
||||
// // for given coordinates and time the method computes a time to exit from the zone
|
||||
// {
|
||||
// t.timeFrom(std::declval<typename T::coord_t>(), std::declval<typename T::coord_t>(),
|
||||
// std::declval<typename T::time_point_t>())
|
||||
// } -> mcc_time_duration_c;
|
||||
|
||||
// requires for the methods above with the first argument of type
|
||||
// 'const mcc_mount_telemetry_data_c&' (const lvalue reference)
|
||||
@ -505,13 +505,13 @@ concept mcc_mount_controls_c = requires(T t) {
|
||||
requires mcc_mount_telemetry_c<decltype(t.telemetry)>;
|
||||
|
||||
requires mcc_slew_model_c<decltype(t.slewModel)>;
|
||||
// requires mcc_slew_model_c<decltype(t.slewModel), decltype(t.telemetry)>;
|
||||
requires mcc_guiding_model_c<decltype(t.guidingModel)>;
|
||||
// requires mcc_guiding_model_c<decltype(t.guidingModel), decltype(t.telemetry)>;
|
||||
|
||||
// a std::tuple of prohibited zones
|
||||
[]<mcc_prohibited_zone_c<typename decltype(t.telemetry)::mount_telemetry_data_t>... Ts>(std::tuple<Ts...>) {
|
||||
}(t.prohibitedZones);
|
||||
// []<mcc_prohibited_zone_c<typename decltype(t.telemetry)::mount_telemetry_data_t>... Ts>(std::tuple<Ts...>) {
|
||||
// }(t.prohibitedZones);
|
||||
|
||||
requires mcc_tuple_c<decltype(t.prohibitedZones)>;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -332,4 +332,20 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
namespace traits
|
||||
{
|
||||
|
||||
template <typename T>
|
||||
concept mcc_mount_default_telemetry_c = requires {
|
||||
mcc_astrom_engine_c<typename T::astrom_engine_t>;
|
||||
mcc_mount_pec_c<typename T::pec_t>;
|
||||
mcc_mount_hardware_c<typename T::hardware_t>;
|
||||
mcc_mount_telemetry_data_c<typename T::mount_telemetry_data_t>;
|
||||
|
||||
requires std::derived_from<T, mcc::MccMountTelemetry<typename T::astrom_engine_t, typename T::pec_t,
|
||||
typename T::hardware_t, typename T::mount_telemetry_data_t>>;
|
||||
};
|
||||
|
||||
} // namespace traits
|
||||
|
||||
} // namespace mcc
|
||||
|
||||
@ -71,6 +71,7 @@ struct MccSlewAndGuidingPoint : MccCelestialPoint {
|
||||
// ******* guiding-related parameters *******
|
||||
|
||||
coord_t correctionRange[2]{(double)MccAngle(0.3_arcsecs), (double)MccAngle(5.0_arcsecs)};
|
||||
bool dualAxisGuiding{true}; // mount must be of an equatorial type: false means guiding along only HA-axis
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -124,21 +124,30 @@ public:
|
||||
using slew_point_t = MccSlewAndGuidingPoint;
|
||||
|
||||
|
||||
template <traits::mcc_mount_controls_c MOUNT_CONTROLS_T, typename... LoggerCtorArgTs>
|
||||
MccSimpleSlewModel(MOUNT_CONTROLS_T& mount_controls, LoggerCtorArgTs&&... ctor_args)
|
||||
template <traits::mcc_mount_telemetry_c TELEMETRY_T,
|
||||
traits::mcc_mount_hardware_c HARDWARE_T,
|
||||
traits::mcc_tuple_c PZ_T, // std::tuple of prohibited zones
|
||||
typename... LoggerCtorArgTs>
|
||||
MccSimpleSlewModel(TELEMETRY_T& telemetry,
|
||||
HARDWARE_T& hardware,
|
||||
PZ_T& prohibited_zone,
|
||||
LoggerCtorArgTs&&... ctor_args)
|
||||
requires(!std::same_as<LoggerT, MccNullLogger>)
|
||||
: LoggerT(std::forward<LoggerCtorArgTs>(ctor_args)...)
|
||||
{
|
||||
logDebug(std::format("Create 'MccSimpleSlewModel' class instance ({})", (void*)this));
|
||||
|
||||
init(mount_controls);
|
||||
init(telemetry, hardware, prohibited_zone);
|
||||
}
|
||||
|
||||
template <traits::mcc_mount_controls_c MOUNT_CONTROLS_T>
|
||||
MccSimpleSlewModel(MOUNT_CONTROLS_T& mount_controls)
|
||||
template <traits::mcc_mount_telemetry_c TELEMETRY_T,
|
||||
traits::mcc_mount_hardware_c HARDWARE_T,
|
||||
traits::mcc_tuple_c PZ_T // std::tuple of prohibited zones
|
||||
>
|
||||
MccSimpleSlewModel(TELEMETRY_T& telemetry, HARDWARE_T& hardware, PZ_T& prohibited_zone)
|
||||
requires(std::same_as<LoggerT, MccNullLogger>)
|
||||
{
|
||||
init(mount_controls);
|
||||
init(telemetry, hardware, prohibited_zone);
|
||||
}
|
||||
|
||||
MccSimpleSlewModel(MccSimpleSlewModel&&) = default;
|
||||
@ -169,56 +178,43 @@ protected:
|
||||
std::atomic_bool _stopRequested{false};
|
||||
std::function<error_t(const slew_point_t&)> _slewFunc{};
|
||||
|
||||
void init(auto& mount_controls)
|
||||
void init(auto& telemetry, auto& hardware, auto& prohibited_zones)
|
||||
{
|
||||
// deduce controls types
|
||||
using astrom_engine_t = decltype(mount_controls.astrometryEngine);
|
||||
using hardware_t = decltype(mount_controls.hardware);
|
||||
using pec_t = decltype(mount_controls.PEC);
|
||||
using telemetry_t = decltype(mount_controls.telemetry);
|
||||
static_assert(std::derived_from<telemetry_t, MccMountTelemetry<astrom_engine_t, pec_t, hardware_t,
|
||||
typename telemetry_t::mount_telemetry_data_t>>,
|
||||
"TELEMETRY CLASS MUST BE A DESCENDANT OF 'MccMountTelemetry' ONE!");
|
||||
using hardware_t = decltype(hardware);
|
||||
using telemetry_t = decltype(telemetry);
|
||||
static_assert(traits::mcc_mount_default_telemetry_c<telemetry_t>,
|
||||
"TELEMETRY CLASS MUST BE A DESCENDANT OF 'MccMountTelemetry'!");
|
||||
|
||||
using tpl_pz_t = decltype(mount_controls.prohibitedZones);
|
||||
using astrom_engine_t = typename telemetry_t::astrom_engine_t;
|
||||
|
||||
static constexpr size_t Nzones = std::tuple_size_v<tpl_pz_t>;
|
||||
static constexpr size_t Nzones = std::tuple_size_v<decltype(prohibited_zones)>;
|
||||
|
||||
const auto p_mount_controls = &mount_controls;
|
||||
const auto p_telemetry = &telemetry;
|
||||
const auto p_hardware = &hardware;
|
||||
const auto p_prohibited_zones = &prohibited_zones;
|
||||
|
||||
|
||||
_slewFunc = [p_mount_controls, this](slew_point_t slew_point) {
|
||||
_slewFunc = [p_telemetry, p_hardware, p_prohibited_zones, this](slew_point_t slew_point) {
|
||||
_stopRequested = false;
|
||||
|
||||
auto& astrom_engine = p_mount_controls->astrometryEngine;
|
||||
auto& hardware = p_mount_controls->hardware;
|
||||
auto& pec = p_mount_controls->PEC;
|
||||
auto& telemetry = p_mount_controls->telemetry;
|
||||
|
||||
using coord_t = typename astrom_engine_t::coord_t;
|
||||
using jd_t = typename astrom_engine_t::juldate_t;
|
||||
|
||||
typename hardware_t::axes_pos_t ax_pos;
|
||||
|
||||
error_t res_err;
|
||||
typename astrom_engine_t::error_t ast_err;
|
||||
typename pec_t::error_t pec_err;
|
||||
// typename astrom_engine_t::error_t ast_err;
|
||||
|
||||
typename telemetry_t::error_t t_err;
|
||||
typename telemetry_t::mount_telemetry_data_t t_data;
|
||||
|
||||
coord_t ra_icrs, dec_icrs;
|
||||
|
||||
if (slew_point.withinToleranceCycleNumber == 0) {
|
||||
slew_point.withinToleranceCycleNumber = MccSlewAndGuidingPoint::defaultWithinToleranceCycleNumber;
|
||||
}
|
||||
|
||||
// first, compute encoder coordinates
|
||||
ax_pos.time_point = astrom_engine_t::timePointNow();
|
||||
t_err = telemetry.toHardware(slew_point, ax_pos.time_point, ax_pos.x, ax_pos.y);
|
||||
t_err = p_telemetry->toHardware(slew_point, ax_pos.time_point, ax_pos.x, ax_pos.y);
|
||||
if (!t_err) {
|
||||
// SETUP TARGET SKY POINT
|
||||
t_err = telemetry.setTarget(slew_point);
|
||||
t_err = p_telemetry->setTarget(slew_point);
|
||||
}
|
||||
|
||||
if (t_err) {
|
||||
@ -237,7 +233,7 @@ protected:
|
||||
ax_pos.xrate = slew_point.slewXRate;
|
||||
ax_pos.yrate = slew_point.slewYRate;
|
||||
ax_pos.moving_type = hardware_t::hw_moving_type_t::HW_MOVE_SLEWING;
|
||||
typename hardware_t::error_t hw_err = hardware->setPos(ax_pos);
|
||||
typename hardware_t::error_t hw_err = p_hardware->setPos(ax_pos);
|
||||
|
||||
if (hw_err) {
|
||||
if constexpr (std::same_as<decltype(hw_err), error_t>) {
|
||||
@ -260,9 +256,10 @@ protected:
|
||||
adj_ax_pos.yrate = slew_point.adjustYRate;
|
||||
adj_ax_pos.moving_type = hardware_t::hw_moving_type_t::HW_MOVE_ADJUSTING;
|
||||
|
||||
typename telemetry_t::mount_telemetry_data_t::coord_t xr, yr, coord_diff2,
|
||||
adj_rad2 = slew_point.adjustCoordDiff * slew_point.adjustCoordDiff,
|
||||
tol_rad2 = slew_point.slewToleranceRadius * slew_point.slewToleranceRadius;
|
||||
typename telemetry_t::mount_telemetry_data_t::coord_t adj_rad2 = slew_point.adjustCoordDiff *
|
||||
slew_point.adjustCoordDiff,
|
||||
tol_rad2 = slew_point.slewToleranceRadius *
|
||||
slew_point.slewToleranceRadius;
|
||||
|
||||
std::array<bool, Nzones> in_zone_flag;
|
||||
|
||||
@ -271,34 +268,34 @@ protected:
|
||||
bool in_adj_mode = false;
|
||||
|
||||
// compute new hardware coordinate of target
|
||||
auto compute_new_coord = [](auto const& t_data, typename hardware_t::axes_pos_t& hw_pos) {
|
||||
// current celestial position of target is already computed for given time point
|
||||
// so one needs only correct apparent coordinates for PEC corrections
|
||||
hw_pos.time_point = t_data.time_point;
|
||||
if constexpr (mccIsEquatorialMount(pec_t::mountType)) {
|
||||
hw_pos.x = t_data.tagHA - t_data.pecX;
|
||||
hw_pos.y = t_data.tagDEC - t_data.pecY;
|
||||
} else if constexpr (mccIsAltAzMount(pec_t::mountType)) {
|
||||
hw_pos.x = t_data.tagAZ - t_data.pecX;
|
||||
hw_pos.y = t_data.tagALT - t_data.pecY;
|
||||
} else {
|
||||
static_assert(false, "UNSUPPORTED MOUNT TYPE!");
|
||||
}
|
||||
};
|
||||
// auto compute_new_coord = [](auto const& t_data, typename hardware_t::axes_pos_t& hw_pos) {
|
||||
// // current celestial position of target is already computed for given time point
|
||||
// // so one needs only correct apparent coordinates for PEC corrections
|
||||
// hw_pos.time_point = t_data.time_point;
|
||||
// if constexpr (mccIsEquatorialMount(pec_t::mountType)) {
|
||||
// hw_pos.x = t_data.tagHA - t_data.pecX;
|
||||
// hw_pos.y = t_data.tagDEC - t_data.pecY;
|
||||
// } else if constexpr (mccIsAltAzMount(pec_t::mountType)) {
|
||||
// hw_pos.x = t_data.tagAZ - t_data.pecX;
|
||||
// hw_pos.y = t_data.tagALT - t_data.pecY;
|
||||
// } else {
|
||||
// static_assert(false, "UNSUPPORTED MOUNT TYPE!");
|
||||
// }
|
||||
// };
|
||||
|
||||
auto cycle_func = [&](auto t_data) mutable {
|
||||
auto cycle_func = [&](auto& t_data) mutable {
|
||||
if (_stopRequested) {
|
||||
res_err = MccSimpleSlewModelErrorCode::ERROR_SLEW_STOPPED;
|
||||
}
|
||||
|
||||
// check for prohibited zones
|
||||
if (mccCheckInZonePZTuple(t_data, p_mount_controls->prohibitedZones, in_zone_flag)) {
|
||||
if (mccCheckInZonePZTuple(t_data, *p_prohibited_zones, in_zone_flag)) {
|
||||
return MccSimpleSlewModelErrorCode::ERROR_IN_PROHIBITED_ZONE;
|
||||
};
|
||||
|
||||
|
||||
// t_data was updated in caller!!!
|
||||
auto coord_diff = telemetry.targetToMountDiff();
|
||||
auto coord_diff = p_telemetry->targetToMountDiff();
|
||||
|
||||
if (_stopRequested) {
|
||||
res_err = MccSimpleSlewModelErrorCode::ERROR_SLEW_STOPPED;
|
||||
@ -307,9 +304,13 @@ protected:
|
||||
if (coord_diff.r2 < adj_rad2) { // adjusting mode
|
||||
in_adj_mode = true;
|
||||
|
||||
compute_new_coord(t_data, adj_ax_pos);
|
||||
// compute_new_coord(t_data, adj_ax_pos);
|
||||
|
||||
hw_err = hardware->setPos(adj_ax_pos);
|
||||
adj_ax_pos.time_point = t_data.time_point;
|
||||
adj_ax_pos.x += coord_diff.xdiff;
|
||||
adj_ax_pos.y += coord_diff.ydiff;
|
||||
|
||||
hw_err = p_hardware->setPos(adj_ax_pos);
|
||||
|
||||
if (!hw_err) {
|
||||
++i_adj_cycle;
|
||||
@ -343,12 +344,26 @@ protected:
|
||||
|
||||
} else { // continue to slewing
|
||||
if (in_adj_mode) { // ?!!!!!!!!!!!!! slew again?!!!
|
||||
logWarn(std::format(
|
||||
"The slewing is in adjusting mode but computed target-to-mount coordinate difference "
|
||||
"'{}' is greater than limit '{}' for adjusting mode!",
|
||||
coord_diff.r2, adj_rad2));
|
||||
|
||||
in_adj_mode = false;
|
||||
i_adj_cycle = 0;
|
||||
i_in_tol_cycle = 0;
|
||||
|
||||
compute_new_coord(t_data, ax_pos);
|
||||
typename hardware_t::error_t hw_err = hardware->setPos(ax_pos);
|
||||
// compute_new_coord(t_data, ax_pos);
|
||||
adj_ax_pos.time_point = t_data.time_point;
|
||||
adj_ax_pos.x += coord_diff.xdiff;
|
||||
adj_ax_pos.y += coord_diff.ydiff;
|
||||
|
||||
ax_pos.time_point = t_data.time_point;
|
||||
ax_pos.x = adj_ax_pos.x;
|
||||
ax_pos.y = adj_ax_pos.y;
|
||||
// send command for slewing
|
||||
typename hardware_t::error_t hw_err = p_hardware->setPos(ax_pos);
|
||||
|
||||
|
||||
if (hw_err) {
|
||||
if constexpr (std::same_as<decltype(hw_err), error_t>) {
|
||||
@ -372,7 +387,7 @@ protected:
|
||||
// NOTE: TARGET COORDINATES WILL BE UPDATED FOR CURRENT TIME-POINT IN TELEMETRY-CLASS!!!
|
||||
|
||||
while (true) {
|
||||
t_err = telemetry.waitForUpdatedData(t_data, slew_point.telemetryUpdateTimeout);
|
||||
t_err = p_telemetry->waitForUpdatedData(t_data, slew_point.telemetryUpdateTimeout);
|
||||
|
||||
if (t_err) {
|
||||
std::string err_str = "An error occured while waiting for updated telemetry";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user