文档库 最新最全的文档下载
当前位置:文档库 › 四元数法

四元数法

四元数法
四元数法

四元数法 四元数本质上是一种高阶复数,是一个四维空间。它的虚部包含了三个虚数单位,i 、j 、k ,即一个四元数可以表示为x = a + bi + cj + dk 。

一个单位四元数可描述为:T

z y x w q ],,,[=,并且满足:

1||2222=+++=z y x w q (3) 四元数可以看做绕一个轴的一个旋转: ???????====)

cos()2/sin()cos()2/sin()cos()2/sin()2/cos(z y x z y x w βαβαβαα (4) 其中,α是旋转角,单位为弧度。)cos(x β,)cos(y β和)cos(z β是旋转轴的方向余弦,也就是旋转轴与参考系坐标三个轴夹角的余弦值。当得到了四元数,就需要将其转换为欧拉角。

欧拉角,就是从一个坐标系到另一个坐标系的变换,可以通过一次绕不同的坐标轴的3次连续转动来定义。定义ψ、θ、?分别为绕Z 轴、Y 轴、X 轴的旋转角度,分别为Yaw ,Pitch 、Roll 。

四元数到欧拉角的转换:

??????

????????+-+-+-+=??????????))(21)(2(arctan ))(2arcsin()(21)(2arctan 222222z y xy wz zx wy y x yz wx ψθ? (5) w 对应q0,x 对应q1,y 对应q2,z 对应q3。 arctan 和arcsin 的结果是[]22,ππ-,这并不能覆盖所有朝向(对于θ角[]

22,ππ-的取值范围已经满足),因此需要用atan2来代替arctan 。

旋转的矩阵与四元数的转换算法

绕指定方向的轴线的旋转 旋转的矩阵与四元数的转换算法 一、基本知识 四元数 q=w+xi+yj+zk, q=w+v, q ?1=|q|2q ?. 其中q ?= w ?xi ?yj ?zk 表示q 的共轭。 vv' =v×v' ?v?v' …… ① qq'= (ww'?v?v') + (wv' +vw' +v×v'), …… ② v ?v' = ?(vv' +v'v) /2 , …… ③ v×v' = (vv' ?v'v) /2 . …… ④ v 2=?|v|2. 内积v ?v =|v|2. 二、旋转表示为四元数 绕指定方向n 的旋转公式为 x'=(x ?n)n(1?cosθ ) + cosθ x +sinθ n×x …… ⑤ 其中的向量运算转化为四元数运算得到 x'= ?(x n+nx)n (1?cosθ)/2 +cosθx +sinθ (n x?x n)/2, 由于|n|=1, 故n ?1=?n. 因此有 x'= (1+cosθ)x/2 +sinθ (n x?x n )/2 ?nxn (1?cosθ)/2 . …… ⑥ x 的平行、垂直分量记为x p =(x?n)n , x v = x?x p , 则?nxn= x p ? x v , 与x 关于n 轴对称。 (nx?xn)/2= n×x, 是x v 旋转+90°的结果。 若 n ⊥x, x?n =0,即xn=?nx, 此时nxn=x, 故 x' =(cosθ+n sinθ)x . q=r(cosθ+nsinθ)称为四元数的三角式,其中n 为单位向量,它的几何意义是,qx 表示对向量x 绕方向n 旋转θ角,然后长度扩大为r 倍。任何四元数都有三角式q=w+v= |q|(w/|q|+n|v|/|q|)=r(cosθ+nsinθ). φ(x)=qxq ?1称为四元数域上的合同变换。若q=a+bn, |n|=1, 则 |q|2 =a 2+b 2 , |q|2φ(x) = qx q ? =( a+bn)x(a ?bn) =(ax+bnx)(a ?bn) =a 2x+ bnxa ? axbn ?bnxbn= a 2x+ ab(n x?xn)?b 2nxn. 即 |q|2(qxq ?1) = a 2x+ ab(n x?xn)?b 2nxn …… ⑦

四元数

为什么使用四元数 为了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对世界坐标系说的,这意味着第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身就失去了任意轴的自主性,这也就导致了万向轴锁(Gimbal Lock)的问题。 还有一种是轴角的描述方法(即我一直以为的四元数的表示法),这种方法比欧拉描述要好,它避免了Gimbal Lock,它使用一个3维向量表示转轴和一个角度分量表示绕此转轴的旋转角度,即(x,y,z,angle),一般表示为(x,y,z,w)或者(v,w)。但这种描述法却不适合插值。 那到底什么是Gimbal Lock呢?正如前面所说,因为欧拉描述中针对x,y,z的旋转描述是世界坐标系下的值,所以当任意一轴旋转90°的时候会导致该轴同其他轴重合,此时旋转被重合的轴可能没有任何效果,这就是Gimbal Lock,这里有个例子演示了Gimbal Lock,点击这里下载。运行这个例子,使用左右箭头改变yaw 为90°,此时不管是使用上下箭头还是Insert、Page Up键都无法改变Pitch,而都是改变了模型的roll。 那么轴、角的描述方法又有什么问题呢?虽然轴、角的描述解决了Gimbal Lock,但这样的描述方法会导致差值不平滑,差值结果可能跳跃,欧拉描述同样有这样的问题。 什么是四元数 四元数一般定义如下: q=w+xi+yj+zk 其中w是实数,x,y,z是虚数,其中: i*i=-1 j*j=-1 k*k=-1 也可以表示为: q=[w,v] 其中v=(x,y,z)是矢量,w是标量,虽然v是矢量,但不能简单的理解为3D空间的矢量,它是4维空间中的的矢量,也是非常不容易想像的。 四元数也是可以归一化的,并且只有单位化的四元数才用来描述旋转(面向),四元数的单位化与Vector

常见财务软件取数方法

新年策划——常见财务软件取数方法(用友系列)[复制链接] 1984 ?组别管理员 ?生日1970-1-1 ?帖子755 ?积分34603 ?性别保密 ?注册时间 2007-08-06 1# 字体大小: t T 发表于 2008-01-30 11:38 |只看楼主 常见财务软件取数方法(用友系列) 用友财务软件是目前使用最广泛的财务软件之 一 经过最近的收集,我对用友财务中较为典型版 本数据采集的信息进行整理,希望能对论坛的 朋友有帮助 因为没条件对财务软件逐个进行测试,有错漏 的地方请论坛朋友指正。 用友系列 软件名称用友6.0 数据库类型Dbase 数据格式DBF格式 数据存放路 径 在用友软件的默认安装路径下的ufsoft目录 下的所有DBF文件。 数据获取方 法 直接将所有相对应的数据存放文件拷贝到移 动硬盘或U盘即可。 软件名称用友V7.0至U8.12 数据库类型Access 数据格式MDB格式 数据存放路 径 用友7.0 在软件默认安装路径ufsoft目录下的所有 ZW.MDB文件。用友8.0

在服务器用友8.0的安装路径下的备份目录ufsoft目录下的所有UFDATA.MDB文件。 数据取数方 法直接将所有相对应的数据存放文件拷贝到移动硬盘或U盘即可。 软件名称用友U8.20至U850 数据库类 型 SQL Server 数据格式MDF格式,备份文件为BAK格式 数据存放路径一般情况下其数据库文件会放置在某硬盘分区下,如:C:\Program Files\Microsoft SQL Server\MSSQL\Data,后缀名为*.mdf的文件即是数据文件,后缀名为*.ldf的文件则是数据库日志文件。但若被查单位数据管理比较正规,则有可能在软件安装时改变保存路径。 数据取数 方法 方法请参看我的另一贴:点我 软件名称用友V933至NC系列 数据库类型Oracle 数据格式备份文件为DMP格式 数据取数方 法Oracle的数据采集方式请参看我的另一贴:点我

四元数姿态的梯度下降法推导和解读

四元数姿态的梯度下降法推导和解读 笔者前面几篇文章讨论的是基于四元数的互补滤波算法,并单独对地磁计融合部分做了详细的讨论和解释。而本文讨论的姿态融合算法叫做梯度下降法,这部分代码可以参见Sebastian O.H. Madgwick在2010年4月发表的一篇论文(An efficient orientation filter for inertial andinertial/magneticsensor arrays),这篇论文利用四元数微分方程求解当前姿态,然后分别利用加速度计和地磁计进行补偿,推导出两种姿态融合算法。两种算法均为梯度下降法,而其中地磁计的处理方式笔者已经在《四元数姿态解算中的地磁计融合解读》一文中详细讨论了,这里笔者将对Madgwick对于加速度计和地磁计的梯度下降法做出详细的解释,期间一定有个人不足的地方,仅供参考,希望和各位网友一起学习! 首先来谈谈什么是梯度。维基百科中解释的是“标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。”很显然,梯度和变化率有关。现在我们引入标量函数f(x),对标量函数f(x)求导,不难得到f’(x)就是梯度,就是曲线在某一点的斜率。梯度下降法就是我们顺着这个在某一点下降速度最快的反方向一直走,走到一个极值点,这个点就是最优解(稳定解)。 那么这个梯度的概念和我们的姿态解算有什么关系? 我在前面的文章中已经说明:我们求解姿态就是求解的转换矩阵(矩阵元素就是四元数)。这个转换矩阵是有误差的,我们所要做的工作就是采用某种算法,消除误差,最后得到的解就是我们的近似精确解,也就是姿态四元数了。消除误差四个字,在实际的实现过程中,是通过误差函数来实现的。定义误差函数ef(x),那么我们的工作就是令ef(x)=0,求解上述方程得到x的值。我们在求解高阶方程的时候,一般的方法就是求导,求极值点,根据这些值来判断精确值个数和位置。这是我们高中所学习到的知识,在这里是一样的。只不过,这里的误差函数ef(x) 不再是之前讨论的简单的标量函数了,他的自变量x变成了向量[q0 q1 q2 q3]。这也就是说,原先的标量函数ef(q) 变成了如今的标量函数ef([q0 q1 q2 q3]) ,他仍然是标量函数,但是自变量是向量[q0 q1 q2 q3]。 对上述自变量是向量的标量函数,我们要用梯度法求解,就必须求导。标量函数对向量求导很简单,只需要分别对向量中的各个变量求偏导即可: 但是,我们的姿态解算是三维姿态,不是一维姿态,所以,这里的ef(q)并不是一个标量函数,实质上是一个向量函数ef ( q ),这个向量函数里面有三个元素,分别对应xyz轴的三个分量,每个分量又由一个四元数向量q构成。那么现在就引入了一个较为复杂的误差函数ef ( q ),该误差函数不光自变量是一个向量,并且因变量也是一个向量,这种函数叫做多元向量函数。那么我们现在的问题就转化为求多元向量函数的极值问题。 针对上述极值问题,在计算机中,多采用数值解法,如最速下降法、牛顿法、共轭梯度法。我们这里讨论就是第一种算法,又叫做梯度下降法。PS:梯

[J]基于四元数姿态确定的扩展卡尔曼滤波方法

20。4中国控制与决策学术年会论文集 Precedingsof2004a妊,螂fControland£k口n。力Conference 基于四元数姿态确定的扩展卡尔曼滤波方法 李金良,刘向东,张宇河,修春波 (北京理工大学自动控制系,北京]00081) 摘要:针对卫星机尉情况下姿寿碓定闸燕提出了一种扩展卡车曼媳敢方法,栗用陀螺忮、太阳敏麝器和红井地平戗作为测量元件.秉用姿态四元撤设计荽态估计嚣井建立更加准砖有兢的盏性误差方程.仿真结果表明,使用所提出的姿卷确定算法能较好地完威卫星婆奄确定的要采. 关键词:姿态四元敷;姿志.喃定;扩展÷尔曼蘸j置;卫星 AttitudedeterminationofextendedKalmanfilteringbasedonquaternion LIJin—liang,L见TXiang—dang,ZHANGYu—k.盖几.Chun—bo (DepartmentofAutomaticControl,&ij/ngInstituteofTechnology,Beijlng100081,China.Correspondem.LtJ1.一iiang,E—mail:ljliang@bit.edu.cn) Abstract:AnextendedKalmanfihermgtechniqueiorthelargeangularmaneuveringandnormalmodeat:itudedeternainadon。fEsatelliteispresentedbyusinggyrc,sunSexqsorsandinfraredhorizonscalaneTeo.TheattitudequatermonrepresentationisadaptedtOdesNnaDattitudeestimatorandintegrationlinearerrorequationsareeszahlished.Theresultsofchesimulationshowthalatutudedeterminationisaccuratelyachievedbyusmgtheattizudedeterminationalgorithm. r:≈words:attitudequaterinon;attitude deter叫nat】。n:ex『tendedKalma口ii]tering:satellite i引言 卫星姿态确定系统决定了卫星控制和指向精度.而姿态敏感器的测量精度和姿态确定算法直接影响确定系统的精度.在常规的确定系统中,通常采用陀螺作为基准元件测量连续的姿态角速度,使用太阳敏感器、红外地平仪或磁强计=耐量姿态位置.目前,已有很多姿态确定算法,诸如宜适应滤波、预测滤波、卡尔曼滤波、自适应卡尔曼滤渡、扩展卡尔曼滤波等,用于减小敏感器的测量误差和提高确定系统的测量精度.本文使用扩展卡尔曼滤波方法研究了太阳同步轨道卫星的姿态确定,该卫星采用了陀螺、太阳敏感器、红外地平仪构成的测量系统.为各敏感器建立了更加详细的姿态估计器.考虑在大姿态角度下Euler角描述容易引起奇异性,本文采用了四元数描述建立卫星运动学方程.仿真结果表明,该方法有效地提高了卫星的测量精度. 2姿态运动学方程 使用四元数q*=b。目,口:gaj7描述在星体坐标系相对于当地轨道坐标系的卫星姿态,它的矩阵可用四元数表示如下: T。(‰)= r2(酣+爵)一12(吼gl+口。舶)2(口妇1一g。g:)一 l2曲:q2一go吼)2(毹+一)一l2(口2吼+q。q1)| l2(目,目。+goq2)2(口z啦一口。口】)2(矗+一)一1J \▲,相应四元数描述的动力学方程为 1 j-一÷口。@A(nk), ● c‰=Ⅲ-一7乙(‰)吣.(2)式中:o表示四元数乘法,A(‰)一[o‰1]。,% 收稿日期:2003一lo-12. 作者简介:李金良(1§77一),男,北京人,硬±生,从事卫星姿志控制的研究 T = -T转置方向余弦矩阵的四元数表示

财务软件取数工具指引.pdf

审计大师/税审大师财务软件取数工具指引 一、如何到企业取数: 特别提示: 审计大师V2017/税审大师V2017系列请使用[财务软件取数工具2017],存放在 [财务软件取数工具2017]文件夹,提示:财务软件取数工具是一个压缩包,请解压。 到被审单位取数时,请将审计软件安装文件夹下的【财务软件取数工具】解压到文件夹并复制到U 盘,再运行本工具软件:取数工具2017来实现取数;提示:审计大师一般安装在“审计大师软件”这个文件夹下,在这个文件夹下,会有另外一个文件夹:“财务软件取数工具2017”,请将这个文件夹复制到U 盘到企业取数。注意,税审大师的文件夹一般是:[D :税审大师软件] 您也可以到网上下载财务软件取数工具: 取数工具下载:(支持审计大师V2017/税审大师V2017) 再选择下载中心下载,并将取数工具解压到U 盘 取数工具可能会不断更新(增加新的财务软件等,增强功能等),你可以到我们网站上及时下载。重要提示:如果无法取数,想将财务数据导到到Excel 的方法请见取数工具文件夹下的:Excel 财务数据导出.CHM 二、取数主要操作流程 1.选择财务软件及其版本,根据不同财务软件来取数 征对不同财务软件,取数工具有三种情况: (1)自动取数工具,是我们的取数工具直接将财务软件数据打开并生成一个数据 文件,主要有:用友/金蝶/浪潮/速达/AC99/降龙99软件等,如下图: (左边选择财务软件公司,右边选择版本) 这类软件取完数据后,会自动在U 盘建一个文件夹(文件夹的名称就是取数电脑上的年月日时分秒),财务数据文件就放在这个文件夹下。 见下图: 这是审计大师安装文件夹,税审 大师则是[税审大师软件] 这个是取数工具文件 夹,将它复制到U 盘

基于四元数方法的姿态解算

基于四元数方法的姿态解算方法分析 摘要:载体的姿态解算算法是实现捷联式惯性导航系统精确导航的核心技术之一。分析了欧拉法、方向余弦法、四元数法求解姿态矩阵的优缺点,采用四元数法与方向余弦法两种解算方法分别计算载体姿态,两种方法的计算结果之差与理论真值比较以得到解算的相对误差,从而验证了四元数法的正确性和有效性。最后,指出提高采样频率和采用高阶计算算法能进一步减小姿态解算误差。数字化仿真与转台试验结果表明,本文提出的载体姿态解算法具有良好的实时性。 1引言 捷联惯导是一种自主式的导航方法。该方法将陀螺仪和加速度计直接安装在载体上,省掉机电式导航平台,利用计算机软件建立一个“数学平台”来代替机电平台实体[1]。由于其结构简单且抗干扰能力强,目前已成为航空航天、航海、机器人、智能交通等领域的研究热点之一。 姿态解算是捷联式惯性导航系统的关键技术,通过姿态矩阵可以得到载体的姿态和导航参数计算需要的数据,是捷联式惯导算法中的重要工作。载体的姿态和航向体现了载体坐标系与导航坐标系之间的方位关系,确定两个坐标系之间的方位关系需要借助矩阵法和力学中的刚体定点运动的位移定理。通过矩阵法推导方向余弦表,而刚体定点运动的位移定理表明,定点运动刚体的任何有限位移都可以绕过定点的某一轴经过一次转动来实现。目前描述动坐标相对参考坐标系方位关系的方法有多种,可简单地将其分为3类,即三参数法、四参数法和九参数法「1-2]。三参数法也叫欧拉角法,四参数法通常指四元数法,九参数法称作方向余弦法。欧拉角法由于不能用于全姿态飞行运载体上而难以广泛用于工程实践,且实时计算困难。方向余弦法避免了欧拉法的“奇点”现象,但方程的计算量大,工作效率低。随着飞行运载体导航控制系统的迅速发展和数字计算机在运动控制中的应用,控制系统要求导航计算环节能更加合理地描述载体的刚体空间运动,四元数法的研究得到了广泛重视。本文全面分析了3种解算方法的特点,通过对比四参法与九参法的计算结果以验证四元数法的正确性和有效性,基于数值仿真和转台实验相结合的分析方法得到进一步减少姿态解算误差的有效途径,为捷联式惯性导航技术的工程实践提供参考。(就是这部分内容需要程序解算,不会搞) 2姿态矩阵的计算方法 由于载体的姿态方位角速率较大,所以针对姿态矩阵的实时计算提出了更高的要求。通常假定捷联系统“数学平台”模拟地理坐标系,即导航坐标系;而确定载体的姿态矩阵即为研究载体坐标系(6)和导航坐标系(E)的空间转动关系,一般用载体坐标系相对导航坐标系的三次转动角确定,习惯上俯仰角和偏航角用B和必表示,滚转角用Y表示。目前主要的研究方法为:欧拉法、方向余弦法与四元数法。图1为捷联式惯性导航原理图。

财务指标取数方式

财务指标取数方式: 偿债能力: (1)资产负债率 公式: 资产负债率=负债总额/ 资产总额×100% 取数位置: (2)流动比率 公式: 流动比率=流动资产合计/ 流动负债合计*100% 其中:流动资产合计指在一年内或者超过一年的一个营业周期内变现或者耗用的资产取数位置: (3)速动比率 公式: 速动比率=速动资产/ 流动负债 其中:速动资产=流动资产-存货 取数位置: (4)短期债务偿还比率 公式: 短期债务偿还比率=经营净现金流/ 流动负债 取数位置:

(1)总资产利润率 公式: 总资产利润率=利润总量/ 资产平均总额×100% 其中:资产平均总额=(期初资产总额–期末资产总额)/ 2 取数位置 (2)销售利润率 公式: 销售利润率=利润总额/ 营业收入×100% 其中:利润总额=营业收入-营业成本-费用 取数位置 (3)净资产利润率 公式: 净资产利润率=净利润/ 平均所有者权益×100% 其中:平均所有者权益= (期初所有者权益+期未所有者权益)/ 2 取数位置 (4)总资产周转率 公式: 总资产周转率(次)= 主营业务收入净额/ 平均资产总额X100% 其中:平均资产总额=(资产总额年初数+资产总额年末数)/2 取数位置

(1)应收账款周转率 公式: 应收账款周转率(次)=赊销收入净额/ 平均应收账款 其中:可以将现销视为收款期为零的赊销,从而用所有的主营业务收入净额代替赊销收入净额平均应收账款= (期初值–期末值)/ 2 取数位置 (2)存货周转率 公式: 存货周转率(次数)=销货成本/平均存货余额 其中:平均存货余额= (期初值–期末值)/ 2 取数位置

四元数的初步总结

四元数的初步总结 (一) 前一阵子,以前公司的一位同事向我请教一段计算机图形程序中的算法,其中涉及齐次坐标和四元数。齐次坐标问题到好讲解,但四元数方面以前所知几乎为零。正好我看到齐民友在《复分析,可视化方法》译后记中提到的一本书:《高观点下的初等数学》([德]克莱因著,以下简称《初等数学》)当中有一段讲到四元数,于是就细读了一遍,把这个专题的整理笔记写下来。 但是那本书里有很多结果依靠繁杂的机械运算,让人看了不知道这样的结果是怎么得出来的。因此我们这里用向量代数的观点重新审视四元数的一些结果,让四元数的特性看起来更直观,更自然。另外还有一些我认为重要的有关四元数引入的背景知识,例如数域的扩充问题的证明,那本书里只有一部分提示,这里也试着补全一些。 一、四元数引入的理论背景 将实数域扩充到复数域,并用复数来表示平面向量,用复数的加、乘运算表示平面向量的合成、伸缩和旋转变换,这些观念已经在中学课程中学过了。那么,很自然的问题就是,在三维,或更高维空间中是否也有复数的类似物?也就是说,像扩充实数那样,在复数域的基础上添加一个或几个新的元素,并且让它们跟原来的复数做加减乘除,是否就可以得到一个新的数集,并且其中的元素还可以像复数域那样做加、减、乘、除运算,并满足通常复数的那些运算律,包括加法和乘法的交换律与结合律、乘法对加法的分配律等待?更进一步,我们是否可以期望用这样的数来表示三维或更高维空间中的伸缩和旋转,就像用复数表示平面向量的伸缩旋转那样方便? 把问题说得明确一些,即是说,我们是否可以像得到复数域那样,在复数域中再添加一个新的元素(因 此也是在实数基础上添加两个元素和),得到一个类似于复数集合 ,这个集合中的元素当时就是普通的复数,当时就是普通的实数,并且通常数的加减乘除运算及其性质都可以在这个集合上保持,即满足: 1、对于任意两个数,它们的和是唯一确定的。 2、对于任意两个数,它们的积是唯一确定的。 3、存在一个数0,它具有性质:对于任意a,均有a+0=a。 4、对于每一个数a,均存在数x,适合等式a+x=0。 5、加法适合交换律:a+b=b+a。 6、加法适合结合律:(a+b)+c=a+(b+c)。 7、乘法适合交换律:a·b=b·a。 8、乘法适合结合律:(a·b)·c=a·(b·c)。 9、乘法对加法适合分配律:a (b+c)=ab+ac 和(a+b)c=ac+bc。 10、1 是乘法单位元,即仍然满足1·a=a·1=a 11、乘法有逆元,即对每个非零数a,存在唯一的数x,满足等式xa=ax=1。 历史上有很多数学家试图寻找过三维的复数,但后来证明这样的三维复数是不存在的。有关这个结论的证明,我没有查到更明确的版本,据《古今数学思想》中的一个理由,三维空间中的伸缩旋转变换需要四个变量来决定:两个变量决定轴的方向,一个变量决定旋转角度,一个变量决定伸缩比例。这样,只有三个变量的三维复数无法满足这样的要求。

四元数与欧拉角之间的转换

四元数与欧拉角之间的转换 在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系: 图1 3D Cartesian coordinate System (from wikipedia) 定义分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。 图2 Tait-Bryan angles (from wikipedia) 一、四元数的定义 通过旋转轴和绕该轴旋转的角度可以构造一个四元数:

其中是绕旋转轴旋转的角度,为旋转轴在x,y,z方向的分量(由此确定了旋转轴)。 二、欧拉角到四元数的转换 三、四元数到欧拉角的转换 arctan和arcsin的结果是,这并不能覆盖所有朝向(对于角的取值范围已经满足),因此需要用atan2来代替arctan。 四、在其他坐标系下使用 在其他坐标系下,需根据坐标轴的定义,调整一下以上公式。如在Direct3D中,笛卡尔坐标系的X轴变为Z轴,Y轴变为X轴,Z轴变为Y轴(无需考虑方向)。

五、示例代码 https://www.wendangku.net/doc/ff3461275.html,/Files/heath/Euler2Quaternion.rar Demo渲染两个模型,左边使用欧拉角,右边使用四元数,方向键Up、Left、Right旋转模型。 参考文献: [1] https://www.wendangku.net/doc/ff3461275.html,/wiki/Conversion_between_quaternions_and _Euler_angles [2] Ken Shoemake, Animating Rotation with Quaternion Curves, 1985

excel表格模板取数公式.doc

常用电子表格公式 1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。 2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。 3、从输入的18位身份证号的出生年月计算公式:=CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。 4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式:=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。 1、求和:=SUM(K2:K56) ——对K2到K56这一区域进行求和; 2、平均数:=A VERAGE(K2:K56) ——对K2 K56这一区域求平均数; 3、排名:=RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名; 4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格"))) 5、学期总评:=K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩; 6、最高分:=MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分; 7、最低分:=MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分; 8、分数段人数统计:

(1)=COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格; (2) =COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格; (3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格; (4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格; (5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60) ——求K2到K56区域70~84.5分的人数;假设把结果存放于K61单元格; (6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61) ——求K2到K56区域60~69.5分的人数;假设把结果存放于K62单元格; (7)=COUNTIF(K2:K56,"<60") ——求K2到K56区域60分以下的人数;假设把结果存放于K63单元格; 说明:COUNTIF函数也可计算某一区域男、女生人数。 如:=COUNTIF(C2:C351,"男") ——求C2到C351区域(共350人)男性人数; 9、优秀率:=SUM(K57:K60)/55*100 10、及格率:=SUM(K57:K62)/55*100 11、标准差:=STDEV(K2:K56) ——求K2到K56区域(55人)的成绩波动情况(数值越小,说明该班学生间的成绩差异较小,反之,说明该班存在两极分化);

AC990会计软件常用问题解答

AC990会计软件常用问题解答 1.Q:我单位用的是ac990会计软件,昨天在启用新科目并增加子目时,否决后便不能在确认,提示 总账科目不平衡,请速告知解决办法。 A:这说明你的总借和总贷科目金额不等,请到账目分析中选择总账科目检查你的科目金额。 2.Q:会计核算软件运行时出现错误‘40002’:S1109[Microsoft][ODBC Microsoft Access 驱动程序] 非法的游标位置,未定义键集(或出现40002 37000:[micvosoft][odbcmicrosoft access 驱动程序]insert.into语句的语法错误)该如何解决? A:你好,有几种解决办法: 1、安装软件光盘上env文件夹下的mdac_type命令试试看 2、另外检查一下软件安装目录是在某个特定文件夹下还是直接安装在机器根目录下,如果根目录下的话,肯定会影响打印,最好将数据备份,然后将软件下载,重新安装软件在某个目录下,然后将数据恢复进去即可。 3、或者新增核算单位,将新增核算单位的打印方案导出,再到原来账套中,用打印方案导入,将新打印方案导入即可。 3.Q:我想问问:如何把自己的打印方案保存下来?当我设定列属性参数后,按“应用”时,它总是 对我说“对齐方式参数输入不正确”。我的设定是300+400+150+150。我想这个算式的计算结果是1000,为什么?还有,今天更可笑,我用了那么久都没问题。无论是打印凭证还是报表还是帐簿,它总是会在每一行的结尾自动加一个“□”。能告诉我为什么吗? A:不知你用的是什么软件,降龙99在2000操作系统中会出现你所说的问题,而990新版本中是没有问题的。你可以在网上重新下载后更新一下。至于打印方案,可以通过“另存为方案“保存。 至于提示列属性有错,有可能是其他项目上还有数字,您最好仔细检查一下。 4.Q:上年帐转至本年后,已确认不在发生,且无余额的子目能直接删除吗? A:上年帐转至本年后,已确认不在发生,且无余额的子目在科目设置中运用“清理”直接删除子目。建议年初做这项工作。 5.Q:我想在库存商品(135)科目数量三栏式帐页中另增一栏反映该商品的销售(501)数量、单价、 金额,请问自定义帐页如何设计? A:此要求可在报表系统中设计一个表格,通过取数公式得到。 6.Q:今天,我按您所指点,备份好有关数据后即卸掉原程序,重装软件狗和AC990会计核算软件。 但惨了!所备份的数据用数据恢复、导入核算单位等都无法在新装的AC990会计核算软件中装入数据,请问在此情况下如何装入所备份的数据? A:首先删除你刚建立的核算单位,用“导入核算单位”将最后一个月的账务数据恢复,再用“数据恢复”将其他月份的账务数据恢复即可。 7.Q:我用的软件升级成V8.1和降龙990后在报表制作中,发现表尾太宽,而表体又不够,现想调整 表尾,但不起作用。原用的板本可以调整,现应怎样处理、请给回复! A:在表格制作处将表尾拖成块,将行距设为0即可。 8.Q:我们系统最近用你们的软件报年报,你们这一套报表的运算公式和审核公式存在太多的错误,我 改两个晚上都没改好, A:你好,你所说的公式有误,有可能是这种情况,我们在公式在编辑中考虑问题相对较细,比如有的可能会计制度中涉及到了明细,而用户在实际使用过程中有可能只用到总账科目,而用不到明细,这样在公式校验过程中系统有可能会提示有误,但并不是公式编辑出错,而是与用户的科目体系有出入而已。 9.Q:我在做损益表时,有公式但取不出来数字,不知道原因何在,敬请回复 A:您好,可能您变更过科目体系而导致公式和您的科目体系不一致,把公式按照您的科目设置更改即可。 10.Q:请教,我把单位的报表生成了磁盘文件,为什么上报的时候提取却说我的盘上没数据. A:首先你要在用户设定里设置上报单位号,该上报单位号为你上一级单位分配给你的单位号,在成批磁盘文件制作选择制作上报盘,生成文件交给你上一级单位,另外注意表种管理中报号编号与你上一级单位报表编号一致,且有上报表号。 11.Q:我把审核公式和运算公式改好了,其他的机子的报表公式也要改,有没有捷径?是不是要在每个机 子一条条的改? A:你好,请到表种管理中选择该表进行下发则将表格及公式下发到软盘中,然后到别的机器中的

5、取数问题解决方法总结解析

取数问题解决方法 一、导出文件 问题:新中大NGPOWER 导出文件数据库接口取出的SJC导入审计系统没有会计年。 解决方法:因为会计年大部分都是在凭证表取出的。看下导出文件,z_pz01.tx_,z_pz02.tx_,z_pz03.tx_,z_pz04.tx_。。。。。。z_pz12.tx_ 这12个文本大小。如果是0KB,1KB的说明备份里面的凭证表也是没有数据。如下图:

二、SQLSERVER 1、问题:审计系统连接简装版2005还原bak,具体提示错误为如下: Microsoft OLE DB Provider for SQL Server (0x80004005)[DBNETLIB][ConnectionOpen (PreLoginHandshake()).] 一般性网络错误。请检查网络文档。 解决方法:1:打开SQL Server 2005中的配置工具SQL Server Configure Manager 2:将命名管道和TCP/IP协议启用(如下图)

3:重新启动SQL Server(MSSQLSERVER )(如下图) 2、问题:审计系统还原bak报错“媒体集有2个媒体簇,但只提供了1个,必须提供所有成员” 解决方法:由于备份数据库时,添加了多个*.bak文件,就将数据库“分段”备份到了2个数据库*.bak,而还原时,只用了其中一个*.bak文件还原,让客户备份到一个BAK文件中,在还原。

3、问题:审计系统还原bak报错“此文件不是有效的磁带格式备份集,无法进行还原操作!Sqlstate=27000 。。无法打开备份设备......出现操作系统错误5(拒绝” 解决方法如下: 4、问题:在从该备份集进行读取时,RESTORE检测到在数据库“11”中的页上存在错误 解决方法:此错误可能是还原的备份文件是高版本数据库备份出来的,也可能是备份文件损坏导致。

四元数法

四元数是哈密顿于1843年建立的数学概念,但只有在近四十年中才在刚体运动学中得到实际应用。四元数是由1个实数单位1和3 个虚数单位i ,j ,k 组 成的包含4个实元的超复数。若将i ,j ,k 视为基矢量,则可以把四元数分为标量和矢量两部分组成。其形式为: 01230Q q q i q j q k q q =+++=+ (2-22) 且22 2 2 01231q q q q +++=,其中0 q 为标量,q 为矢量。 引入四元数后,则方向余弦矩阵可由四元数表示为 ()() ()()()() 2222 1032120313022 2 2 2 1203012323012222130223010123222222e i q q q q q q q q q q q q C q q q q q q q q q q q q q q q q q q q q q q q q ?? +--+-? ? =--+-+???? +---+? ? (2-23) 由(2-12),我们可得 ????? ????????????? ????????------= ? ??? ?? ??????3 2 1 3210000021q q q q q q q q x y z x z y y z x z y x ω ω ωωω ωωω ωωω ω (2-24) 利用毕卡逼近法求解可得: ()() ()* 1 2 0M d t q t e q t ω?= (2-25) 令: []() *0 000x y z x z y y z x z y x M d t θθθθθθθωθθθθθ θ -?-?-???? ???-?? ??==?? ?-??? ???-??? ? ? ? (2-26) (2-25)可简写为: ()[] ()1 20q t e q θ?= (2-27) 将[] 1 2 e θ?展开可得: ()[][][][]() 2 3 1111022!23!2!2n q t I q n θθθθ???????? ?????=+?+++++ ? ? ??????????? (2-28) 由于:

财务软件取数工具指引

财务软件取数工具指引内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

审计大师/税审大师财务软件取数工具指引 一、 如何到企业取数: 特别提示: 审计大师V2017/税审大师V2017系列请使用[财务软件取数工具2017],存 放在[财务软件取数工具2017]文件夹,提示:财务软件取数工具是一个压 缩包,请解压。 到被审单位取数时,请将审计软件安装文件夹下的 【财务软件取数工具】 解压到文件夹并复制到U 盘,再运行本工具软件:取数工具2017 来实现取数; 提示:审计大师一般安装在 “D:\审计大师软件” 这个文件夹下,在这个文件夹下,会有另外一个文件夹:“财务软件取数工具2017”,请将这个文件夹复制到U 盘到企业取数。注意,税审大师的文件夹一般是:[D :\税审大师软件] 您也可以到网上下载财务软件取数工具: 取数工具下载: (支持审计大师V2017/税审大师V2017) 再选择下载中心下载,并将取数工具解压到U 盘 取数工具可能会不断更新(增加新的财务软件等,增强功能等),你可以到我们网站上及时下载。 重要提示:如果无法取数,想将财务数据导到到Excel 的方法请见取数工具文件夹下的: Excel 财务数据导出.CHM 这是审计大师安装文件 这个是取数工具

二、取数主要操作流程 1.选择财务软件及其版本,根据不同财务软件来取数 征对不同财务软件,取数工具有三种情况: (1)自动取数工具,是我们的取数工具直接将财务软件数据打开并生成一 个数据文件,主要有:用友/金蝶/浪潮/速达/AC99/降龙99软件等,如 下图: (左边选择财务软件公司,右边选择版本) 这类软件取完数据后,会自动在U盘建一个文件夹(文件夹的名称就是取数电脑上的年月日时分秒),财务数据文件就放在这个文件夹下。 见下图: (2)标准数据接口:有的财务软件本身就支持财务软件标准数据接口,这类软件有: 这类财务软件又分为两种类型 从这个开始,需要运这个文件夹就是取数 时自动创建的,数据

四元数算法

四元数与旋转 在讨论「四元数」之前,我们来想想对三维直角座标而言,在物体旋转会有何影响,可以扩充三维直角座标系统的旋转为三角度系统(Three-angle system),在Game Programming G ems中有提供这麼一段: Quaternions do not suffer from gimbal lock. With a three-angle(roll, pitch, yaw) system, there ar e always certain orientations in which there is no simple change to the trhee values to represent a s imple local roation. You often see this rotation having "pitched up" 90 degree when you are tryin g to specify a local yaw for right. 简单的说,三角度系统无法表现任意轴的旋转,只要一开始旋转,物体本身即失去对任意轴的自主性。 四元数(Quaternions)为数学家Hamilton於1843年所创造的,您可能学过的是复数,例如:a + b i 这样的数,其中i * i = -1,Hamilton创造了三维的复数,其形式为 w + x i + y j + z k,其中i、j、k的关系如下: i2 = j2 = k2 = -1 i * j = k = -j * i j * k = i = -k * j k * i = j = -i * k 假设有两个四元数: q1 = w1 + x1 i + y1 j + z1 k q2 = w2 + x2 i + y2 j + z2 k 四元数的加法定义如下: q1 + q2 = (w1+w2) + (x1+x2) i + (y1+y2) j + (z1+z2) k

四元数法VS旋转矩阵法的性能比较

探讨:物体绕任意向量的旋转-四元数法VS.旋转矩阵法的性能比较 3D空间中的旋转可用旋转矩阵、欧拉角或四元数等形式来表示,他们不过都是数学工具,其中在绕任意向量的旋转方面,旋转矩阵和四元数两种工具用的较多,欧拉角由于存在万向节死锁等问题,使用存在限制。 (本文假设坐标系为左手坐标系中,旋转方向为顺时针。) 所求问题: 给定任意单位轴q(q1,q2,q3)(向量),求向量p(x,y,z)(或点p)饶q旋转theta角度的变换后的新向量p'(或点p'): 1.用四元数工具: ------------------------------------------------------------------------- 结论:构造四元数变换p'= q*p*q-1,(p,q是由向量p,q扩展成的四元数)。那么,p'转换至对应的向量(或点)就是变换后的新向量p'(或点p')。 其中,p',q,p,q-1均为四元数。q由向量q扩展,为q=(cos(theta/2),sin(theta/2)*q),p由向量p扩展,为p=(0,x,y,z),q-1为q的逆,因为q为单位四元数,所以 q-1=q*=(cos(theta/2),-sin(theta/2)*q)。 ------------------------------------------------------------------------- (这个结论的证明过程可以在网上找到。这里略去。) 下面看其时间复杂度: 首先有个三角函数的计算时间,这个可以预先计算好,花费时间不计。考虑n个四元数相乘需进行4*4*(n-1)=16*(n-1)次乘法,15*(n-1)次加法,因为加法化费时间较少,这里仅考虑乘法。这里涉及到三个四元数的乘法,设一次乘法的时间为T,故花费16*2=32T 2.旋转矩阵工具: ------------------------------------------------------------------------- 结论:构造旋转矩阵变换Trot,则变换后的新向量p'(或点p')为p'= p*Trot 其中,p'(x',y',z',1),p(x,y,z,1)为向量p',p的4D齐次坐标表示,Trot = |t*q1*q1 + c, t*q1*q2 + s*q3, t*q1*q3 - s*q2, 0| |t*xq1*q2 - s*q3, t*q2*q2 + c, t*q2*q3 + s*q1, 0| |t*q1*q3 + s*q2, t*q2*q3 - s*q1, t*q3*q3 + c, 0| |0, 0, 0, 1| c=cos(theta), s=sin(theta),t=1-c. ------------------------------------------------------------------------- (这个结论的证明过程可以在网上找到。这里略去。) 下面看其时间复杂度: 三角函数的计算时间不计。矩阵本身的元素乘法主要是计算t*x和s*x之类,需进行12+3=15次乘法。两个矩阵相乘的需进行n*n*n次乘法,这里n=4,所以花费4*4*4=64次乘法时间,

相关文档