四元数船舶领域Quaternion ship domain
四元数船舶领域(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)Raft2x+(1+sgny)Rstarb−(1−sgny)Rport2y(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)Raft2x)2+((1+sgny)Rstarb−(1−sgny)Rport2y)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)Raft2x)k+((1+sgny)Rstarb−(1−sgny)Rport2y)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.3591lgVo+0.0952kDT=DT/L=100.5441lgVo−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相关推荐
- 船舶领域研究综述(截至2018)
写在前面:本文是基于Rafal Szlapczynski, Joanna Szlapczynska在<Ocean engineering>上发表的Review of ship safety ...
- 学习笔记|领域自适应(Domain adaption)——实现模型的自适应迁移
1. 领域自适应网络概述 有时候我们在某个领域训练出的一个模型,想迁移到另一个领域,这样我们就不需要每个领域都去标注大量的数据了.但是这两个领域的数据分布是有些差异,要如何办呢?比如我们在黑白图片上训 ...
- 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展
©PaperWeekly 原创 · 作者 | 张一帆 学校 | 中科院自动化所博士生 研究方向 | 计算机视觉 Domain Adaptation 即在源域上进行训练,在目标域上进行测试. 本文总结了 ...
- Unity3D_(API)Quaternion四元数中的Quaternion.LookRotation()
四元数百度百科: 传送门 四元数官方文档: 传送门 欧拉旋转.四元数.矩阵旋转之间的差异: 传送门 四元数转换为欧拉角eulerAngles 官方文档: 传送门 欧拉角转换为四元数Euler 官方文档 ...
- 领域泛化(Domain Generalization)
文章目录 前言 问题定义 理论 方法 应用与数据集 未来挑战 参考 前言 领域泛化 (Domain Generalization, DG) 是近几年非常热门的一个研究方向.它研究的问题是从若干个具有不 ...
- 四元数学习:Quaternion.AngleAxis
我们首先来个题目,假设有一个点(point1),我们想让这个点按照某个点(center)旋转轴是世界z轴来旋转一个度数如何做呢,这样如果把度数改成0-360渐变,那么就和一个表盘的秒针一样旋转了. 如 ...
- 主动领域自适应(Active Domain Adaptation)部分经典论文汇总
只简单找了一小部分 CVPR [link] [code] [TQS] [21] Transferable Query Selection for Active Domain Adaptation [l ...
- 不锈钢电弧增材制造综述-电弧增材制造在航空航天桥梁船舶领域的应用-金属电弧3D打印
**电弧增材制造技术(Wire and Arc Additive Manufacture,WAAM)以电弧为载能束,采用逐层堆焊的方式制造金属实体构件,该技术主要基于TIG.MIG.PAW等焊接技术发 ...
- 《UnityAPI.Quaternion四元数》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Quaternion+Angle+Dot+Euler+立钻哥哥++OK++)
<UnityAPI.Quaternion四元数> 版本 作者 参与者 完成日期 备注 UnityAPI_Quaternion_V01_1.0 严立钻 2020.07.10 #<Uni ...
最新文章
- 【Java】排序算法 之 【快速排序】 总结
- python模块os测试文件是否存在及基础原信息获取
- Qt中的QBoxLayout
- OpenCV+yolov2-tiny实现目标检测(C++)
- 搭搭机器人科技活动中心怎么样_搭搭乐乐机器人怎么样?感受科技创收力量
- POJ 2777 - Count Color(线段树区间更新+状态压缩)
- html 倒计时,jQuery倒计时插件
- 跨省游开放首展,海峡旅博会和休闲旅博会将在厦门举行
- 关于滑轮组的计算机知识点,计算机试题第一套.docx
- 厉害了,可以不重启JVM就替换掉已经加载的类?
- 学成在线首页【前端知识】
- ‘0’ 和 '\0'
- php许愿墙mysql,许愿墙—许下你的愿望
- Adobe PhotoShop安装程序无法初始化的解决办法
- mysql无法启动提示 Error while setting value ‘STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUT
- 外设篇:NandFlash和iNand
- max9286 四合一_MAX9286+HI3519 +MAX96705方案分享
- 舌尖上的广西 | 口馋者争相追求的中国美食梦!!!型男索女尝过吗?
- 使用Github将本地项目部署到线上的步骤(免费,不需要购买域名和服务器)
- 双极型晶体管(BJT)的学习总结ⅱ
热门文章
- JavaScript RegExp 正则对象
- delphi Base64 编解码
- 开发者必备的顶级Android开发工具,成功入职阿里
- php 完全前后端分离使用jwt,前后端分离,在 angular 8 中利用 JWT 进行身份认证
- 万国数据指责Blue Orca恶意做空 称做空报告断章取义
- 永磁同步直流无刷电机空间矢量SPWM,SVPWM
- 编译hostapd时,出现错误:/usr/bin/ld: cannot find -lnl
- android监控app被杀死,Android App前后台监控
- 生成对抗式网络 (GAN) 及其应用
- 使用 Vue SVG 快速绘制曲线图(带动画)