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中央文件交换。检索。
版本 | 发表 | 发布说明 | |
---|---|---|---|
1.0.0.0 |