The current version of FreeFlyer is the major release, FreeFlyer 7.10.0. You can find the full set of release notes for all past versions of FreeFlyer here.
|
New Features in FreeFlyer 7.10
Optical Communication
•Laser‑based communications capabilities between spacecraft and ground assets are now supported through the new OpticalLink object
oSupports end‑to‑end modeling of optical communication links including received power, losses, SNR, BER, and link margin
oPhysical modeling of real-world systems including APDs, PINs, preamplified detectors, and coherent receivers
oOn-Off Keying (OOK), Pulse Position Modulation (PPM), Differential Phase Shift Keying (DPSK) modulation schemes
oConfigurable model for estimating the impact of various atmospheric phenomena including meteorological visibility, rain rate, snow rate, and scintillation-induced fading
•Five new Sample Mission Plans have been added to the Coverage and Contact folder one to the Demos folder of the FreeFlyer install directory covering this new capability |
Multi-Objective Optimization
•Simultaneous optimization of multiple competing objectives is now supported through the new MultiObjectiveOptimizer object
oIntegrates directly with existing optimization functionality to easily implement complex multi-objective problems with simple FreeFlyer script solutions
oSupports both continuous and integer state variables, making it ideal for problems involving discrete choices such as constellation design, asteroid tours, or scheduling
•Employs industry-standard NSGA and SPEA genetic algorithms
•Supports brute force method for integer-only problems
oUses a Pareto front dominance framework, producing a family of non-dominated optimal solutions rather than a single answer, enabling trade studies between competing objectives (e.g., minimizing ΔV while maximizing mission lifetime)
oSolver settings such as population size, maximum generations, crossover/mutation rates, and Pareto front stall conditions can be customized to tune performance
•Constraints are represented as objectives, allowing constraint violations to be tracked and minimized alongside primary mission objectives
•Four new Sample Mission Plans have been added to the Optimization folder of the FreeFlyer install directory covering this new capability |
Optimization Enhancements
Orbit Determination Enhancements
•Added support for applying ionospheric and tropospheric media corrections to Trk‑2‑34 DSN tracking observations through the new DSNMediaCorrections object
oCorrections can be imported directly from Trk‑2‑23 calibration files or defined manually in script
oCorrections can be applied to range, range‑rate, and Doppler measurements, with models that account for ground station location, line‑of‑sight elevation, and calibration epoch windows
oThe DSNMediaCorrections.EvaluateMediaCorrection() method computes the media bias, which can then be applied directly to DSN observation measurements
•Added support for TRK‑2‑34 files to include DSN Pseudonoise (PN) range data, in addition to sequential range (SRA), Total Count Phase (TCP), and frequency ramping data
•Added an overload to the Filter.ProcessObservation() method that takes a List of Observations as an argument |
Spacecraft Object Enhancements
Data File Updates
•Updated the integrated AstroStds SGP4 library to version 9.5
•Updated CSSI Weather file validation to be less restrictive, no longer requiring a UTC tag on the date line
•Added support for customizing the location of IRI data files through the FF_SolarSystem.IonosphereOptions.IRIDataDirectory property
•Added support for negative leap seconds in FreeFlyer, ensuring full compliance with potential future timekeeping adjustments defined by international standards |
Miscellaneous Enhancements
Notable Fixes
•Resolved an issue where Matrix.PolynomialFit on large arrays consumed excessive memory
•Resolved an issue where the node hierarchy cache was not cleared when resetting a 3D model, preventing updated group information from being sent to ViewWindows
•Resolved an issue where the TrajectoryPhase.NodeColorMode setting interfered with optimization results, causing unintended effects on solution accuracy
•Resolved an issue where a TrajectoryPhase's force model was not initialized during calls to TrajectoryPhase.GetDefects() method
•Resolved an issue in the Runtime API where ffDestroyEngine could block indefinitely under certain conditions, which could prevent reliable engine shutdown
•Resolved an issue where updates to the currently loaded EOP file were not reloaded within FreeFlyer, requiring the application be restarted for changes to take effect; EOP data now refreshes automatically when the file is edited and saved
•Resolved an issue where user‑specified iono‑free pseudorange pairings could not be processed correctly, requiring all available pairings be used; FreeFlyer now properly supports individually defined pseudorange pairings for ionospheric bias removal
•Resolved an issue where SGP4StateEstimator.TLEHandler.SatelliteNumber could not process satellite ID 99999
•Resolved an issue where interpolating ephemeris data with attitude to the end epoch would fail using the Ephemeris.GetFullInterpolatedData() method
•Resolved an issue where PlateModel objects could not be loaded from file or string in certain configurations
•Fixed a bug where accessing the Optimizer.ScaledGradient property before calling Optimizer.LoadEngine() would cause FreeFlyer to terminate unexpectedly
•Fixed a crash that occurred when a gap existed between observed and predicted values in Space Weather Data files; FreeFlyer now handles missing data gracefully without terminating unexpectedly
•Fixed a bug in GroundStationObservation azimuth/elevation angle prediction with light‑time correction, where the ground station position was evaluated at the spacecraft turnaround time (t3) instead of the receive time (t4), leading to errors in Az/El calculations due to Earth rotation between downlink transmission and reception
•Fixed a bug where the Ephemeris.AddVectorData() method would throw an error when WriteCovariance was enabled
•Fixed a bug where the Spacecraft.AlongTrackSeparation(), RadialSeparation(), and CrossTrackSeparation() methods produced incorrect results when comparing spacecraft with different central bodies |
Migrating to FreeFlyer 7.10
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.10 and higher have necessitated a few changes which may require user intervention when migrating your existing Mission Plans. These changes are outlined below.
Licensing and Installation
•FreeFlyer licensing has transitioned from FlexNet to LicenseSpring. The current release supports only Node-Locked Licensing, while legacy licensing options (Network, Docker, AWS, etc.) are temporarily unavailable but will be restored starting in FreeFlyer 7.10.1. Users should refer to Node-Locked Licensing for instructions applicable to this version.
•Red Hat Enterprise Linux Version 7 is no longer supported. FreeFlyer 7.10 adds support for Red Hat Enterprise Linux Version 9, and users should upgrade to Red Hat Enterprise Linux Version 9 (or another supported platform) when migrating to this release.
•Windows 11 is now supported. FreeFlyer 7.10 adds support for Windows 11, while continuing to support Windows 10 for users migrating to this release. |
Modeling and Numerics
•Millisecond timing precision mode is deprecated and will be removed in a future release. We recommend that you migrate your Mission Plans to nanosecond timing precision mode. Review the Timing Precision Modes page for assistance in upgrading from millisecond to nanosecond mode. |
Deprecated Functionality
Various Objects, Properties, Methods, and Functions have been deprecated. Deprecated 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.
See Also
•Release History
|