Search NASASearch

SEARCH · Search NASA

Results for “Programming environments”

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.

At least 127 records · Page 7

Investigating the Simulink Auto-Coding Process

Model based program design is the most clear and direct way to develop algorithms and programs for interfacing with hardware. While coding "by hand" results in a more tailored product, the ever-growing size and complexity of modern-day applications can cause the project work load to quickly become unreasonable for one programmer. This has generally been addressed by splitting the product into separate modules to allow multiple developers to work in parallel on the same project, however this introduces new potentials for errors in the process. The fluidity, reliability and robustness of the code relies on the abilities of the programmers to communicate their methods to one another; furthermore, multiple programmers invites multiple potentially differing coding styles into the same product, which can cause a loss of readability or even module incompatibility. Fortunately, Mathworks has implemented an auto-coding feature that allows programmers to design their algorithms through the use of models and diagrams in the graphical programming environment Simulink, allowing the designer to visually determine what the hardware is to do. From here, the auto-coding feature handles converting the project into another programming language. This type of approach allows the designer to clearly see how the software will be directing the hardware without the need to try and interpret large amounts of code. In addition, it speeds up the programming process, minimizing the amount of man-hours spent on a single project, thus reducing the chance of human error as well as project turnover time. One such project that has benefited from the auto-coding procedure is Ramses, a portion of the GNC flight software on-board Orion that has been implemented primarily in Simulink. Currently, however, auto-coding Ramses into C++ requires 5 hours of code generation time. This causes issues if the tool ever needs to be debugged, as this code generation will need to occur with each edit to any part of the program; additionally, this is lost time that could be spent testing and analyzing the code. This is one of the more prominent issues with the auto-coding process, and while much information is available with regard to optimizing Simulink designs to produce efficient and reliable C++ code, not much research has been made public on how to reduce the code generation time. It is of interest to develop some insight as to what causes code generation times to be so significant, and determine if there are architecture guidelines or a desirable auto-coding configuration set to assist in streamlining this step of the design process for particular applications. To address the issue at hand, the Simulink coder was studied at a foundational level. For each different component type made available by the software, the features, auto-code generation time, and the format of the generated code were analyzed and documented. Tools were developed and documented to expedite these studies, particularly in the area of automating sequential builds to ensure accurate data was obtained. Next, the Ramses model was examined in an attempt to determine the composition and the types of technologies used in the model. This enabled the development of a model that uses similar technologies, but takes a fraction of the time to auto-code to reduce the turnaround time for experimentation. Lastly, the model was used to run a wide array of experiments and collect data to obtain knowledge about where to search for bottlenecks in the Ramses model. The resulting contributions of the overall effort consist of an experimental model for further investigation into the subject, as well as several automation tools to assist in analyzing the model, and a reference document offering insight to the auto-coding process, including documentation of the tools used in the model analysis, data illustrating some potential problem areas in the auto-coding process, and recommendations on areas or practices in the current Ramses model that should be further investigated. Several skills were required to be built up over the course of the internship project. First and foremost, my Simulink skills have improved drastically, as much of my experience had been modeling electronic circuits as opposed to software models. Furthermore, I am now comfortable working with the Simulink Auto-coder, a tool I had never used until this summer; this tool also tested my critical thinking and C++ knowledge as I had to interpret the C++ code it was generating and attempt to understand how the Simulink model affected the generated code. I had come into the internship with a solid understanding of Matlab code, but had done very little in using it to automate tasks, particularly Simulink tasks; along the same lines, I had rarely used shell script to automate and interface with programs, which I gained a fair amount of experience with this summer, including how to use regular expression. Lastly, soft-skills are an area everyone can continuously improve on; having never worked with NASA engineers, which to me seem to be a completely different breed than what I am used to (commercial electronic engineers), I learned to utilize the wealth of knowledge present at JSC. I wish I had come into the internship knowing exactly how helpful everyone in my branch would be, as I would have picked up on this sooner. I hope that having gained such a strong foundation in Simulink over this summer will open the opportunity to return to work on this project, or potentially other opportunities within the division. The idea of leaving a project I devoted ten weeks to is a hard one to cope with, so having the chance to pick up where I left off sounds appealing; alternatively, I am interested to see if there are any opening in the future that would allow me to work on a project that is more in-line with my research in estimation algorithms. Regardless, this summer has been a milestone in my professional career, and I hope this has started a long-term relationship between JSC and myself. I really enjoy the thought of building on my experience here over future summers while I work to complete my PhD at Missouri University of Science and Technology.

Gualdoni, Matthew J.

An Embedded Rule-Based Diagnostic Expert System in Ada

Ada is becoming an increasingly popular programming language for large Government-funded software projects. Ada with it portability, transportability, and maintainability lends itself well to today's complex programming environment. In addition, expert systems have also assumed a growing role in providing human-like reasoning capability expertise for computer systems. The integration is discussed of expert system technology with Ada programming language, especially a rule-based expert system using an ART-Ada (Automated Reasoning Tool for Ada) system shell. NASA Lewis was chosen as a beta test site for ART-Ada. The test was conducted by implementing the existing Autonomous Power EXpert System (APEX), a Lisp-based power expert system, in ART-Ada. Three components, the rule-based expert systems, a graphics user interface, and communications software make up SMART-Ada (Systems fault Management with ART-Ada). The rules were written in the ART-Ada development environment and converted to Ada source code. The graphics interface was developed with the Transportable Application Environment (TAE) Plus, which generates Ada source code to control graphics images. SMART-Ada communicates with a remote host to obtain either simulated or real data. The Ada source code generated with ART-Ada, TAE Plus, and communications code was incorporated into an Ada expert system that reads the data from a power distribution test bed, applies the rule to determine a fault, if one exists, and graphically displays it on the screen. The main objective, to conduct a beta test on the ART-Ada rule-based expert system shell, was achieved. The system is operational. New Ada tools will assist in future successful projects. ART-Ada is one such tool and is a viable alternative to the straight Ada code when an application requires a rule-based or knowledge-based approach.

Jones, Robert E.

Techniques and implementation of the embedded rule-based expert system using Ada

Ada is becoming an increasingly popular programming language for large Government-funded software projects. Ada with its portability, transportability, and maintainability lends itself well to today's complex programming environment. In addition, expert systems have also assured a growing role in providing human-like reasoning capability and expertise for computer systems. The integration of expert system technology with Ada programming language, specifically a rule-based expert system using an ART-Ada (Automated Reasoning Tool for Ada) system shell is discussed. The NASA Lewis Research Center was chosen as a beta test site for ART-Ada. The test was conducted by implementing the existing Autonomous Power EXpert System (APEX), a Lisp-base power expert system, in ART-Ada. Three components, the rule-based expert system, a graphics user interface, and communications software make up SMART-Ada (Systems fault Management with ART-Ada). The main objective, to conduct a beta test on the ART-Ada rule-based expert system shell, was achieved. The system is operational. New Ada tools will assist in future successful projects. ART-Ada is one such tool and is a viable alternative to the straight Ada code when an application requires a rule-based or knowledge-based approach.

Liberman, Eugene M.

Small Projects Rapid Integration and Test Environment (SPRITE): Application for Increasing Robustness

Marshall Space Flight Center's (MSFC) Small Projects Rapid Integration and Test Environment (SPRITE) is a Hardware-In-The-Loop (HWIL) facility that provides rapid development, integration, and testing capabilities for small projects (CubeSats, payloads, spacecraft, and launch vehicles). This facility environment focuses on efficient processes and modular design to support rapid prototyping, integration, testing and verification of small projects at an affordable cost, especially compared to larger type HWIL facilities. SPRITE (Figure 1) consists of a "core" capability or "plant" simulation platform utilizing a graphical programming environment capable of being rapidly re-configured for any potential test article's space environments, as well as a standard set of interfaces (i.e. Mil-Std 1553, Serial, Analog, Digital, etc.). SPRITE also allows this level of interface testing of components and subsystems very early in a program, thereby reducing program risk.

Rakoczy, John

A study on diagnosability of space station ECLSS

The use is demonstrated of the Multigraph Architecture (MGA) for studies on the Environment Control and Life Support System (ECLSS). The objective was the following: (1) to create an updated set of models of the Potable Water Subsystem (PWS) by using the graphical model building tools of the Multigraph Programming Environment (MPE); (2) to derive a real time alarm simulator from the models; and (3) to demonstrate the effects of sensor allocation on the diagnosability of the PWS. This work may serve as a preliminary study for the detailed analysis of the sensor allocation and diagnosability problems in the ECLSS.

Padalkar, S.

NASA Issues Related to use of Halon: Past, Present, Future

NASA began an official halon phaseout program in 1990. NASA has led the way in halon bank management and has participated in the search for halon alternatives. NASA representatives participate in technical committees of the National Fire Protection Association and United Nations Environment Program providing guidance on Halon Phaseout and acceptance, design, installation, and maintenance of Halon Alternatives. This paper addresses some of the key issues that are leading the agency away from dependence on halons for fire protection.

Collins, Michelle M.

CHIMERA II - A real-time multiprocessing environment for sensor-based robot control

A multiprocessing environment for a wide variety of sensor-based robot system, providing the flexibility, performance, and UNIX-compatible interface needed for fast development of real-time code is addressed. The requirements imposed on the design of a programming environment for sensor-based robotic control is outlined. The details of the current hardware configuration are presented, along with the details of the CHIMERA II software. Emphasis is placed on the kernel, low-level interboard communication, user interface, extended file system, user-definable and dynamically selectable real-time schedulers, remote process synchronization, and generalized interprocess communication. A possible implementation of a hierarchical control model, the NASA/NBS standard reference model for telerobot control system is demonstrated.

Stewart, David B.

Deploying and Tracking Software with NCCS Software Provisioning

The National Center for Computational Sciences (NCCS) at Oak Ridge National Laboratory has a long history of deploying ground-breaking leadership-class supercomputers for the U.S. Department of Energy. The latest in this line of supercomputers is Frontier, the first supercomputer to break the exascale barrier (1018 floating-point operations per second) on the TOP500 list. Frontier serves a wide array of scientific domains, from traditional simulation-based workloads to newer AI and Machine Learning workloads. To best serve the NCCS user community, NCCS uses Spack to deploy a comprehensive software stack of scientific software packages, providing straightforward access to these packages through Lmod Environment Modules. Maintaining a large software stack while also including multiple new compiler releases each year is a very time-consuming task. Additionally, it is not straightforward to provide a software stack alongside existing vendor-provided software such as the HPE/Cray Programming Environment (CPE), and existing CPE, Spack, and Lmod integration does not allow for multiple versions of GPU libraries such as AMD’s ROCm to be used. To address these challenges and shortcomings, NCCS has developed the NCCS Software Provisioning tool (NSP)1, a tool for deploying and monitoring software stacks on HPC systems. NSP allows NCCS to quickly and effectively provision software stacks from the ground up using template-driven recipes and configuration files. NSP is successfully deployed on Frontier and several other NCCS clusters, enabling the NCCS software team to quickly deploy software stacks for newly-released compilers, expand current software offerings, better support GPU-based software, and monitor Lmod module usage to identify unused software packages that can be removed from the software stack. In this work, we discuss the shortcomings of the previous CPE, Spack, and Lmod usage at NCCS, provide further details on the implementation and structure of NSP, then discuss the benefits that NSP provides.

Rentschler, Asa [ORNL] (ORCID:0009000597694743)

The development version control and visibility subsystem

A prototype development version control and programming environment visibility subsystem (DVCS) is described. DVCS provides an implementation/management interface serving both the implementor and management. The DVCS provides the implementor listings annotated with change bars, detects errors in the block structure of the design and indicates when standards requiring the use of structured programming constructs in the design of software are violated.

Hawley, L. R.

Team Expo: A State-of-the-Art JSC Advanced Design Team

In concert with the NASA-wide Intelligent Synthesis Environment Program, the Exploration Office at the Johnson Space Center has assembled an Advanced Design Team. The purpose of this team is two-fold. The first is to identify, use, and develop software applications, tools, and design processes that streamline and enhance a collaborative engineering environment. The second is to use this collaborative engineering environment to produce conceptual, system-level-of-detail designs in a relatively short turnaround time, using a standing team of systems and integration experts. This includes running rapid trade studies on varying mission architectures, as well as producing vehicle and/or subsystem designs. The standing core team is made up of experts from all of the relevant engineering divisions (e.g. Power, Thermal, Structures, etc.) as well as representatives from Risk and Safety, Mission Operations, and Crew Life Sciences among others. The Team works together during 2- hour sessions in the same specially enhanced room to ensure real-time integration/identification of cross-disciplinary issues and solutions. All subsystem designs are collectively reviewed and approved during these same sessions. In addition there is an Information sub-team that captures and formats all data and makes it accessible for use by the following day. The result is Team Expo: an Advanced Design Team that is leading the change from a philosophy of "over the fence" design to one of collaborative engineering that pushes the envelope to achieve the next-generation analysis and design environment.

Tripathi, Abhishek

Economical graphics display system for flight simulation avionics

During the past academic year the focal point of this project has been to enhance the economical flight simulator system by incorporating it into the aero engineering educational environment. To accomplish this goal it was necessary to develop appropriate software modules that provide a foundation for student interaction with the system. In addition experiments had to be developed and tested to determine if they were appropriate for incorporation into the beginning flight simulation course, AERO-41B. For the most part these goals were accomplished. Experiments were developed and evaluated by graduate students. More work needs to be done in this area. The complexity and length of the experiments must be refined to match the programming experience of the target students. It was determined that few undergraduate students are ready to absorb the full extent and complexity of a real-time flight simulation. For this reason the experiments developed are designed to introduce basic computer architectures suitable for simulation, the programming environment and languages, the concept of math modules, evaluation of acquired data, and an introduction to the meaning of real-time. An overview is included of the system environment as it pertains to the students, an example of a flight simulation experiment performed by the students, and a summary of the executive programming modules created by the students to achieve a user-friendly multi-processor system suitable to an aero engineering educational program.

Source record

The 2GCHAS: A high productivity software development environment

To the user, the most visible feature of the Transportable Applications Executive (TAE) is its very powerful user interface. To the programmer, TAE's user interface, proc concept, standardized interface definitions, and hierarchy search provide a set of tools for rapidly prototyping or developing production software. The 2GCHAS (Second Generation Comprehensive Helicopter Analysis System) project has extended and enhanced these mechanisms, creating a powerful and high productivity programming environment where the 2GCHAS development environment is 2GCHAS itself and where a sustained rate for certified, documented, and tested software above 30 delivered source instructions per programmer day has been achieved. The 2GCHAS environment is not limited to helicopter analysis, but is applicable to other disciplines where software development is important.

Babb, Larry

Experience Report: Visual Programming in the Real World

This paper reports direct experience with two commercial, widely used visual programming environments. While neither of these systems is object oriented, the tools have transformed the development process and indicate a direction for visual object oriented tools to proceed.

visual programming

Present state of knowledge of the upper atmosphere 1988: An assessment report

This document was issued in response to the Clean Air Act Amendments of 1977, Public Law 95-95, mandating that NASA and other key agencies submit biennial reports to Congress and EPA. NASA is to report on the state of our knowledge of the upper atmosphere, particularly the stratosphere. This is the sixth ozone assessment report submitted to Congress and the concerned regulatory agencies. Part 1 contains an outline of the NASA Upper Atmosphere Research Program and summaries of the research efforts supported during the last two years. An assessment is presented of the state of knowledge as of March 15, 1988 when the Ozone Trends Panel, organized by NASA and co-sponsored by the World Meteorological Organization, NOAA, FAA and the United Nations Environment Program released an executive summary of its findings from a critical in-depth study involving over 100 scientists from 12 countries. Chapter summaries of the International Ozone Trends Panel Report form the major part of this report. Two other sections are Model Predictions of Future Ozone Change and Chemical Kinetics and Photochemical Data for Use in Stratospheric Modeling. Each of these sections and the report in its entirety were peer reviewed.

Watson, R. T.

New computing systems, future computing environment, and their implications on structural analysis and design

Recent advances in computer technology that are likely to impact structural analysis and design of flight vehicles are reviewed. A brief summary is given of the advances in microelectronics, networking technologies, and in the user-interface hardware and software. The major features of new and projected computing systems, including high performance computers, parallel processing machines, and small systems, are described. Advances in programming environments, numerical algorithms, and computational strategies for new computing systems are reviewed. The impact of the advances in computer technology on structural analysis and the design of flight vehicles is described. A scenario for future computing paradigms is presented, and the near-term needs in the computational structures area are outlined.

Noor, Ahmed K.

PC-CUBE: A Personal Computer Based Hypercube

PC-CUBE is an ensemble of IBM PCs or close compatibles connected in the hypercube topology with ordinary computer cables. Communication occurs at the rate of 115.2 K-band via the RS-232 serial links. Available for PC-CUBE is the Crystalline Operating System III (CrOS III), Mercury Operating System, CUBIX and PLOTIX which are parallel I/O and graphics libraries. A CrOS performance monitor was developed to facilitate the measurement of communication and computation time of a program and their effects on performance. Also available are CXLISP, a parallel version of the XLISP interpreter; GRAFIX, some graphics routines for the EGA and CGA; and a general execution profiler for determining execution time spent by program subroutines. PC-CUBE provides a programming environment similar to all hypercube systems running CrOS III, Mercury and CUBIX. In addition, every node (personal computer) has its own graphics display monitor and storage devices. These allow data to be displayed or stored at every processor, which has much instructional value and enables easier debugging of applications. Some application programs which are taken from the book Solving Problems on Concurrent Processors (Fox 88) were implemented with graphics enhancement on PC-CUBE. The applications range from solving the Mandelbrot set, Laplace equation, wave equation, long range force interaction, to WaTor, an ecological simulation.

Ho, Alex

Report from the MPP Working Group to the NASA Associate Administrator for Space Science and Applications

NASA's Office of Space Science and Applications (OSSA) gave a select group of scientists the opportunity to test and implement their computational algorithms on the Massively Parallel Processor (MPP) located at Goddard Space Flight Center, beginning in late 1985. One year later, the Working Group presented its report, which addressed the following: algorithms, programming languages, architecture, programming environments, the way theory relates, and performance measured. The findings point to a number of demonstrated computational techniques for which the MPP architecture is ideally suited. For example, besides executing much faster on the MPP than on conventional computers, systolic VLSI simulation (where distances are short), lattice simulation, neural network simulation, and image problems were found to be easier to program on the MPP's architecture than on a CYBER 205 or even a VAX. The report also makes technical recommendations covering all aspects of MPP use, and recommendations concerning the future of the MPP and machines based on similar architectures, expansion of the Working Group, and study of the role of future parallel processors for space station, EOS, and the Great Observatories era.

Fischer, James R.

CSI technology validation on an LSS ground experiment facility

The test bed developed at JPL for experimental evaluation of new technologies for the control of large flexible space structures is described. The experiment consists of a flexible spacecraft dynamic simulator, sensors, actuators, a microcomputer, and an advanced programming environment. The test bed has been operational for over a year, and thus far nine experiments were completed or are currently in progress. Several of these experiments were reported at the 1987 CSI conference, and several recent ones are documented in this paper, including high order adaptive control, non-parametric system identification, and mu-synthesis robust control. An aggressive program of experiments is planned for the forseeable future.

Wang, S. J.