四元数船舶领域(Quaternion ship domain, QSD)由确定的四个元素构成:
Rfore,Raft,Rstarb,RportR_{fore},R_{aft},R_{starb},R_{port}Rfore​,Raft​,Rstarb​,Rport​

RforeR_{fore}Rfore​ 和RaftR_{aft}Raft​ 为船前部和船尾部, RportR_{port}Rport​ 和 RstarbR_{starb}Rstarb​ 为船左舷和右舷。

QSDQSDQSD是由连接这四个元素和内部区域的闭合曲线定义的区域,可以描述如下:

QSD={(x,y)∣f(x,y;Q)≤1,Q={Rfore,Raft,Rstarb,Rport}}(1)QSD =\lbrace(x,y)|f(x,y;Q)\leq 1, Q= \lbrace R_{fore},R_{aft},R_{starb},R_{port}\rbrace\rbrace \quad(1)QSD={(x,y)∣f(x,y;Q)≤1,Q={Rfore​,Raft​,Rstarb​,Rport​}}(1)

其中 f()f()f() 是 QSD的QSD的QSD的边界,QQQ 是四元数。

由于多边形和椭圆形在以前的船域中经常使用。因此在不失普遍性的前提下,QSD的边界可以用多边形和椭圆两种形状表示。

根据 Eq.(1), QSDQSDQSD 的边界可以表示如下:

多边形:
QSDq={(x,y)∣fq(x,y;Q)≤1,Q={Rfore,Raft,Rstarb,Rport}}(2)QSD_q =\lbrace(x,y)|f_q(x,y;Q)\leq 1, Q= \lbrace R_{fore},R_{aft},R_{starb},R_{port}\rbrace\rbrace \quad(2) QSDq​={(x,y)∣fq​(x,y;Q)≤1,Q={Rfore​,Raft​,Rstarb​,Rport​}}(2)

椭圆形:
QSDce={(x,y)∣fce(x,y;Q)≤1,Q={Rfore,Raft,Rstarb,Rport}}(3)QSD_{ce} =\lbrace(x,y)|f_{ce}(x,y;Q)\leq 1, Q= \lbrace R_{fore},R_{aft},R_{starb},R_{port}\rbrace\rbrace \quad(3) QSDce​={(x,y)∣fce​(x,y;Q)≤1,Q={Rfore​,Raft​,Rstarb​,Rport​}}(3)

其中边界函数 fqf_{q}fq​ 和 fcef_{ce}fce​可以用下式表示:

fq(x,y;Q)=2x(1+sgnx)Rfore−(1−sgnx)Raft+2y(1+sgny)Rstarb−(1−sgny)Rport(4)f_q(x,y;Q) = \frac{2x}{(1+sgn x)R_{fore} - (1-sgn x)R_{aft}} + \frac{2y}{(1+sgn y)R_{starb} - (1-sgn y)R_{port}}\quad(4)fq​(x,y;Q)=(1+sgnx)Rfore​−(1−sgnx)Raft​2x​+(1+sgny)Rstarb​−(1−sgny)Rport​2y​(4)

fce(x,y;Q)=(2x(1+sgnx)Rfore−(1−sgnx)Raft)2+(2y(1+sgny)Rstarb−(1−sgny)Rport)2(5)f_{ce}(x,y;Q) = \left(\frac{2x}{(1+sgn x)R_{fore} - (1-sgn x)R_{aft}}\right)^2 + \left(\frac{2y}{(1+sgn y)R_{starb} - (1-sgn y)R_{port}}\right)^2 \quad(5)fce​(x,y;Q)=((1+sgnx)Rfore​−(1−sgnx)Raft​2x​)2+((1+sgny)Rstarb​−(1−sgny)Rport​2y​)2(5)

其中 sgnsgnsgn 是如numpy.sign类的符号函数:
sgn(x)={1x≥0−1,x<0(6)sgn(x) = \begin{cases} 1 & x \geq 0 \\ -1, & x < 0 \\ \end{cases} \quad(6) sgn(x)={1−1,​x≥0x<0​(6)

根据 Eq.(4)和(5)可以发现,QSDQSDQSD的边界形状可以用一个参数 kkk 控制,含有参数 kkk 的QSDQSDQSD可以写作如下:

QSDk={(x,y)∣fk(x,y;Q)≤1,Q={Rfore,Raft,Rstarb,Rport},k≥1}(7)QSD_k =\lbrace(x,y)|f_k(x,y;Q)\leq 1, Q= \lbrace R_{fore},R_{aft},R_{starb},R_{port}\rbrace, k\geq1 \rbrace \quad(7)QSDk​={(x,y)∣fk​(x,y;Q)≤1,Q={Rfore​,Raft​,Rstarb​,Rport​},k≥1}(7)

fk(x,y;Q)=(2x(1+sgnx)Rfore−(1−sgnx)Raft)k+(2y(1+sgny)Rstarb−(1−sgny)Rport)k(8)f_{k}(x,y;Q) = \left(\frac{2x}{(1+sgn x)R_{fore} - (1-sgn x)R_{aft}}\right)^k + \left(\frac{2y}{(1+sgn y)R_{starb} - (1-sgn y)R_{port}}\right)^k \quad(8)fk​(x,y;Q)=((1+sgnx)Rfore​−(1−sgnx)Raft​2x​)k+((1+sgny)Rstarb​−(1−sgny)Rport​2y​)k(8)

幂 kkk 决定了QSDQSDQSD的形状,而四元数Q(i.e.Rfore,Raft,Rstarb,Rport)Q(i.e. R_{fore},R_{aft},R_{starb},R_{port})Q(i.e.Rfore​,Raft​,Rstarb​,Rport​)标识了船域大小。
因此可以通过参数QQQ和kkk合理地对QSDQSDQSD建模。

Kijima[1]Kijima^{[1]}Kijima[1] 等人用阻塞区参数估计公式(Estimation formulae for parameters of the blocking area)估计 QQQ 的横向和纵向半径。可以用下式表示:

{Rfore=(1+1.34kAD2+(kDT/2)2)LRaft=(1+0.67kAD2+(kDT/2)2)LRstarb=(0.2+kDT)LRport=(0.2+0.75kDT)L(9)\begin{cases} R_{fore} = \left(1+1.34 \sqrt{k^2_{AD}+(k_{DT}/2)^2 } \right) L\\ R_{aft} = \left(1+0.67 \sqrt{k^2_{AD}+(k_{DT}/2)^2 } \right) L \\ R_{starb} = (0.2 + k_{DT})L \\ R_{port}= (0.2 + 0.75k_{DT})L\\ \end{cases} \quad(9) ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​Rfore​=(1+1.34kAD2​+(kDT​/2)2​)LRaft​=(1+0.67kAD2​+(kDT​/2)2​)LRstarb​=(0.2+kDT​)LRport​=(0.2+0.75kDT​)L​(9)

其中LLL是本船长度,kADk_{AD}kAD​是进距距离(Advance)的增益,kDTk_{DT}kDT​是旋回直径的增益。并且可以被定义为如下:

{kAD=AD/L=100.3591lg⁡Vo+0.0952kDT=DT/L=100.5441lg⁡Vo−0.0795(10)\begin{cases} k_{AD} = A_D/L = 10^{0.3591 \lg {V_{o} + 0.0952} }\\ k_{DT} = D_T/L = 10^{0.5441 \lg{ V_{o} - 0.0795}}\\ \end{cases} \quad(10) {kAD​=AD​/L=100.3591lgVo​+0.0952kDT​=DT​/L=100.5441lgVo​−0.0795​(10)

其中VoV_oVo​是本船速度,用 节 表示。

旋回初径 DTD_TDT​:3~6倍船长

相对旋回初径 DT/LD_T/LDT​/L

旋回直径 DDD: 旋回初径的 0.9~1.2倍

进距 ADA_DAD​:旋回初径的 0.6~1.2倍

# Python 实现后续补充
import numpy as np
import math
import matplotlib.pyplot as pltL = 0.0863  # 以海里nm为单位 1节=1海里/小时=1.852公里/小时=0.514444m/s
DT = 5 * L # 相对旋回初径
D = 1.2 * DT # 旋回直径
AD = 1.2 * DT # 进距# 进距和旋回直径增益
def Gain_k(v):k_ad = 10**(0.3591*math.log10(v)+0.0952)k_dt = 10**(0.5441*math.log10(v)-0.0795)return k_ad, k_dt# 计算四元数
def Quaternion(k_ad,k_dt):r_fore = (1+1.34*math.sqrt(k_ad**2+(k_ad/2)**2))*Lr_aft = (1+0.67*math.sqrt(k_ad**2+(k_ad/2)**2))*Lr_starb = (0.2+k_dt)*Lr_port = (0.2+0.75*k_dt)*Lreturn r_fore, r_aft, r_starb, r_portv = 20k_ad, k_dt = Gain_k(v)
r_fore, r_aft, r_starb, r_port = Quaternion(k_ad,k_dt)Q = [r_fore, r_aft, r_starb, r_port]x = [[0,r_starb],[r_starb,0],[0,-r_port],[-r_port,0]]
y = [[r_fore,0],[0,-r_aft],[-r_aft,0],[0,r_fore]]plt.figure(dpi=128)
plt.plot(x,y,color = 'r')
plt.scatter(0,0,marker='*')
plt.grid(True)
plt.grid(color='black', linestyle='--',linewidth=0.3,alpha=0.3)
plt.xlabel('x(n mile)')
plt.ylabel('y(n mile)')
plt.xlim(-1,1)
plt.ylim(-1,1)
plt.show()

Refer

ence
[1]: Kijima, K. and Furukawa, Y. (2003). Automatic collision avoidance system using the concept of blocking area. Proceeding of IFAC Conference on Manoeuvring and Control of Marine Craft, Girona, Spain.
[2]: Wang N. An intelligent spatial collision risk based on the quaternion ship domain[J]. The Journal of Navigation, 2010, 63(4): 733.

四元数船舶领域Quaternion ship domain相关推荐

  1. 船舶领域研究综述(截至2018)

    写在前面:本文是基于Rafal Szlapczynski, Joanna Szlapczynska在<Ocean engineering>上发表的Review of ship safety ...

  2. 学习笔记|领域自适应(Domain adaption)——实现模型的自适应迁移

    1. 领域自适应网络概述 有时候我们在某个领域训练出的一个模型,想迁移到另一个领域,这样我们就不需要每个领域都去标注大量的数据了.但是这两个领域的数据分布是有些差异,要如何办呢?比如我们在黑白图片上训 ...

  3. 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展

    ©PaperWeekly 原创 · 作者 | 张一帆 学校 | 中科院自动化所博士生 研究方向 | 计算机视觉 Domain Adaptation 即在源域上进行训练,在目标域上进行测试. 本文总结了 ...

  4. Unity3D_(API)Quaternion四元数中的Quaternion.LookRotation()

    四元数百度百科: 传送门 四元数官方文档: 传送门 欧拉旋转.四元数.矩阵旋转之间的差异: 传送门 四元数转换为欧拉角eulerAngles 官方文档: 传送门 欧拉角转换为四元数Euler 官方文档 ...

  5. 领域泛化(Domain Generalization)

    文章目录 前言 问题定义 理论 方法 应用与数据集 未来挑战 参考 前言 领域泛化 (Domain Generalization, DG) 是近几年非常热门的一个研究方向.它研究的问题是从若干个具有不 ...

  6. 四元数学习:Quaternion.AngleAxis

    我们首先来个题目,假设有一个点(point1),我们想让这个点按照某个点(center)旋转轴是世界z轴来旋转一个度数如何做呢,这样如果把度数改成0-360渐变,那么就和一个表盘的秒针一样旋转了. 如 ...

  7. 主动领域自适应(Active Domain Adaptation)部分经典论文汇总

    只简单找了一小部分 CVPR [link] [code] [TQS] [21] Transferable Query Selection for Active Domain Adaptation [l ...

  8. 不锈钢电弧增材制造综述-电弧增材制造在航空航天桥梁船舶领域的应用-金属电弧3D打印

    **电弧增材制造技术(Wire and Arc Additive Manufacture,WAAM)以电弧为载能束,采用逐层堆焊的方式制造金属实体构件,该技术主要基于TIG.MIG.PAW等焊接技术发 ...

  9. 《UnityAPI.Quaternion四元数》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Quaternion+Angle+Dot+Euler+立钻哥哥++OK++)

    <UnityAPI.Quaternion四元数> 版本 作者 参与者 完成日期 备注 UnityAPI_Quaternion_V01_1.0 严立钻 2020.07.10 #<Uni ...

最新文章

  1. 【Java】排序算法 之 【快速排序】 总结
  2. python模块os测试文件是否存在及基础原信息获取
  3. Qt中的QBoxLayout
  4. OpenCV+yolov2-tiny实现目标检测(C++)
  5. 搭搭机器人科技活动中心怎么样_搭搭乐乐机器人怎么样?感受科技创收力量
  6. POJ 2777 - Count Color(线段树区间更新+状态压缩)
  7. html 倒计时,jQuery倒计时插件
  8. 跨省游开放首展,海峡旅博会和休闲旅博会将在厦门举行
  9. 关于滑轮组的计算机知识点,计算机试题第一套.docx
  10. 厉害了,可以不重启JVM就替换掉已经加载的类?
  11. 学成在线首页【前端知识】
  12. ‘0’ 和 '\0'
  13. php许愿墙mysql,许愿墙—许下你的愿望
  14. Adobe PhotoShop安装程序无法初始化的解决办法
  15. mysql无法启动提示 Error while setting value ‘STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUT
  16. 外设篇:NandFlash和iNand
  17. max9286 四合一_MAX9286+HI3519 +MAX96705方案分享
  18. 舌尖上的广西 | 口馋者争相追求的中国美食梦!!!型男索女尝过吗?
  19. 使用Github将本地项目部署到线上的步骤(免费,不需要购买域名和服务器)
  20. 双极型晶体管(BJT)的学习总结ⅱ

热门文章

  1. JavaScript RegExp 正则对象
  2. delphi Base64 编解码
  3. 开发者必备的顶级Android开发工具,成功入职阿里
  4. php 完全前后端分离使用jwt,前后端分离,在 angular 8 中利用 JWT 进行身份认证
  5. 万国数据指责Blue Orca恶意做空 称做空报告断章取义
  6. 永磁同步直流无刷电机空间矢量SPWM,SVPWM
  7. 编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
  8. android监控app被杀死,Android App前后台监控
  9. 生成对抗式网络 (GAN) 及其应用
  10. 使用 Vue SVG 快速绘制曲线图(带动画)