Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/ins-trn-coast.md

ins-trn-coast (scenario kind)

Scenario kind of the engine v0.38.0, family Inertial, fusion and quantum sensors. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).

What it does#

INS/TRN coasting error model: position error against coast duration, built from IMU coefficients rather than swept as an assumed drift rate. Five growth contributions — accelerometer bias, gyro-bias tilt through gravity, velocity random walk, angle random walk and scale factor against travelled distance — each propagated through a nine-state local-level inertial error model with Schuler feedback at a stated latitude and height (the short-coast leading-order laws t², t³, t^1.5, t^2.5 and t¹/t² are reported beside it) and combined under a STATED rule (root-sum-square by default, or linear-sum, or deterministic-sum with stochastic-rss; all three are computed on every run so the choice is visible rather than buried). The coast durations reaching caller-supplied position thresholds (10 m and 50 m by default) are located by the engine's existing bisection, each with a per-contribution breakdown naming the dominant source, and each single contribution's crossing is additionally inverted algebraically so the two agree. A terrain-relative-navigation mode bounds the coast with periodic position fixes and reports the largest fix interval that holds each threshold; a position-only fix leaves velocity error and tilt alive across the fix, so it does not always bound the coast at any fix rate, and the report says so rather than returning a zero. MODELLED: the IMU class coefficients are representative band figures, not a datasheet, and the terrain-fix residual is an input. An unreached threshold is reported as null with a status, never as a zero. Not a certified inertial-navigation performance product.

One run of scenarios/ins-trn-coast.toml summarises as: ins-trn-coast | navigation IMU, 250 m/s, combination rss | 10 m at 251.0 s (accel_bias) | 50 m at 608.8 s (accel_bias) | TRN position-only peak 44.7 m over 1200 s

Inputs#

From the schema (kshana kinds --json):

  • Required fields: none
  • Optional fields: imu_grade, accel_bias_ug, accel_vrw_m_s_per_sqrt_hr, accel_scale_factor_ppm, gyro_bias_deg_per_hr, gyro_arw_deg_per_sqrt_hr, speed_m_s, ref_accel_m_s2, latitude_deg, height_m, combination, crossing_thresholds_m, grades, drift_band_lo_m_per_s, drift_band_hi_m_per_s, trn_fix_mode, trn_fix_interval_s, trn_fix_residual_m, mission_duration_s

The example scenarios/ins-trn-coast.toml sets, among others:

Field Value Unit
combination rss text
crossing_thresholds_m [10, 50] m
drift_band_hi_m_per_s 0.05 s
drift_band_lo_m_per_s 0.001 s
imu_grade navigation text
kind ins-trn-coast text
mission_duration_s 1200 s
ref_accel_m_s2 0 m/s^2
speed_m_s 250 m/s
trn_fix_interval_s 120 s
trn_fix_mode position-only text
trn_fix_residual_m 17 m

Run it#

kshana scenarios/ins-trn-coast.toml

3 bundled scenarios use this kind; the others are in scenarios/.

What it gives#

The scalar results of that run, with the units the engine states:

Result Value Unit
combination rss text
imu.accel_bias_m_s2 2.4517e-4 m/s^2
imu.accel_bias_ug 25 ug
imu.accel_scale_factor_ppm 100 ppm
imu.accel_vrw_m_s_per_sqrt_hr 0.007 (m/s)/sqrt(hr)
imu.accel_vrw_m_s_per_sqrt_s 1.1667e-4 (m/s)/sqrt(s)
imu.grade navigation text
imu.gyro_arw_deg_per_sqrt_hr 0.002 deg/sqrt(hr)
imu.gyro_arw_rad_per_sqrt_s 5.8178e-7 rad/sqrt(s)
imu.gyro_bias_deg_per_hr 0.01 deg/hr

Result label (the engine's): MODELLED INS/TRN coasting error budget. Each contribution is propagated through a nine-state local-level inertial error model with Schuler feedback (level platform heading north at a stated site, free-inertial including the unstable vertical channel); its short-coast leading-order laws (bias t^2, gy

The chart the engine writes for scenarios/ins-trn-coast.toml, kind ins-trn-coast

Evidence#

VALIDATED: the verification matrix rows that name this kind.

  • VALIDATED Position-error-vs-coast-duration budget built from IMU coefficients, each error source (accelerometer bias, gyro bias, velocity random walk, angle random walk, scale factor cruising and under sustained specific force) propagated through a n

The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):

  • MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED
  • VALIDATED Position-error-vs-coast-duration budget built from IMU coefficients, each error source (accelerometer bias, gyro bias, velocity random walk, angle random walk, . Oracle (ExternalDataset): NaveGo v1.4 (commit 24d9488, LGPL-3.0), run as a separate program under GNU Octave 8.4.0: free-inertial coast runs with the same IMU error profile, with one corrected numerical dead band in its quaternion update (qua_update.m: the guard on a rate below 1e-8 rad/s replaced by wnorm == 0, applied to a run-time copy and asserted to match once; with the guard in place a slowly drifting platform attitude froze and cut the

Limitations#

What the run's own report says is not modelled or not validated:

  • MODELLED INS/TRN coasting error budget. Each contribution is propagated through a nine-state local-level inertial error model with Schuler feedback (level platform heading north at a stated site, free-inertial including the unstable vertical channel); its short-coast leading-order laws (bias t^2, gyro-bias tilt t^3, velocity random walk t^1.5, angle random walk t^2.5, scale factor x travelled distance) are cross-chec (result label)
  • INS/TRN coasting error model: position error against coast duration, built from IMU coefficients rather than swept as an assumed drift rate. (kind catalogue (kshana kinds --json))
  • MODELLED: the IMU class coefficients are representative band figures, not a datasheet, and the terrain-fix residual is an input. (kind catalogue (kshana kinds --json))
  • The question this answers: when a GNSS (or aperture-duty-cycled) study says "assume a dead-reckoning drift of 0.001–0.050 m/s", where does that number come from? It comes from the IMU, and this scenario computes it instead of sweeping it. Five growth terms — accelerometer bias (t^2), gyro-bias tilt through gravity (t^3), velocity random walk (t^1.5), angle random walk (t^2.5) and scale factor times the travelled dist (scenario file comment, lines 4 to 11)
  • Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))

See also#