Search NASASearch

SEARCH · Search NASA

Results for “autocoding”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

State-Chart Autocoder

A computer program translates Unified Modeling Language (UML) representations of state charts into source code in the C, C++, and Python computing languages. ( State charts signifies graphical descriptions of states and state transitions of a spacecraft or other complex system.) The UML representations constituting the input to this program are generated by using a UML-compliant graphical design program to draw the state charts. The generated source code is consistent with the "quantum programming" approach, which is so named because it involves discrete states and state transitions that have features in common with states and state transitions in quantum mechanics. Quantum programming enables efficient implementation of state charts, suitable for real-time embedded flight software. In addition to source code, the autocoder program generates a graphical-user-interface (GUI) program that, in turn, generates a display of state transitions in response to events triggered by the user. The GUI program is wrapped around, and can be used to exercise the state-chart behavior of, the generated source code. Once the expected state-chart behavior is confirmed, the generated source code can be augmented with a software interface to the rest of the software with which the source code is required to interact.

Clark, Kenneth

Developing a Multi-Lingual Autocoding Interface for the MAVERIC-II Dynamics Simulator

Simulation model development in certain high-level languages such as Python, MATLAB, or Simulink are unparalleled by their convenience and rapid turnover time. However, legacy simulation engines often depend on more traditional languages such as FORTRAN or C/C++. The NASA Marshall Aerospace Vehicle Representation in C version II (MAVERIC-II) is a modular, legacy-derived computer program used for high-fidelity, 6 degree-of-freedom (6dof) simulation for aerospace vehicle flights and analyses of guidance and control performance with built-in mathematical modeling of environmental effects such as wind, atmosphere, and gravity as well as dispersion capability for Monte Carlo analysis. MAVERIC-II is modular in the sense that each component software element of the simulation engine may be supplanted for a higher or lower fidelity version. The design flow of the development of these models is often performed in high-level languages as mentioned previously, which must then be translated into C or C++ code to be integrated into MAVERIC-II. We propose a unified method of autocoding and interfacing between several languages and MAVERIC-II, which may be generalized further to any type of 6dof simulation engine.

Mason Nixon

Autocoding for Verifiability

A viewgraph presentation of an automatic code scheme for source verification issues is shown. The topics include: 1) Model-Based Control Law Development with Automatic Code Generation; 2) Source Verification Issues of Automatically Generated Code; 3) MXZ Code Generator; 4) Benefits and Limitations of MXZ; and 5) Current State of the Tool.

Smith, Tim

Fault tolerant testbed evaluation, phase 1

In recent years, avionics systems development costs have become the driving factor in the development of space systems, military aircraft, and commercial aircraft. A method of reducing avionics development costs is to utilize state-of-the-art software application generator (autocode) tools and methods. The recent maturity of application generator technology has the potential to dramatically reduce development costs by eliminating software development steps that have historically introduced errors and the need for re-work. Application generator tools have been demonstrated to be an effective method for autocoding non-redundant, relatively low-rate input/output (I/O) applications on the Space Station Freedom (SSF) program; however, they have not been demonstrated for fault tolerant, high-rate I/O, flight critical environments. This contract will evaluate the use of application generators in these harsh environments. Using Boeing's quad-redundant avionics system controller as the target system, Space Shuttle Guidance, Navigation, and Control (GN&C) software will be autocoded, tested, and evaluated in the Johnson (Space Center) Avionics Engineering Laboratory (JAEL). The response of the autocoded system will be shown to match the response of the existing Shuttle General Purpose Computers (GPC's), thereby demonstrating the viability of using autocode techniques in the development of future avionics systems.

Caluori, V., Jr.

Orion GN and C Model Based Development: Experience and Lessons Learned

The Orion Guidance Navigation and Control (GN&C) team is charged with developing GN&C algorithms for the Exploration Flight Test One (EFT-1) vehicle. The GN&C team is a joint team consisting primarily of Prime Contractor (Lockheed Martin) and NASA personnel and contractors. Early in the GN&C development cycle the team selected MATLAB/Simulink as the tool for developing GN&C algorithms and Mathworks autocode tools as the means for converting GN&C algorithms to flight software (FSW). This paper provides an assessment of the successes and problems encountered by the GN&C team from the perspective of Orion GN&C developers, integrators, FSW engineers and management. The Orion GN&C approach to graphical development, including simulation tools, standards development and autocode approaches are scored for the main activities that the team has completed through the development phases of the program.

Jackson, Mark C.

Goddard space flight center computer programmer's manual

This manual describes the several different programming support systems employed at the Goddard Space Flight Center, namely, 7094 FORTRAN, MYSTIC, EXEC II PROCESSOR-1107, and AUTOCODER-SPS. It is tailored to the experienced programmer as it presents in detail how to use the various support systems. Each Chapter in this manual is a separate entity, and as such can be removed without disturbing the contents of the other chapters. There is a detailed table of contents for each Chapter, as well as a general table of contents covering the manual as a whole.

System Development Corporation

Incorporating Manual and Autonomous Code Generation

Code can be generated manually or using code-generated software tools, but how do you interpret the two? This article looks at a design methodology that combines object-oriented design with autonomic code generation for attitude control flight software. Recent improvements in space flight computers are allowing software engineers to spend more time engineering the applications software. The application developed was the attitude control flight software for an astronomical satellite called the Microwave Anisotropy Probe (MAP). The MAP flight system is being designed, developed, and integrated at NASA's Goddard Space Flight Center. The MAP controls engineers are using Integrated Systems Inc.'s MATRIXx for their controls analysis. In addition to providing a graphical analysis for an environment, MATRIXx includes an autonomic code generation facility called AutoCode. This article examines the forces that shaped the final design and describes three highlights of the design process: (1) Defining the manual to autonomic code interface; (2) Applying object-oriented design to the manual flight code; (3) Implementing the object-oriented design in C.

McComas, David

Autocommander: A Supervisory Controller for Integrated Guidance and Control for the 2nd Generation Reusable Launch Vehicle

This paper presents a hierarchical architecture for integrated guidance and control that achieves risk and cost reduction for NASA's 2d generation reusable launch vehicle (RLV). Guidance, attitude control, and control allocation subsystems that heretofore operated independently will now work cooperatively under the coordination of a top-level autocommander. In addition to delivering improved performance from a flight mechanics perspective, the autocommander is intended to provide an autonomous supervisory control capability for traditional mission management under nominal conditions, G&C reconfiguration in response to effector saturation, and abort mode decision-making upon vehicle malfunction. This high-level functionality is to be implemented through the development of a relational database that is populated with the broad range of vehicle and mission specific data and translated into a discrete event system model for analysis, simulation, and onboard implementation. A Stateflow Autocoder software tool that translates the database into the Stateflow component of a Matlab/Simulink simulation is also presented.

Fisher, J. E.

Asynchronous Messaging and Data Transfer in a Spacecraft: An Implementation

Data transfer and messaging is an important part of a spacecraft. Creating a standard protocol for messaging that can be used for a variety of applications is an extremely beneficial project at the Jet Propulsion Laboratory (JPL). The Asynchronous Messaging Service (AMS) is a protocol outlining how subsystems initialize and conduct communication between each other. There are currently two implementations of AMS in the works. At JPL, my task is to get a working implementation of AMS onto vxWorks as a proof of concept. An Autocoder, a program used to convert visually created state chart diagrams to C++, has also been created to accomplish a part of the implementation. I was assigned to make the program portable on any Unix type environment. Lastly, I was to develop a program to demonstrate messaging between two FireWire cards running vxworks.

Moholt, Joseph M.

Certifying Auto-Generated Flight Code

Model-based design and automated code generation are being used increasingly at NASA. Many NASA projects now use MathWorks Simulink and Real-Time Workshop for at least some of their modeling and code development. However, there are substantial obstacles to more widespread adoption of code generators in safety-critical domains. Since code generators are typically not qualified, there is no guarantee that their output is correct, and consequently the generated code still needs to be fully tested and certified. Moreover, the regeneration of code can require complete recertification, which offsets many of the advantages of using a generator. Indeed, manual review of autocode can be more challenging than for hand-written code. Since the direct V&V of code generators is too laborious and complicated due to their complex (and often proprietary) nature, we have developed a generator plug-in to support the certification of the auto-generated code. Specifically, the AutoCert tool supports certification by formally verifying that the generated code is free of different safety violations, by constructing an independently verifiable certificate, and by explaining its analysis in a textual form suitable for code reviews. The generated documentation also contains substantial tracing information, allowing users to trace between model, code, documentation, and V&V artifacts. This enables missions to obtain assurance about the safety and reliability of the code without excessive manual V&V effort and, as a consequence, eases the acceptance of code generators in safety-critical contexts. The generation of explicit certificates and textual reports is particularly well-suited to supporting independent V&V. The primary contribution of this approach is the combination of human-friendly documentation with formal analysis. The key technical idea is to exploit the idiomatic nature of auto-generated code in order to automatically infer logical annotations. The annotation inference algorithm itself is generic, and parametrized with respect to a library of coding patterns that depend on the safety policies and the code generator. The patterns characterize the notions of definitions and uses that are specific to the given safety property. For example, for initialization safety, definitions correspond to variable initializations while uses are statements which read a variable, whereas for array bounds safety, definitions are the array declarations, while uses are statements which access an array variable. The inferred annotations are thus highly dependent on the actual program and the properties being proven. The annotations, themselves, need not be trusted, but are crucial to obtain the automatic formal verification of the safety properties without requiring access to the internals of the code generator. The approach has been applied to both in-house and commercial code generators, but is independent of the particular generator used. It is currently being adapted to flight code generated using MathWorks Real-Time Workshop, an automatic code generator that translates from Simulink/Stateflow models into embedded C code.

Denney, Ewen

NASA Tech Briefs, March 2007

Topics include: Advanced Systems for Monitoring Underwater Sounds; Wireless Data-Acquisition System for Testing Rocket Engines; Processing Raw HST Data With Up-to-Date Calibration Data; Mobile Collection and Automated Interpretation of EEG Data; System for Secure Integration of Aviation Data; Servomotor and Controller Having Large Dynamic Range; Digital Multicasting of Multiple Audio Streams; Translator for Optimizing Fluid-Handling Components; AIRSAR Web-Based Data Processing; Pattern Matcher for Trees Constructed From Lists; Reducing a Knowledge-Base Search Space When Data Are Missing; Ground-Based Correction of Remote-Sensing Spectral Imagery; State-Chart Autocoder; Pointing History Engine for the Spitzer Space Telescope; Low-Friction, High-Stiffness Joint for Uniaxial Load Cell; Magnet-Based System for Docking of Miniature Spacecraft; Electromechanically Actuated Valve for Controlling Flow Rate; Plumbing Fixture for a Microfluidic Cartridge; Camera Mount for a Head-Up Display; Core-Cutoff Tool; Recirculation of Laser Power in an Atomic Fountain; Simplified Generation of High-Angular-Momentum Light Beams; Imaging Spectrometer on a Chip; Interferometric Quantum-Nondemolition Single-Photon Detectors; Ring-Down Spectroscopy for Characterizing a CW Raman Laser; Complex Type-II Interband Cascade MQW Photodetectors; Single-Point Access to Data Distributed on Many Processors; Estimating Dust and Water Ice Content of the Martian Atmosphere From THEMIS Data; Computing a Stability Spectrum by Use of the HHT; Theoretical Studies of Routes to Synthesis of Tetrahedral N4; Estimation Filter for Alignment of the Spitzer Space Telescope; Antenna for Measuring Electric Fields Within the Inner Heliosphere; Improved High-Voltage Gas Isolator for Ion Thruster; and Hybrid Mobile Communication Networks for Planetary Exploration.

Source record

Infrastructure and Process Improvements After LADEE

The purpose of the Lunar Atmosphere Dust Environment Explorer (LADEE) mission was to measure the density, composition and time variability of the lunar dust environment. The successful mission launched Sept 7, 2013 and was de-orbited and impacted the moon's surface on April 17, 2014. The spacecraft had 3 primary science instruments, the Lunar Dust Experiment, Neutral Mass Spectrometer, and the Ultra Violet Spectrometer. The mission also had a Laser Communications payload that set a record download rate of 622 Mbps (megabits per second) from the moon orbit. The goal is to use the LADEE software base for upcoming smallsat missions. The onboard flight software for the mission was developed using a Model-Based Software methodology and agile software development practices. High level models were developed in Simulink, autocoded to C and layered on Core Flight Executive and Core Flight Software, VxWorks and required board support packages. Software package versions were frozen several years ago, and need to be brought to modern standards for future spacecraft missions. We are evaluating alternate Real Time Operating Systems and avionics architectures that comply with CubeSat form-factor and power limitations. In addition, the tool chain for the software development process has been improved. We will discuss the rationale, trades and implementation for the upgrade path after the LADEE mission.

Software Maintenance

Optimal Control Prediction Method for Control Allocation

This paper proposes a novel prediction method for online optimal control allocation that extends the volume of moments achievable with the Moore-Penrose generalized inverse to the entire Attainable Moment Set. This method formulates the control allocation problem using selected basis vectors and associated gains which reduces the optimization problem dimensions and provides physical insight into the resulting optimal solutions. The proposed algorithm finds the entire family of unique optimal control solutions along the desired moment vector from the origin to the boundary of the Attainable Moment Set. Numerical results for the Moore-Penrose prediction method show that the unique minimal controls obtained yield the desired moment with near machine precision accuracy while maintaining control effectors within specified position limits. This method has been fully validated against the unique solution obtained on the boundary of the Attainable Moment Set using the Durham Direct Allocation method. Minimal control solutions obtained for moments in the interior of the Attainable Moment Set, similarly yield the desired moment to near machine precision while providing control solutions that are smaller (i.e. 2-norm) than solutions found with traditional control allocation algorithms (e.g. interior point methods) applied to the minimal control problem. Numerical simulations using a Matlab® autocoded executable (MEX) for the representative real world problem of 3-moments with 20 individual control effectors and prescribed control position limits show a mean computation speed of approximately 125 Hz which is sufficient to enable real-time flight allocation.

Acheson, Michael J.

Auto-Coding UML Statecharts for Flight Software

Statecharts have been used as a means to communicate behaviors in a precise manner between system engineers and software engineers. Hand-translating a statechart to code, as done on some previous space missions, introduces the possibility of errors in the transformation from chart to code. To improve auto-coding, we have developed a process that generates flight code from UML statecharts. Our process is being used for the flight software on the Space Interferometer Mission (SIM).

autocoding

Streamlining GNC Architecture Development and FSW Integration for the Mars Ascent Vehicle

The Mars Ascent Vehicle (MAV) will be the first vehicle to perform an ascent from the surface of another atmospheric planetary body outside of the Earth-Moon system. Significant light-time delay requires complete autonomy of flight throughout ascent, and naturally a high level of reliability is desired in both MAV’s hardware and software subsystems. The MAV Guidance, Navigation and Controls (GNC) team and the MAV Flight Software (FSW) team have partnered together to improve the efficiency of algorithm integration onto the MAV flight processor, and to increase confidence that said integration is successful and without human error. An interface architecture is proposed for the GNC suite that allows both the guidance and navigation subsystems to provide code algorithms directly in C++, and the controls subsystem to provide MATLAB Simulink auto-coded algorithms. Several continuous integration/deployment (CI/CD) methodologies have been considered for ease of transition of algorithm code from the GNC team to the FSW team. The GNC/FSW teams also worked together to develop a cFS-friendly wrapper which abstracts the integration of the GNC algorithm code into an interface-level API that is compatible with cFS. Several iterations of vehicle GNC code have been produced between the GNC/FSW team’s partnership, and this strong interface between these two teams have allowed the GNC/FSW teams to greatly increase confidence of efficient and error-free implementation of the GNC code onto MAV for a successful flight.

Engineering