diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eb7e3f..27540b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,49 @@ ### Change log +## [v1.3](https://github.com/Noiredd/PEGAS/releases/tag/v1.3) "Olympus" (2022-10-02) +The final major version of PEGAS: now it has _all you might possibly use_. + +##### Features: +* GUI overhaul: better reporting of the vehicle and guidance status, +including an event-by-event **flight plan** display (#37), which is possible because... +* UPFG is now aware of jettison and shutdown events *before* they happen (via a mechanism called [_virtual stages_](docs/magic.md)) +* new passive guidance mode, `pitchProgram`, allows fine-tuning the ascent with a pitch-altitude schedule - **by [Aram1d](https://github.com/Aram1d)** +* new event type: `shutdown`, allows shutting down specific engines (by part tags), **also during active guidance** +* new event type: `action`, allows execution of standard action groups +* new ullage type: `hot`, allows hot-staging by reversing the jettison-ignition order +* new staging option: `postStageEvent`, allows jettison _after_ ignition (e.g. an interstage ring, Saturn-style) +* addons: you can now create custom extensions to PEGAS +an [addon sharing repository](https://github.com/Noiredd/PEGAS-addons) has also been started + +##### Tweaks: +* unscheduled loss of thrust will now be detected and handled by aborting the mission +* known errors in vehicle/controls configuration will now crash the system _prior to launch_ +* improved error checking for vehicle staging configuration +* "jettison but no ignition" configuration on a first stage is now banned - instead, use either the `postStageEvent` option in `staging` or the jettison event in `sequence` +* settings are now grouped together in a lexicon instead of being a bunch of scatterred globals +* default settings have been changed to relax the overly strict convergence criterion and increase the initial convergence time + +##### Fixes: +* PEGAS will now maintain min-AoA control while initially converging UPFG +* UFPG will not longer steal control the instant it converges, but actually wait until the moment defined by user in `controls["upfgActivation"]` +* throttle control in active guidance phase now correctly (i.e. instantly) switches between constant-acceleration and default modes +* countdown clock is now accurate +* documentation upgrades + +##### Under the hood: +* unified events system (`pegas_events`): no more "user", "staging", and "system" events (#43) +* refactored the passive guidance loop, moving the atmospheric guidance part to a new module, `pegas_atmo` +* `initializeVehicle` renamed to `initializeVehicleForUPFG` and refactored +(`recalculateVehicleMass`, `accLimitViolationTime`, and `createAccelerationLimitedStage` have been merged into it) +* for legibility, `stagingInProgress` is now used consistently and several new technical flags are introduced (see [e8c051b](../../commit/e8c051b)) +* version number is no longer stored in the UI code ;) + + ## [v1.2](https://github.com/Noiredd/PEGAS/releases/tag/v1.2) (2021-01-17) New CSE routine, delegate events, and several minor fixes. ##### Features: -* new Conic State Extrapolation routine by [pand5461](https://github.com/pand5461), +* new Conic State Extrapolation routine **by [pand5461](https://github.com/pand5461)** * delegate events - call any function at any time via `sequence` * cleaner settings system @@ -12,11 +51,12 @@ New CSE routine, delegate events, and several minor fixes. * fixed a typo in the comms module * cleaner pre-check routine with better feedback + ## [v1.1](https://github.com/Noiredd/PEGAS/releases/tag/v1.1) (2017-11-05) Multiple fixes for bugs identified after the initial release and new features requested since. ##### Features: -* inter-CPU communication system by [Patrykz94](https://github.com/Patrykz94), +* inter-CPU communication system **by [Patrykz94](https://github.com/Patrykz94)**, * roll control via user events, * better throttle control via user events, * new user event type (`jettison`) to account for the amount of jettisoned mass, @@ -30,6 +70,7 @@ Multiple fixes for bugs identified after the initial release and new features re * sustainer-type stages are now handled properly, * minor code clean-ups, GUI and documentation fixes. + ## [v1.0](https://github.com/Noiredd/PEGAS/releases/tag/v1.0) (2017-07-30) Initial release of PEGAS in its current form (all old code has been removed), introducing the Unified Powered Flight Guidance (UPFG) algorithm. diff --git a/README.md b/README.md index 73d9f61..f9d2238 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,23 @@ # PEGAS -*Powered Explicit Guidance Ascent System*, from here referred to as *PEGAS*, is an ascent autopilot for Kerbal Space Program made and ran in [kOS](http://forum.kerbalspaceprogram.com/index.php?/topic/61827-122-kos-scriptable-autopilot-system-v103-20161207/), designed to control launch vehicles under a modified version of the game running [Realism Overhaul](http://forum.kerbalspaceprogram.com/index.php?/topic/155700-113-realism-overhaul). +PEGAS, short for *Powered Explicit Guidance Ascent System*, is an ascent autopilot for Kerbal Space Program using the [kOS](http://forum.kerbalspaceprogram.com/index.php?/topic/61827-122-kos-scriptable-autopilot-system-v103-20161207/) mod. +It is designed to control launch vehicles under a modified version of the game running [Realism Overhaul](http://forum.kerbalspaceprogram.com/index.php?/topic/155700-113-realism-overhaul) (although it should run in vanilla as well). Its unique feature is the implementation of a real-word rocket guidance algorithm: Unified Powered Flight Guidance, as used in the **Space Shuttle** GN&C computer for the standard ascent flight mode. Short list of what PEGAS is capable of: -* estimation of a launch window, -* calculation of a launch azimuth, -* simple atmospheric ascent by pitching over and holding prograde with zero angle of attack, -* automatic guidance to orbits defined by: - * apoapse - * periapse - * inclination - * longitude of ascending node - * or, alternatively, selecting an existing target, -* executing timed events (engine ignition, payload fairing jettison, or anything you want - via delegates), -* automatic staging, complete with ullage handling, +* estimation of the launch window, +* calculation of tha launch azimuth, +* atmospheric ascent (pick one of two guidance methods), +* automatic guidance to orbits defined by apoapse, periapse, inclination & LAN *or* selecting a target, +* execution of timed events (e.g. throttle control, engine shutdown, jettison, even custom activities via kOS delegates), +* automatic staging, complete with jettison, ullage, and ignition, * ...and nearly anything else you want - via [addons](docs/addons.md)! More info on my KSP [forum thread](http://forum.kerbalspaceprogram.com/index.php?/topic/142213-pegas-powered-explicit-guidance-ascent-system-devlog/), also see my [prototype repository](https://github.com/Noiredd/PEGAS-MATLAB). -## **[Version 1.2 is here!](https://github.com/Noiredd/PEGAS/releases/tag/v1.2)** +## **[Version 1.3 "Olympus" is here!](https://github.com/Noiredd/PEGAS/releases/tag/v1.3)** ### How to use 1. Make sure you have [kOS](http://forum.kerbalspaceprogram.com/index.php?/topic/61827-122-kos-scriptable-autopilot-system-v103-20161207/) installed. Note: [basic](http://ksp-kos.github.io/KOS_DOC/language.html) knowledge of kOS will be very handy. -2. Dowload files from this repository's [kOS folder](kOS) and place them in your `Script` folder. +2. Dowload the program files for [the current release](https://github.com/Noiredd/PEGAS/releases/tag/v1.3) and place them in your `Script` folder. 3. Define your vehicle and mission - see [tutorial](docs/tutorial.md) and [reference](docs/reference.md). 4. Once on the launch pad, load the definitions from pt. 2. and type `run pegas.` in kOS terminal. diff --git a/kOS/pegas.ks b/kOS/pegas.ks index 57f36f5..65fd3ef 100644 --- a/kOS/pegas.ks +++ b/kOS/pegas.ks @@ -1,4 +1,4 @@ -GLOBAL _PEGAS_VERSION_ IS "v1.3-alpha". +GLOBAL _PEGAS_VERSION_ IS "v1.3". // Check if all necessary variables have been defined, exit early otherwise. RUN pegas_precheck.