Skip to content

Commit 0355821

Browse files
committed
outline for documentation
1 parent 5d05bdd commit 0355821

17 files changed

+164
-67
lines changed
Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
11
# Summary
22

3-
- [Chapter 1](./chapter_1.md)
3+
[Abstract](./abstract.md)
4+
[Nomenclature](./nomenclature.md)
5+
[Notation](./notation.md)
6+
- [Introduction](./chapter_01.md)
7+
8+
-----------
9+
10+
# Part I. Rattlesnake Overview
11+
12+
- [Acquiring and Running Rattlesnake](./chapter_02.md)
13+
- [Using Rattlesnake](./chapter_03.md)
14+
15+
-----------
16+
17+
# Part II. Rattlesnake Hardware Devices
18+
19+
- [NI-DAQMX Devices](./chapter_04.md)
20+
- [LAN-XI Devices](./chapter_05.md)
21+
- [Data Physics Quattro Devices](./chapter_06.md)
22+
- [Data Physics 900-series Devices](./chapter_07.md)
23+
- [Virtual Control using State Space Matrices](./chapter_08.md)
24+
- [Virtual Control using Finite Element Results in Exodus Files](./chapter_09.md)
25+
- [Virtual Control using SDYNPY System Objects](./chapter_10.md)
26+
- [Implementing New Hardward Devices with Rattlesnake](./chapter_11.md)
27+
28+
-----------
29+
30+
# Part III. Rattlesnake Environments
31+
32+
-----------
33+
34+
[Contributors](contributors.md)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Abstract
2+
3+
Rattlesnake is a combined-environments, multiple input/multiple output control system for dynamic excitation of structures under test. It provides capabilities to control multiple responses on the part using multiple exciters using various control strategies. Rattlesnake is written in the Python programming language to facilitate multiple input/multiple output vibration research by allowing users to prescribe custom control laws to the controller. Rattlesnake can target multiple hardware devices, or even perform synthetic control to simulate a test virtually. Rattlesnake has been used to execute control problems with up to 200 response channels and 24 shaker drives. This document describes the functionality, architecture, and usage of the Rattlesnake controller to perform combined environments testing.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 1. Introduction
2+
3+
The field of multiple input/multiple output (MIMO) vibration testing has grown substantially in the past few years. MIMO vibration testing provides the capability to match a field environment more accurately and at more locations on the test article than traditional single-axis vibration testing. Unfortunately, many existing vibration control systems are proprietary, which makes it difficult to implement new MIMO techniques.
4+
5+
Currently, MIMO vibration practitioners must either develop a control system from scratch to implement their ideas, or alternatively convince an MIMO vibration software vendor to implement their ideas into existing devices, and neither of these approaches are conducive to the rapid and iterative nature of research.
6+
7+
The Rattlesnake framework was developed to overcome these limitations and facilitate MIMO vibration research. Rattlesnake is a MIMO control system that provides the user the ability to overcome testing challenges by providing a flexible framework that can be extended and modified to meet testing demands. Rattlesnake can run multiple environments simultaneously, providing a combined-environments capability that does not yet exist in commercial software packages. It can target multiple hardware devices, or even perform control virtually using a state space model, finite element model (FEM) results, or a SDynPy System.
8+
9+
### 1.1 Document Overview
10+
11+
This document provides information about the functionality in the Rattlesnake software, as well as instructions for how to use that functionality. The document is divided into Parts targeting different aspects of the software.
12+
13+
* [Part I](./chapter_02.md) provides an overview of the software as well as instructions for how to acquire and run the software. Chapter 2 includes instructions for setting up the Python ecosystem required to run the software, if necessary. Chapter 3 describes the Rattlesnake userinterface (UI). Each main portion of the Rattlesnake interface is described along with the parameters that should be defined within that interface.
14+
* Part II describes the hardware devices available to the Rattlesnake software, as well as the hardware-specific considerations in the controller. Each Chapter in this Part is dedicated to a specific hardware device. Synthetic or virtual control is also discussed in this part, as well as instructions to extend Rattlesnake to additional hardware devices.
15+
* Part III describes the various control environments contained within the Rattlesnake software. The environments defined within Rattlesnake are where the next output data that will be sent to the exciters are computed based off the previously acquired data. Each chapter in this Part is dedicated to a environment type within Rattlesnake. This chapter also provides instructions to combine environments as well as extend Rattlesnake to additional environments.
16+
* The Appendices contain several example problems. Users with a reasonable understanding of the Rattlesnake workflow can use these chapters as a kind of "Quick Start" guide to the software. Appendix B demonstrates a series of tests on a simple beam using a NI cDAQ hardware device. Appendices C and D demonstrate virtual control problems using SDynPy System and State Space models, respectively, which only require a computer to run.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Part I. Rattlesnake Overview
2+
3+
This Part provides a general overview of Rattlesnake software. Chapter 2 provides an overview of how to acquire and run the software. Chapter 3 describes the general software workflow.
4+
5+
This Part with only deal with "global" Rattlesnake paramters. For hardware-specific parameters, see Part II. For environment-specific parameters, see Part III.
6+
7+
## 2. Acquiring and Running Rattlesnake
8+
9+
Two methods are provided to acquire the Rattlesnake software. The software can be downloaded as an executable and run directly with no other dependencies. Alternatively, the software can be downloaded in its Python script form and run using a Python interpreter. The former approach is simpler, but results in a larger file size and longer software loading time due to the necessity to pack the Python ecosystem into the executable for distribution and unpack it prior to execution. The latter approach is more suited to users who wish to utilize the full functionality of the Rattlesnake framework, which would include activities such as coding up custom control laws. In this case, it will be advantageous to have a Python ecosystem installed on the user's computer, so simply downloading the source code and executing it similarly to other Python scripts will potentially be easier than the executable approach.
10+
11+
### Running from an Executable
12+
13+
WIP
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 3. Using Rattlesnake
2+
3+
This chapter will describe how
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Part II. Rattlesnake Hardware Devices
2+
3+
Designed for flexibility, Rattlesnake can be used with multiple hardware devices and even perform virtual control using a synthetic data acquisition system. This Part will cover the hardware-specific implementation details that must be considered when running Rattlesnake with each hardware device.
4+
5+
Rattlesnake is designed so there is minimal differences in software workflow when using different hardware devices. Nonetheless, there are some slight differences in how channels and devices must be specified, and these differences are primarily found on the `Data Acquisition Setup` tab in the Rattlesnake software.
6+
7+
The Chapters in this Part document the hardware devices that are able to be used by Rattlesnake, as well as the virtual devices that can be used to simulate control. Chapter 4 describes the implementation and utilization of NI-DAQmx devices. Chapter 5 describes the HBK LAN-XI hardware. Chapters 6 and 7 describe the Data Physics Quattro and 900-series hardware devices, respectively. Chapters 8, 9, and 10 describe virtual or synthetic hardware devices that are defined using state space matrices, eigensolution results stored in an exodus file, or a SDynPy System object, respectively.
8+
9+
If a user is interested in implementing a new hardware device, Chapter 11 describes some of the things to be aware of. Implementation of new hardware devices will require a good amount of knowledge of the Rattlesnake architecture.
10+
11+
## Chapter 4. NIDAQMX Devices
12+
13+
Rattlesnake is able to run National Instruments...
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 5. LAN-XI Devices
2+
3+
Rattlesnake is able to run
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 6. Data Physics Quattro Devices
2+
3+
Rattlesnakes is able to run Data Physics Quattro devices
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 7. Data Physics 900-series Devices
2+
3+
The Data Physics DP900
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 8. Virtual Control using State Space Matrices
2+
3+
If not data

0 commit comments

Comments
 (0)