БД для ballistics dev

This commit is contained in:
emelianov
2026-05-29 14:07:15 +03:00
parent 3fd702ca47
commit a6f179550c
3 changed files with 41 additions and 109 deletions
+34 -95
View File
@@ -1,8 +1,10 @@
import ballistics.Ballistics
import ballistics.types.EarthType
import ballistics.types.InitialConditions
import ballistics.types.IntegrationType
import ballistics.types.ModDVType
import ballistics.types.OrbitalPoint
import ballistics.utils.astro.AstronomerJ2000
import ballistics.utils.fromDateTime
import ballistics.utils.math.Vector3D
import ballistics.utils.toDateTime
@@ -15,106 +17,38 @@ fun main() {
var ts = System.currentTimeMillis()
val r = Ballistics()
r.modDVType = ModDVType.BARS // BARS
r.integrationType = IntegrationType.ADAMS7
r.modDVType = ModDVType.KONDOR // BARS
r.integrationType = IntegrationType.RUNG4
val tt2 = LocalDateTime.of(2028, 12, 11, 1, 24, 24, 257000000)
val op = OrbitalPoint(
fromDateTime(tt2),
1,
Vector3D(
2610612.004898679,
-3507514.947081291,
-5291534.374006776,
),
Vector3D(
-4935.515395115775,
3497.047795669036,
-4742.501356855924,
),
)
val mnu = mutableListOf<InitialConditions>()
mnu.add(
InitialConditions(
OrbitalPoint(
LocalDateTime.of(2021, 12, 3, 0, 5, 45, 0).toEpochSecond(ZoneOffset.UTC).toDouble(),
1,
Vector3D(
-5357933.7872,
4328646.1787,
0.0,
),
Vector3D(
941.8995373,
1150.6919822,
7544.9920840,
),
),
0.0061,
op,
0.06 / 9.8,
125.0,
),
)
/*
mnu.add(InitialConditions(OrbitalPoint(1681135417.0,
1499,
6782429.138044466,
-1205586.994919729,
0.0,
-272.89561674108205,
-1460.1016031205972,
7539.209413654664),
0.0,
100.0)
)
mnu.add(InitialConditions(OrbitalPoint(1681203547.0,
1511,
2796871.797932365,
6295220.245166648,
0.0,
1351.432690993002,
-615.1950685524682,
7539.420044409451),
0.0,
100.0)
)
mnu.add(InitialConditions(OrbitalPoint(1681288710.0,
1526,
2219522.8066600505,
6520960.574145492,
0.0,
1401.0525909402313,
-491.90052480161194,
7539.654233369637),
0.0,
100.0)
)
mnu.add(InitialConditions(OrbitalPoint(1681373873.0,
1541,
1624190.3979707498,
6693858.330353258,
0.0,
1439.4621272728175,
-364.5959436771924,
7539.927000039702),
0.0,
100.0)
)
mnu.add(InitialConditions(OrbitalPoint(1681464714.0,
1557,
3663882.4989639986,
5832354.67692114,
0.0,
1249.158953470858,
-802.9876366520331,
7540.375561571017),
0.0,
100.0)
)
mnu.add(InitialConditions(OrbitalPoint(1681538522.0,
1570,
-2393483.7360840607,
6458206.838182452,
0.0,
1398.0568057512764,
501.055477122656,
7540.680958625912),
0.0,
100.0)
)
*/
mnu.sortBy { it.point.t }
@@ -123,9 +57,14 @@ fun main() {
println("время расчета = ${System.currentTimeMillis() - ts}мс")
// for (p in r.points)
// println("${p.vit} ${LocalDateTime.ofEpochSecond(p.t.toLong(),0, ZoneOffset.UTC)} ${p.r.x} ${p.r.y} ${p.r.z} ${p.v.x} ${p.v.y} ${p.v.z}")
//
val astro = AstronomerJ2000(EarthType.PZ90d02)
for (p in r.revolutions) {
val op = astro.grinvToASK(p.vuz)
println(
"${op.vit} ${toDateTime(op.t)} " +
"${op.r.x} ${op.r.y} ${op.r.z} ${op.v.x} ${op.v.y} ${op.v.z}"
)
}
ts = System.currentTimeMillis()
r.calculateFlightLine(mnu.first().point.t, mnu.first().point.t + 86400.0 * 5)