GVA Usage and Condition Monitoring (UACM)

Usage and Condition Monitoring (UACM) provides real-time monitoring of vehicle systems and subsystems, enabling predictive maintenance and operational readiness assessment.

Overview

UACM collects and analyses:

  • Operating parameters (temperatures, pressures, voltages)
  • Usage metrics (hours, cycles, distances)
  • Fault conditions and error codes
  • Health status and trends

UACM Concepts

Monitoring Architecture

graph TB subgraph "Vehicle Systems" ENG[Engine] PWR[Power] TRN[Transmission] HYD[Hydraulics] WPN[Weapons] COM[Communications] end subgraph "UACM Service" COL[Data Collector] DB[(UACM Database)] ANA[Analyser] end subgraph "Outputs" HMI[HMI Display] ALM[Alarm Service] LOG[Maintenance Log] end ENG -->|Parameters| COL PWR -->|Parameters| COL TRN -->|Parameters| COL HYD -->|Parameters| COL WPN -->|Parameters| COL COM -->|Parameters| COL COL --> DB DB --> ANA ANA --> HMI ANA --> ALM ANA --> LOG

Health Status

graph LR G[GREEN
Fully Operational] A[AMBER
Degraded] R[RED
Non-Operational] style G fill:#4caf50,color:#fff style A fill:#ff9800,color:#000 style R fill:#d32f2f,color:#fff

Message Sequence

Parameter Collection

sequenceDiagram participant Sub as Subsystem participant DDS as DDS Network participant UACM as UACM Service participant DB as Database participant Ana as Analyser Note over Sub: Continuous monitoring loop Every 1 second Sub->>Sub: Read sensors Sub->>DDS: Publish UacmParameter Note right of Sub: parameterId, value,
unit, timestamp DDS->>UACM: Receive parameter UACM->>DB: Store reading end Note over Ana: Analysis cycle (every 10s) Ana->>DB: Query recent data DB->>Ana: Return readings Ana->>Ana: Calculate trends Ana->>Ana: Check thresholds Ana->>Ana: Update health status alt Threshold exceeded Ana->>DDS: Raise alarm end Ana->>DDS: Publish UacmStatus Note right of Ana: subsystemId, health,
parameters, faults

Fault Detection

sequenceDiagram participant Sys as Subsystem participant UACM as UACM Service participant Ana as Analyser participant Alm as Alarms Service participant HMI as HMI Display participant Maint as Maintenance Log Sys->>UACM: Parameter reading Note right of Sys: Temperature = 105°C UACM->>Ana: Analyse reading Ana->>Ana: Compare to threshold (100°C) Note over Ana: Threshold exceeded! Ana->>Ana: Generate fault code Ana->>Maint: Log fault event Ana->>Alm: Raise alarm Note right of Ana: WARNING: Engine temp high Alm->>HMI: Display alarm Ana->>HMI: Update health status Note right of Ana: Engine: AMBER Note over Sys: Temperature reduces Sys->>UACM: Parameter reading Note right of Sys: Temperature = 85°C Ana->>Ana: Within normal range Ana->>Alm: Clear alarm Ana->>HMI: Update status: GREEN

Health Roll-Up

sequenceDiagram participant Sub1 as Engine participant Sub2 as Transmission participant Sub3 as Hydraulics participant UACM as UACM Service participant HMI as HMI Display Note over Sub1,Sub3: Subsystem health updates Sub1->>UACM: Health: GREEN Sub2->>UACM: Health: AMBER Sub3->>UACM: Health: GREEN UACM->>UACM: Calculate vehicle health Note right of UACM: Mobility = AMBER
(due to transmission) UACM->>HMI: Update vehicle summary Note over HMI: Display roll-up view Note right of HMI: MOBILITY: AMBER
├─ Engine: GREEN
├─ Transmission: AMBER
└─ Hydraulics: GREEN

UACM Data

Parameter Structure

Field Type Description
parameterId string Unique parameter ID
subsystemId string Parent subsystem
value float Current reading
unit string Measurement unit
timestamp datetime Sample time
quality enum GOOD, SUSPECT, BAD

Subsystem Status

Field Type Description
subsystemId string Subsystem identifier
name string Human-readable name
health enum GREEN, AMBER, RED
faults list Active fault codes
parameters map Current parameter values
usageHours float Total operating hours

Health Levels

Level Description
GREEN Fully operational
AMBER Degraded capability
RED Non-operational
UNKNOWN Status not available

Parameter Quality

Quality Description
GOOD Valid reading
SUSPECT Reading may be invalid
BAD Known invalid reading
STALE Data not updated recently

Configuration

Threshold Configuration

Define thresholds in JSON format:

{
    "thresholds": [
        {
            "parameterId": "ENG_OIL_TEMP",
            "unit": "°C",
            "min": null,
            "warning": 100,
            "critical": 120,
            "hysteresis": 5
        },
        {
            "parameterId": "ENG_OIL_PRESS",
            "unit": "bar",
            "min": 2.0,
            "warning": null,
            "critical": null,
            "hysteresis": 0.2
        },
        {
            "parameterId": "BAT_VOLTAGE",
            "unit": "V",
            "min": 24.0,
            "warning": 25.0,
            "critical": 24.5,
            "max": 30.0,
            "hysteresis": 0.5
        }
    ]
}

Health Roll-Up Rules

{
    "rollup": {
        "MOBILITY": {
            "subsystems": ["ENGINE", "TRANSMISSION", "HYDRAULICS", "FUEL"],
            "rule": "worst"
        },
        "LETHALITY": {
            "subsystems": ["WEAPON", "FCS", "TURRET"],
            "rule": "worst"
        },
        "SURVIVABILITY": {
            "subsystems": ["NBC", "FIRE_SUPP", "ARMOUR"],
            "rule": "worst"
        }
    }
}

Best Practices

Data Collection

  1. Sample appropriately - Fast-changing parameters need higher rates
  2. Include quality - Mark suspect or stale data
  3. Timestamp accurately - Use source time, not receive time

Threshold Configuration

  1. Include hysteresis - Prevent alarm chatter
  2. Test thresholds - Validate against real operational data
  3. Document rationale - Explain why thresholds are set

Display Design

  1. Health at a glance - Summary view first
  2. Drill-down capability - Details on demand
  3. Trend indication - Show if values are improving/degrading

Troubleshooting

No Data Displayed

  • Check subsystem is publishing parameters
  • Verify DDS topic names match
  • Ensure UACM service is running

Incorrect Health Status

  • Review threshold configuration
  • Check parameter quality markers
  • Verify subsystem ID consistency

Database Issues

  • Check disk space
  • Review database connection
  • Verify write permissions