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)

...

Assume that we have a segment that has a start point and an endpoint that is separated by some distance. The start point and end point can be represented by some coordinates. A route loop is composed of many smaller segments (but for now, we focus on the smaller segments).

...

  • Input data: Data that we have when at the “start” of the segment. This includes things like initial velocity, initial battery charge

  • Segment data: This is constant data about the segment itself. This includes the elevation gain, speed limit, expected charge from solar panels, etc. This data is constant for the segment itself, but may not be constant for the route loop (since a route loop is composed of many segments). For example, the segment will always have the same weather conditions but this is not true for the route loop weather conditions. Using a programming analogy, this is basically a local constant

  • Route Loop data: This is constant data about the routeloop. This data will not change almost never change (and if it does, it is very rare) for the route loop and each segment “inherits” this data. Using a programming analogy, this is basically a global constant

  • Variable data: These are the variables that we want to optimize (or calculate for) using some model. Types of variable data that we would want to optimize for include minimal/minimum energy use, maximal/maximum velocity, etc. Variable data is what we use to tell the driver what to do (such as increase speed to x)

  • Output data: This data is calculated using our variable data. This includes things like final velocity, final battery charge, etc. This output data would be the new input data for the next segment

...

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 route loop is made of many of these segments. The algorithm design is as follows:

  1. Get all input, segment, and route 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

Inputs/Factors

Outputs

...

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.

Input Data

  • Start time

Segment Data

  • a

Loop Data

  • a

Variable Data

  • a

Output Data

  • Ending time

How to calculate/derive data

Our optimization model

Notes

  • Since we have data from different sources, the data points may not exactly have a similar/consistent format (ie. we may have weather data in 100m intervals and elevation data in 200m intervals). In such as case, we can just use piecewise linear interpolation to calculate missing data

    • Using piecewise linear interpolation works fine if we assume that the data is linear (which is for the most part) and assumes that the interpolation data points are close to each other

    • We can also use quadratic, but this adds complexity to the algorithm and isn’t significantly better unless the interpolation data points are far apart

  • Most (if not all) data points represent the average or total value for the data point. For example, the elevation data for a segment of 1km will be the total elevation gain. Smaller segments/intervals will always yield more accurate data

  • Confidence and uncertain intervals?

https://www.reddit.com/r/askscience/comments/rmwih/can_you_help_explain_this_mythbusters_result/

...