Data Driven Models

  • A system model can be developed from data describing the system
  • Computational techniques can be used to fit data to a model

Modelling Approaches

White Box

  • A white box model is a physical modelling approach, used where all the information about a system and its components is known.
  • For example: "What is the voltage accross a 10 resistor?"
    • The value of the resistor is known, so a mathematical model can be developed using knowledge of physics (Ohm's law in this case)
    • The model is then tested against data gathered from the system

Grey Box

  • A grey box model is similar to white box, except where some physical parameters are unknown
  • A model is developed using known physical properties, except some parameters are left unknown
  • Data is then collected from testing and used to find parameted
  • For example: "What is the force required to stretch this spring by mm, when the stiffness is unknown"
    • Using knowledge,
    • Test spring to collect data
    • Find value of that best fits the data to create a model
    • Final model is then tested
  • Physical modelling used to get the form of the model, testing used to find unknown parameters
  • This, and white box, is mostly what's been done so far

Black box

"Here is a new battery. We know nothing about it. How does it performance respond to changes in temperature?"

  • Used to build models of a system where the internal operation of it is completely unknown: a "black box"
  • Data is collected from testing the system
  • An appropriate mathematical model is selected to fit the data
  • The model is fit to the data to test how good it is
  • The model is tested on new data to see how closely it models system behaviour

Modelling in Matlab

Regression

  • Regression is predicting a continuous response from a set of predictor values
    • eg, predict extension of a spring given force, temperature, age
  • Learn a function that maps a set of predictor variables to a set of response variables

For a linear model of some data :

  • and are the predictor variables from the data set
  • and are the unknowns to be estimated from the data
  • Polynomial models can be used for more complex data

In Matlab

% data points
x = 0:0.1:1.0;
y = 2 * x + 3;
%introduce some noise into the data
y_noise = y + 0.1*randn(11,1)';

%see the data
figure;
plot(x,y_noise);
axis([0 1 0 5])

In matlab, the polyfit function (matlab docs) is used to fit a polynomial model of a given degree to the data.

  • Inputs: x data, y data, polynomial degree
  • Output: coefficients of model
P = polyfit(x,y_noise,1) % linear model
hold on;
plot(x,polyval(P,x),'r');

In the example shown, the model ended up as , which is close, but not exact due to noise introduced into the data.

Limitations

  • Too complex of a model can lead to overfitting, where the model contains unwanted noise
  • To overcome this:
    • Use simpler model
    • Collect more data