SRS Tool — Shock Response Spectrum Analyser

From OROS Wiki
Revision as of 15:34, 17 April 2026 by Lmagimel (talk | contribs) (Created page with "{{DISPLAYTITLE:SRS Tool — User Guide}} __TOC__ = SRS Tool — Shock Response Spectrum Analyser = '''SRS Tool''' is a professional Shock Response Spectrum (SRS) analysis application developed for structural dynamics engineers working with OROS NVGate acquisition systems. It reads recorded time signals directly from NVGate project folders, computes SRS using the Smallwood (1981) recursive digital filter, and injects results back into NVGate as live TCP result channels...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

SRS Tool — Shock Response Spectrum Analyser

SRS Tool is a professional Shock Response Spectrum (SRS) analysis application developed for structural dynamics engineers working with OROS NVGate acquisition systems. It reads recorded time signals directly from NVGate project folders, computes SRS using the Smallwood (1981) recursive digital filter, and injects results back into NVGate as live TCP result channels — all without leaving a single application.

File:Screenshot main overview.png
SRS Tool — main window overview. Left panel: tabbed controls. Right panel: time signal (top) and SRS plot (bottom).

Key Features

What makes SRS Tool unique

Feature SRS Tool Typical competitor tools
Built-in normative limit curve library (30+ curves, MIL-STD-810H, ECSS, NASA, DEF-STAN…) Template:Yes — ready to use, no configuration Template:No — manual entry only, or sold as separate module
Multi-channel Pass/Fail with per-channel verdict in a single run Template:Yes Rarely — usually one channel at a time
Automatic shock zone detection (envelope-based) Template:Yes Rarely included
Primary + Residual SRS in one computation pass Template:Yes Usually requires two separate analyses
SRSS (Square Root Sum of Squares, multi-axis resultant) Template:Yes Optional paid add-on in most tools
Worst-case envelope across axes Template:Yes Rarely included
Direct NVGate TCP injection (read signal → compute → inject result) Template:Yes — native, zero configuration Template:No — requires manual export/import
Interactive cursor with margin readout on Pass/Fail chart Template:Yes Rarely
Open-source, no licence dongle Template:Yes Template:No

Full feature list

  • Signal acquisition: reads NVGate .ors / .orm files directly — no DLL, no NVGate open
  • Multi-channel: up to 10+ simultaneous channels; channel labels read from NVGate recording metadata (e.g. x, y, z)
  • Smallwood recursive filter: vectorised NumPy implementation; all frequencies computed in a single forward pass
  • Frequency axis: 1/3, 1/6, 1/12 or 1/24 octave resolution; user-defined f_min / f_max
  • SRS types: Maximax (absolute maximum), Positive, Negative
  • Physical quantities: Acceleration SRS + derived Pseudo-Velocity SRS + Pseudo-Displacement SRS
  • Shock zone: auto-detection + manual override (drag on plot or type Start/End in seconds)
  • Residual SRS: computes SRS on the signal segment after the shock ends
  • Multi-axis combination: SRSS and/or Worst-case Envelope across all loaded channels
  • Pass/Fail: 30+ built-in normative curves; user CSV; scale factor (dB); multi-channel worst-case
  • CSV export: full table (per-channel SRS, SRSS, limit, per-channel margin, worst margin, status)
  • PNG export: Pass/Fail chart at 150 dpi
  • NVGate injection: injects all SRS curves into NVGate on log-log display, autoscaled
  • Preprocessing: DC offset removal, noise floor suppression
  • Dark theme: optimised for lab-room screen visibility

Installation

Requirements

Component Version Notes
Python 3.9 – 3.11 3.12 not yet tested
PySide2 5.15.x Qt5 binding
NumPy ≥ 1.22 Vectorised SRS engine
Matplotlib ≥ 3.5 Embedded plot canvases
pynvdrive OROS Toolkit NVdrive Required for NVGate injection only

Launch

<syntaxhighlight lang="bash"> cd C:\OROS\Gemini\SRS python -m src.main </syntaxhighlight>

Or use the provided launch_srs.bat shortcut.

Template:Note


User Interface Overview

The window is divided into two main areas:

  • Left panel — tabbed control area (340 px fixed width): Main, Advanced, Pass / Fail
  • Right panel — expandable visualisation area, showing either the SRS view or the Pass/Fail view depending on which tab is active
File:Screenshot ui layout.png
Window layout: left tab panel + right visualisation area.

Status bar

The status bar at the bottom of the window shows:

  • Current operation (loading, computing, injecting…)
  • After computation: number of frequency bands, Q factor, octave resolution, shock zone duration
  • After Pass/Fail: global verdict, minimum margin in dB, number of exceedances

A progress bar appears in the bottom-right corner during SRS computation.


Main Tab

File:Screenshot main tab.png
Main tab — from top to bottom: NVGate connection, Signal, Channels, Calculation parameters, Output.

NVGate connection indicator

A coloured dot shows the live connection status to NVGate:

  • 🔴 Disconnected — NVGate is not running, or pynvdrive is not available. SRS computation still works; only injection is unavailable.
  • 🟢 Connected — NVGate is reachable. The indicator is polled every 3 seconds automatically.

Signal

Selects the NVGate measurement folder to analyse.

Select signal folder…
Opens a folder browser starting at C:\OROS\NVGate data\Projects.
 Select the Measurement folder (e.g. …\Projects\MyProject\Measurement3).
 The tool scans for Record_*_1\Channel_*\ subfolders automatically.
 Channels are listed immediately and the signal is loaded.

The folder path is shown in grey below the button (truncated to 50 characters).

Channels

Lists all channels found in the measurement folder.

File:Screenshot channels box.png
Channels box: one checkbox per recorded channel with its label, sampling rate, duration and unit.

Each channel is shown as a checkbox:

☑  x   (51200 Hz   0.50 s   m/s²)
☑  y   (51200 Hz   0.50 s   m/s²)
☑  z   (51200 Hz   0.50 s   m/s²)

Channel labels (x, y, z…) are read from the NVGate Name field in the .orm metadata file, set at recording time. Uncheck a channel to exclude it from computation.

↺ Reload channels
Re-reads the channel list from disk. Use this after a new NVGate recording in the same folder without re-browsing.

Calculation Parameters

Parameter Description Typical value
Frequency (f_min to f_max) Frequency range of the SRS output 1 Hz to 10 000 Hz
Type Q factor or Damping ratio ζ Q factor
Value Numerical value of Q or ζ Q = 10 (ζ = 5 %)
Resolution Octave fraction: 1/3, 1/6, 1/12, 1/24 1/12 octave

Template:Note

The relationship between Q factor and damping ratio is:

Q = 10 corresponds to ζ = 5 %, which is the standard value specified by MIL-STD-810, ECSS and most aerospace shock standards.

Output

Selects which SRS curves to compute and display.

Type
Acc — Acceleration SRS (always available).
 Vel — Pseudo-Velocity SRS (only if input unit is acceleration).
 Disp — Pseudo-Displacement SRS (only if input unit is acceleration).
Curve
Maximax — absolute maximum of positive and negative responses. The standard SRS curve required by most norms.
 Positive — maximum positive SDOF response only.
 Negative — maximum absolute negative SDOF response (plotted as a positive value).

Multiple selections are displayed together on the SRS plot.

Compute SRS button

Launches the SRS computation in a background thread. The progress bar updates in real time. A duplicate Compute SRS button is available in the Advanced tab.

Inject into NVGate button

Sends all computed SRS curves to NVGate as TCP result channels displayed in log-log scale. Disabled if NVGate is not connected or if no SRS has been computed. A duplicate Inject into NVGate button is available in the Advanced tab.


Advanced Tab

File:Screenshot advanced tab.png
Advanced tab — Shock zone, Residual SRS, Preprocessing, Multi-axis combination.

Shock Zone

Defines the time window used for SRS computation.

Template:Note

Auto-detection

The detection algorithm (Smallwood envelope method):

  1. Compute a smoothed envelope: rolling mean of |signal| over a 3 ms window
  2. Threshold = threshold_pct / 100 × max(envelope)
  3. Shock zone = first … last sample where envelope ≥ threshold
  4. Expand by padding ms on each side (clamped to signal bounds)
Parameter Description Default
Threshold Fraction of the peak envelope used as trigger (% of peak) 5 %
Padding Extra time margin added on both sides of the detected zone 20 ms

Padding explained: if the shock is detected between 0.100 s and 0.150 s with a 20 ms padding, the zone becomes 0.080 s – 0.170 s. This ensures that the full transient and its ring-down tail are included.

Auto-detect shock
Re-runs detection with the current Threshold and Padding values. The result is shown on the signal plot (yellow dashed markers) and updates the Start/End fields below.

Manual Override

File:Screenshot shock zone.png
Signal plot with auto-detected shock zone (yellow dashed lines). The span selector can be dragged to refine.
Start / End (seconds)
Type the exact zone boundaries in seconds (3-decimal precision).
 Changing either value immediately moves the yellow zone markers on the signal plot.
 The Duration label updates in real time.
Drag on the signal plot
Click and drag horizontally on the time signal to draw a custom zone. The Start/End spinboxes synchronise automatically.

Template:Warning

Residual SRS

Also compute residual SRS
When checked, a second SRS computation is run on the signal after the shock zone end.
 This captures the free vibration decay following the shock, and is required by MIL-STD-810H Method 517 and ECSS-E-ST-10-03.

The residual SRS is displayed as a separate set of curves on the SRS plot (labelled "(residual)").

Advanced Preprocessing

Applied to the signal before SRS computation.

Option Effect Typical use
Remove DC offset (N ms) Subtracts the mean of the first N ms from the entire signal Sensor with bias or slow drift
Noise floor (N ms) Zeroes out the first N ms of the signal Pre-trigger noise before the shock event

Multi-axis Combination

Available when 2 or more acceleration channels are loaded.

SRSS — √(SRS₁² + SRS₂² + …)
Computes the Square Root Sum of Squares of all selected channels (Maximax only).
 Result shown as a white dashed curve on the SRS plot.
Worst-case envelope — max(SRS₁, SRS₂, …)
Computes the point-by-point maximum across all channels (all curve types).
 Result shown as an orange dash-dot curve on the SRS plot.

See the calculation section for the mathematical definitions.


Pass / Fail Tab

File:Screenshot passfail tab.png
Pass/Fail tab — limit curve selector, channel selector, curve type, Run button.

The Pass/Fail tab compares the computed SRS against a normative or user-defined limit curve.

Limit Curve

Built-in library

SRS Tool includes 30+ pre-programmed limit curves from the major international standards. No other standalone SRS tool provides this library out-of-the-box.

The curves are organised by standard family in a grouped drop-down list:

Standard family Curves included
MIL-STD-810H Method 517 Near-field (< 0.3 m), Mid-field (0.5–1.5 m), Far-field (> 1.5 m), Gunfire, Tall vehicles
ECSS-E-ST-10-03C Equipment level protoflight, proto+, acceptance; System level qualification, protoqualification
NASA-STD-7003A Payload near-field, payload far-field, structure-borne near/far
DEF-STAN 00-35 Land vehicle, Ship (deck), Airborne external/internal
MIL-S-901D High-Impact shock (Grade A / Grade B)
IEST-RP-DTE032 Component test levels (light / medium / heavy equipment)
RTCA DO-160G Avionics (Cat. A / B / C)
Tailored Custom envelope / composite curves

Each curve displays:

  • Reference — standard document number and clause
  • Description — English plain-text explanation of the applicability (normative, indicative, etc.)

User-defined CSV

Select ← User-defined (CSV) at the top of the list, then click Load CSV limit curve….

The CSV must contain two columns: frequency (Hz) and level (g), no header required:

10,5
100,50
2000,50
10000,50

The tool interpolates linearly between breakpoints (log-log space).

Scale factor (dB)

Shifts the entire limit curve up or down in dB before comparison:

Scale factor Multiplier Effect
+6 dB ×2.0 Tighter / more conservative limit
+3 dB ×1.41 Standard margin check (+3 dB test level)
0 dB ×1.0 Nominal limit
−6 dB ×0.5 Relaxed limit (adds safety margin to measured SRS)

Compare With

Channel
Select which SRS curve to compare. Options:
  • Individual channels (Ch 1 — x, Ch 2 — y, …)
  • ★ SRSS (…) — the multi-axis resultant (if computed)
  • ◆ Envelope (…) — the worst-case envelope (if computed)
  • All channels — worst case — shown when ≥ 2 channels are loaded; displays all channels simultaneously and uses the worst-case margin for the verdict
Curve
Maximax, Positive or Negative SRS type to compare.

Run Pass / Fail

File:Screenshot passfail chart.png
Pass/Fail chart: SRS curves (coloured) vs limit (red dashed), exceedance fill (red), caution zone (orange), margin subplot (bottom).

Clicking ▶ Run Pass / Fail produces:

Chart (top panel)

  • Each channel SRS plotted in a distinct colour
  • Limit curve: red dashed line
  • Red fill between SRS and limit where SRS > limit (exceedance)
  • Orange fill where 0 ≤ margin < 3 dB (caution zone)

Margin chart (bottom panel)

Displays the margin in dB at each frequency:

  • Green fill for M ≥ 3 dB — well within spec
  • Orange fill for 0 ≤ M < 3 dB — caution, less than 3 dB margin
  • Red fill for M < 0 dB — FAIL
  • Dashed horizontal reference at +3 dB

Interactive cursor

Move the mouse over either panel to see a floating readout:

 f        342.2 Hz
 SRS       18.45 g
 Lim       50.00 g
 dB        +8.7
             PASS

The readout colour changes: green (PASS), orange (< 3 dB), red (FAIL).

Text verdict

The result box below the chart shows:

  • Global verdict: PASS or FAIL
  • Limit curve name
  • Per-channel result: individual minimum margin and worst frequency
  • Worst margin across all channels
  • Table of the 10 most severe exceedances (frequency, SRS, limit, margin)

Example (multi-channel):

PASS   —   Maximax SRS
Limit: MIL-STD-810H Meth.517 — Mid-field (0.5–1.5 m)

Per-channel result:
  PASS  x                               min +12.3 dB @ 500 Hz
  PASS  y                               min  +8.7 dB @ 342 Hz
  PASS  z                               min +15.1 dB @ 1000 Hz

Worst margin (all channels): +8.7 dB  @  342.0 Hz
No exceedance detected over the computed frequency range.

Export

Export CSV

Exports the full comparison table. For a multi-channel run the file contains:

Column Content
Frequency (Hz) SRS frequency axis
SRS_x (g), SRS_y (g), SRS_z (g) Per-channel SRS value
Worst SRS (g) Point-by-point maximum across channels
Limit (g) Limit curve value
Margin_x (dB), Margin_y (dB), Margin_z (dB) Per-channel margin
Worst Margin (dB) Minimum margin across channels
Status PASS / PASS < 3dB / FAIL

The header block includes the limit curve name and scale factor for traceability:

# SRS Pass/Fail Report
# Limit curve:  MIL-STD-810H Meth.517 — Mid-field (0.5–1.5 m)
# SRS type:     Maximax
# Channels:     x, y, z
# Unit:         g

Export graph PNG

Saves the Pass/Fail chart (both panels) as a PNG image at 150 dpi. PDF is also available via the file type filter.


NVGate Integration

Reading signals

SRS Tool reads NVGate measurement data without NVGate running and without any DLL.

The file layout inside a NVGate measurement folder is:

Measurement3/
  Record_1.oxf                    ← RIFF header (ignored)
  Record_1_1/
    Channel_1_0_XXXXXXXX/
      Channel_1.orm               ← JSON metadata (sampling rate, unit, name…)
      Part_0.ors                  ← raw float32 little-endian samples (SI units)
    Channel_2_0_XXXXXXXX/
      Channel_2.orm
      Part_0.ors

The .ors file contains 32-bit IEEE 754 float samples in SI units (m/s², m/s, Pa, …) at the native sampling rate. No conversion is applied before the SRS engine.

The channel name displayed in the tool is taken from the Name field in the .orm JSON file (set by the operator in NVGate at recording time). If Name is empty, the tool falls back to the SourceName field ("Input 1", "Input 2", …).

Injecting results

Results are injected via the NVDrive TCP protocol using the NVD REAL SPECTRUM (FFT-type) result format:

  • Each SRS curve becomes one TCP result channel in NVGate
  • Axes are set to log scale automatically (X and Y)
  • Y axis is autoscaled
  • All curves for a measurement are displayed in the SRS_Results window in Layout1

The channel naming convention in NVGate is:

SRS Acc Shock AbsMax: x
SRS Acc Shock Max: y
SRS Acc AfterShock AbsMax: z
SRS Acc Shock AbsMax: SRSS  (x + y + z)

Mathematical Background

Shock Response Spectrum — Definition

The Shock Response Spectrum (SRS) is a function that describes the peak response of a bank of undamped Single Degree Of Freedom (SDOF) oscillators, each tuned to a different natural frequency f_n, when subjected to a common base excitation signal.

File:Diagram sdof bank.png
Conceptual diagram: the input acceleration signal drives N parallel SDOF oscillators. The SRS is the envelope of their peak responses.

For each oscillator of natural frequency f_n and damping ratio ζ:

where:

  • is the base (input) acceleration
  • is the relative displacement of the mass
  • is the natural angular frequency

The SRS values at frequency f_n are:

where SRS⁺ is the Positive SRS, SRS⁻ is the Negative SRS, and SRS^max is the Maximax (absolute maximum), which is the standard curve required by most aerospace norms.

Smallwood Recursive Digital Filter (1981)

The Runge–Kutta integration of the SDOF equation is computationally intensive. D.O. Smallwood (Sandia National Laboratories, 1981) derived an equivalent recursive digital filter whose coefficients depend only on f_n, ζ and the sampling interval Δt:

Let:

(damped natural frequency)

Filter coefficients:

The recursive equation applied at each time step k:

where x_k is the input acceleration sample and y_k is the absolute acceleration response of the SDOF mass.

Vectorised implementation

SRS Tool computes all N natural frequencies in a single forward pass through the signal using NumPy broadcasting. The coefficients b₀…a₂ are computed as length-N arrays before the loop, and each time-step update is a single vectorised operation on all N oscillators simultaneously. This is typically 50–100× faster than a naive frequency-by-frequency loop.

Frequency Axis

The SRS frequency axis uses a logarithmic (octave-fraction) spacing:

where n is the octave fraction denominator (3, 6, 12 or 24).

Number of bands:

Resolution Bands per octave Bands over 1–10 000 Hz
1/3 octave 3 40
1/6 octave 6 80
1/12 octave 12 160
1/24 octave 24 320

Quality Factor and Damping

The Q factor and damping ratio ζ are interchangeable:

Q factor Damping ζ Typical application
10 5 % Standard aerospace (MIL-STD-810, ECSS)
50 1 % Very lightly damped structures
5 10 % Heavily damped, rubber-mounted equipment

Primary and Residual SRS

Given a shock zone [t_start, t_end]:

  • Primary SRS — computed on the signal segment [t_start, t_end]. Captures the shock transient itself.
  • Residual SRS — computed on the signal segment [t_end, end_of_signal]. Captures the free vibration decay after the shock.

The residual SRS is required by:

  • MIL-STD-810H Method 517.2, paragraph 2.1.3
  • ECSS-E-ST-10-03C, clause 8.4.3

A structure that fails on the residual SRS (after the shock has passed) is still being excited by the stored elastic energy — this can be critical for fragility assessment of sensitive electronics.

Pseudo-Velocity and Pseudo-Displacement SRS

From the acceleration SRS, pseudo-velocity and pseudo-displacement are derived analytically:

These are pseudo values because they assume harmonic motion (valid at high frequencies where the peak response occurs near resonance).

Units:

  • SA in m/s² → SV in m/s, SD in m
  • SA in g → SV in g/Hz (convert to m/s by multiplying by g/2π f_n)

Multi-Axis Combination

SRSS — Square Root Sum of Squares

For a triaxial measurement with channels x, y, z:

Applied to the Maximax SRS only (combining signed positive/negative peaks from different axes is physically undefined).

Interpretation: SRSS is the Euclidean norm of the response vector, representing the worst-case resultant regardless of the direction of the applied shock.

Worst-Case Envelope

The point-by-point maximum at each frequency. Applied to all curve types (Maximax, Positive, Negative).

Interpretation: the governing axis may change with frequency. The envelope captures the most severe response at each frequency band independently, which is the conservative approach required by some space programmes (ECSS-E-ST-10-03C Appendix H).

Pass/Fail Margin

The margin in dB at frequency f is:

where L(f) is the limit curve value (after scale factor) and SRS(f) is the measured SRS.

Margin Status Colour
M ≥ 3 dB PASS Green
0 ≤ M < 3 dB PASS (caution) Orange
M < 0 dB FAIL Red

The 3 dB threshold corresponds to a factor of √2 ≈ 1.41 between the SRS and the limit — the standard minimum acceptable margin in most aerospace shock specifications.


Built-in Limit Curves Reference

MIL-STD-810H Method 517 — Pyroshock

Method 517 covers pyroshock environments generated by explosive devices (separation bolts, pyrocutters, pin pullers, etc.).

Curve name Distance from source SRS plateau (200–10 000 Hz)
Near-field < 0.3 m 10 000 g
Mid-field 0.5 – 1.5 m 1 000 g
Far-field > 1.5 m 300 g
Gunfire Mission-specific
Tall vehicles Reduced far-field per §517.2.4.4

The standard SRS shape is a straight line rising at +9 dB/octave from 100 Hz to a plateau, held constant to 10 000 Hz.

The Mid-field curve is set as the default in SRS Tool, as it is the most frequently encountered specification in equipment qualification programmes.

ECSS-E-ST-10-03C — Space Engineering Shock

The European Cooperation for Space Standardization (ECSS) shock standard covers equipment mounted on spacecraft structures.

Typical levels are specified at the equipment interface. The standard distinguishes:

  • Acceptance level — flight article testing, 1 run per axis
  • Qualification level — +3 dB relative to acceptance, 2 runs per axis
  • Protoflight — qualification level, 1 run per axis (used when only one hardware unit is available)

NASA-STD-7003A — Pyroshock Test Criteria

NASA standard covering payload and structure shock environments. Curves are defined for:

  • Payload near-field and far-field
  • Structure-borne propagation paths

DEF-STAN 00-35 — UK Defence Standard

Covers equipment for land vehicles, ships and aircraft (both external and internal mounting).


Workflow — Step by Step

File:Diagram workflow.png
Recommended workflow from signal loading to Pass/Fail verdict.

Standard workflow

  1. Record the shock event in NVGate with appropriate channel labels (x, y, z for triaxial)
  2. Open SRS Tool → Main tabSelect signal folder… → navigate to the Measurement folder
  3. Channels are listed and the signal is displayed automatically
  4. The shock zone is auto-detected (yellow markers on the signal plot)
  5. Refine the shock zone if needed: drag on the plot, or go to Advanced tab → Manual override
  6. Set Q = 10, frequency range 1–10 000 Hz, resolution 1/12 octave
  7. If triaxial, go to Advanced tab → check SRSS and/or Worst-case envelope
  8. Click Compute SRS → wait for the progress bar to complete
  9. Review the SRS plot (log-log, all channels)
  10. Go to Pass / Fail tab → select the applicable limit curve (default: MIL-STD-810H Mid-field)
  11. Click ▶ Run Pass / Fail → review the chart and verdict text
  12. If needed, export CSV and PNG for the test report
  13. If NVGate is running, click Inject into NVGate to add results to the project

Multi-axis workflow (triaxial accelerometer)

  1. Record all three axes in the same NVGate measurement, labelled x, y, z
  2. Load the measurement — SRS Tool detects 3 channels automatically
  3. Advanced tab → enable SRSS (for resultant) and/or Worst-case envelope
  4. Compute SRS
  5. Pass/Fail → channel selector → choose:
    • All channels — worst case to see all three curves simultaneously
    • ★ SRSS to test the vector resultant against the limit

Residual SRS workflow

  1. Load signal and set shock zone
  2. Advanced tab → check Also compute residual SRS
  3. Compute SRS
  4. Both Primary (during shock) and Residual (after shock) curves appear on the SRS plot
  5. Pass/Fail can compare either zone against the limit curve

Glossary

Term Definition
SRS Shock Response Spectrum. Peak response of a bank of SDOF oscillators as a function of natural frequency.
Maximax max(SRS⁺, SRS⁻). The absolute maximum response, positive or negative.
SDOF Single Degree Of Freedom. A mass–spring–damper system with one resonance frequency.
Q factor Quality factor. Q = 1 / (2ζ). Measures the sharpness of resonance. Q = 10 is standard for SRS.
ζ (zeta) Damping ratio. Fraction of critical damping. ζ = 5 % for Q = 10.
Primary SRS SRS computed on the shock transient segment [t_start, t_end].
Residual SRS SRS computed on the post-shock segment [t_end, end]. Captures ring-down.
SRSS Square Root Sum of Squares. Multi-axis resultant: √(SRS_x² + SRS_y² + SRS_z²).
Envelope Point-by-point maximum across channels: max(SRS_x, SRS_y, SRS_z) at each frequency.
Pseudo-velocity SV = SA / ωn. Derived from acceleration SRS assuming harmonic motion.
Pseudo-displacement SD = SA / ωn². Derived from acceleration SRS assuming harmonic motion.
Margin (dB) M = 20·log₁₀(Limit / SRS). Positive = PASS, negative = FAIL.
Padding Extra time margin added symmetrically to both sides of the detected shock zone.
Pyroshock Shock produced by explosive or pyrotechnic devices (separation bolts, pin pullers…).
NVDrive OROS TCP protocol for communicating with NVGate programmatically.
.orm NVGate JSON metadata file for one channel (sampling rate, unit, channel name…).
.ors NVGate binary signal file (raw float32 samples, SI units, little-endian).

Appendix A — Supported Units

Input unit Physical quantity Vel/Disp SRS available
m/s², g Acceleration Yes
m/s, mm/s Velocity No
m, mm, µm Displacement / Length No
N, kN Force No
V, mV Voltage No
Pa, N/m², bar Pressure No
rad/s, RPM Angular velocity No
rad/s² Angular acceleration No

Velocity and Displacement SRS derivation is only physically meaningful when the input signal is an acceleration. For other unit types, only the acceleration SRS (in the native unit) is computed.


Appendix B — CSV Limit Curve Format

User-defined limit curves must be provided as plain CSV with two columns:

  1. Frequency in Hz
  2. Level in g

Rules:

  • At least 2 breakpoints required
  • Frequency must be strictly increasing
  • No header row needed (automatically detected and skipped if non-numeric)
  • Separator: comma or semicolon (auto-detected)

Example:

10, 5
100, 50
2000, 50
10000, 50

Interpolation between breakpoints is linear in log-log space (the natural space for SRS). Extrapolation beyond the defined range uses the nearest endpoint value.


Documentation generated for SRS Tool — OROS / Gemini project. Algorithm reference: D.O. Smallwood, "An Improved Recursive Formula for Calculating Shock Response Spectra", Shock and Vibration Bulletin, 1981.