Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Using Rattlesnake

3Using Rattlesnake

This chapter will describe how to use Rattlesnake through its user interface (UI). Rattlesnake is capable of running several different types of control, therefore the UI may look different for different tests. In general, the UI consists of a tabbed interface across the top of the main window, and users must complete each tab before proceeding to the next. The tabs that exist in a given test will depend on which control type is being run. For example, in a combined environments test (see Chapter 19) such as the one shown in Figure 3.1), there is a Test Profile tab that allows the user to define a testing timeline. Additionally, environments such as the MIMO Random Vibration environment (see Chapter 12) require a system identification phase where the controller identifies relationships between the output signals and the control degrees of freedom. Therefore, tests using the MIMO Random Vibration environment will also have a System Identification and Test Predictions tab. Figure 3.2, on the other hand, shows the UI for a test that only utilizes the Time History environment (see Chapter 17) so these optional tabs are not displayed.

Rattlesnake UI tabs when running a combined environments test with an environment that requires a system identification.

Figure 3.1:Rattlesnake UI tabs when running a combined environments test with an environment that requires a system identification.

Rattlesnake UI tabs when running a single environment with no system identification phase.

Figure 3.2:Rattlesnake UI tabs when running a single environment with no system identification phase.

Users of Rattlesnake must be aware that depending on their test configuration, their UI may not appear identical to images shown in this User’s Manual. Additionally, users should be aware that the UI library used by this software will inherit stylistic features from the operating system. There may therefore be cosmetic differences between the images of the UI shown in this document and the UI seen by the user. All images in this document were created using Microsoft Windows 10 or Windows 11 operating systems, so users with Mac or Linux operating systems will note a difference in UI appearance.

Note that the Rattlesnake enforces an order to operations when defining a particular test by enabling and disabling tabs in the UI. Initially, only the first tab will be enabled. As the users complete each tab, the next tab will become available. In Figure 3.1 and Figure 3.2, it can be seen that only the initial tabs are enabled, and subsequent tabs are disabled.

Once all tabs are enabled, Rattlesnake continues to employ a state tracking paradigm which will not allow users to perform an invalid operation. For example if users are actively running a test and return to the Environment Definition tab, trying to re-initialize environments will result in a state error.

3.1Global Data Acquisition Settings

The Data Acquisition Setup tab of the Rattlesnake UI specifies the global test parameters that the controller will use. Parameters are determined to be global when they affect all environments or the controller itself. The three main sections of this portion of the interface are the Channel Table, Environment Table, and Global Data Acquisition Parameters. Figure 3.3 shows this.

Data Acqisition Setup tab in the Rattlesnake Controller where the Channel Table, Environment Table, and Data Acquisition Parameters are specified.

Figure 3.3:Data Acqisition Setup tab in the Rattlesnake Controller where the Channel Table, Environment Table, and Data Acquisition Parameters are specified.

3.1.1Channel Table

The channel table specifies how the instrument channels in a given test are connected to the data acquisition hardware, as well as how the data read from those channels are used by the software.

In general, for a given test there will be a set of excitation devices that use the output signals from Rattlesnake as well as instrumentation to record the test article’s responses to those exciters. Rattlesnake requires each instrument (or each channel on each instrument for multi-axial instruments) as well as each excitation device to have a row in the channel table. This is perhaps contrary to other control software where only the response channels need to be set up in the channel table. However, to maintain the flexibility to run multiple types of hardware devices, some of which having limitations to their triggering capabilities, Rattlesnake must read in the signal from its output directly in order to be able to synchronize its outputs and the responses to those outputs. Therefore, for all Rattlesnake test setups, the output signal should be split using a tee to the exciter and the corresponding input channel. Because of this requirement, one should keep in mind that the number of acquisition channels required on the hardware device for a given test is actually the number of responses plus the number of outputs. Figure 3.4 shows a schematic of a four acquisition channel, two output channel LAN-XI module set up for use with Rattlesnake.

Output channels teed to acquisition channels so they can be read by the controller.

Figure 3.4:Output channels teed to acquisition channels so they can be read by the controller.

The required data input into the channel table varies with the physical or virtual hardware used for the test. For device-specific channel table requirements, see the appropriate section of Part 2: Rattlesnake Hardware Devices. In general, the entries to the channel table are as follows:

To limit the tediousness of inputting channel table information into the UI by hand, the channel table can be loaded from an Excel spreadsheet or Comma-separated-value file. A channel table can be loaded by clicking the Load Channel Table button under the channel table, which will bring up a file selection dialog, enabling the user to select a file to load. For convenience, a template Excel spreadsheet is attached to this page:

A template Excel file can also be generated by creating a test in Rattlesnake and saving the empty channel table by clicking the Save Channel Table button under the channel table. If a channel table is filled out in Rattlesnake’s UI, its contents will be saved to the file as well.

3.1.2Environment Table

In order to run a test, it must be populated with one or more environments. An environment is effectively the type of control that the controller provides. For example, the MIMO Random environment controls the test article to a specified CPSD matrix, while the MIMO Transient controls the test article to a specified time history.

Environments can be added to the test by clicking the Add Environment dropdown and selecting the type of environment that is desired, as shown in Figure 3.5.

Adding an environment to the Rattlesnake controller.

Figure 3.5:Adding an environment to the Rattlesnake controller.

When an environment type is selected, a dialog box will appear querying the user for the name of the environment, as shown in Figure 3.6.

Defining the name of the new environment.

Figure 3.6:Defining the name of the new environment.

As environments are added, their names will appear as the columns of the Environment Table. Rows of this table will be populated with checkboxes; a checked checkbox will indicate that the channel corresponding to the checkbox’s row is used for the environment corresponding to the checkbox’s column. A channel can be used for multiple environments, a single environment, or no environments. Channels used by no environments will still be measured and streamed to disk, but will not be sent to any environment for use in the respective control approaches. The environment table is also used to specify which excitation devices are used by which environment.

For single environment tests, the software assumes that all channels in the channel table are used by the single environment regardless of checkbox state.

3.1.3Data Acquisition Parameters

The final portion of Data Acquisition Setup tab specifies data acquisition parameters. These parameters may change depending on the hardware selected.

3.1.4Initialize Hardware

With the Data Acquisition Settings specified in the UI, the Data Acquisition can be initialized by pressing the Initialize Hardware button in the top-right corner of the window. At this point, the controller will go through and create the programming interfaces to the hardware device, specify the sampling parameters, and create the channels on the devices. It will also update the UI given the environments specified in the test. The software will then proceed to the next tab.

Figure 3.7 and Figure 3.8 show a completed Data Acquisition Setup tab with twenty accelerometer response channels, three force response channels, and three voltage drive channels that have been teed into acquisition channels. It also contains two environments, Random and Shock, which both have all response channels and all drive channels active for them.

Example of a completed Data Acquisition Setup tab with three response channels and one output channel.

Figure 3.7:Example of a completed Data Acquisition Setup tab with three response channels and one output channel.

Continuation of  with the channel table scrolled to see additional columns.

Figure 3.8:Continuation of Figure 3.7 with the channel table scrolled to see additional columns.

3.2Environment Definition

The Environment Definition tab is the second tab in the Rattlesnake software. It is in this tab that the various environments are defined. The main tab will have one sub-tab for each environment, as shown in Figure 3.9.

Sub-tabs for environments Random and Shock in the Environment Definition tab.

Figure 3.9:Sub-tabs for environments Random and Shock in the Environment Definition tab.

Different environment types will have different parameters that can be set. See Part 3: Rattlesnake Environments for a description of each environment type in Rattlesnake and the parameters that define it.

When all environments are defined, the Initialize Environments button in the top-right corner of the tab can be pressed to proceed to the next portion of the controller.

3.3System Identification

With the environments defined, the controller proceeds to the System Identification tab if required by any environment, shown in Figure 3.10. During this phase of the controller, the controller will develop relationships between the excitation signals and the responses of the test article to those excitation signals. It will also make a measurement of the noise floor of the test.

System identification tab showing various signals and spectral quantities that can be used to control and evaluate the test.

Figure 3.10:System identification tab showing various signals and spectral quantities that can be used to control and evaluate the test.

Not all environment types will require a system identification. For environments that simply stream excitation data, a system identification will generally not be required. However for any environment that aims to produce an excitation signal that creates some desired response on the test article, a system identification will be required to understand the relationships between the excitation signals and the response signals.

There will be one sub-tab for each environment that requires a System Identification. System identification must be run for each sub-tab before the test can be run. If no environment requires system identification, then the entire System Identification tab will be removed. When system identification is performed, the software will first perform a noise floor measurement, where all channels are recorded, but no excitation signal is provided. After the noise floor calculation completes, the system identification will begin.

There are many options that define how the system identification phase is performed.

3.3.1System Identification Parameters

The System ID Parameters section of the System Identification tab consists of the following parameters:

3.3.2Signal Parameters

The System Identification tab also gives the option to select the signal to use for system identification. These options are shown in the Signal Parameters section of the tab. Some options are only shown if certain signal types are selected. For example, only a burst random excitation signal uses a trigger, so it is the only one where a pretrigger can be specified.

3.3.3Streaming and Saving Spectral Data

Often it is of interest to save data from the system identification phase, either for offline processing or simply to document what was done to the test article. The system identification phase can stream time data to disk by selecting a streaming file and clicking the Stream Time Data checkbox. Data will be streamed to a netCDF4 file. If streaming time data, the noise measurement will be saved to the variable name time_data and the system identification measurement will be saved to the variable name time_data_1 (see Section 3.7 for more information on the structure of this file). Options for streaming data are found in the Streaming section of the tab.

In addition to streaming time data, the spectral data from the system identification can be saved to disk by clicking the Save System Identification Data button and selecting the file. Users can also load system identification data, which is useful if system identification is a long-running phase of the control system, or the user does not want to put additional stress onto the test article. When loading system identification data, one must be careful that the loaded data has the same control and excitation degrees of freedom as the current environment, and that they are in the same order. Otherwise, the channels in the loaded data will not map correctly to the current environment. Operations to save and load system identification spectral data are found in the Save/Load Spectral Data portion of the tab.

3.3.4Running system identification

To run the system identification, there are buttons to Preview the Noise or System ID characterizations. When ready, the Start button can be clicked. It will run a Noise Characterization for the specified number of Noise Averages, and then subsequently run the System Identification characterization for the specified number of System ID Averages. Both of these operations will stop automatically when the specified number of averages is reached or may be aborted early by pressing the Stop button. If the user wishes to run either the noise or system identification phases continuously, they can click the Preview Noise or Preview System ID buttons. These previews will run continuously until the Stop button is pressed. These operations are found in the Start/Stop portion of the tab.

As the system identification proceeds, the displays in the Progress portion of the tab will be updated.

Data will be plotted as the system identification proceeds. The channels to visualize can be selected by clicking one or more of the channels Responses or References on the right side of the screen.

In the Responses:

In the References:

By default, Time Data and Transfer Functions are shown. However, additional quantities of interest can be shown by clicking on the checkboxes in the Show portion of the tab.

The plots that can be shown are:

3.4Test Predictions

Once the system identification for each environment completes, the controller will compute a prediction for that environment. This prediction will be based on the measured transfer functions between output signals and measured responses, as well as the environment parameters specified on the Environment Definition tab. Predictions will typically be made both for excitation signals required as well as response accuracy, allowing the user to understand if the predicted control will satisfactorily meet the specification, as well as understanding if the test equipment will be able to handle the excitation signals that will be delivered. These predictions will be displayed on the Test Predictions tab. An example of this tab is shown in Figure 3.11.

Test prediction tab showing the prediction for each environment on a separate subtab.

Figure 3.11:Test prediction tab showing the prediction for each environment on a separate subtab.

The Test Prediction tab will again have a subtab for each environment containing the test predictions for that environment. The prediction presented will vary with environment type, as each environment will generally compare predicted response back to the specification. A Chapter 12 environment will therefore make comparisons to a CPSD matrix while a Chapter 13 will make comparisons to time data. See the chapters in Part 3: Rattlesnake Environments for prediction specifics for each environment.

3.5Test Profiles

The Test Profile tab gives the user the ability to set up a test timeline for complex combined environments tests. The user can add a list of events that will be executed at certain times during the test. The tab will also display a graphical representation of the test timeline.

Events can be added or removed from the test timeline by clicking the Add Event or Remove Event buttons. Users can also load a series of events from or save a series of events to an Excel spreadsheet or CSV file.

For each event, the following parameters are defined:

Figure 3.12 shows an example of a test profile that ramps up the test level of environment Random from -6 to 0 dB, and then subsequently starts environment Shock.

Example test profile showing a ramp up of test level for environment Random and subsequently starting environment Shock.

Figure 3.12:Example test profile showing a ramp up of test level for environment Random and subsequently starting environment Shock.

3.6Run Test

The Run Test tab is where Rattlesnake finally runs the test. This tab again has sub-tabs for the different environments in the test, however these sub-tabs will not be enabled until the data acquisition system is armed.

Rattlesnake gives the user many options to save data to the disk through a set of Radio buttons at the top of this tab. These options are:

When streaming data, it is important to note that the software does not stop streaming until the data acquisition system is disarmed by pressing the Disarm Data Acquisition button. This is because for a combined-environments test, the environments may have down-time between them where no environment is running, and that data should still be saved.

The Run Test tab contains global Arm Data Acquisition and Disarm Data Acquisition buttons that start and stop the data acquisition system. When the data acquisition system is armed, the user can no longer change streaming options, and the sub-tabs for each environment are enabled. The user can then start or stop each environment manually using the Start Environment or Stop Environment buttons on each environment’s sub-tab. The sub-tab for each environment is described more thoroughly in Part 3: Rattlesnake Environments.

Alternatively, the user can start or stop the test profile by clicking on the Start Profile or Stop Profile buttons respectively. The profile capability also includes the option to switch the active environment sub-tab when an event is executed so the user can see the results. Note that the profile options only appear when a profile has been defined on the Test Profile tab.

Figure 3.13 shows an example Run Test tab with test profile events.

Run Test Tab.

Figure 3.13:Run Test Tab.

3.7Rattlesnake Output Files

After streaming data is acquired, the user may wish to analyze or plot the data acquired for a given test report. Rattlesnake streams data to a self-documenting netCDF file 1, which can be read by multiple platforms. The output file is described as self-documenting because it contains all parameters necessary to reconstruct a given test using the Rattlesnake controller. Any parameter that is set by the user in the UI is stored to the netCDF file.

A full description of the netCDF file format is out of this document’s scope, but the important points are briefly described here. NetCDF files have a number of data structures.

The Rattlesnake output files contain the following data members:

3.7.1NetCDF Dimensions

3.7.2NetCDF Attributes

3.7.3NetCDF Variables

3.7.4Channels Group

The netCDF files from Rattlesnake store all channel information into a separate group called channels. Inside the channels group, there is a variable for each column of the channel table. See Section #sec:channel_table for more complete descriptions of each channel variable.

3.7.5Environment Groups

Environment-specific attributes, dimensions, and variables are also stored within a group corresponding to each environment. For example, in the case where there were two environments “Random” and “Shock”, parameters specific to environment “Random” would be stored within the group “Random” in the netCDF file, and similarly for “Shock”. See the chapters in Part 3: Rattlesnake Environments for more information on environment-specific parameters.

3.7.6Reading Rattlesnake Output Files using Python

To read data from a netCDF using Python, it is recommended to use the netCDF4 Python package. This library is a dependency of Rattlesnake, so if the user is not running Rattlesnake via an executable, this package should already be installed in the user’s Python ecosystem.

netCDF4 provides a sleek Python interface into the data of a netCDF4 file. This section will assume the command import netCDF4 as nc4 was used to import the package, so nc4 is used as a shorter alias.

A netCDF4 dataset can be opened using the following command:

dataset = nc4.Dataset('path/to/netcdf4/file.nc4')

after which all data can be accessed through the dataset object.

Attribute names can be queried using the dataset.ncattrs() function and the attribute values can be accessed directly from the dataset object using that name.

>>> dataset.ncattrs()
['file_version',
 'sample_rate',
 'time_per_write',
 'time_per_read',
 'hardware',
 'output_oversample',
 'hardware_file']

>>> dataset.sample_rate
8192

Dimensions can be accessed using the dataset.dimensions property, which gives a Python dict where the keys are the dimension names and the values are references to the dimension. The size of the dimension can be accessed using the size parameter in each dimension object.

>>> dataset.dimensions
{'response_channels': "<class 'netCDF4.Dimension'>": name = 'response_channels', size = 26,
 'output_channels': "<class 'netCDF4.Dimension'>": name = 'output_channels', size = 3,
 'time_samples': "<class 'netCDF4.Dimension'>" (unlimited): name = 'time_samples', size = 342016,
 'num_environments': "<class 'netCDF4.Dimension'>": name = 'num_environments', size = 2}

>>> dataset.dimensions['response_channels'].size
30

Variables can be accessed similarly to dimensions using the dataset.variables property. Variables have many properties that may be interesting to the users, including the netCDF dimensions that were used to size the variable (accessible with the dimensions parameter) or the actual shape of the array (accessible with the shape parameter). The data inside the dimension can be accessed by slicing or indexing the array, or simply passing it to a numpy array. Note that slicing or indexing the variable returns the data in a numpy masked array which allows data to potentially to be missing from the array. Rattlesnake does not use the missing data capabilities of the netCDF file, so data can safely be transformed directly to a regular numpy array.

>>> dataset.variables
{'time_data': <class 'netCDF4.Variable'>
 float64 time_data(response_channels, time_samples)
 unlimited dimensions: time_samples
 current shape = (26, 342016)
 filling on, default _FillValue of 9.969209968386869e+36 used,
 'environment_names': <class 'netCDF4.Variable'>
 vlen environment_names(num_environments)
 vlen data type: <class 'str'>
 unlimited dimensions: 
 current shape = (2,),
 'environment_types': <class 'netCDF4.Variable'>
 int64 environment_types(num_environments)
 unlimited dimensions: 
 current shape = (2,)
 filling on, default _FillValue of -9223372036854775806 used,
 'environment_active_channels': <class 'netCDF4.Variable'>
 int8 environment_active_channels(response_channels, num_environments)
 unlimited dimensions: 
 current shape = (26, 2)
 filling on, default _FillValue of -127 ignored}

# Get the dimensions used by the variable
>>> dataset.variables['time_data'].dimensions
('response_channels', 'time_samples')

# Get the shape of the variable
>>> dataset.variables['time_data'].shape
(26, 342016)

# Access via slice returns a masked array
>>> dataset.variables['time_data'][0,0]
masked_array(data=0.,
             mask=False,
       fill_value=1e+20)

# Can pass directly to a numpy array to get the full variable data
>>> np.array(dataset.variables['time_data'])
array([[ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
        -9.34897708e-09, -3.00422105e-09,  4.85883640e-09],
       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
        -1.12773608e-08, -3.25183298e-09,  6.64041130e-09],
       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
         4.32735251e-08,  3.73648821e-08,  2.12970606e-08],
       ...,
       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
         0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
         0.00000000e+00,  0.00000000e+00,  0.00000000e+00],
       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00, ...,
         0.00000000e+00,  0.00000000e+00,  0.00000000e+00]],
      shape=(26, 342016))

Group names in the netCDF dataset can be queried using dataset.groups, which returns a dictionary similar to the dimensions and variables. Groups can also be accessed by indexing the dataset directly with the group name. A group object can be treated exactly the same as the root-level dataset, and will have its own set of attributes, dimensions, and variables.

>>> dataset['channels'].variables['node_number']
<class 'netCDF4.Variable'>
vlen node_number(response_channels)
vlen data type: <class 'str'>
path = /channels
unlimited dimensions: 
current shape = (26,)

3.7.7Reading Rattlesnake Output Files using Matlab

Matlab can also be used to read netCDF files from Rattlesnake. The Matlab ncdisp function can be used to quickly determine which parameters are in a file.

>>> ncdisp('path/to/netcdf/file.nc4')
Source:
           path/to/netcdf/file.nc4
Format:
           netcdf4
Global Attributes:
           file_version      = '3.0.0'
           sample_rate       = 8192
           time_per_write    = 0.25
           time_per_read     = 0.25
           hardware          = 5
           output_oversample = 10
           hardware_file     = 'path/to/hardware/file.npz'
Dimensions:
           response_channels = 26
           output_channels   = 3
           time_samples      = 342016 (UNLIMITED)
           num_environments  = 2
Variables:
    time_data                  
           Size:       342016x26
           Dimensions: time_samples,response_channels
           Datatype:   double
    environment_names          
           Size:       2x1
           Dimensions: num_environments
           Datatype:   string
    environment_types          
           Size:       2x1
           Dimensions: num_environments
           Datatype:   int64
    environment_active_channels
           Size:       2x26
           Dimensions: num_environments,response_channels
           Datatype:   int8
Groups:
    /channels/
        Variables:
            node_number      
                   Size:       26x1
                   Dimensions: /response_channels
                   Datatype:   string
       .            
       .
       .

Attributes, dimensions, and other metadata can be read into Matlab using the ncinfo function. Variables information must be read using the ncread function.

>>> finfo = ncinfo('path/to/netcdf/file.nc4')

finfo = 

  struct with fields:

      Filename: 'C:\Users\dprohe\Documents\Local_Repositories\Rattlesnake_External\src\rattlesnake\examples\frame_wing\data\streaming_example.nc4'
          Name: '/'
    Dimensions: [1×4 struct]
     Variables: [1×4 struct]
    Attributes: [1×7 struct]
        Groups: [1×3 struct]
        Format: 'netcdf4'
     Datatypes: []
        
>>> finfo.Dimensions(1)

ans = 

  struct with fields:

         Name: 'response_channels'
       Length: 26
    Unlimited: 0
    
>>> time_data = ncread('path/to/netcdf/file.nc4','time_data')

Variables within groups can be read by concatenating the group name with the variable name, similar to a file system.

>>> ncread('path/to/netcdf/file.nc4','channels/node_number')

ans = 

  26×1 string array

    "101"
    "102"
    "103"
    "104"
    "105"
    "106"
    "107"
    "101"
    .
    .
    .

In older versions of Matlab, one issue that may be encountered is that string variables are unsupported. This means that the majority of the channel information cannot be read through the Matlab netCDF interface in these versions of Matlab. However, they can be read using the lower level h5read function. Recent versions of Matlab do not have this issue.

>>> ncread('path/to/netcdf/file.nc4','channels/node_number')
Error using netcdf.getVar (line 137)
12 is not a recognized netCDF datatype.

Error in internal.matlab.imagesci.nc/read (line 605)
                data = netcdf.getVar(gid, varid);

Error in ncread (line 66)
vardata = ncObj.read(varName, varargin{:});

>>> h5read(file,'/channels/node_number')

ans =

  26x1 cell array

3.8Saving and Loading Rattlesnake Tests

It can be tedious to set up a test from scratch each time a test is to be run, so Rattlesnake offers two ways to load test settings from files. Both of these approaches can be accessed by clicking the Load Template button on the main Rattlesnake UI, shown in Figure 3.14.

The first approach to loading a Rattlesnake test is to load in any output Rattlesnake netCDF file. Because Rattlesnake stores all of the metadata associated with a test to this file, Rattlesnake can simply load the metadata from the file to reconstruct that test. One must be careful with various file paths to ensure they are consistent if loading tests from a different computer or file system. For example, the path to a control law on one computer may not be the same path to that file on a different computer.

The second way to load a test is to load in an Excel spreadsheet “template” file. This file will include a worksheet for the channel table, the hardware, each environment, and the test profile. The template can be created by clicking the Save Template button on the main Rattlesnake UI, shown in Figure 3.14. Saving the template will populate it as much as possible with the content from the UI. Commonly missing in environments is the path to the specification file that should be loaded, as some environments do not save this data, and it would be tedious to enter a multidimensional array into a spreadsheeet. Once completed, this file can be loaded by clicking the Load Template button.

View of the Channel Monitor dialog box showing several channels that have reached the “warning” level (highlighted yellow) and one channel that has reached the “abort” level (highlighted red).

Figure 3.14:View of the Channel Monitor dialog box showing several channels that have reached the “warning” level (highlighted yellow) and one channel that has reached the “abort” level (highlighted red).

3.9Channel Monitor

To aid with understanding the test levels and headroom available for the sensors in the test, a Channel Monitor is available where the levels are shown for each channel. The channel monitor is displayed by clicking on the Channel Monitor button on the lower left side of the UI. The display shows both an instantaneous level (green) as well as a running historical maximum (blue). If a channel reaches the Warning or Abort level, it will be flagged with a yellow or red tint, respectively. These warnings “latch”; once the level is reached, it will stay highlighted in the channel monitor until the Clear Alerts button is clicked. Figure 3.15 shows an example channel monitor.

View of the Channel Monitor dialog box showing several channels that have reached the “warning” level (highlighted yellow) and one channel that has reached the “abort” level (highlighted red).

Figure 3.15:View of the Channel Monitor dialog box showing several channels that have reached the “warning” level (highlighted yellow) and one channel that has reached the “abort” level (highlighted red).

The aspect ratio of the Channel Monitor can be customized to different sizes modifying the Channels per Row.

3.10Example Problems

Learning to use Rattlesnake by reading the User’s Manual cover-to-cover is likely not the best way to start using Rattlesnake. The best way to learn how to use Rattlesnake is to start using it, and then to reference the User’s Manual when clarification is needed. This user’s manual contains multiple example problems in the chapters of Examples. New users are suggested to start with these example problems to gain experience and context with MIMO testing.

References
  1. Unidata. (2019). Network Comon Data Form (netCDF) version 4.4.1.1. Software. 10.5065/D6H70CW6