Our modern world is packed full with sensors. On the one hand they require valuable resources for production, but on the other hand, sensor data can be used in process optimization in many ways and thus improve environmental impact.
Predicting one sensors data from others would save valuable resources required for production while still making the data available.

What it does

We tried to predict the engine temperature using the following ordinary differential equation (ODE) as a model

target'(t) = c1 * (ambient(t) - target(t)) + c2 * current(t) + c3 * speed(t) + c4 * cooling(t)
target(t0) = ambient(t0)

where the target is the engine temperature predicted using the sensor data for ambient temperature, engine current, car speed and cooling temperature. We came up with this model, because without any other influences, the engine temperature should always tend back to the ambient temperature. All other parameters are assumed to have linear influence.

How we built it

The plots above show our basic steps. We are solving our ODE in python using scipy. Preprocessing was necessary to make the ode-solver more stable. Further on we used the mean sqared error between our prediction and the target temperature as a cost function to optimize for the coefficients.

Challenges we ran into

  • The discrete time series data required preprocessing for the ode to be solved
  • The data had gaps in time, even within the contigous files. We have wrote a recognition function that generates coherent tracks from the database. The final solution seems to deal with small gaps in the time series data quite well.
  • The approach of feeding the data into an influx database for visualization did not really yield a result, as plots took too long to complete.
  • On of the biggest challenges was to find the coefficients for the ODE.

Accomplishments that we're proud of

See our plots above. The coefficients used for the ODE are optimized on other data - yet our prediction describes the target temperature quite well. For further results please step by at our GitHub.
Of course one should question the problem of overfitting, but the parameters were only optimized on small portions of the data and already generalize. Additionally one has to keep in mind, that our coefficients correspond to real world physics which keeps them in check.

What's next for ODE-optimizers

  • We optimized our coefficients ci using only a really small part of the data. Tackling this should lead to a much better generalization of the model.
  • Just for now our model assumes linear influence of the features on engine temperature. It is definitely worth trying to change the constant coefficients ci to functions, as in real world physics, these constants have many influences.
  • One idea is to combine the approach of changing the coefficients ci to functions with Neural Networks, because they might be able to describe the complex physical influences on the ODE when trained properly.
  • This Neural Network approach could also be interesting when employing the idea to different cars. The Neural Networks for the coefficients could additionally be trained on car specific data to get an ODE that generalizes well
  • The Nordkapp challenge features extreme conditions. We would really like to see our idea being applied to more casual driving conditions.
Share this project: