4.7. Plausibility
4.7.1. Module Files
4.7.1.1. Driver
src/app/application/plausibility/plausibility.hsrc/app/application/plausibility/validate-battery-voltage.csrc/app/application/plausibility/validate-cell-temperature.csrc/app/application/plausibility/validate-cell-voltage.csrc/app/application/plausibility/validate-current-measurement.csrc/app/application/plausibility/validate-high-voltage-bus.csrc/app/application/plausibility/validate-power-measurement.csrc/app/application/plausibility/validate-string-voltage.c
4.7.1.2. Configuration
src/app/application/config/plausibility_cfg.h
4.7.1.3. Unit Test
tests/unit/app/application/plausibility/test_validate-battery-voltage.ctests/unit/app/application/plausibility/test_validate-cell-temperature.ctests/unit/app/application/plausibility/test_validate-cell-voltage.ctests/unit/app/application/plausibility/test_validate-current-measurement.ctests/unit/app/application/plausibility/test_validate-high-voltage-bus.ctests/unit/app/application/plausibility/test_validate-power-measurement.ctests/unit/app/application/plausibility/test_validate-string-voltage.c
4.7.2. Detailed Description
The plausibility module validates measurement consistency and freshness for the application layer. It is used by BMS Values to transform raw low-level measurements into trusted values for the BMS state machine.
4.7.2.1. Role in the Application
The module itself does not own a scheduler-triggered task.
Its routines are called from BMSVL_UpdateSystemValues() in the BMS Values
module.
This keeps validation logic centralized while allowing BMS Values to control
execution order.
Plausibility is a helper module only:
it validates and qualifies data but does not control BMS
states and does not switch contactors.
4.7.2.2. Validation Responsibilities
The module covers:
current measurement validation with timeout and timestamp checks,
power measurement validation with optional fallback from current and voltage,
string-voltage validation with source plausibility checks and fallback logic,
battery-voltage aggregation from valid string voltages,
high-voltage-bus validation based on connected strings and freshness,
spread checks for cell voltage and cell temperature.
Most routines update validity flags in the associated database structures and emit diagnostic events to track timeout, plausibility, and error conditions.
4.7.2.3. Cooperation with BMS Values and BMS
The interaction is intentionally layered:
Low-level drivers publish measurements to the database.
BMS Values calls plausibility functions to validate and derive values.
BMS Values writes validated pack and min/max values.
BMS state machine consumes these values in its control decisions.
This separation ensures that BMS control logic can operate on consistently validated inputs while keeping validation and diagnostics reusable and testable.