Release Notes for FreeFlyer 7.6

Top  Previous  Next

New Features in FreeFlyer 7.6


FreeFlyer now includes a generic optimization capability that can be used for multivariable optimization of user-defined objective functions

Some of the powerful capabilities users can take advantage of with FreeFlyer optimization include:

oSpecifying any number of state variables, equality constraints, and inequality constraints in their analyses

oChoosing any objective function or weighted combination of objectives to minimize or maximize a system

oApplying their own gradients and Jacobians to their optimization work, leveraging known analytic derivatives as desired to greatly improve iteration speed

This functionality additionally offers the ability to find a feasible solution that solves all constraints without optimizing an objective function

Three different industry-standard optimizers are supported by FreeFlyer

oSNOPT, a sparse nonlinear optimizer (not provided with FreeFlyer)

oIpopt, an interior point optimizer (provided with FreeFlyer)

oNLopt, a library for nonlinear optimization (provided with FreeFlyer)

Global optimization support is now available through NLopt, allowing users to search a global parameter space

oThis is valuable for many applications in mission design, such as constellation design for coverage


Relative Spacecraft Motion

The Hill-Clohessy-Wiltshire (HCW) equations of relative motion have been built into the new HCW Propagator for use with Spacecraft objects

ImpulsiveBurn maneuvers can now be used with Spacecraft objects using TwoBody and HCW propagators

Support has been added for the Local-Vertical-Curvilinear (LVC), RIC Cylindrical, and RIC Spherical reference frames

The new RelativeMotionUtilities object provides useful utilities for relative motion analysis, including the following:

oComputing delta-V for rendezvous and proximity operations maneuvers using the HCW equations

oConverting relative Spacecraft states between a variety of Cartesian and curvilinear frames

oPredicting future relative motion

Added ability to set and retrieve relative Cartesian and curvilinear states

Five new orbit wizards have been added for configuring Spacecraft objects in common relative motion flight patterns

oThe five new wizards are for building in-plane, in-track, circular, projected circular, and safety ellipse configurations

Added the Spacecraft.MeanMotion property


Scripting Enhancements

A new static Constants object, accessible from every Mission Plan, provides access to commonly used mathematical and physical constants

Added a Diagnostics object to improve error reporting, error tracking, and to provide access to the text of error messages suppressed in Try blocks

The new AdjustToCyclicRange() function modulates values to fall within a desired cyclic range, such as (0,360) or (-180,180) for angles

Variable.ToTimeSpan() has been implemented as a convenient alternative to using the TimeSpan static methods for converting between Variable and TimeSpan objects

Improved the behavior of JSON parsing/exporting when working with nulls and complex types


Output Enhancements

Added a large number of premade color palettes that can be accessed through ColorTools and conveniently applied to plot series and backgrounds to simplify PlotWindow setup

The default maximum number of points in a PlotWindow has been increased to 2000 from 500, and can still be adjusted even higher by changing PlotWindow.MaxPoints

A variety of new convenience methods have been added to improve PlotWindow usability in plotting data, including those listed below:

oAxis Control: PlotWindow.SetAxisLimits()

oFont Styling: PlotWindow.SetTypeface(), PlotWindow.SetTextSize()

oText Styling: PlotWindow.BoldAllText(), PlotWindow.ItalicizeAllText()

oLine Styling: PlotWindow.SetLineVisibility(), PlotWindow.SetLineWidth()

oMarker Styling: PlotWindow.SetMarkerVisibility(), PlotWindow.SetMarkerSize()

Two new color systems, the HSV and L*A*B*, are now available for use with color generation and interpolation


File System Enhancements

The new FileSystem object has been added to FreeFlyer that enables significantly improved interactivity with files and folders on the local machine, including:

oCopying and deleting files

oCopying, deleting, and creating directories

The FileProperties object has been deprecated and all of its functionality has been migrated to the more generic FileSystem object


Licensing Enhancements

FreeFlyer now supports network licensing within Docker containers

Upgraded the network licensing vendor daemon to support hosting both API-only and full GUI seats out of the same network license server


Miscellaneous Improvements

Added support for Sensor objects to be a target object type for VisibilitySegment objects

Several properties have been added to the ForceModel object to provide access to F10.7, Ap, and Kp values used by the Jacchia drag model

When editing a GroundStation object initially loaded from the Station Geodetics File (SGF), it will now save to an object file and load from that object file exactly as it was saved.

Added methods to the Array and Matrix objects to easily determine the index of the minimum and maximum entries

The StepToEpoch() method has been added to all orbit determination filter objects


Notable Fixes

The J2000 reference epoch for Moon frames has been corrected to Jan 01 2000 12:00:00.000 TDB from Jan 01 2000 00:00:00.000 TDB

Fixed velocity vector conversions in the AttitudeConvert() function to correctly account for the relative position of the state and also improved accuracy of the rotation rate of the VNB frame for eccentric orbits

Corrected an error that resulted in the unscented Kalman filter never populating DSNObservation.RangeRate.ObservedValue during processing



Migrating to FreeFlyer 7.6

While we always strive to maintain 100% backwards compatibility in our new releases, our efforts to make FreeFlyer more flexible and consistent in FreeFlyer 7.6 and higher have necessitated a few changes which may require user intervention when migrating your existing Mission Plans. These changes are outlined below.


Modeling and Numerics

The AttitudeConvert() function now requires users provide a 6-element state vector as input in order to perform velocity vector conversions. If a Mission Plan from an earlier version of FreeFlyer tries to pass in a 3-element Array, FreeFlyer 7.6 will now throw an error indicating that an Array of the wrong size has been passed while 6 elements were expected. An example of this function being used in FreeFlyer 7.6 is provided below for reference.


Array relPosJ2K = sc1.Position - sc0.Position;

Array relVelJ2K = sc1.Velocity - sc0.Velocity;

relVelRIC       = AttitudeConvert(0, 6, sc1, {relPosJ2K, relVelJ2K}, 1);


AttitudeConvert() with velocity vector conversions can no longer be performed on the body coordinate system (BCS) of a Spacecraft or in the Geodetic frames.


The standard values for the astronomical unit (AU) and gravitational constant (G) have been updated to the most current values as provided by NASA JPL. The previous and new values for each of these constants are provided below.



FreeFlyer 7.5.2 Values

FreeFlyer 7.6 Values


149597870.0 km

149597870.7 km


6.67259e-20 km3kg-1s-2

6.6743e-20 km3kg-1s-2


The Moon's default flattening coefficient has been changed to 0 from 1e-8 to line up with the standardized JPL SSD lunar constants and model. This was initially released as part of the maintenance release, FreeFlyer 7.5.1, but is an important change for users to be aware of when stepping directly from earlier versions to FreeFlyer 7.6.


The behavior of Euler angle rotations has been standardized by constraining the second Euler angle to a range of -90° to 90°. This was initially released as part of the maintenance release, FreeFlyer 7.5.1, but is an important change for users to be aware of when stepping directly from earlier versions to FreeFlyer 7.6.

oFor the full documentation and reference for this standardization, see the Euler Angles section of the Attitude Systems guide



When writing a CCSDS OEM from within FreeFlyer, now it will report just the method, such as SPLINE or LAGRANGE, as the interpolation method to better align with Bluebook Standards.


The Norad element set has been removed as a option for the Element Set dropdown menu within the Spacecraft General Orbit Determination object dialog page. Mission Plans configured to use this will have the element set automatically changed to Cartesian when loaded in FreeFlyer 7.6.


The default value for maximum points in a PlotWindow has been increased from 500 to 2000. This means that for Mission Plans not manually configuring the PlotWindow.MaxPoints property, plot visualizations will look different than they did in earlier versions of FreeFlyer.


Each version of FreeFlyer now has its own dynamic license allocation (DLA) pool. This means that if a user opens two different versions of FreeFlyer connected to a single DLA-enabled network license, two licenses will be checked out instead of just one. This change was made to prevent issues that can be encountered by mixing versions in a single DLA pool.


Various Objects, Properties, Methods, and Functions have been deprecated

oDeprecated Objects, Properties, Methods, and Functions are elements of FreeFlyer which are no longer recommended for use. The description of each deprecated element indicates the new recommended way to achieve the functionality of that element. The complete list of affected elements is given on the Deprecated Objects, Properties, Methods, and Functions page.



See Also

Release History