Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
Rugged
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Orekit
Rugged
Commits
0ce7bc13
Commit
0ce7bc13
authored
8 years ago
by
Jonathan Guinet
Browse files
Options
Downloads
Patches
Plain Diff
Attitude Law can be selected in OrbitModel class
parent
d91dfd41
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/tutorials/java/AffinagePleiades/OrbitModel.java
+38
-16
38 additions, 16 deletions
src/tutorials/java/AffinagePleiades/OrbitModel.java
with
38 additions
and
16 deletions
src/tutorials/java/AffinagePleiades/OrbitModel.java
+
38
−
16
View file @
0ce7bc13
...
@@ -65,14 +65,29 @@ import org.orekit.utils.AngularDerivativesFilter;
...
@@ -65,14 +65,29 @@ import org.orekit.utils.AngularDerivativesFilter;
*/
*/
public
class
OrbitModel
{
public
class
OrbitModel
{
/** Flag to change Attitude Law (by default Nadir Pointing Yaw Compensation). */
private
boolean
UserDefinedLOFTransform
;
/** User defined Roll law. */
private
double
[]
LOFTransformRollPoly
;
private
double
[]
LOFTransformRollPoly
;
/** User defined Pitch law. */
private
double
[]
LOFTransformPitchPoly
;
private
double
[]
LOFTransformPitchPoly
;
/** User defined Yaw law. */
private
double
[]
LOFTransformYawPoly
;
private
double
[]
LOFTransformYawPoly
;
/** reference date */
private
AbsoluteDate
refDate
;
private
AbsoluteDate
refDate
;
/** attitude Provider */
AttitudeProvider
attitudeProvider
;
public
OrbitModel
()
{
UserDefinedLOFTransform
=
false
;
}
public
static
void
addSatellitePV
(
TimeScale
gps
,
Frame
eme2000
,
Frame
itrf
,
public
static
void
addSatellitePV
(
TimeScale
gps
,
Frame
eme2000
,
Frame
itrf
,
ArrayList
<
TimeStampedPVCoordinates
>
satellitePVList
,
ArrayList
<
TimeStampedPVCoordinates
>
satellitePVList
,
...
@@ -148,6 +163,8 @@ public class OrbitModel {
...
@@ -148,6 +163,8 @@ public class OrbitModel {
public
void
setLOFTransform
(
double
[]
rollPoly
,
double
[]
pitchPoly
,
public
void
setLOFTransform
(
double
[]
rollPoly
,
double
[]
pitchPoly
,
double
[]
yawPoly
,
AbsoluteDate
refDate
)
{
double
[]
yawPoly
,
AbsoluteDate
refDate
)
{
this
.
UserDefinedLOFTransform
=
true
;
LOFTransformRollPoly
=
rollPoly
.
clone
();
LOFTransformRollPoly
=
rollPoly
.
clone
();
LOFTransformPitchPoly
=
pitchPoly
.
clone
();
LOFTransformPitchPoly
=
pitchPoly
.
clone
();
LOFTransformYawPoly
=
yawPoly
.
clone
();
LOFTransformYawPoly
=
yawPoly
.
clone
();
...
@@ -190,22 +207,26 @@ public class OrbitModel {
...
@@ -190,22 +207,26 @@ public class OrbitModel {
public
AttitudeProvider
createAttitudeProvider
(
BodyShape
earth
,
Orbit
orbit
)
public
AttitudeProvider
createAttitudeProvider
(
BodyShape
earth
,
Orbit
orbit
)
throws
OrekitException
{
throws
OrekitException
{
LOFType
type
=
LOFType
.
VVLH
;
ArrayList
<
TimeStampedAngularCoordinates
>
list
=
new
ArrayList
<
TimeStampedAngularCoordinates
>();
if
(
this
.
UserDefinedLOFTransform
)
{
LOFType
type
=
LOFType
.
VVLH
;
for
(
double
shift
=
-
10.0
;
shift
<
+
10.0
;
shift
+=
1
e
-
2
)
{
ArrayList
<
TimeStampedAngularCoordinates
>
list
=
new
ArrayList
<
TimeStampedAngularCoordinates
>();
list
.
add
(
new
TimeStampedAngularCoordinates
(
refDate
.
shiftedBy
(
shift
),
getOffset
(
earth
,
orbit
,
for
(
double
shift
=
-
10.0
;
shift
<
+
10.0
;
shift
+=
1
e
-
2
)
{
shift
),
list
.
add
(
new
TimeStampedAngularCoordinates
(
refDate
Vector3D
.
ZERO
,
.
shiftedBy
(
shift
),
getOffset
(
earth
,
orbit
,
shift
),
Vector3D
.
ZERO
));
Vector3D
.
ZERO
,
}
Vector3D
.
ZERO
));
}
TabulatedLofOffset
tabulated
=
new
TabulatedLofOffset
(
orbit
TabulatedLofOffset
tabulated
=
new
TabulatedLofOffset
(
orbit
.
getFrame
(),
type
,
list
,
2
,
AngularDerivativesFilter
.
USE_R
);
.
getFrame
(),
type
,
list
,
2
,
AngularDerivativesFilter
.
USE_R
);
return
tabulated
;
return
tabulated
;
}
else
{
return
new
YawCompensation
(
orbit
.
getFrame
(),
new
NadirPointing
(
orbit
.
getFrame
(),
earth
));
}
}
}
public
Propagator
createPropagator
(
BodyShape
earth
,
public
Propagator
createPropagator
(
BodyShape
earth
,
...
@@ -213,10 +234,9 @@ public class OrbitModel {
...
@@ -213,10 +234,9 @@ public class OrbitModel {
Orbit
orbit
)
Orbit
orbit
)
throws
OrekitException
{
throws
OrekitException
{
AttitudeProvider
attidudeProvider
=
createAttitudeProvider
(
earth
,
AttitudeProvider
attitudeProvider
=
createAttitudeProvider
(
earth
,
orbit
);
orbit
);
SpacecraftState
state
=
new
SpacecraftState
(
orbit
,
atti
d
udeProvider
SpacecraftState
state
=
new
SpacecraftState
(
orbit
,
atti
t
udeProvider
.
getAttitude
(
orbit
,
orbit
.
getDate
(),
orbit
.
getFrame
()),
1180.0
);
.
getAttitude
(
orbit
,
orbit
.
getDate
(),
orbit
.
getFrame
()),
1180.0
);
// numerical model for improving orbit
// numerical model for improving orbit
...
@@ -243,7 +263,7 @@ public class OrbitModel {
...
@@ -243,7 +263,7 @@ public class OrbitModel {
.
getMoon
()));
.
getMoon
()));
numericalPropagator
.
setOrbitType
(
type
);
numericalPropagator
.
setOrbitType
(
type
);
numericalPropagator
.
setInitialState
(
state
);
numericalPropagator
.
setInitialState
(
state
);
numericalPropagator
.
setAttitudeProvider
(
atti
d
udeProvider
);
numericalPropagator
.
setAttitudeProvider
(
atti
t
udeProvider
);
return
numericalPropagator
;
return
numericalPropagator
;
}
}
...
@@ -253,7 +273,9 @@ public class OrbitModel {
...
@@ -253,7 +273,9 @@ public class OrbitModel {
AbsoluteDate
maxDate
,
double
step
)
AbsoluteDate
maxDate
,
double
step
)
throws
OrekitException
{
throws
OrekitException
{
Propagator
propagator
=
new
KeplerianPropagator
(
orbit
);
Propagator
propagator
=
new
KeplerianPropagator
(
orbit
);
propagator
.
setAttitudeProvider
(
createAttitudeProvider
(
earth
,
orbit
));
propagator
.
setAttitudeProvider
(
createAttitudeProvider
(
earth
,
orbit
));
propagator
.
propagate
(
minDate
);
propagator
.
propagate
(
minDate
);
final
List
<
TimeStampedPVCoordinates
>
list
=
new
ArrayList
<
TimeStampedPVCoordinates
>();
final
List
<
TimeStampedPVCoordinates
>
list
=
new
ArrayList
<
TimeStampedPVCoordinates
>();
propagator
.
setMasterMode
(
step
,
new
OrekitFixedStepHandler
()
{
propagator
.
setMasterMode
(
step
,
new
OrekitFixedStepHandler
()
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment