CS452 - Real-Time Programming - Spring 2012

Lecture 17 - Calibration I

Public Service Annoucements

  1. Convocation
  2. Exam: 9.00, August 8
  3. Flow control when communicating with the train controller.
  4. Measurement is an activity that is not speeded up by being smart.



You can't do anything until you know where the train is. You accomplish this by

Measurement is costly, and you should squeeze every bit of information you can out of every measurement you make.

1. Calibrating Stopping Distance

The simplest objective:

Sequence of events

  1. Train triggers sensor at t
  2. Application receives report at t + dt1
  3. You give command at t + dt1 + dt2
  4. Train receives and executes command at t + dt1 + dt2 + dt3
  5. Train slows and stops at t + dt1 + dt2 + dt3 + dt4

Questions you need to answer


  1. The sequence of events above has a whole lot of small delays that get added together
  2. Knowing where you stop is very important when running the train on routes that require reversing
  3. Clearly, knowing when you stop is equally important.

This is very time-consuming!

Now make a table

Sensor 1 Sensor 2 ...
Speed 6
Speed 8

There are enough measurements in each cell of the table that you can estimate the random error. (Check with other groups to make certain that your error is not too big.)

Based on calibrations I have seen in previous terms you will find substantial variation with speed setting and train, little variation with sensor.

Group across cells that have the `same' value. Maybe all have the same value.

Hint. Interacting with other groups is useful to confirm that you are on track. Of course, simply using another group's calibration without saying so is `academic dishonesty'.

2. Calibrating Constant Velocity

At this point there are a few places on the track where you can stop with a precision of a trainlength or better. However, suppose you want to reverse direction at a switch.

Knowing the Current Velocity

An implicit assumption you are making is that the future will closely resemble the past.

  1. You measure the time interval between two adjacent sensor reports.
  2. Knowing the distance between the sensors you calculate the velocity of the train

    Note that on average the lag mentioned above -- waiting for sensor read, time in train controller, time in your system before time stamp -- is unimportant.

  3. After many measurements you build a table

Using Resources Effectively

The most scarce resources

The most plentiful resource

Any time you can use a plentiful resource to eliminate use of a scarce one you have a win. For example

Practical Problems You Have to Solve

  1. The table is too big.
  2. The values you measure vary randomly.

The values you measure vary systematically

How Long does it Take to Stop?

Try the following exercise.

  1. Choose a sensor.
  2. Put the train on a course that will cross the sensor.
  3. Run the train up to a constant speed.
  4. Give the speed zero command at a location that stops the train with its contact on the sensor
  5. Calculate the time between when you gave the command and when the sensor triggered.
  6. Look for regularities.

How Long does it Take the Train to Get up to Speed?

Return to: