SRS Tool — Shock Response Spectrum Analyser
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.
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/.ormfiles 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.
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
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
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 forRecord_*_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.
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 |
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
Shock Zone
Defines the time window used for SRS computation.
Auto-detection
The detection algorithm (Smallwood envelope method):
- Compute a smoothed envelope: rolling mean of |signal| over a 3 ms window
- Threshold = threshold_pct / 100 × max(envelope)
- Shock zone = first … last sample where envelope ≥ threshold
- 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
- 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.
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
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
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_Resultswindow inLayout1
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.
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
Standard workflow
- Record the shock event in NVGate with appropriate channel labels (x, y, z for triaxial)
- Open SRS Tool → Main tab → Select signal folder… → navigate to the Measurement folder
- Channels are listed and the signal is displayed automatically
- The shock zone is auto-detected (yellow markers on the signal plot)
- Refine the shock zone if needed: drag on the plot, or go to Advanced tab → Manual override
- Set Q = 10, frequency range 1–10 000 Hz, resolution 1/12 octave
- If triaxial, go to Advanced tab → check SRSS and/or Worst-case envelope
- Click Compute SRS → wait for the progress bar to complete
- Review the SRS plot (log-log, all channels)
- Go to Pass / Fail tab → select the applicable limit curve (default: MIL-STD-810H Mid-field)
- Click ▶ Run Pass / Fail → review the chart and verdict text
- If needed, export CSV and PNG for the test report
- If NVGate is running, click Inject into NVGate to add results to the project
Multi-axis workflow (triaxial accelerometer)
- Record all three axes in the same NVGate measurement, labelled x, y, z
- Load the measurement — SRS Tool detects 3 channels automatically
- Advanced tab → enable SRSS (for resultant) and/or Worst-case envelope
- Compute SRS
- 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
- Load signal and set shock zone
- Advanced tab → check Also compute residual SRS
- Compute SRS
- Both Primary (during shock) and Residual (after shock) curves appear on the SRS plot
- 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:
- Frequency in Hz
- 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.