Code Monkey home page Code Monkey logo

avro-car-sensor-simulator's Introduction

Car Data simulation

Simulates an electric vehicle's sensor data over time, with synthetic failure modes. See the Avro schema for more info on the data stored in a sample.

Generate test data set

Note: Ensure you are using at least Java 8

./generate_test_data.sh

You can also specify the number of data points per car and the number of cars to simulate, e.g.:

./generate_test_data.sh 50 20

for 50 data points and 20 cars to simulate.

The file will be generated as car-sensor-data.csv in the current directory.

Build load simulator

The device simulator can simulate this model with multiple models, publishing their data to an MQTT broker with its behavior configured in scenario.xml.

You can build the Docker image using build-generator.sh. This will add the MQTT payload generator to the device simulator base image.

Failure modes

For probabilities of events and implementation details, see CarModel

Shock failure / degradation

The car's "shock performance" is measured by accelerometers on the chassis at every corner of the vehicle. In the event of a bump, minor acceleration takes place.

With a certain probability, the shock of a car might fail, in which case, the default acceleration at each iteration increases slightly and the acceleration in case of a bump is much larger.

We assume that the acceleration data here is not a simple point in time measurement, but an aggregation over time.

Tire pressure loss

The car might lose tire pressure with a certain probability. In this case, the pressure will drop below the assumed nominal range of [30..35]psi.

Engine / Drive shaft degradation

The car has vibration sensors which monitor the vibration of the engine.

With a certain probability, a car's vibration might increase greatly, indicating that some sort of mechanical degradation or failure is taking place.

Overheating

The car has a coolant temperature sensor. The fictional (liquid) coolant in this model is used for engine and battery cells.

With a certain probability, a car's coolant temperature might increase greatly (instead of linearly with current draw), indicating battery cell failure , short circuit or other electrical failure.

Battery cell degradation

The rate of decrease of the battery's percentage might increase greatly, indicating battery cell degradation.

Outdated firmware

Firmware version is indicated in the model, a single car might use an outdated software version, e.g. due to not being online for a while.

avro-car-sensor-simulator's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.