Search NASA⌕ Search

SEARCH · Search NASA

Results for “functional programming”

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 235 records · Page 13

Simulating Dynamics Of The Gamma-Ray Observatory Satellite

GRODY developed alongside GROSS computer program (GSC-13147), a FORTRAN dynamics-simulator program performing same functions. GRODY conceived for use in case study to assess feasibility and effectiveness of Ada programming language for development of flight-dynamics software. Designed for those familiar with analysis of attitudes of spacecraft. Supports planning of maneuvers as well as analytical testing and evaluation of attitude-determination and -control system used on board Gamma-Ray Observatory (GRO) satellite. Simulates computer and control processor electronics aboard GRO satellite. Enables analyst to check and update commands sent from ground and values of parameters, obtain displays of status of simulation, interrupt simulation, analyze previous runs, and obtain printed output of simulation runs. Written mainly in Ada (99 percent) with remainder in FORTRAN.

Stark, M.↗

Unified Engineering Software System

Collection of computer programs performs diverse functions in prototype engineering. NEXUS, NASA Engineering Extendible Unified Software system, is research set of computer programs designed to support full sequence of activities encountered in NASA engineering projects. Sequence spans preliminary design, design analysis, detailed design, manufacturing, assembly, and testing. Primarily addresses process of prototype engineering, task of getting single or small number of copies of product to work. Written in FORTRAN 77 and PROLOG.

Purves, L. R.↗

Design strategies and functionality of the Visual Interface for Virtual Interaction Development (VIVID) tool

Development of interactive virtual environments (VE) has typically consisted of three primary activities: model (object) development, model relationship tree development, and environment behavior definition and coding. The model and relationship tree development activities are accomplished with a variety of well-established graphic library (GL) based programs - most utilizing graphical user interfaces (GUI) with point-and-click interactions. Because of this GUI format, little programming expertise on the part of the developer is necessary to create the 3D graphical models or to establish interrelationships between the models. However, the third VE development activity, environment behavior definition and coding, has generally required the greatest amount of time and programmer expertise. Behaviors, characteristics, and interactions between objects and the user within a VE must be defined via command line C coding prior to rendering the environment scenes. In an effort to simplify this environment behavior definition phase for non-programmers, and to provide easy access to model and tree tools, a graphical interface and development tool has been created. The principal thrust of this research is to effect rapid development and prototyping of virtual environments. This presentation will discuss the 'Visual Interface for Virtual Interaction Development' (VIVID) tool; an X-Windows based system employing drop-down menus for user selection of program access, models, and trees, behavior editing, and code generation. Examples of these selection will be highlighted in this presentation, as will the currently available program interfaces. The functionality of this tool allows non-programming users access to all facets of VE development while providing experienced programmers with a collection of pre-coded behaviors. In conjunction with its existing, interfaces and predefined suite of behaviors, future development plans for VIVID will be described. These include incorporation of dual user virtual environment enhancements, tool expansion, and additional behaviors.

Nguyen, Lac↗

Improve Data Mining and Knowledge Discovery Through the Use of MatLab

Data mining is widely used to mine business, engineering, and scientific data. Data mining uses pattern based queries, searches, or other analyses of one or more electronic databases/datasets in order to discover or locate a predictive pattern or anomaly indicative of system failure, criminal or terrorist activity, etc. There are various algorithms, techniques and methods used to mine data; including neural networks, genetic algorithms, decision trees, nearest neighbor method, rule induction association analysis, slice and dice, segmentation, and clustering. These algorithms, techniques and methods used to detect patterns in a dataset, have been used in the development of numerous open source and commercially available products and technology for data mining. Data mining is best realized when latent information in a large quantity of data stored is discovered. No one technique solves all data mining problems; challenges are to select algorithms or methods appropriate to strengthen data/text mining and trending within given datasets. In recent years, throughout industry, academia and government agencies, thousands of data systems have been designed and tailored to serve specific engineering and business needs. Many of these systems use databases with relational algebra and structured query language to categorize and retrieve data. In these systems, data analyses are limited and require prior explicit knowledge of metadata and database relations; lacking exploratory data mining and discoveries of latent information. This presentation introduces MatLab(R) (MATrix LABoratory), an engineering and scientific data analyses tool to perform data mining. MatLab was originally intended to perform purely numerical calculations (a glorified calculator). Now, in addition to having hundreds of mathematical functions, it is a programming language with hundreds built in standard functions and numerous available toolboxes. MatLab's ease of data processing, visualization and its enormous availability of built in functionalities and toolboxes make it suitable to perform numerical computations and simulations as well as a data mining tool. Engineers and scientists can take advantage of the readily available functions/toolboxes to gain wider insight in their perspective data mining experiments.

Shaykhian, Gholam Ali↗

Improve Data Mining and Knowledge Discovery through the use of MatLab

Data mining is widely used to mine business, engineering, and scientific data. Data mining uses pattern based queries, searches, or other analyses of one or more electronic databases/datasets in order to discover or locate a predictive pattern or anomaly indicative of system failure, criminal or terrorist activity, etc. There are various algorithms, techniques and methods used to mine data; including neural networks, genetic algorithms, decision trees, nearest neighbor method, rule induction association analysis, slice and dice, segmentation, and clustering. These algorithms, techniques and methods used to detect patterns in a dataset, have been used in the development of numerous open source and commercially available products and technology for data mining. Data mining is best realized when latent information in a large quantity of data stored is discovered. No one technique solves all data mining problems; challenges are to select algorithms or methods appropriate to strengthen data/text mining and trending within given datasets. In recent years, throughout industry, academia and government agencies, thousands of data systems have been designed and tailored to serve specific engineering and business needs. Many of these systems use databases with relational algebra and structured query language to categorize and retrieve data. In these systems, data analyses are limited and require prior explicit knowledge of metadata and database relations; lacking exploratory data mining and discoveries of latent information. This presentation introduces MatLab(TradeMark)(MATrix LABoratory), an engineering and scientific data analyses tool to perform data mining. MatLab was originally intended to perform purely numerical calculations (a glorified calculator). Now, in addition to having hundreds of mathematical functions, it is a programming language with hundreds built in standard functions and numerous available toolboxes. MatLab's ease of data processing, visualization and its enormous availability of built in functionalities and toolboxes make it suitable to perform numerical computations and simulations as well as a data mining tool. Engineers and scientists can take advantage of the readily available functions/toolboxes to gain wider insight in their perspective data mining experiments.

Shaykahian, Gholan Ali↗

A preliminary design and implementation of the low-thrust simulation and trajectory search program (LOWTRAJ)

The results are presented of one phase of research conducted for the JPL Solar Electric Propulsion (SEP) Navigation Software System development program. It deals only with the problem of designing the flight quality trajectory program, which is a major subset of the entire navigation software system. In this phase of research (breadboard development phase), attempts were made to assess the SEP trajectory software functional requirements, to investigate the program design method satisfying these requirements, to identify the primary anticipated problem areas, and to provide solutions to these problem areas. These efforts culminated in the development of a compact breadboard program. A functional description and the mathematical formulation of the program are presented.

Yen, C. L.↗

On 3D inelastic analysis methods for hot section components

Accomplishments are described for the 2-year program, to develop advanced 3-D inelastic structural stress analysis methods and solution strategies for more accurate and cost effective analysis of combustors, turbine blades and vanes. The approach was to develop a matrix of formulation elements and constitutive models. Three constitutive models were developed in conjunction with optimized iterating techniques, accelerators, and convergence criteria within a framework of dynamic time incrementing. Three formulations models were developed; an eight-noded mid-surface shell element, a nine-noded mid-surface shell element and a twenty-noded isoparametric solid element. A separate computer program was developed for each combination of constitutive model-formulation model. Each program provides a functional stand alone capability for performing cyclic nonlinear structural analysis. In addition, the analysis capabilities incorporated into each program can be abstracted in subroutine form for incorporation into other codes or to form new combinations.

Mcknight, R. L.↗

The 3D inelastic analysis methods for hot section components

A two-year program to develop advanced 3D inelastic structural stress analysis methods and solution strategies for more accurate and cost effective analysis of combustors, turbine blades, and vanes is described. The approach was to develop a matrix of formulation elements and constitutive models. Three constitutive models were developed in conjunction with optimized iterating techniques, accelerators, and convergence criteria within a framework of dynamic time incrementing. Three formulation models were developed: an eight-noded midsurface shell element; a nine-noded midsurface shell element; and a twenty-noded isoparametric solid element. A separate computer program has been developed for each combination of constitutive model-formulation model. Each program provides a functional stand alone capability for performing cyclic nonlinear structural analysis. In addition, the analysis capabilities incorporated into each program can be abstracted in subroutine form for incorporation into other codes or to form new combinations.

Mcknight, R. L.↗

Applying Space Technology to Enhance Control of an Artificial Arm

At the present time, myoelectric prostheses perform only one function of the hand: open and close with the thumb, index and middle finger coming together to grasp various shaped objects. To better understand the limitations of the current single-function prostheses and the needs of the individuals who use them, The Institute for Rehabilitation and Research (TIRR), sponsored by the National Institutes of Health (August 1992 - November 1994), surveyed approximately 2500 individuals with upper limb loss. When asked to identify specific features of their current electric prosthesis that needed improvement, the survey respondents overwhelmingly identified the lack of wrist and finger movement as well as poor control capability. Simply building a mechanism with individual finger and wrist motion is not enough. Individuals with upper limb loss tend to reject prostheses that require continuous visual monitoring and concentration to control. Robotics researchers at NASA's Johnson Space Center (JSC) and Rice University have made substantial progress in myoelectric teleoperation. A myoelectric teleoperation system translates signals generated by an able-bodied robot operator's muscles during hand motions into commands that drive a robot's hand through identical motions. Farry's early work in myoelectric teleoperation used variations over time in the myoelectric spectrum as inputs to neural networks to discriminate grasp types and thumb motions. The resulting schemes yielded up to 93% correct classification on thumb motions. More recently, Fernandez achieved 100% correct non-realtime classification of thumb abduction, extension, and flexion on the same myoelectric data. Fernandez used genetic programming to develop functions that discriminate between thumb motions using myoelectric signal parameters. Genetic programming (GP) is an evolutionary programming method where the computer can modify the discriminating functions' form to improve its performance, not just adjust numerical coefficients or weights. Although the function development may require much computational time and many training cases, the resulting discrimination functions can run in realtime on modest computers. These results suggest that myoelectric signals might be a feasible teleoperation medium, allowing an operator to use his or her own hand and arm as a master to intuitively control an anthropomorphic robot in a remote location such as outer space.

Atkins, Diane↗

C++ Programming Language

C++ Programming Language: The C++ seminar covers the fundamentals of C++ programming language. The C++ fundamentals are grouped into three parts where each part includes both concept and programming examples aimed at for hands-on practice. The first part covers the functional aspect of C++ programming language with emphasis on function parameters and efficient memory utilization. The second part covers the essential framework of C++ programming language, the object-oriented aspects. Information necessary to evaluate various features of object-oriented programming; including encapsulation, polymorphism and inheritance will be discussed. The last part of the seminar covers template and generic programming. Examples include both user defined and standard templates.

Shaykhian, Gholam Ali↗

U.S. Spacesuit Knowledge Capture – Creation, Curation, and Dissemination

The U.S. spacesuit is a special system that has intrigued and fascinated the world since Neil Armstrong set foot on the Moon in 1969. With over 50 years since that momentous achievement, NASA is planning to land the first woman and next man on the Moon in the near future. This goal begets the need to build a new spacesuit, a spacesuit created from the legacy knowledge of the Extravehicular Mobility Unit (EMU), combined with knowledge gained from technology development over the decades. As NASA transitions to its new horizon, the U.S. Spacesuit Knowledge Capture (SKC) Program is poised to help. The SKC Program’s primary function has been to capture, curate, and disseminate spacesuit-related knowledge among scientists, engineers, and technicians. The SKC Program was created in 2007 to capture knowledge primarily from spacesuit subject-matter experts (SMEs) who were retiring from NASA. These SMEs had 30 to 50 years of spacesuit knowledge. Over the years, the SKC Program has evolved and expanded its scope with a current focus on complementing the buildup of the Exploration EMU (xEMU) at the Johnson Space Center. As part of this focus, the SKC Program recently teamed with the xEMU Community of Practice (CoP) for knowledge sharing. The xEMU CoP provides a forum where early career engineers, professionals new to human spaceflight, and the xEMU community can come together regularly to seek guidance, share knowledge, meet their peers, discover resources, and ask questions. The CoP created an environment where the knowledge can be easily and routinely captured and recorded. The recorded events are archived and curated in an SKC Program library and disseminated as appropriate. This paper details the roles that the SKC Program and CoP play in the xEMU buildup, along with the navigation of the creation, curation, and dissemination processes.

Cinda Chullen↗

Regression Verification Using Impact Summaries

Regression verification techniques are used to prove equivalence of syntactically similar programs. Checking equivalence of large programs, however, can be computationally expensive. Existing regression verification techniques rely on abstraction and decomposition techniques to reduce the computational effort of checking equivalence of the entire program. These techniques are sound but not complete. In this work, we propose a novel approach to improve scalability of regression verification by classifying the program behaviors generated during symbolic execution as either impacted or unimpacted. Our technique uses a combination of static analysis and symbolic execution to generate summaries of impacted program behaviors. The impact summaries are then checked for equivalence using an o-the-shelf decision procedure. We prove that our approach is both sound and complete for sequential programs, with respect to the depth bound of symbolic execution. Our evaluation on a set of sequential C artifacts shows that reducing the size of the summaries can help reduce the cost of software equivalence checking. Various reduction, abstraction, and compositional techniques have been developed to help scale software verification techniques to industrial-sized systems. Although such techniques have greatly increased the size and complexity of systems that can be checked, analysis of large software systems remains costly. Regression analysis techniques, e.g., regression testing [16], regression model checking [22], and regression verification [19], restrict the scope of the analysis by leveraging the differences between program versions. These techniques are based on the idea that if code is checked early in development, then subsequent versions can be checked against a prior (checked) version, leveraging the results of the previous analysis to reduce analysis cost of the current version. Regression verification addresses the problem of proving equivalence of closely related program versions [19]. These techniques compare two programs with a large degree of syntactic similarity to prove that portions of one program version are equivalent to the other. Regression verification can be used for guaranteeing backward compatibility, and for showing behavioral equivalence in programs with syntactic differences, e.g., when a program is refactored to improve its performance, maintainability, or readability. Existing regression verification techniques leverage similarities between program versions by using abstraction and decomposition techniques to improve scalability of the analysis [10, 12, 19]. The abstractions and decomposition in the these techniques, e.g., summaries of unchanged code [12] or semantically equivalent methods [19], compute an over-approximation of the program behaviors. The equivalence checking results of these techniques are sound but not complete-they may characterize programs as not functionally equivalent when, in fact, they are equivalent. In this work we describe a novel approach that leverages the impact of the differences between two programs for scaling regression verification. We partition program behaviors of each version into (a) behaviors impacted by the changes and (b) behaviors not impacted (unimpacted) by the changes. Only the impacted program behaviors are used during equivalence checking. We then prove that checking equivalence of the impacted program behaviors is equivalent to checking equivalence of all program behaviors for a given depth bound. In this work we use symbolic execution to generate the program behaviors and leverage control- and data-dependence information to facilitate the partitioning of program behaviors. The impacted program behaviors are termed as impact summaries. The dependence analyses that facilitate the generation of the impact summaries, we believe, could be used in conjunction with other abstraction and decomposition based approaches, [10, 12], as a complementary reduction technique. An evaluation of our regression verification technique shows that our approach is capable of leveraging similarities between program versions to reduce the size of the queries and the time required to check for logical equivalence. The main contributions of this work are: - A regression verification technique to generate impact summaries that can be checked for functional equivalence using an off-the-shelf decision procedure. - A proof that our approach is sound and complete with respect to the depth bound of symbolic execution. - An implementation of our technique using the LLVMcompiler infrastructure, the klee Symbolic Virtual Machine [4], and a variety of Satisfiability Modulo Theory (SMT) solvers, e.g., STP [7] and Z3 [6]. - An empirical evaluation on a set of C artifacts which shows that the use of impact summaries can reduce the cost of regression verification.

Backes, John↗

Study of solid rocket motor for space shuttle booster, Volume 3: Program acquisition planning

The program planning acquisition functions for the development of the solid propellant rocket engine for the space shuttle booster is presented. The subjects discussed are: (1) program management, (2) contracts administration, (3) systems engineering, (4) configuration management, and (5) maintenance engineering. The plans for manufacturing, testing, and operations support are included.

Source record↗

Scalability, Timing, and System Design Issues for Intrinsic Evolvable Hardware

In this paper we address several issues pertinent to intrinsic evolvable hardware (EHW). The first issue is scalability; namely, how the design space scales as the programming string for the programmable device gets longer. We develop a model for population size and the number of generations as a function of the programming string length, L, and show that the number of circuit evaluations is an O(L2) process. We compare our model to several successful intrinsic EHW experiments and discuss the many implications of our model. The second issue that we address is the timing of intrinsic EHW experiments. We show that the processing time is a small part of the overall time to derive or evolve a circuit and that major improvements in processor speed alone will have only a minimal impact on improving the scalability of intrinsic EHW. The third issue we consider is the system-level design of intrinsic EHW experiments. We review what other researchers have done to break the scalability barrier and contend that the type of reconfigurable platform and the evolutionary algorithm are tied together and impose limits on each other.

Hereford, James↗

Programs for calculating quasi-three-dimensional flow in a turbomachine blade row

MERIDL is a program that calculates a meridional plane stream function solution, and TSONIC is a program that calculates a blade to blade stream function solution for turbomachine blade passages. Both programs are discussed, including input required and assumptions and limitations. Examples of use and references are included.

Katsanis, T.↗

Documenting the Development of Software

Some routine supervisory functions performed automatically. Program Management Facility (PMF) computer program integrated software-development and control system. Applicable to large software systems involving as many as several hundred programmers and one million lines of codes, it ensures timely and orderly planning, development, implementation, and documentation of software. Designed as support tool. Has many features providing efficient processing and utilization of space for development programmer. Incorporates security system to prevent improper maintenance. Provides full set of cross-referenced reports and supervisory functions for detailed management information. Written in assembler. IBM program TSO required.

Source record↗

A Systematic Approach to Developing Paths Towards Airborne Vehicle Autonomy

Advanced Air Mobility (AAM) demands greater levels of aircraft autonomy than are currently implemented today. To enable this requirement, novel aircraft functionalities and technologies as well as supporting airworthiness and operational regulations are required. A structured method to derive a comprehensive list of aircraft level decision-making functions is defined and applied. The resulting function set is programmed into an ontology, and enables autonomous decision-making through the application of a defined decision-making process. Paths to implementing the functions are generated by applying a structured four step method. By surveying current technologies, airspace, procedures and regulations, the paths generation method defines incremental paths to autonomy that the current regulatory environment can support. Opportunities to implement novel technologies and functions are identified, and regulatory mechanisms supporting their implementation are underscored. The analysis provides the tools to further define aircraft functions and paths to their implementation, while demonstrating that for particular use cases, aircraft autonomy is attainable in the medium-term.

Paul Vajda↗

Exploration Supply Chain Simulation

The Exploration Supply Chain Simulation project was chartered by the NASA Exploration Systems Mission Directorate to develop a software tool, with proper data, to quantitatively analyze supply chains for future program planning. This tool is a discrete-event simulation that uses the basic supply chain concepts of planning, sourcing, making, delivering, and returning. This supply chain perspective is combined with other discrete or continuous simulation factors. Discrete resource events (such as launch or delivery reviews) are represented as organizational functional units. Continuous resources (such as civil service or contractor program functions) are defined as enabling functional units. Concepts of fixed and variable costs are included in the model to allow the discrete events to interact with cost calculations. The definition file is intrinsic to the model, but a blank start can be initiated at any time. The current definition file is an Orion Ares I crew launch vehicle. Parameters stretch from Kennedy Space Center across and into other program entities (Michaud Assembly Facility, Aliant Techsystems, Stennis Space Center, Johnson Space Center, etc.) though these will only gain detail as the file continues to evolve. The Orion Ares I file definition in the tool continues to evolve, and analysis from this tool is expected in 2008. This is the first application of such business-driven modeling to a NASA/government-- aerospace contractor endeavor.

Source record↗