Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Target Zig spreadsheet #16

Open
IanMayo opened this issue Nov 22, 2016 · 0 comments
Open

Target Zig spreadsheet #16

IanMayo opened this issue Nov 22, 2016 · 0 comments

Comments

@IanMayo
Copy link
Member

IanMayo commented Nov 22, 2016

Background reading:
We have an algorithm for the turn detector (master here ):

spotting target zigs

Here is the previous Debrief algorithm:
https://docs.google.com/document/d/10LK_R3r4a9HBzGABAXG9IOhYcm8-QLtPoY9s4Yyiahw/edit?usp=sharing

We also have a formal description from Iain:
https://docs.google.com/document/d/1G_9olH_k7Pq0D5RjuXKdB9DThC1TlqwJEHRkxugRnaA/edit?usp=sharing

We're using the TargetZig.xlsm spreadsheet to:

  • gain an understanding of the algorithm
  • prove the algorithm
  • act as a reference implementation, against which Debrief can be tested.

Here are the course-time plots for the first scenario:
scen1_legs

Our big picture aspiration is to be able to determine when the red track is on a steady course, using only our knowledge of ownship plus the bearings to the red track.

We require the following capabilities in the spreadsheet:

  • let user choose from several different sets of bearing data
  • use the known ownship turn times to collate legs of bearing where ownship is on a straight course
  • let user run a slicing process to find target legs in the bearing dataset
  • understand the slicing performance by:
    • viewing the "before" and "after" scores that are produced by experimenting at each time step
    • viewing the difference between the overall score and the sum of the slices
    • experimenting with the turn-buffer-size passed to the algorithm
    • experimenting with the improvement threshold passed to the algorithm
    • experimenting with the constraint precision passed to the solver by the algorithm
  • comparing the sliced legs with the known results

Here is an initial view of the spreadsheet:
spreadsheet_layout3

It requires the following steps:

  • Note: the top 5 rows will be control to let the user choose what data is being viewed. For now, they can remain as dumb cells
  • For each row, take the Demanded time and find the sensor row number (in Scen1_Sensor) with an elapsed time closest to that (probably using VLookup)
  • Now retrieve the elapsed time and bearing for that row (Index, I think)
  • Now find which Host Leg contains this time. Insert the leg number, or na()

The data is now ready for the slicing to happen.

We need a macro to handle the Slice Legs call. It will do the following:

  • Work down the rows in this worksheet, grouping blocks of bearings in the same Host Leg into Legs (this is in VBA, not on the worksheet)
  • Process the legs as in the above flowchart
  • Present the results as follows:
    • If Host Leg 3 doesn't get sliced, then the Tgt leg is 3
    • If Host Leg 3 gets sliced into 4, the Tgt legs are 3.a, 3.b, 3.c
    • Put the relevant scores into Whole, with Before, After and Sum
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant