SpinCalc是一个整合的matlab函数,它将在包含的4种类型之间转换任何旋转数据。还将在两种不同的Euler角度集类型之间转换。
可以输入多个方向。对于N个方向:
DCM==>3x3xN多维数组
EA###==>Nx3矩阵
Euler向量==>Nx4矩阵
四元数==>Nx4矩阵
输入包括错误检查标志,当欧拉角接近奇点或适当值偏离单位时,该标志将发出警告。因不正确的DCM等发出致命错误。
*****用户须知*****
我有很多关于欧拉角集的问题。将数据转换为Euler角度时,必须确保要转换的方向不接近奇点。奇异欧拉集是无法唯一转换为该特定旋转顺序中的3个变量的方向。奇异集如下所示:
第一类旋转:123-132-213-231-321-312
如果第二个旋转角度为-90或90度,则为单数。
类型2旋转:121-131-212-232-313-323
如果第二个旋转角度为0或180度,则为单数。
SpinCalc现在应该检测输入DCM、EV或Q何时对应于单个Euler集输出。在这种情况下,它将禁止输出。
自然地,当从这些奇异的Euler角度集转换为其他数据类型时,您将得到正确的答案。不幸的是,您无法将该输出转换回正确的Euler角度集。这就是为什么禁止使用单欧拉输入。
一些用户可能需要SpinCalc,因为他们需要将奇异Euler集转换为其他类型。在这些情况下,删除禁止错误检查应该不会太困难。如果需要,请联系我寻求帮助。
引用为
约翰·富勒(2021年)。用于在DCM、Euler角度、四元数和Euler向量之间转换的函数(//www.tianjin-qmedu.com/matlabcentral/fileexchange/20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors),MATLAB中央文件交换。恢复.