风螺旋线的切线(二)

风螺旋线的切线(二)

2015-11-15 刘崇军 风螺旋线
 

  数学中的难题用计算机来解决时,可以采用一种简单粗暴的运算方法来计算结果,这种方法就是——迭代运算。

  迭代运算的原理就是先粗略的计算出一个结果,然后和目标要求相比较,找出差距,调整后,重新计算,重复这个过程直到运算精度满足要求为止。

  在PBN保护区绘制时,常见的一种情况就是从下一航路点绘制风螺旋线的切线做为最晚标称航迹,在此基础上外扩15°做主区外边界。(下图中的红线)

  此种情况与之前提到的绘制平行标称航迹的算法的区别在于,这里需要让切线通过指定的点,之前的讨论中切线与转弯后的标称航迹相平行。

  计算的过程简单来说是这样滴:

  1. 先从指定的点,向标称转弯圆弧绘制切线。在这里,转弯半径、指定点到标称圆圆心的距离 是已知条件。根据反余弦函数,可以得到与风螺旋切线有关的θ角。

  2. 从θ角对应的风螺旋线上点画切线,切线的角度是θ-DA+90(上次讨论的内容)。将首次得到的切点与曲线外的指定点进行连线,找出切线与连线之间的夹角(假设是Ω)。

  3. 将Ω角的值累加到θ角中,再次计算出风螺旋线上的点,计算切线角度、计算指定点连线的角度,算出差值。

  4. 重复上面的过程,直到切点与指定点之间的连线与切点处真实的切线近似重合为止。

  迭代计算的路径如下图中所示:

  图中圆心点出发的浅蓝色(浅绿色?)线条是迭代计算的路径,标称圆弧上的点与风螺旋线上的点是1-1对应关系,因此可以在每次找出切线与连线的夹角后,直接累加到θ角中,实现的是精确逼近算法。这样的过程在计算机中大约需要多少次呢?

  从实际测试的结果来看,距风螺旋线稍远的位置上,通过三次计算即可达到0.0000001以内的精度,小数点后有6个0。精度级别的提升主要与位置有关,比如下图中四次迭代计算,精度到了小数点后13位。

  千万分之一的精度换算成角度数大约是0.000006度,如果转弯半径为50公里,这个精度级别大约在0.005米,也就是半厘米以内。

 

  风螺旋线切线计算的两种方法就是这样,第一种切线与标称航迹平行,直接用加减法即可得出θ角。第二种切线过指定点,用迭代算法进行解决,迭代计算四次左右即可达到千万分之一级的精度。

  有了这两种方法,已经可以解决大多数只有一侧风螺旋线的计算问题。如果存在多条风螺旋线,则需要讨论公切线的算法,留到下次再来讨论。

  风螺旋切线的“世界性”难题就这样解决了?难以至信,我自己也是这样的感觉。

 


 

  与此话题相关的论文已发表于2014年第8期的《空中交通》杂志,该论文的引用格式如下:
刘崇军.风螺旋线的深度分析[J].空中交通,2014(8):80-84.

 

  往期话题请在关注微信公众号“风螺旋线”后,通过历史消息查看。

 

 
 

微信扫一扫
关注该公众号

转载于:https://www.cnblogs.com/windspiral/p/7860412.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值