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
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
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
(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¶
- Sample appropriately - Fast-changing parameters need higher rates
- Include quality - Mark suspect or stale data
- Timestamp accurately - Use source time, not receive time
Threshold Configuration¶
- Include hysteresis - Prevent alarm chatter
- Test thresholds - Validate against real operational data
- Document rationale - Explain why thresholds are set
Display Design¶
- Health at a glance - Summary view first
- Drill-down capability - Details on demand
- 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