<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DSP的室內慣性導航系統設計

基于DSP的室內慣性導航系統設計

作者: 時(shí)間:2015-05-23 來(lái)源:電子產(chǎn)品世界 收藏

  HMC5883L三軸磁感應傳感器的作用相當于羅盤(pán),在水平情況下,無(wú)需借助其他傳感器便可以計算出航向。其初始化如下:

本文引用地址:http://dyxdggzs.com/article/274609.htm

  unsigned char Init_HMC5883(void)

  {

  unsigned char Return1;

  unsigned char Data;

  // Bit4 Bit3等于11時(shí),選擇2000度/秒的量程

  Data = 0x00;

  Return1 = IIC_WriteData(0x3C, 0x02, 1);

  if(Return1)

  return 1;

  else

  return 0;

  }

  由于裝置是要在不同環(huán)境下進(jìn)行工作的,所以其并不能保持時(shí)刻水平,就需要加速度傳感器來(lái)糾正由于傾斜引起的誤差。

  3.2卡爾曼濾波算法應用

  于是裝置在室內區域進(jìn)行勘測搜索,小車(chē)的運行特點(diǎn)與一般的飛機、船、車(chē)不同,它的運動(dòng)變化快,軌跡不定,而且要適用于不同的環(huán)境下工作,因此常用的卡爾曼濾波算法需要進(jìn)一步改進(jìn)才能應用??柭^(guò)濾是用前一個(gè)估計值和最近一個(gè)觀(guān)察數據,來(lái)估計信號的當前值,它是用狀態(tài)方程和遞推的方法進(jìn)行估計的,它的解是以估計值形式給出的。其運用在加速度器和陀螺儀上的卡爾曼濾波程序如下:

  // float gyro_m:陀螺儀測得的量(角速度)

  //float incAngle:加速度器測得的角度值

  #define dt 0.0015//卡爾曼濾波采樣頻率

  #define R_angle 0.71 //測量噪聲的協(xié)方差(即是測量偏差)

  #define Q_angle 0.0001//過(guò)程噪聲的協(xié)方差

  #define Q_gyro 0.0003 //過(guò)程噪聲的協(xié)方差過(guò)程噪聲協(xié)方差為一個(gè)一行兩列矩陣

  float kalmanUpdate(const float gyro_m,const float incAngle

  {

  float K0;//含有卡爾曼增益的另外一個(gè)函數,用于計算最優(yōu)估計值

  float K1;//含有卡爾曼增益的函數,用于計算最優(yōu)估計值的偏差

  float Y0;

  float Y1;

  float Rate;//去除偏差后的角速度

  float Pdot[4];//過(guò)程協(xié)方差矩陣的微分矩陣

  float angle_err;//角度偏量

  float E;//計算的過(guò)程量

  static float angle = 0; //下時(shí)刻最優(yōu)估計值角度

  static float q_bias = 0; //陀螺儀的偏差

  static float n[2][2] = {{ 1, 0 }, { 0, 1 }};//過(guò)程協(xié)方差矩陣

  Rate = gyro_m - q_bias;

  //計算過(guò)程協(xié)方差矩陣的微分矩陣

  Pdot[0] = Q_angle - P[0][1] - P[1][0];

  Pdot[1] = - n[1][1];

  Pdot[2] = - n[1][1];

  Pdot[3] = Q_gyro;

  angle += Rate * dt; //角速度積分得出角度

  n[0][0] += Pdot[0] * dt; //計算協(xié)方差矩陣

  n[0][1] += Pdot[1] * dt;

  n[1][0] += Pdot[2] * dt;

  n[1][1] += Pdot[3] * dt;

  angle_err = incAngle - angle; //計算角度偏差

  E = R_angle + P[0][0];

  K0 = n[0][0] / E; //計算卡爾曼增益

  K1 = n[1][0] / E;

  Y0 = n[0][0];

  Y1 = n[0][1];

  n[0][0] -= K0 * Y0; //跟新協(xié)方差矩陣

  n[0][1] -= K0 * Y1;

  n[1][0] -= K1 * Y0;

  n[1][1] -= K1 * Y1;

  angle += K0 * angle_err; //給出最優(yōu)估計值

  q_bias += K1 * angle_err;//跟新最優(yōu)估計值偏差

  return angle;

 ?。?/p>

  通過(guò)濾波時(shí)數據平滑將加速度輸出電壓附近產(chǎn)生的波動(dòng)噪聲濾掉。



關(guān)鍵詞: DSP JTAG

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>