SpinConv

从旋转表示类型转换到另一个

1.1 k下载

更新2013年5月1日

查看许可协议

SpinConv转换从一个旋转表示类型到另一个地方。它支持万博1manbetx以下类型:旋转表示

•旋转矩阵
•欧拉角(包括Tait-Bryan角度,a.k.万向节的角度)
•轴角(旋转绕一个轴用欧拉向量表示)
•四元数

SpinConv做同样的工作,SpinCalc由约翰·富勒(MATLAB中央文件# 20696)。结果是相同的,或同等学历,你可以检查你自己通过调用

testSpinConv(输出)

输出的差异可能是由舍入误差可以忽略不计,因为乘法有时以不同的顺序执行。

SpinConv相同的是一个不同的实现算法,主要利用矢量化指数,而不是循环,进行迭代计算。在某些情况下,新的实现要快得多。例如,当旋转要转换的数量(N)很大,执行转换从DCM EV约30倍。然而,在其他情况下,SpinConv可能稍慢,特别是当N = 1。各种各样的细节执行时间转换,就跑了

testSpinConv(“速度”)。

SpinConv也修复一些错误或不一致,存在在SpinCalc 1.3版本,包括一个非标准的输出范围为欧拉角(在某些情况下超过180度),不符合实施约束对应的输入范围(参见下面的输入和输出范围)。其中一些bug修复需要额外的计算(例如,指令任何用于布尔条件的IF语句)和部分解释了轻微增加观察到在某些情况下的执行时间。

规范和约束

接受所有表示类型作为输入,并返回输出的SpinConv旨在代表一个3 d的旋转坐标系(CS)相对于刚体或向量空间(“别名”转换),而不是亦然(“托辞”转换)。

DCMs(也称为旋转矩阵)是特殊正交矩阵与行列式1。每个矩阵R包含的行旋转的versors CS代表原始CS,并在其列中原始CS的versors CS旋转。这种格式通常用在当采用列向量公约:点坐标排列在列向量v_i,和应用所需的旋转由pre-multiplying v_i R:

v_i = R v_i旋转。

行向量,同样可以通过post-multiplying旋转的转置R:

旋转v_i = v_i RT。

“EA”类型(欧拉角)包括适当的欧拉角(第一和第三旋转的轴)和Tait-Bryan角度(对三个不同的轴旋转)。

欧拉向量和四元数都是单位向量。

输入范围
•其次欧拉角必须-90 <θ< 90度(θ= -90和θ= 90不允许)。
•第二Tait-Bryan必须0 <θ< 180度角(θ= 0和θ= 180不允许)。
•所有其他角度可能有价值,在度。
输出范围
•欧拉角(psi,θ,φ)从-90年到90度
•Tait-Bryan角度(psi,θ,φ)范围从0到180度
•对欧拉向量角度范围从0到180度

引用作为

保罗·德·利瓦(2023)。SpinConv(//www.tianjin-qmedu.com/matlabcentral/fileexchange/41562-spinconv), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R14
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!
版本 发表 发布说明
1.0.0.0