精华内容
下载资源
问答
  • 有些设备正常工作时需按合适的方位安装,比如GPS天线必须朝向天空才能保证信号最佳,温湿度传感器监测口必须朝向被测目标才能及时响应。...因为倾斜角的不同,1g的加速度按向量分解到xyz三轴:a...

    有些设备正常工作时需按合适的方位安装,比如GPS天线必须朝向天空才能保证信号最佳,温湿度传感器监测口必须朝向被测目标才能及时响应。软件需求是在安装角度异常时提醒用户改变位置。那设备如何感知当前方位呢?需要一颗加速度传感器硬件支持,辅以算法实现。

    1、重力加速度

    根据物理常识,地面上任何物体静止时都受到1g的重力加速度,且方向是竖直向下。

    dcafe96d1145307fd1331f5339ecbcf8.png
    因为倾斜角的不同,1g的加速度按向量分解到xyz三轴:
    acc_x=1g.sinθ.cosϕ
    acc_y=-1g.sinθ.sinϕ
    acc_z=1g.cosϕ
    符号.代表相乘,读取加速度传感器的xyz三轴数据的细节,不是本文考虑的范畴。

    因为传感器的位数精度和量程不同,同样的1g,读寄存器的数值不同,为统一后文描述,假设数值255对应1g的加速度。物体水平静止时加速度值理想情况是(0,0,255),反向水平放置是(0,0,-255)。这个数值等比例的缩小或放大,不影响角度的判断。

    2、空间向量夹角

    假设期望的正确安装方式下三轴是(x0,y0,z0),实际三轴数据是(x1,y1,z1)。那如何得出当前偏差的角度呢?已知两空间向量的坐标为a=(x1,y1,z1),b=(x2,y2,z2),则两向量的夹角余弦cosθ公式为:

    f1a1523c70e7ba95f74ec3331fb4ccd8.png

    在实际应用中,翻转角度为181度时,按179度处理。本文只考虑0-180度的应用,180度以上的需要额外再计算翻转。
    27e045ae37a8b037f0be3d4415d16e3c.png

    根据空间向量夹角余弦,再反余弦得出在0-180度的角度,即可判断设备安装角度是否正确。

    3、代码实现

    #include "math.h"
    #include "stdio.h"

    #define PI  3.1415926

    typedef struct
    {

        signed short x;
        signed short y;
        signed short z;
    }sensor_data_struct;

    static sensor_data_struct ref={0,0,255};
    static sensor_data_struct test={0,180,180};

    //计算当前向量与参考向量的夹角
    float get_angle(sensor_data_struct data){
        float cosine;
        float temp,angle;
        cosine=(data.x*ref.x+data.y*ref.y+data.z*ref.z)/ \
                ((sqrt(data.x*data.x+data.y*data.y+data.z*data.z))*\
                 (sqrt(ref.x*ref.x+ref.y*ref.y+ref.z*ref.z)));

         temp=acos(cosine);
         angle=(temp*180)/PI;
         return angle;
    }

    int main(int argc, char *argv[]){
        float angle;
        printf("reference vector (%d,%d,%d)\r\n",ref.x,ref.y,ref.z);
        printf("test vector (%d,%d,%d)\r\n",test.x,test.y,test.z);
        angle=get_angle(test);
        printf("angle = %f'\r\n",angle);
        return 0;
    }

    reference vector (0,0,255)
    test vector (0,180,180)
    angle = 45.000004'

    4、优化改进

    求解角度使用的三角函数,部分单片机可能不支持;对角度的精度,使用整形即可。基于这个条件,可以建立cosθ的数组表,以1度--2度--3度---180度步进,按如下代码生成数组表:

    void creat_table(void){
        float i;
        for(i=0;i<180;i++)//i的步进值决定精度
        {
            if((unsigned char )i%9==0)
            {
                printf("\r\n");
            }
            printf("%f,",cos(i*PI/180));//角度转弧度再传入
        }
    }

    根据代码生成数组表后,查找余弦表,数组的下标即为角度。

    static const float cos_table[180]={
        1.000000,0.999848,0.999391,0.998630,0.997564,0.996195,0.994522,0.992546,0.990268,
        0.987688,0.984808,0.981627,0.978148,0.974370,0.970296,0.965926,0.961262,0.956305,
        0.951057,0.945519,0.939693,0.933580,0.927184,0.920505,0.913545,0.906308,0.898794,
        0.891007,0.882948,0.874620,0.866025,0.857167,0.848048,0.838671,0.829038,0.819152,
        0.809017,0.798636,0.788011,0.777146,0.766044,0.754710,0.743145,0.731354,0.719340,
        0.707107,0.694658,0.681998,0.669131,0.656059,0.642788,0.629320,0.615661,0.601815,
        0.587785,0.573576,0.559193,0.544639,0.529919,0.515038,0.500000,0.484810,0.469472,
        0.453991,0.438371,0.422618,0.406737,0.390731,0.374607,0.358368,0.342020,0.325568,
        0.309017,0.292372,0.275637,0.258819,0.241922,0.224951,0.207912,0.190809,0.173648,
        0.156434,0.139173,0.121869,0.104528,0.087156,0.069756,0.052336,0.034900,0.017452,
        0.000000,-0.017452,-0.034899,-0.052336,-0.069756,-0.087156,-0.104528,-0.121869,-0.139173,
        -0.156434,-0.173648,-0.190809,-0.207912,-0.224951,-0.241922,-0.258819,-0.275637,-0.292372,
        -0.309017,-0.325568,-0.342020,-0.358368,-0.374607,-0.390731,-0.406737,-0.422618,-0.438371,
        -0.453990,-0.469472,-0.484810,-0.500000,-0.515038,-0.529919,-0.544639,-0.559193,-0.573576,
        -0.587785,-0.601815,-0.615661,-0.629320,-0.642788,-0.656059,-0.669131,-0.681998,-0.694658,
        -0.707107,-0.719340,-0.731354,-0.743145,-0.754710,-0.766044,-0.777146,-0.788011,-0.798635,
        -0.809017,-0.819152,-0.829038,-0.838671,-0.848048,-0.857167,-0.866025,-0.874620,-0.882948,
        -0.891007,-0.898794,-0.906308,-0.913545,-0.920505,-0.927184,-0.933580,-0.939693,-0.945519,
        -0.951057,-0.956305,-0.961262,-0.965926,-0.970296,-0.974370,-0.978148,-0.981627,-0.984808,
        -0.987688,-0.990268,-0.992546,-0.994522,-0.996195,-0.997564,-0.998630,-0.999391,-0.999848,
    };

    unsigned short get_angle(sensor_data_struct data){
        float cosine;
        unsigned short i;

        cosine=(data.x*ref.x+data.y*ref.y+data.z*ref.z)/ \
                ((sqrt(data.x*data.x+data.y*data.y+data.z*data.z))*\
                 (sqrt(ref.x*ref.x+ref.y*ref.y+ref.z*ref.z)));

        for(i=0;i<180;i++)
        {
            if(cos_table[i]//查表
            {return i;
            }
        }return 180;//error
    }int main(int argc, char *argv[]){unsigned short angle;//改成整形printf("reference vector (%d,%d,%d)\r\n",ref.x,ref.y,ref.z);printf("test vector (%d,%d,%d)\r\n",test.x,test.y,test.z);
        angle=get_angle(test);printf("angle = %d'\r\n",angle);return 0;
    }

    reference vector (0,0,255)
    test vector (0,180,180)
    angle = 46'

    查表得出46度,因为查表以及浮点的精度,所以角度误差+-1度,但这个不影响业务逻辑。

    5、小节

    1、空间向量夹角公式可在基于xyz三轴的传感器中应用。
    2、针对范例中的应用,两个向量的参数必须是在静止情况下采样,根据向量模进行过滤,否则角度计算错误。
    3、未考虑大于180度的翻转。

    展开全文
  • 看到一份教案:写的还不错,需要有以下补充:一、简单来说,两个半面所成的角即为二面角α,注意与面面角的区别。二、向量法相对来说比较容易掌握,步骤如下:1、建系。...分别求出两面的方向向量AM...

    看到一份教案:

    b1b33fc8b0c7d589df1ce9d5f254e400.png

    写的还不错,需要有以下补充:

    一、简单来说,两个半面所成的角即为二面角α,注意与面面角的区别。

    二、向量法相对来说比较容易掌握,步骤如下:

    1、建系。以三垂线的交点为原点,没有三垂线时需做辅助线;建立右手直角坐标系,让尽量多的点落在坐标轴上。

    2、设点。有时需设线段长为a,写出所有相关的点,一般写四个,两面交线上的两个点M、N加俩面上各一个点A、B。

    3、求方向向量。分别求出两面的方向向量AM、AN和BM、BN,带箭头。

    4、求法向量m、n,分别设m=(x1,y1,z1),n=(x2,y2,z2);利用法向量与方向向量垂直,其数量积为0,可列出两个三元一次方程组;令x1=一个确切的数,比如1或0,求出另外两个坐标,同理可求出n向量(注意法向量需是非零向量)。

    5、求出两法向量夹角β,在空间直角坐标系中观察法向量m和n得朝向,朝向面内还是面外。都朝内或都朝外时,α=π-β;一个朝内另外一个朝外时,α=β,如下图:

    f03a89688f24912484fecba5641afe6f.png

    欢迎讨论补充,谢谢。

    展开全文
  • 超声波流量是一种采用超声波以非接触方式测量流体速度一种仪器。...公式如下:流量计检测公式如下图,以左下位置为原点,建立直角坐标系,直角坐标系对于从下游传感器到下游传感器传播,声波...

    超声波流量是一种采用超声波以非接触的方式测量流体速度的一种仪器。

    超声波的顺流中的传播速度与在逆流中的传播速度不相同。

    在流体的上下游位置放置一对探头声探头,两个探头分别向对方发射超声波;

    检测超时波在不同方向从发射端到接收端所花费的时间。

    根据两个时间差,经过公式计算即可以得到流体速度。

    公式如下:

    70ff83eb4f13f646d7611fe316cd0367.png

    流量计检测公式

    如下图,以左下角位置为原点,建立直角坐标系,

    820aed2ecac93c6c1be5d77c49c67e55.png

    直角坐标系

    对于从下游传感器到下游传感器的传播,声波速度为,

    格外注意的是,声波的方向位移方向并不相同:

    d9da9967b1a4ea13a350c349747282d6.png

    声波速度

    流体速度为:

    806dc88e628e5539b3bb94ab86136734.png

    流体速度

    超声波从上游探头位置到下游探头位置,其产生的位移为,

    51e3b64d8f6ba2dc12776a5f08395309.png

    从上游探头位置到下游探头位置的位置

    根据:

    5b2964f6d7c1a19b017cfc93239f58ac.png

    速度、时间、位移关系

    得到:

    62f77202d3b6ae7b38ea74e74f39bd30.png

    关系式

    进一步推导:

    d4b89156ccb28ff1d78dae040e31eeba.png

    上游往下游传播所满足的关系式,关系式1

    同理,对于下游往上流的传播,有下列关系式成立:

    27d9f8ed449828f75e840482ef4881c9.png

    下游往上游传播满足的关系式,关系式2

    联立关系式1以及关系式2,两式左右两边分别相除,消去声波速率C,得到:

    6f937c05d2fcd7c103203650c33c1e98.png

    化解过程

    展开全文
  • 在空间几何这一章的学习...本章节还需要学习向量及其线性运算,此知识点也是先由平面过度到空间的,这里我们需要知道向量的一些加减乘除运算,还有模的运算和方向角的运算,然后一个重点知识就是要分清数量积和向量...
    f02dc23dae6dd5d8523636934f51fe5e.png5ca20ff88e5fc35b69973b230121a7c5.png

    在空间几何这一章的学习当中,首先需要建立空间直角坐标系,利用数形结合的方法,再者就是一些公式,空间内两点的距离公式,各个图形的标准形式的方程,本章节我们是从平面的图形方程过渡到空间里的图形方程,方便大家进行比较学习,本章节还需要学习向量及其线性运算,此知识点也是先由平面过度到空间的,这里我们需要知道向量的一些加减乘除运算,还有模的运算和方向角的运算,然后一个重点知识就是要分清数量积和向量积。本次的学霸笔记主要内容就是这些了,希望大家带着这些知识点继续下面的学习吧。

    一.空间直角、曲面、曲线

    f6433d72e1e94acb8ac3c2671dba4acd.png

    空间

    直角坐标系

    1. 点的坐标

    2. 直角坐标系

    3. 坐标轴

    4. 坐标面

    5. 八个卦限

    6. 点的投影

    7. 特殊的坐标

    1、点的坐标:在坐标系中用数字表示一个点的位置

    2、直角坐标系

    3、坐标轴:三条坐标轴分别为x,y,z

    4、做表面:三个做表面,x轴与y轴所在的平面,x轴与z轴所在的平面,y轴与z轴所在平面

    5、八个卦限

    6、点的投影:设M点是空间的一点,过点M做三个平面分别垂直于x轴,y轴,z轴并交x轴,y轴,z轴于点P、Q、R三点。点P、Q、R分别为点M在x轴,y轴,z轴上的投影

    7、特殊的坐标:(1)原点(0,0,0)(2)坐标轴上的点(3)坐标面上的点    

    曲面方程

    1. 曲面方程

    2. 柱面方程

    40d6be5258c564dbd4d5a17b17742143.png

    1、曲面方程的概念:曲面是空间动点的轨迹

    2、柱面:椭圆柱面,双曲柱面,抛物柱面

    5c4f98564420235365d0043a63173ade.png

    空间曲线及其方程

    abf635b4cab89848c62b7222367fc979.png

    1、空间曲线的一般方程:空间曲线可以看作两张曲面的交线

    2、空间曲线的参数方程:将动点坐标x、y、z表示为t的函数

    3、空间曲线在坐标平面上的投影

    但是看了空间直角、曲面、曲线,同学们是不是觉得这也不是很困难呐?

    当然,这只是这一章的开始,接下来跟紧我的脚步,我们要更进一步啦。

    二.旋转曲面与二次曲面

    e2d40468cd87000bccbe012b549e6f75.png

    旋转

    曲面

    二次

    曲面

    d2000153bc485ca7cea1ed705c7a2445.png

    三.向量及其线性运算

    8f44f69bda5fa9d2c36f3d6cec08c283.png

    向量的

    线性

    运算

    向量的

    坐标

    b7c8a4e06eb1dde254a6aff7352441cd.png57fb6d4922ab5bdd0188f880234fedef.png

    1、旋转曲面:由一条平面曲线绕其所在平面上的一条定直线旋转一周所形成的曲面成为旋转曲面

    2、二次曲面:我们将x、y、z的三元二次方程所表示的曲面称为二次曲面

    3、二次曲面的几种类型:(1)椭圆锥面(2)椭球面(3)单叶双曲面(4)双叶双曲面(5)椭圆抛物面(6)双曲抛物面(7)旋转单叶双曲面(8)旋转双叶双曲面

    e8194157ddfa8c79e42610477c72704a.png

    以上的内容大家可能觉得标准方程太多记不住,其实大家只要结合平面的方程进行记忆就会容易很多,通过在二者之间找出相同点和不同点来进行记忆就会事半功倍。

    四.数量积与向量积

    7f41d657045dca0115e8f6a33eef28c0.png

    向量的

    数量积

    1.定义  2.性质 

    3.运算  4.坐标,运算

    f5a0beb533fe03bfe293cfc21cc6929e.pnge8ee118e8f133c92450bd56fa345182b.png

    两向量的数量积

           1.定义

           2.性质

           3.运算

           4.坐标,运算

    80e2f578487665f2fb798c18f4d56ef3.png

    这部分的内容其实很容易,只需要结合高中所学习的内容进行学习就会很容易,并且在这里给大家的建议是几何中学习数学的重要办法是数形结合,通过画图来便于自己的理解。

    5bfcb2552b713e030ac8df336da13bef.png

    江海大计算机

    编辑    马小宇

    图片    杨   阳

    文字    杨   阳

    审核    高鑫海

    0e30445fdb24bfb723c7fd90f447172f.png
    展开全文
  • 1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转3个自由度,有冗余;...旋转向量,是一个三维向量,其方向与旋转轴一致,长度等于旋转;旋转向量到旋转矩阵转换是通过罗德里格斯公式(Ro...
  • 点与向量问题引入空间直角坐标系空间直角坐标系空间中点的坐标空间两点的距离空间两点的距离公式例1向量及其线性运算向量的基本概念空间向量的坐标表示平面向量的方向角和方向余弦空间向量的方向角和方向余弦空间...
  • 引言: 刚体在空间中的一次旋转可以用旋转矩阵,四元数和旋转向量三种方式表示,以下总结三者的数学转化关系 文章目录1.向量旋转公式2....旋转向量的定义:方向是旋转轴,大小是旋转角的向量,表示刚体...
  • 1.对非平面的三角形面片进行差值,可以从指定的定点法相、或者边界切线方向开始进行差值,即...给出,则通过计算v0点的两个边的切向量的叉积的方式,计算v0d的法相量n0。 其中,该曲面三角巷的曲率边通过标签<...
  • 向量加减法

    万次阅读 2017-04-19 09:55:05
    向量加法的和就是以两个向量的边作为平行四边形长边的对线表示 公式:u + v = + = 向量减法: 向量减法的差是由减向量指向被减向量得到的新向量 公式:u - v = - = 减法可以用于方向计算
  • 向量运算

    2016-03-01 01:13:00
    1.零向量 加性单位元:满足y+x=y n维向量集合的加性单位元就是n维零向量 运算法则:例如3d零...向量的大小(长度和模) 运算法则: n维向量大小计算公式为 几何解释: 2d中任意向量v能构造一个以v为斜边的直角三角...
  • 向量投影 如上图,求向量P在向量Q上投影,计算方法如下: 将向量P当做直角三角形...投影方向向量Q平行,求向量Q单位矢量: 则向量P在向量Q上投影为: 顺便一提,向量P相对于向量Q垂直向量为:...
  • 4. 向量的方向角与方向余弦 5. 向量的坐标表示 6. 向量的线性运算 7. 向量的数量积 8. 向量的向量积 9. 向量及其坐标的有关公式 二、空间中的曲面与曲线 1. 曲面与曲面方程 2. 空间曲线的方程 3. 旋转面方程 4. 柱面...
  • 三角形面积两种计算方法

    千次阅读 2019-03-01 21:46:03
    向量是一种既有方向、又有大小的量(如一个箭头表示就很形象),在平面直角坐标系中,若的坐标为,的坐标为,则向量的方向由指向,用表示。 叉乘是向量间的一种运算,设两个向量分别为,,那么它们的叉乘就为。 ...
  • 旋转矩阵也叫方向余弦旋转矩阵是一个 3 x3 阶矩阵,矩阵列表示载体坐标系中单位矢量在参考坐标系中投影。2. 旋转向量也叫轴角任意旋转都可以用一个旋转轴和一个旋转刻画。旋转向量可以由罗德里格斯公式...
  • 高等数学(总结7--解析向量空间)

    千次阅读 2015-02-08 16:00:38
    1)向量相加(减)等于分量分别相加(减);(交换律,结合律)2)向量与数相乘等于...5)方向角和方向余弦:这个公式很重要,后面很多定理证明其实都是基于此;很容易证明:这个公式很容易推广到n维向量。6)向
  • 旋转矩阵也叫方向余弦旋转矩阵是一个 3 x3 阶矩阵,矩阵列表示载体坐标系中单位矢量在参考坐标系中投影。2. 旋转向量也叫轴角任意旋转都可以用一个旋转轴和一个旋转刻画。旋转向量可以由罗德里格斯公式...
  • 【考点聚焦突破】考点一 用空间...两异面直线所成角的范围是θ∈,两向量的夹角α的范围是[0,π],当异面直线的方向向量的夹角为锐角或直角时,就是该异面直线的夹角;当异面直线的方向向量的夹角为钝角时,其补...
  • 罗德里格斯公式推导

    2021-02-01 23:44:10
    旋转向量的方向与旋转轴一致,长度等于旋转。我们可以通过推导罗德里格斯公式学习时如何转换的。 罗德里格斯公式推导 我们取3个向量,u、v与绕旋转轴u旋转Ѳ后得到的v’。这里u为单位向量。 在这里我们将向量v...
  • 首先需要保证光方向向量AB,法向量N均为单位向量,反射向量AC,光入射方向AD = -AB θ为入射,由反射公式我们知道,AC与AB沿y轴对称,AD与AC沿x轴对称 EB = N * |AB|cosθ = N * dot(N,AB) DC = 2 * EB = -2...
  • 三维数学之向量一、向量1、什么是向量2、向量的形式3、向量的大小4、向量的方向二、向量运算1、向量相减2、向量相加3、向量与标量的乘除法4、点乘5、叉乘三角函数1、角的度量单位2、三角函数3、反三角函数如何改变...
  • 对于如何计算两个向量的相似程度问题,可以把这它们想象成空间中的两条线段,都是从原点([0, 0, …])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合;如果夹角为90度...
  • 可以使用一个向量,其方向与旋转轴一致,而长度等于旋转,这种向量称为旋转向量(或称轴角) ps:旋转向量就是下章要介绍李代数 旋转向量到旋转矩阵,可以由罗德里格斯公式推导 二、欧拉角 欧拉角,并不是一个...
  • 余弦相似度通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。...
  • reflect反射公式推导

    2020-06-12 11:03:44
    图1 图2 根据图1推导出OP向量,也就是图2EB向量 图1OP推导: ...知道入射光向量(AO)和法向量...θ为入射,由反射公式我们知道,AC与AB沿y轴对称,AD与AC沿x轴对称 EB = N * |AB|cosθ = - dot(N,B...
  • 1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转3个自由度,有冗余;...旋转向量,是一个三维向量,其方向与旋转轴一致,长度等于旋转;旋转向量到旋转矩阵转换是通过罗德里格斯公式(Ro...
  • 1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转3个自由度,有冗余;...旋转向量,是一个三维向量,其方向与旋转轴一致,长度等于旋转;旋转向量到旋转矩阵转换是通过罗德里格斯公式(Ro...
  • 旋转向量为三维向量表示形式,用旋转向量表示旋转变换,可以将其方向为旋转轴方向,模为旋转角度。三维空间旋转变换为绕任意轴r旋转,可以分解为分别绕X,Y,Z轴旋转,将绕坐标轴旋转表达为矩阵形式有: 图源...
  • 模,方向角(很重要),投影(直接运用公式); 数量积,向量积和混合积   曲面及其方程(双变量) 空间曲线及其方程(单变量)   平面及其方程(特殊曲面) 空间直线及其方程(特殊曲线

空空如也

空空如也

1 2 3 4 5
收藏数 85
精华内容 34
关键字:

向量的方向角的公式