Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This algorithm is primarily designed for live loops. It is possible to use this algorithm for race routes but it may take a very long time to simulate/optimize and future data (like weather) may not be as accurate. Because this is a live algorithm, it is best for short routes using immediate future data (a few hours in advance)

Goals/Sub-projects

  1. Loop specifics (What actions for the driver to take and when)

  2. Binary decision (on whether or not we should do the loop)

Notes:

  • The loop specifics sub-project is basically a simulation of the loop (think of something like numerical analysis, but optimizing/using our model instead of some differential equation)

  • The binary decision sub-project requires data from the loop + external data. This makes this sub-project dependent on the loop specifics sub-project

...

The design of the algorithm somewhat mimics the idea of a numerical analysis algorithm where we have some input, use that input to calculate the output, then use that output as the input at the next “step”. Instead of “steps”, we have segments. And a loop is made of many of these segments. The algorithm design is as follows:

  1. Get all input, segment, and loop data for our current segment

  2. Using that data, determine the values of our variable data (this is the optimizing step)

    • Option 1: Optimize for a single variable (ie. max velocity) and determine what values our other variable data need to be such that our optimizing variable is optimized (easier method)

    • Option 2: Multivariable optimization such that all our variable data values are optimized → Some variable data may be dependent on each other (hard method, will need to come up with an optimization model)

  3. Calculate output data using our optimized variable data

  4. Use output data as the input data for the next segment and repeat this algorithm on that segment

Variables for each type of data

Types of variables that each type of data can have. If some data can be calculated/derived by some other data, it will be noted in parathesis. This section is blocked by SoC, car model, etc

...

Input Data

  • Initial time

  • Initial elevation

Segment Data

  • aPlaceholder

Loop Data

  • aPlaceholder

Variable Data

  • aPlaceholder

Output Data

  • Final time

  • Final elevation

...