Skip to content
nmacedo edited this page Jun 17, 2021 · 29 revisions

Adaptive Exterior Light System

Safety and comfort functions in modern cars are often realized in software running on several electronic control units (ECUs) that connect actuators and sensors. Besides the complexity of such distributed system, such systems must additionally be configurable for different markets or customer preferences.

The described Adaptive Exterior Light System (ELS) integrates essential functions such as the headlights and the turn signals, but also comfort functions such as cornering lights. It receives information both from the user interface (switches, pitman arms, setting menu, etc) and a series of sensors (key position, brightness sensor, steering wheel, etc) and activates the lighting actuators. Different configuration may enable different functions altogether or modify their behaviour.

This page presents the resources relevant for the modelling and subsequent validation and verification of the proposed ELS in Electrum, developed as an answer to the ABZ 2020 call for case study contributions, mainly based on the reference document v1.17 and the validation sequences v1.8.

Model for the ELS

The Electrum models for the ELS are presented in detail in the ABZ'20 paper. To handle the multiple variants of ELS, several approaches where explored, resulting in different models:

  • Distinct Electrum model for each variant (there are only 4 effectively distinct variants):
    • EU model (==DriverPosition)
    • USA model (==Canada,==DriverPosition)
    • EU+ArmouredVehicle model (==DriverPosition)
    • USA+ArmouredVehicle model (==Canada,==DriverPosition)
  • A single model in pure Electrum model under a variability idiom
  • A single "colourful" Electrum model under an extension for feature annotations.

The following theme can be applied to all the above models for improved visualisation in the Electrum Analyzer.

The colourful Electrum was adapted from the following publication for Alloy, and an experimental version of the Analyzer is available here.

Validation sequences

A validator for the reference validation sequences has been developed that converts CSV sequences into Electrum and back. To use it simply run from the command line:

java -jar els-validator-v0.1.jar AdaptiveExteriorLight_multi.ele seq.csv

where seq.csv represents a validation sequence in CSV as described in the pre-print, which essentially adds header information to the provided spreadsheet format from the case study call. The values of the CSV are converted into the provided Electrum model and tested for validity. To see the actually generated Electrum formula for the provided sequence, pass the option --pred to the validator.

If cells are left empty in the CSV their values will be free in the Electrum encoding and solved during analysis. This allows domain experts to define sequences of input signals, let Electrum find acceptable values for the output signals, and then validate the results. To see the solutions back into CSV, including the assignments to empty cells, pass the option --csv to the validator.

Below are the 9 reference validation sequences in the accepted CSV format:

Sequence 7 has been fixed for what are, in our perspective, inconsistencies with the requirements. Sequence 9 has been adapted due to the lack of arithmetic support of our approach. The Electrum encoding for the sequences has also been integrated in the models provided above for validation within the Analyzer.

Some of these sequences but with only the input signals defined are also available for output generation:

Scenario 1 - Normal light, no daytime light, no ambient light, day

S1_0

S1_1

S1_2

S1_3

S1_4

S1_5

S1_6

S1_7

S1_8

S1_9

S1_10

S1_11

S1_12

S1_13

Clone this wiki locally