*********************************************************************************** CelestLab - CNES Space mechanics toolbox for Scilab - Detailed Changelog *********************************************************************************** ==================================== Version 3.0.0 - March 27, 2013 ==================================== Overview of CelestLab 3.0.0 --------------------------- This version includes major improvements and a few changes. It is therefore not fully compatible with CelestLab 2.4.2, but only little changes are necessary to make old scripts work. Among the new features: - Many new reference frames (IERS 2010 conventions) - New models for the ephemerides of solar system main bodies (MEEUS, VSOP87, ELP, DE405) - Force + potential functions including for the full gravity model up to degree/order 70 (potential defined by spherical harmonics) - Extended definition of orbital elements (now 2 new types for equinoctial elements) - IAU planetary angles (orientation of equator and prime meridian) - New propagation model based on Lyddane (mean elements include secular and long period perturbation effects) - Many new utility functions: Gauss for all orbital element types, conversion of time scales, etc... - Magnetic field added (IGRF model).. Changes regarding predefined data: - No local variables are now created by default (except one for internal use). The function CL_init is still available, but it now only creates a limited set of variables. Internal data may be retrieved by a new function: CL_dataGet. There have been some changes to improve consistency and simplicity: some redundant variables have been removed (e.g. %CL_j2, ...) or renamed (e.g. %CL_muSun is replaced by: %CL_body.Sun.mu). - Some data have been updated. Gravity data (zonal terms) are now those from EGM96s gravity model. The default oblateness value is consistent with WGS84. - All date/time function arguments are now relative to a specific time scale called "TREF". Two new reference frames adapted to mission analysis are defined: "ECI" (nearly inertial frame) and "ECF" (rotating frame). - Documentation has been extended with new pages describing various topics (ephemerides, forces...). It also includes a section named "cookbook" where various complete examples are given. - Configuration features have been added for high level properties. - CelestLab v3.0.0 can be used with Scilab version 5.3.0 or higher. Summary of data changes versus 2.4.2 ------------------------------------ Note that as of v3.0.0, the variables %CL_xxx must be created explicitly by CL_init(). 1) No change: %CL_au, %CL_deg2rad, %CL_eqRad, %CL_j1jn, %CL_mu, %CL_obla, %CL_rad2deg 2) New Names: %CL_rotrEarth => %CL_rotrBody %CL_rotrEarthSun => %CL_rotrBodySun %CL_planetC => %CL_body 3) New ways to access data: %CL_muMoon => %CL_body.Moon.mu %CL_muSun => %CL_body.Sun.mu %CL_radiusMoon => %CL_body.Moon.eqRad %CL_radiusSun => %CL_body.Sun.eqRad %CL_earthRadius => %CL_body.Earth.eqRad 4) Removed variables because of multiple definitions: %CL_j2, %CL_j3, ... %CL_j6 => Now use: %CL_j1jn(2), %CL_j1jn(3), ... 5) No explicit creation: %CL_g0, %CL_gravCst, %CL_lightSpeed, %CL_criticalInc1, %CL_criticalInc2 => Now Use: CL_dataGet("g0"), CL_dataGet("gravCst") ... 6) No explicit creation / new names %CL_TAI_UTC, %CL_epsilon => Now Use: CL_dataGet("%CL_TAI_UTC_DATA"), CL_dataGet("epsOrb") (accessing these data should not be necessary) 7) Removed data %CL_obliquity2000 => No equivalent data in V3.0.0 *********************************************************************************** Detailed changelog: *********************************************************************************** New functions ------------- - Frame conversion functions compliant with IERS2010 conventions: CL_fr_convert, CL_fr_convertMat, CL_mod_siderealTime - Utility functions to simplify frame conversions : CL_rot_pvConvert, CL_rot_pvJacobian, CL_rot_compose - Models for ephemerides computation: CL_eph_moon, CL_eph_sun, CL_eph_planet, CL_eph_de405 - Forces and potential: CL_fo_xxx - Magnetic field: CL_mod_geomagField - Gauss equations: CL_op_gauss - Solar system bodies frames (IAU2009): CL_mod_IAUBodyAngles, CL_fr_bodyConvert, CL_fr_bodyConvertMat - New orbital elements: "equin", "cireq", "pv" CL_oe_equin2car, CL_oe_car2equin, CL_oe_equin2kep, CL_oe_kep2equin CL_oe_cireq2car, CL_oe_car2cireq, CL_oe_cireq2kep, CL_oe_kep2cireq - Generic function to convert orbital elements: CL_oe_convert - New analytical propagation model: CL_ex_lyddaneLp , CL_ex_meanLyddaneLp (the mean elements for this model include secular and long period effects.) - Generic function for analytical propagation: CL_ex_propagate / CL_ex_meanElem - New time scales: CL_dat_tcb2tdb, CL_dat_tdb2tcb - Generic function to convert dates and time scales: CL_dat_convert, CL_dat_scaleConvert - Interpolation in quaternions: CL_rot_interpQuat - Visibility: CL_gm_stationVisiLocus, CL_gm_stationPointing - Relative motion: CL_cw_propagate, CL_cw_propagateMan, CL_cw_lambert - Mathematical functions: CL_chebyshevEval, CL_chebyshevPoly, CL_legendrePoly, CL_quantile, CL_sphHarmVal, CL_sphHarmGrad, CL_fsolveb, CL_unMod, CL_mean, CL_interpLin - Utility functions: CL_version, CL_dataGet, CL_configGet, CL_configSet, CL_hms2sec, CL_sec2hms, CL_deg2sdms, CL_sdms2deg, CL_dat_cal2str, CL_dat_str2cal, CL_dat_now, CL_sortMat, CL_getEarthMap - CL_ev_visibilityExtr in replacement of CL_ev_visibility - CL_op_locTime in replacement of CL_op_locTimeG50 - CL_rot_angVelocity in replacement of CL_rot_angularVelocity - Convenience function: CL_mod_atmUS76Density Improved/changed functions -------------------------- - CL_rot_quat2axAng: The returned angle is now in [-pi, pi]. (previously in [0,2pi]) - CL_rot_quat2matrix, CL_rot_matrix2quat: Addition argument: derivative of quaternion - CL_inputParam, CL_defParam: New types of input accepted: string and calendar format - CL_unitConvert: 3 calling sequences are now accepted. If units do not exist, the function returns an error (used to return []) - CL_dat_cal2cjd: Input arguments year month day hour minute second can now be row vectors or scalar. - CL_gm_eclipse: The argument of latitude (aol) of the end of eclipse is now always superior to the aol of the beginning of eclipse. - CL_kp_M2E: New algorithm. Faster and works better for eccentricities close to 1. New function is usable for any eccentricity except exactly 1. - CL_kp_M2Ecir: Use CL_kp_M2E internally. New function is now usable for any eccentricity below 1. - Functions CL_oe_xxx: All functions have been recoded. Not computable terms are set to %nan (an error was returned previously) - CL_co_car2sph, CL_co_sph2car: Argument vel_sph renamed in pos_sph_dot. New calling sequences available (to retrieve a 3x3 jacobian for example) - CL_oe_car2kep, CL_oe_kep2car: Parabolic orbits not handled anymore. Reason: The first parameter of parabolic orbits is the semi-lactus rectum p, not the semi-major axis. - Optional argument "zonals" has been renamed to "j1jn". Impacted functions: CL_op_frozenOrbit, CL_op_frozenOrbitDer, CL_ex_eckHech, CL_ex_eckHechInfos, CL_ex_meanEckHech, CL_ex_lyddane, CL_ex_lyddaneInfos, CL_ex_lyddaneMan, CL_ex_meanLyddane - CL_graduate: Better results - CL_integrate: New (more precise) methods added - CL_interpLagrange: Additional output argument returned (values of interpolating polynomials derivatives) - CL_lambert: Algorithm is now faster and more robust. - CL_path: The function can now search for files recursively in sub-directories New demos --------- - Frame conversion utility - Geoid - Solar system 1 - Solar system 2 - Geomagnetic field Miscellaneous ------------- - New functionnality: CelestLab configuration (preferences). - The CelestLab menu has been extended. - New item: "Edit configuration file": It is now possible to edit the configuration file. The structure of the configuration file has also been modified. - New item: "About CelesLab" - A CelestLab banner is displayed when CelestLab is loaded. Bugs fixed ---------- - CL_kp_M2E: A bug could happen when input arguments were matrices (PxN) - CL_mod_polarMotionMatrix: the returned matrix was incorrect (wrong order for xp,yp). - CL_ex_meanEckHech: sometimes, there was no convergence if initial argument of latitude was not in [0, 2*pi]. - CL_co_car2sph: problem in the vectorisation of the computation of the jacobian (/ instead of ./) - CL_ex_lyddane: Small correction of the effect of J5 (model for the osculating elements) - CL_ex_lyddane: Correction of a vectorization error. Data ---- - The way data are handled in CelestLab has been modified: CL_init() is now mandatory in order to create variables (%CL_xxx) in the local environment. (only 13 most commonly used "constants" are loaded) - The rest of the data is available via the function CL_dataGet. Example: muSun = CL_dataGet("body.Sun.mu") - The directories containing data has been reorganized. (new sub-directories created) - %CL_TAI_UTC renamed to %CL_TAI_UTC_DATA - New time data: %CL_TAI_UTC, %CL_TT_TAI, %CL_TT_REF, %CL_UT1_TREF - New solar radiation pressure data: %CL_totalSolarIrradiance - Some values have been upgraded to be consitent with IAU2009 standards : gravitation constants of planetes+satellites (barycentre), %CL_au, %CL_gravCst - New gravity model data: EGM96s (70x70) - %CL_j1jn updated to EGM96s values - %CL_j2 removed. %CL_j1jn(2) should be used instead. - Same for: %CL_j3, %CL_j4, %CL_j5, %CL_j6. - %CL_obliquity2000 removed. - %CL_rotrEarth and %CL_rotrEarthSun renamed into %CL_rotrBody and %CL_rotrBodySun - %CL_rotrBody and %CL_rotrBodySun depend on the configuration setting (preferences) (different values if ECI=Veis or ECI=CIRS) - %CL_planetC replaced by %CL_body - %CL_muSun, %CL_radiusSun, %CL_muMoon, %CL_radiusMoon removed, use %CL_body... Documentation ------------- - The documentation of CelestLab ("Introduction" section) has been updated with lots of new contents: Flight dynamics details, cookbook, etc... Deprecated functions -------------------- Many deprecated functions. Functions become deprecated because they can be replaced by new ones, or sometimes because they are considered as badly designed and/or not very useful. The deprecated functions can still be used, but be aware that they will be removed one day. The whole list is: - CL_rot_angularVelocity (use CL_rot_angVelocity) - CL_dat_cal2jd, CL_dat_cjd2jd, CL_dat_cjd2mjd, CL_dat_jd2cal CL_dat_jd2cjd, CL_dat_mjd2cjd (use CL_dat_convert) - CL_fr_G502J2000, CL_fr_G502J2000Mat, CL_fr_G502ter, CL_fr_G502terMat CL_fr_H0n2J2000Mat, CL_fr_J20002G50, CL_fr_J20002ter, CL_fr_ter2G50 CL_fr_ter2J2000, CL_fr_ter2J2000Mat (use CL_fr_convert) - CL_oe_car2cirEqua, CL_oe_cirEqua2car, CL_oe_cirEqua2kep, CL_oe_kep2cirEqua (use new orbital elements "cireq" or "equin") - CL_mod_equinoxesEquation, CL_mod_meanObliquity, CL_mod_nutationAngles CL_mod_nutationArg, CL_mod_nutationMatrix, CL_mod_polarMotionMatrix CL_mod_precessionAngles, CL_mod_precessionMatrix, CL_mod_sidTime, CL_mod_sidTimeG50 - CL_ev_visibility (use CL_ev_visibilityExtr) - CL_gm_stationElevation (use CL_gm_stationPointing) - CL_op_locTimeG50 (use CL_op_locTime) - CL_mod_moonSunG50, CL_mod_planetsG50ecl (use CL_eph_moon, CL_eph_sun, CL_eph_planet or CL_eph_de405) - CL_mod_expDensity, CL_mod_expDensityDrag, CL_cw_diffDrag - CL_fr_ter2topoN et CL_fr_topoN2ter - CL_matSort (use CL_sortMat) - CL_cw_twoImpulse (use CL_cw_lambert), CL_cw_impulPropa, CL_cw_contPropa, CL_cw_ballisticPropa (use CL_cw_propagate) ==================================== Version 2.4.2 - July 27, 2012 ==================================== - One bug fixed in CL_rot_quat2axAng (which sometimes returned a wrong rotation angle). - One new demo (in the "relative motion" section). - Improvement/adaptation of the functions: CL_rot_quat2axAng, CL_rot_axAng2quat, CL_rot_quatSlerp. - The CelestLab menu has been extended. Bugs fixed ---------- - CL_rot_quat2axAng: the rotation angle was sometimes incorrect (for angles > 180 deg). Improved/changed functions -------------------------- - CL_rot_quat2axAng, CL_rot_axAng2quat: The convention for undefined axes (identity quaternion) has changed: instead of returning [%nan;%nan;%nan] CL_rot_quat2axAng now returns [0;0;0]. This is more consistent with the way %nan is handled in CelestLab, and also with CL_rot_axAng2quat which accepted [0;0;0] as input in practice. The rotation angle returned by CL_rot_quat2axAng is now in [0, pi]. - CL_rot_quatSlerp: code has been simplified. New demos --------- - Enforced linear relative motion Miscellaneous ------------- - The CelestLab menu has been extended. It is now possible to edit the data files that contain the values of CelestLab predefined variables. ==================================== Version 2.4.1 - July 20, 2012 ==================================== - A few minor changes, mostly the update of the detailed changelog that was not exact. - 2 new demos (relative motion and Hohmann <-> continuous thrust) - Improvement of the functions: CL_cw_Mmatrix and CL_cw_Nmatrix Improved functions ------------------ - CL_cw_Mmatrix, CL_cw_Nmatrix New demos --------- - Continuous versus Hohmann - Keplerian relative motion ==================================== Version 2.4.0 - July 10, 2012 ==================================== This version is a "minor" version that includes a few improvements. The main features (in comparison with 2.3.0) are: - 11 new functions: - 7 new demos - A few bugs fixed - A total of 16 functions are now deprecated. New functions ------------- - New maneuver functions (old maneuver functions are now deprecated) CL_man_applyDvKep, CL_man_dvApsidesLine, CL_man_dvBiElliptic, CL_man_dvHohmann, CL_man_dvHohmannG, CL_man_dvIncRaanCirc, CL_man_dvInc, CL_man_dvSma => deltav (sum of norms) is now always returned as 1st argument => velocity increments are in cartesian coordinates - CL_gm_orbSphTriangle - CL_op_equatorialSwath - CL_integrate - CL_home (see below) Improved functions ------------------ - CL_rot_angles2quat, CL_rot_angles2matrix: now accepts an unlimited number of successive rotations (previously limited to 1,2 or 3 rotations) - CL_plot_earthMap, CL_locationInfo: data is now stored in a binary files (previously stored as ASCII files). The loading time is shorter and files are smaller. - CL_unitConvert: addition of 3 news units : arcmin, arcsec, mas (=milli arcsec) - CL_dat_utc2tai, CL_dat_tai2utc: Code rewritten. It is now more rigourous and faster. - CL_rot_angles2quat, CL_rot_axAng2quat, CL_rot_matrix2quat: empty input arguments are now correctly handled. - CL_g_stdaxes: The size of the font is now proportional to the size of the figure by default. - Overloading of quaternions: Implicit size operator (ex: 2:$) is now handled. - The code of a few functions has been simplified and improved (CL_kp_xxx, CL_ip_xxx, CL_op_raan2beta,...). - CL_op_raan2beta, CL_op_beta2raan: in some cases %nan is now returned (before: an error was raised). Bugs fixed ---------- - CL_rot_angularVelocity: Depending on the rotation sequence, the angular velocity vector could be incorrect. The convention for the angular velocity vector returned is now clearly documented. - CL_fr_J20002ter,CL_fr_ter2J2000: The velocity and jacobian computation was not correct (due to the bug above). The effects were small in practice (effect of precession and nutation on velocity). - CL_man_hohmannG: The tue anomaly of the first maneuver was sometimes erroneous. - CL_man_inclination: The computed DV with option=0 was not always the optimal DV. - CL_man_lambert: If the case positions are aligned, the function now returns %nan (before, there was a "division by zero"). - CL_ex_lyddaneInfos: Optional arguments were not taken into account. Interface changes ----------------- - CL_fr_ter2topoN,CL_fr_topoN2ter: argument "obl" replaced by "obla". but obl is still possible. - The argument "conv" in a few frame conversion functions has been replaced by "conv_iers", because conv is a reserved keywork in scilab 5.4. But this has little impact as only one option is possible in practice. Data ---- - Most recent leap second added in TAI_UTC.scd file. From July 1st 2012, 0h: TAI-UTC = 35 seconds. NB: Two functions (CL_dat_utc2tai and CL_dat_tai2utc) use these data. See also CL_init(). New demos --------- - Sun elevation on Earth - Satellite local time - Solar zenith angle 1 - Solar zenith angle 2 - Cost of inclination change - circular - Cost of inclination change - elliptical 1 - Cost of inclination change - elliptical 2 Documentation ------------- - Some functions from the "Utilities" folder have been moved to a new folder: "Math". - The CelestLab overview help page now contains links to external pages about CelestLab. Deprecated functions (will generate a warning message in CelestLab v3.x, and will be permanently deleted in CelestLab v4.0) -------------------- - CL_man_applyDv, CL_man_apsidesLine, CL_man_biElliptic, CL_man_hohmann, CL_man_hohmannG, CL_man_incRaanCirc, CL_man_inclination, CL_man_sma (use new maneuver functions instead) - CL_gm_lat2loctime, CL_gm_locSolTime (use CL_gm_orbSphTriangle instead) - CL_gm_equatorialSwath, CL_gm_equatorialOverlap (use CL_op_equatorialSwath instead) - CL_colNorm, CL_colMult (use CL_norm and CL_dMult instead) - CL_rot_eul2quat, CL_rot_quat2eul (use CL_rot_angles2quat and CL_rot_quat2angles instead) Internals --------- - All the internal global variables have been replaced by one unique variable (structure): %CL__PRIV. NB: %CL__PRIV is a "private" variable, supposed to be accessed by CelestLab functions only. - The variable %CL_home has been removed. It has been replaced by a new function: CL_home(). ==================================== Version 2.3.0 - January 31, 2012 ==================================== - 10 new functions: - A few bug fixed (one major in CL_fr_locOrbMat) - A few functions improved New functions ------------- - CL_gm_inters3dLineEllips, CL_gm_inters3dConeSa. - CL_op_shortPeriodsJ2Circ. - CL_ex_eckHechInfos, CL_ex_lyddaneInfos. - CL_oe_cir2kep, CL_oe_kep2cir. - CL_interpLagrange, CL_ev_visibilityEph. - CL_intervDiff. Improved functions ------------------ - CL_rot_quat2axAng: now has a better accuracy for quaternions almost equal to identity. - CL_matSort: now accepts [] as input argument. - CL_intervUnion: intervals of zero length are now deleted. - CL_ex_eckHech: initial version did not allow for perfectly frozen orbits. (oscillation of second order of magnitude of 4.e-7 on mean ex) A correction of 4.e-7 on mean ex has been applied. Note that the present version is not the "standard" version. - Quaternions: q*a and q/a now work if: 1) a = scalar and dim(q) = whatever 2) a = row vector and dim(q) = 1 - CL_op_frozenOrbitDer : now returns %nan for dpom/dt if the result is undefined (ecc = 0 or inc = 0 or pi) - CL_g_legend : now has a similar interface as scilab function "legend" (1st argument = axes or array of handles) - CL_g_select : now accept an arry of handles as first argument - CL_plot_earthMap, CL_plot_ephem: now more efficient (only one call to "plot") - Help pages about orbital elements and description of jacobians improved. Bugs fixed ---------- - CL_fr_locOrbMat: The matrix was not always correct. - CL_rot_matrix2quat: conversion of a matrix close to identity could sometimes fail. - CL_gm_stationElevation: numerical accuracy improved. - CL_intervInters: code simplified and now safer. - CL_intervInv: Documentation updated (it was not correct). The function now doesn't return intervals of zero length or outside range. - CL_g_tag, CL_g_select: now works with more types of objects, including uimenu. - CL_oe_car2kep: Correction in the case of a zero inclination (elliptical orbits). The right ascension of the ascending node was incorrectly initialized. Now it is set to 0. - Compilation of the help files was failing on Linux (case sensitivity). ==================================== Version 2.2.0 - July 27, 2011 ==================================== - 9 new functions: - 7 new demos - Several functions improved (performance, simplicity of code) - A few bugs fixed - 2 deprecated functions New functions ------------- - CL_gm_reflectionPtSph, CL_gm_eclipse, CL_gm_eclipseCheck. - CL_rot_angles2quat, CL_rot_matrix2angles, CL_rot_quat2angles, CL_rot_defRot1ax, CL_rot_defRot2ax. - CL_locationInfo. Improved functions ------------------ - CL_op_frozenOrbit: algorithm simplified and performance improved. - Quaternions: rewrite of all overloading functions. Operations : q1 q2, with op = +, -, *, /, etc... work even if the arguments don't have the same size (i.e. one of the argument has size 1). Nearly all operations work with empty quaternions. - CL_plot_earthMap: addition of a higher resolution map, and possibility to use elliptical or spherical coordinates. - CL_gm_betaEclipse: now handles elliptical orbits. - CL_rot_defRotVec: algorithm simplified and performance improved. - CL_rot_defFrameVec: can now return a matrix or a quaternion. Warning: CL_rot_defFrameVec(u, n1) is now forbidden. Use CL_rot_defFrameVec(u,u,n1,n1) instead. - CL_3b_environment: added Sun-Jupiter. - CL_op_rarp2ae, CL_op_rpvp2ae, CL_op_rava2ae, CL_op_rpvinf2ae: better arguments handling New demos ------------- - Sun and Moon Directions. - Moon phases. - Cost of RAAN drift rate change. - Sun glint. - Drifts due to J2. - Image of vector by 2 rotations. - Cost of perigee/apogee altitude change. Bugs fixed ---------- - CL_op_repeat2smaInc: function could sometimes return an error (instead of %nan) when there was no solution. - CL_rot_quat2eul, CL_rot_eul2quat: erroneous results (fixed). These functions are now deprecated. Use CL_rot_quat2angles, CL_rot_angles2quat. - CL_op_frozenOrbitDer: erroneous results (fixed). - CL_rot_angularVelocity: a bug could occur if the user had modified the format. - CL_op_frozenOrbit: eccentricity could be negative in some cases. Deprecated functions -------------------- - CL_rot_quat2eul - CL_rot_eul2quat ==================================== Version 2.1.1 - January 6, 2011 ==================================== - Correction of 2 demos - 1 (minor) bug fixed Changes ------- - Corrections of 2 demos (Ground_stations_visibility.sce and Repeating_ground_tracks_2.sce) that did not work when CelestLab was loaded via ATOMS (some CelestLab data were not initialized) - Minor bug fixed in CL_op_repeat2smaInc: test on eccentricity did not assume vectors ==================================== Version 2.1.0 - December 22, 2010 ==================================== Changes: - 4 New functions - A few bugs fixed - Several functions improved (performance, simplicity of code) - Celestlab predefined data are now loaded from files (see CL_init) New functions ------------- - CL_path - CL_dMult (CL_colMult is now deprecated, use CL_dMult) - CL_rot_defRotVec - CL_rot_defFrameVec Functions improved ------------------ - CL_ex_meanEckHeck, CL_ex_meanLyddane: simplified code, improved accuracy. - CL_ex_lyddane, CL_ex_eckHech, CL_ex_secularJ2: output angles are now "continuous" (no modulo 2*%pi anymore). - CL_init : now uses external files found in /data/utils. It is now easier for users to see and redefine constants, update TUC-TAI... - Demo "Repeating ground tracks 2": option for sun-synchronous orbits. - Demo "exponential density" and "US76 density": improved. - CL_vectAngle: now uses asin (with cross product) when vectors are almost aligned. Improves accuracy. - CL_dot, CL_vectAngle: now handle cases where the input arguments are (3xN) and (3x1). - Overloading of hypermatrices (%hm_*): simpler code and improved performance. - CL_fr_ter2topoN, CL_fr_topoN2ter: simpler code. Now handle cases where one input is (3xN) and the other input is (3x1). If position or velocity are not provided, corresponding outputs are now []. - CL_rot_axAng2quat: If the angle is 0 and the axis is %nan, the output quaternion is identity (instead of %nan). If the angle is not 0 and the axis is %nan: the output quaternion is %nan. - CL_mod_US76: small correction of code and efficiency significantly improved. - CL_fr_*, CL_oe_*: performance of jacobian calculation significantly improved. Bugs fixed ---------- - Demos Halo manifold and Halo orbits: option for prograde and retrogade are now 1 and 0 respectively (instead of 2 and 1) - CL_op_locTimeG50: "tlt" and "mlt" replaced by "tsa" and "msa" (but still recognized for compatibility) - CL_vectAngle, CL_stumpC, CL_stumpS: did not properly propagate %nan - CL_mod_moonSunG50 : did not properly handle the argument names "moon" and "sun" - CL_fr_ter2G50, CL_fr_ter2G50: there was a problem when velocity was not provided - CL_ex_lyddaneMan: an output date was incorrectly set to 0 - CL_ex_lyddane: when using this function with vectors and e > 0.05, the output semi-major axis was incorrect (error ~20m) - CL_colMult, CL_cross: did not correctly handle [] - CL_op_driftJ2: dM/de was incorrect - CL_mod_expDensity: percentile 33 gave incorrect results - CL_op_rarp2ae: mu removed from inputs because it is not used in this function - CL_ev_visibility: fixed example. Problem when dealing with long simulation and/or small time steps. - CL_rot_quat2eul: problem that gave incorrect results for angles > %pi - CL_plot_*: used to set immediate_drawing to "on" thus erasing user's preference. - CL_fr_topoNMat: documentation about input arguments - CL_gm_eclipseCir: sizes of input arguments were not correctly tested ================================== Version 2.0.1 - June 3, 2010 ================================== - Handling of global variables in CelestLab. You can now set for example %CL_mu=3.8e14 in the console and that variable will be used consistently throughout CelestLab, whereas you used to have to modify the global variable to do that. - Several bugs fixed - New demo : Visibility / Accessibility at equator - CL_ev_visibility : Bug fixed. Now returns [] when no visibility is found. - CL_ev_visibility : Keplerian propagation added : 'kep', in order for this function to be useable for hyperbolic orbits. - CL_oe_car2kep and CL_oe_kep2car : Improvements to code in order to correctly handle low eccentricities and low inclinations. In particular the accuracy has improved for low eccentricity orbits. - CL_man_lambert : Perfomance dramatically improved. (~40 times faster) - CL_stumpC : CL_stumpC(0) now correctly returns 1/2. - New demos : demos/Visibility/Accessibility_at_equator.sce - CL_ex_lydanne, CL_kp_M2E and CL_kp_M2Ecir : Now use less memory. ================================== Version 2.0.0 - March 22, 2010 ================================== NB: Some interfaces have been improved. Therefore, this version is not fully compatible with the previous one. Changes: - A few anomalies corrected - Several functions added - Several new demos (with enhancements) - Various improvements to documentation - Improved error handling in several functions - Improved performance and code of several functions simplified - A few functions removed (should be replaced by new improved functions in the future) - A few functions/constants/arguments renamed (for library consistency) - Some interfaces modified Removed functions ----------------- - Events functions (CL_ev_xxx) removed. They will be replaced by new functions in the next version. - CL_gm_sunZenithAngle removed. Might be replaced by a new function in the next version. - CL_fr_teme2J2000Mat removed. New functions ------------- - CL_ip_sphereInfluence - CL_ip_escapeDv - CL_ip_insertionDv - CL_fr_locOrbMat - CL_rot_quat2axAng - Graphic functions : CL_g_xxx - CL_graduate - CL_autoLevels - CL_defParam - CL_inputParam - CL_unitConvert - CL_norm Renamed functions/constants/arguments ------------------------------------- - CL_op_locTime --> CL_op_locTimeG50 because the frame is necessarily Gamma50 (Veis) - %CL_omSun --> %CL_rotrEarthSun - Pluton --> Pluto - %CL_planetC.xxx.R --> %CL_planetC.xxx.eqRad - %CL_planetC.xxx now contain an extra field : mu - %CL_planetC.earth characteristics are now equal to %CL_eqRad, %CL_mu and %CL_obla. - %CL_UA --> %CL_au - Optional arguments : om_earth --> rotr_pla and om_sun --> rotr_pla_sun - CL_man_lambert : R1, R2 --> pos1, pos2 ; sense --> direction ; dt --> delta_t - CL_dsp_covCoord : means1,means2 --> param1,param2 and coord --> conv1to2 - CL_M2Egene --> CL_M2Ecir - CL_co_car2ell and CL_co_ell2car : obl --> obla - CL_colGcd --> CL_gcd - CL_gm_visibility --> CL_ev_visibility Modified outputs ---------------- - CL_gm_stationElevation : result is now NxM instead of MxN - CL_gm_sphericDist : result is now the angle instead of the distance - CL_kp_characteristics : result is now a structure (instead of a tlist). Some fields names have changed but old names are still recognized. - CL_ex_kepler : Date is not in the output anymore. Mean anomaly is not between 0 and 2*%pi anymore (no modulo). - CL_rot_rotVect : The output vector is now the rotated vector (and not the coordinates of the same vector in the rotated frame). - CL_3b_halo and CL_3b_lissajous : Date is not in the output anymore. Reworked interface ------------------ - CL_dsp_kepCovPropa (See documentation for details) - CL_gm_eclipseCir (See documentation for details) - CL_op_loctimeG50 and CL_gm_visiParams : can now have several outputs, "all" returns a structure. - CL_3b_manifold: Dates of the Halo or Lissajous orbit now have to be given as inputs. Improved functions ------------------ - CL_plot_ephem and CL_plot_earthMap : better handling of view area. Additional optional arguments - CL_dat_xxx : rewritten algorithms. These functions are now valid for ... - CL_gm_stationElevation : improved performance. - CL_op_M2E and CL_op_M2Egene (now renamed CL_M2Ecir) : rewritten algorithms. Faster convergence. - CL_colMult,CL_colNorm,CL_unitVector and CL_vectAngle : improved performance. - CL_ex_lyddaneMan : Simplified algorithm Bugs fixed ---------- - %CL_TAI_TUC was not up to date - bug in CL_mod_nutationMatrix - Intervals functions (CL_interv xxx) now correctly handle empty arrays [] - CL_rMod now correctly handles empty arrays [] - CL_op_searchRepeatOrbits and CL_op_repeat2smaInc : improved convergence (it could cause bugs) - Functions CL_dat_xxx : correction of bugs - CL_rot_quatSlerp : was not valid for vectors - CL_M2E and CL_M2Egene : didnt work in some cases. - bug in CL_plot_ephem - CL_fr_G502J2000, CL_fr_G502ter and all the combinations : correction of bugs when using optionnal arguments. - Removed useless optional arguments ut1,xp,yp from CL_fr_G502J2000, CL_fr_G502J2000Mat, CL_fr_J2000G50 - CL_man_incRaanCirc : didnt work for vectors - bug in CL_man_biElliptic ================================== Version 1.0.1 - December 18, 2009 ================================== Changes: - Improvement of demos - Correction of CL_gm_equatorialOverlap.sci - Correction of CL_gm_equatorialSwath.sci (vectors [1,n] instead of [n,1]) - About page (explanations on constants) ================================== Version 1.0.0 - December 17, 2009 ================================== First version.