Offline
I have been searching for a definitive explanation of how damping is implemented in Expedition ... without success :-( I have read the help in detail and searched through the forums.
The best I have found was in Nick's 2017-06-17 08:35 post where he says "The standard damping weights to the latest. There is a box-car option." I presume these mean a 'linear weighted moving average' in the first case and a 'simple/unweighted moving average' in the second case. Can someone confirm (or deny) that this is what they really mean?
I presume 'exponentially weighted moving averages' are not supported.
Ideally I would like to be able to use some more intelligent filtering within Expedition but I suspect that is not an option.
Offline
The box car option is just an average over the period. The other option biases it towards the most recent.
Offline
Understood:
- 'Boxcar' means 'unweighted moving average'
- The standard option means a 'linear weighted moving average'
- 'Exponentially weighted moving averages' are not supported.
- Anything else is also not supported.
Offline
I could add others, but am away for a few weeks.
Offline
Thanks Nick. Enjoy your holiday.
I have spent quite a bit of time recently analyzing LOTS of data from one of the boats on which I regularly sail and have come to some interesting realizations.
Anyone who has ever looked in detail at GPS position data knows that it is inherently noisy. But what are the effects of this? The first thing to note is probably that the SOG and COG information provided by the GPS is (generally) derived directly from the most recent position data. If we are using this data at all then we are probably asking for trouble. So, what are the implications? Looking for empirical evidence I have had a laptop sitting next to me in my office running expedition for the past 72 hours or more. It hasn't physically moved more than a metre in that time but in the last hour it was apparently doing 1.5 knots at one stage and almost two hours ago it was apparently doing 10-15 knots on three occasions!
We should probably be completely ignoring the SOG & COG data we receive from our GPS as it's probably worthless unless it's coming from a high-end device (eg. a Cosworth CSG10 which includes 10Hz GPS + 500Hz 3D accel + 500Hz 3D gyro + 100Hz 3D mag + low pass filters + Kalman filters to give a high-reliability output if configured correctly!) that intelligently processes this information before it gives it to us. In the absence of such high-end equipment we should probably be applying sophistocated predictive filtering to our raw GPS position data from which we then derive our SOG & COG baseline data. This could then be used with confidence in our true wind, drift/set, and a myriad of other dependent calculations.
The right answer is to correct the raw data before it is used. This applies to GPS position data (as I have mentioned) but also to wind data ... Of course we've got wind sensors on the top of our masts and these can also be easily corrected using accel & gyro inputs.
For the next few weeks Nick you should enjoy your holiday. When you get back it would be interesting to hear your thoughts on the potential for advanced filtering options along the lines of what I have suggested.
I don't think anyone is expecting Expedition to to do the primary data conditioning (filtering, removing noise, etc) although it would probably help to have much of that functionality available within Expedition if required. For those with low-end sensors it would help because they could do it all within Expedition but then they still have to figure out how to display it on deck; and for those with high-end sensors and systems it may help them confirgure their instrument systems more effectively.
Offline
Unless it is a very cheap GPS or badly positioned, GPS cog & sog should be an order of magnitude more accurate than the position data.
Offline
Really? Mathematically the GPS velocity vector [SOG,COG] is the first derivativeof the GPS [lat,lon] position vector measured by the GPS. So how do you conceive that the GPS SOG/COG "should be an order of magnitude more accurate than the position data" when those results are actually derived directly from the position data?
BTW. You are talking to an engineer here who hated control systems at uni but has recently found some practical application for the theory.
Offline
The cog & sog aren't derived from successive position fixes in a decent GPS. The kalman filter inputs are generally the pseudo ranges and pseudo range rates from the SVs, so you can physically think of the gps velocity estimate as being heavily influenced by the Doppler frequencies on the satellite signals.
Of course, a cheap or old GPS chipset can estimate the velocity from successive position fixes, but I haven't seen one of those for a long time.
Offline
Thanks for your insights Nick. My comments so far are based on empirical observations of the systems I use regularly and on the documentation available for these and others.
The data I have examined so far has come from three sources: a SimRad GPS, a Zeus B&G GPS, and some other unknown GPS unit attached directly to the PC running Expedtion. In the last month we have replaced the Zeus GPS with two new Zeus2's so tomorrow I will have access to a total of four GPS sources! I will collect some data from all sources; analyze the results; and report back here :-)
To be honest Nick, I am skeptical of your assertions that the [SOG,COG] vector is generally calculated via predictive filters (eg. Kalman filters or similar) as the results I see suggest otherwise. Can you provide any specific references showing how particular GPS devices calculate these things?
Offline
It is fundamental in GPS devices. A quick google search for GPS, Velocity and Kalman Filter will yield some answers. For example,
I do have some formal education in GPS, SBAS and Kalman filters btw.
We used to select GPS devices based partly on the chipset used as some were good (eg SiRF and some were not). I don't know, but suspect some?all? phone GPSs use the easiest approach.
I suspect examining the COG value around a circle could determine how it is performed. A good one will have the COG vectors tangential to the track and a simple one would have the cog vectors oriented outward.