Road profile Inversion based on in-Vehicle Accelerations (RIVA) is a MATLAB package for road profile estimation based on data from vertical acceleration traces.
The scheme in Figure 1 visualizes the framework of RIVA; it shows a vehicle with an accelerometer positioned near the center line, close to the front axle. The inversion is achieved using a PID controller algorithm with a calibrated quarter-car model; it can take any synthetic or field-measured acceleration and speed signal as input. The outcome of this process is followed by a filtering step to remove long wavelengths. A detailed description of RIVA, including model verification and validation, is presented in Skar and Levenberg (2023).
Figure 1: Overview of the RIVA framework.
The road profile inversion is based on matching measured vertical accelerations acquired over a specific road stretch with accelerations simulated by the calibrated quarter-car model. The matching is done with a PID control algorithm (see Figure 2), considering the road profile as an unknown 'input' and the measured accelerations as a 'target' signal. The physics of the quarter-car model governs the 'transfer function' relating input to output.
Figure 2: Block diagram of the closed feedback loop PID controller utilized in RIVA.
The components of the RIVA software is briefly described below:
-
main.m- main script for defining vehicle, importing accelerometer data, and post-processing of the results. -
qcar_acc_ms_tvar.m- script for simulating a syntehtic acceleration trace based on a known vehicle and road profile. -
PID_profile_inv_tvar.m- script for road profile inversion based on measured accelerations. -
PID_profile_out_tvar.m- script for plotting final optimal solution after the optimization process. -
pid_control.mat- road profile data.
The example script (i.e., 'main.m' script) provided is named 'RIVA_insilico.m'. This script offers a synthetic verification of the RIVA MATLAB package to ensure that the code/method offers favorable convergence conditions for an optimization algorithm.
The script focuses on an ideal scenario where the data used as input is synthetically manufactured. The filtered input signal (i.e., road profile) is shown as a dashed blue line in Figure 3; it is slightly smoothed compared to the original signal due to the ‘enveloping’ effect of the tire (i.e., length of the tire-pavement contact area). The result of this effect is highlighted in the magnified view in the top right corner of Figure 3.
Figure 3: Road events randomly distributed over a 50 m section. The original synthetic road profile and the filtered input signal are shown as a black line and a blue line, respectively.
Figure 4 presents the outcome of the road profile inversion; the synthetically generated 'true' acceleration and the input road profile are shown as solid red lines. The corresponding calculated acceleration and the inverted road profile are shown as blue dashed lines.
Figure 4: Comparing true and calculated signals: vertical acceleration traces (top), and inverted road profile (bottom).
As can be seen from Figure 4, the signals overlap, indicating that the optimization problem was optimally solved.
Road profile measurements and in-vehicle acceleration data collected to develop and validate RIVA (see Skar and Levenberg (2023)) are described in detail in Skar et al. (2023) and can be accessed directly from https://doi.org/10.11583/DTU.c.6659909.
- Download the package on your PC
- Open MATLAB
- Go to the directory 'RIVA'
- add the different directories of the RIVA on your MATLAB path — Now you are ready to run the validation examples provided and generate your own analysis
- RIVA is compatible with OCTAVE
For example validation of the library can be launched with
addpath("basic")
addpath("example")
RIVA_insilico- To make changes or add a new function: (i) For the repository (make your own separate copy), (ii) make changes, and (iii) open a 'pull request'. Once approved, it can be merged into the master branch. If you wish to chat beforehand about your contribution, open an issue or email to [email protected].
- If you find a bug in the code: open an 'issue' to notify contributors and create an official record.
Before contributing, please consider how your function fits into RIVA. At a minimum, functions must be well-documented and compatible with OCTAVE, not using any third party components.
Skar, Asmus and Levenberg, Eyal (2023). Road Profile Inversion from In-Vehicle Accelerometers. Transp. Eng. Part B Pavements. https://doi.org/10.1061/JPEODX.PVENG-1385
Skar, A., Vestergaard, A. M., Brüsch, T., Pour, S., Kindler, E., Alstrøm, T. S., Schlotz, U., Larsen, J. E., & Pettinari, M. (2023). LiRA-CD: An open-source dataset for road condition modelling and research. Data in Brief, 49, [109426]. https://doi.org/10.1016/j.dib.2023.109426