View Single Post
Old 09-20-11, 06:51 AM   #50
AdamMil
Mate
 
Join Date: Aug 2007
Location: Seattle
Posts: 51
Downloads: 27
Uploads: 0
Default

Quote:
Originally Posted by Dr.Sid View Post
I'm trying to create formulas for TMA by least square method... I'm writing the program now to verify the formulas... Anyway anybody here could know some formulas or methods too. I'd like to compare.
I know this thread is ancient, but I wanted to reply to it anyway. I have to say "thank you" to Dr. Sid for inspiring me to think about it, and to aaronblood for inspiring me to create a virtual maneuvering board program to implement it in. I came across the thread about a month and a half ago and spent much of the past four weeks working on a solution to this problem, and the maneuvering board program that uses it.

I discovered a small problem with the least squares method as described, which is that it can sometimes produce solutions on the reciprocal bearing line (e.g. on a bearing 270 instead of 90, for instance). As an example, see the solution below:



when the expected solution is something like this:



(from an early test version of my software using Dr. Sid's least squares approach)

One solution to the problem is to use quadratic programming instead of linear least squares. Quadratic programming can solve a linear least squares problem with additional linear constraints on the solution. All you need are constraints of the form (using Dr. Sid's variables) sx*(ax+vx*t-px) + sy*(ay+vy*t-py) >= 0. However, the math involved in writing a QP solver is quite hard (too hard for me, anyway). There are third-party frameworks that can handle it, like the Microsoft Solver Foundation (for .NET). I used one, and tested the idea. It works, but I don't like relying on third-party software.

So instead I came up with a solution that involves numerically minimizing a five-dimensional function. It works pretty well, and can accept flexible constraints such as "speed between 6-8 knots and course between 30 and 60 degrees". It would be trivial to add other constraints like range. I wrote about some of the technical details here (http://www.adammil.net/blog/v103_Per..._Analysis.html).

I implemented it in software, which is available there too. It supports both bearing and point observations (e.g. from passive and active sonar, respectively) from multiple observers, and all observations are taken into account to find the best TMA solution. The software and source code are freely available under the GPL. However, it's at an alpha stage, so some things are missing... like a manual. :-P Nonetheless it's already pretty useful.



(more recent version of auto TMA)

Last edited by AdamMil; 09-20-11 at 07:23 AM.
AdamMil is offline