准确的并行swathing算法的需要(GPS)制导算法、准确、swathing、GPS

2023-09-11 06:18:20 作者:九重吟

我写了一个Delphi程序由超轻型飞机的手段产生GPX文件作为输入一个穷人的制导系统进行空中喷洒。

I wrote a delphi program generating a gpx file as input for a "poor man's guidance system" for aerial spray by means of ultralight plane.

总的来说,它使用GPX文件作为输出产生的路由(平行大片)。

By and large, it produces route (parallel swaths) using gpx file as output.

这条路线的发动机是基于Vincenty算法,任何WGS84计算工作正常,但 我不能获得通过Topografix(要求)的ExpertGPS生成网格的精度。

The route's engine is based on the "Vincenty" algorithm which works fine for any wgs84 computation but I can't get the accuracy of grid generated by ExpertGPS of Topografix (requirement).

我想在椭球上二维计算:

I assume a 2D computation on the ellipsoïd :

1)从一开始rtept(路线点),计算给定轴承和一个任意的距离(长度大片在下rtept)。

1) From the start rtept (route point), compute the next rtept given a bearing and an arbitrary distance (swath length).

2)计算下一个rtept各自对应于previous轴承(90°转弯),另一个任意距离(大片的距离)。

2) Compute the next rtept respective respective to previous bearing (90° turn) and another arbitrary distance (swath distance).

3)重做1)与最后rtept作为起点,但在相反的方向,等等。

3) Redo 1) with the last rtept as starting point but in the opposite direction, and so on.

有什么不对呢?

推荐答案

您没有说明您的帕斯卡尔执行Vincenty的地球椭球体模型,使下面的猜测:

You do not describe your Pascal implementation of Vincenty's earth ellipsoid model so the following is speculation:

在该模型采用大量的几何触发functions-- ATAN2的, COS,SIN等。根据是否使用内部德尔福功能 或者你自己的版本,也缺乏precision的可能性 在计算中。在precision在圆周率的值,用你的 计算可能会影响到您所需要的precision。 在浮点运算可能会导致小数位的错误。它会 有所作为是否使用单人,双人或实。一世 相信有些内部的德尔福功能都与改变 不同的版本,所以可能的Delphi你的版本 使用将影响内部函数的实现。 如果实现准确,Vincenty的公式应该是 精确到0.5mm以内。惊人的准确度。如果有四舍五入 在你的Delphi FPGA实现的错误或不足precision,位置 错误可能是显著较大。 在考虑您的GPS信息的准确性。取决于如何 许多卫星正在在任何一个时间使用的GPS接收机, 的位置信息的变化的精确度。在错误 50英尺或更多的顺序是可能的。此外,刷新 的GPS接收器上的位置信息不一定 瞬间;因此,如果大片变为快速发生,你 必须确保GPS的转折点处已更新。 您的程序计算模式似乎合理,看 在您的实现Vincenty算法在德尔福code的。 在此名单并不详尽,我想其他人可以改进 大幅提升。我提的是根据我的经验与全球定位系统和 德尔福的各种版本和我能回忆起了我的头顶。 有些事情,你可以尝试是比较你的计算 距离/方位使用实施的算​​法与 在互联网上提供的例子。有几个在线 计算器。如果你还没有去过那里,在航空处方集的 是一个很好的地方找到了其他导航招数例子。 http://williams.best.vwh.net/avform.htm 。 A将比较 让你获得自信,在德尔福的precision 与由计算出的数据实施Vincenty的算法的 数学家。简单地说,您的实施Vincenty可能不 precise。话又说回来,该错误可能是其他地方。 The model makes use of numerous geometrical trig functions-- ATAN2, COS, SIN etc. Depending whether you use internal Delphi functions or your own versions, there is the possibility of lack of precision in calculations. The precision in the value of pi used in your calculations could affect the precision you require. Floating point arithmetic can cause decimal place errors. It will make a difference whether you use single, double or real. I believe some of the internal Delphi functions have changed with different versions so possibly the version of Delphi you are using will affect how the internal function is implemented. If implemented accurately, Vincenty’s formula is supposed to be accurate to within 0.5mm. Amazing accuracy. If there are rounding errors or lack of precision in your Delphi implemention, the positional errors can be significantly larger. Consider the accuracy of your GPS information. Depending on how many satellites are being used by the GPS receiver at any one time, the accuracy of the positional information changes. Errors on the order of 50 feet or more is possible. Additionally, the refresh of positional information on the GPS receiver is not necessarily instantaneous; therefore if the swath 'turns' occur rapidly, you will have to ensure the GPS has updated at the turning point. Your procedure to calculate the pattern seems reasonable so look at your implementation of Vincenty's algorithm in your Delphi code. This list is not exhaustive, I imagine others can improve it dramatically. What I mention is based on my experience with GPS and various versions of Delphi and what I could recall off the top of my head. Something you might try is compare your calculations of distance/bearing using your implementation of the algorithm with examples provided on the Internet. There are several online calculators. If you have not been there, the Aviation Formulary is an excellent place to find examples of other navigational tricks. http://williams.best.vwh.net/avform.htm . A comparison will allow you to gain confidence in the precision of the Delphi implementation of Vincenty's algorithm with data calculated by mathematicians. Simply, your implementation of Vincenty may not be precise. Then again, the error may be elsewhere.